【Blender4.5】グリースペンシル(SVG)とジオメトリノードでアニメーション

blender
記事内に広告が含まれています。

SVGのベクターデータを作って、それをBlenderにインポートしアニメーションさせます。リグなどを入れない簡易な2Dアニメーションのやり方です。

グリースペンシルオブジェクトをジオメトリノードで動かす方法のアニメです。

グリースペンシルとしてインポートし、ジオメトリノードを使ってアニメーションさせると、色を変えたり、簡単にパーツを動かすことができます。ちょっとしたアニメが欲しいときなどに便利だと思いましたのでまとめておきます。(※今回は複雑な動きはしていません)

左のようなアニメの作り方の基礎的なところをまとめています。(動画の読み込みがミスってる場合は更新してみてください。)

キーフレームを打つのがめんどくさい、いつでもすぐやり直したい、いろんな動きのバージョンを作りたいときにとても便利なのでみなさんもぜひやってみてください。

この記事は、Blenderでグリースペンシル(SVGデータインポート)をジオメトリノードでアニメーションさせる方法を解説した中級者向けの記事です。

難易度 3.0

スポンサーリンク

データ作成

SVGデータ作成ソフト

今回はFigmaで元データを作成しました。これはビーバーです。

Figma, Inkscape, Illustratorなど、ベクターデータを編集できるソフトはいろいろあります。FigmaInkscapeは無料(または無料部分)で使用できます。

データ作成のポイント

動かす部分については、パーツが重なっていても、見えない部分もきちんと作っておくことが大事です。

例えば、足やしっぽは身体に隠れて見えない部分もきちんと作ってあります。動かしたときにも形が崩れないためです。

レイヤー分け

Inkscapeでレイヤー分けする

動かすパーツごとにレイヤー分けしておくとその部分ごとに動かせるので便利です。

Inkscapeでレイヤー分け作業をします。(Figmaだとグループ分けがうまくインポートできなかった。イラレでもできるかもしれませんが試してみてません…)

しっぽ部分だけ、左足・右足部分だけ、など動かすパーツごとにレイヤーに分けます。

レイヤーのパネル左上の+のボタンでレイヤーを増やせます。あとはパーツを選択すると、レイヤーパネル内でその部分が選択されるので、ドラッグ&ドロップで目的のレイヤーに移動させます。

書き出し

Inkscapeで書き出すときは、

ファイル > 名前を付けて保存

ファイルの種類はデフォルトのInkscape SVGでOKです。

スポンサーリンク

SVGインポート

データの用意ができたらBlenderにインポートします。

SVGインポートの形式

今回はグリースペンシルとしてインポートします

SVG画像をインポートするやり方は2つありますが、今回はグリースペンシルとしてインポートします。

File > Import > SVG as Grease Pencil

でさきほどのデータを選んでインポートします。

このインポート方法の違い、グリースペンシルオブジェクトとしてインポートするとどうなるのかなど詳細は以下の記事で書いています。↓

スポンサーリンク

見た目を調整

インポートしたデータの見た目を整えていきます。アニメーションをつけてからでもいいですが、動かしている途中にも色があった方が楽しいので、最初に色など調整した方が作業がはかどる気がします。

背景をつける

背景がない場合はPlaneを出して背景をつけておきます。Planeをつけたら、

右クリック > Convert to > Grease Pencil

でグリースペンシルオブジェクトに変換すると色をつけやすくなります。

マテリアル調整

デフォルトではレンダリングプレビューなどで光の影響を受けて色が暗くなっています。

①グリースペンシルのオブジェクトデータプロパティのレイヤーパネル下にLightsという項目があるのでチェックを外すと、光の影響を受けることなく色が出るようになります。

②デフォルトではビュー変換がAgXで、少し色が変化して見えているので、

レンダープロパティ
Color Management > View Transform >
Standard

にして元データに近い色が出力されるようにします。

レイヤーの重なりの順番がおかしかったら、レイヤーパネルで順番を変えて見える順番を変更します。

スポンサーリンク

ジオメトリーノードでアニメーション

準備ができたら、グリースペンシルオブジェクトを選択して、ジオメトリノードをつけます。

レイヤーごとに分ける

Separate Geometryノードを使ってレイヤーごとにグリースペンシルを分けていきます。

Layer項目をIndexの番号で選択してわけていきます。左図でいうと、今インデックス番号0のレイヤーがSelection出力から出ているところです。左足のパーツのみが出力されています。

このノードをコピペしてIndex番号だけ変えれば他のレイヤーも出力できます。

フレームで左足、右足、などとラベルをつけるとわかりやすいです。

これを全てのレイヤーごとにやります。Join Geometryノードで最後に合わせます。

ちなみにBlender4.5ではノードをフレームでまとめるショートカットコマンドがFになっています。今までずっとCtrl + Jだったので慣れないなぁ…

Join Geometryノードの順番

まさかって感じなんですけど、Join Geometryノードにつなぐ場所の順番がかなり重要です。下につなぐほどレイヤーが上に重なっていきます。上に持っていきたいレイヤーは下につなぐようにしましょう。

スポンサーリンク

シンプルな動き

例えばビーバーの身体のまわりについてる漫画の記号みたいなやつを動かしてみます。

この記号部分を分けたノードの先にTransform Geometryノードをつなげて動かすことができます。例えばノイズテクスチャをつなげてX軸方向スケールにランダムに値を入れてちょこちょこっと動かすようにしてみました。

Clampノードを使うと、ある最小値、最大値から外れたときは値がそれ以上変化しなくなるので、その間の数値の変化のときだけ動くようにできます。たまに動く、みたいなときに使えます。

ちなみに、このときはこのグリースペンシルオブジェクト全体の原点を中心にトランスフォームしています。

特定の位置を中心にする回転の動き

腕を回転するように動かしたいのですが、このままではこのオブジェクト全体の原点を中心に回転してしまうので、Emptyを出して、腕の回転中心にしたい場所に配置します。

ノードで回転させる組み方の例が以下になります。

Set Positionノードをつなぎ、さらにPositon入力ソケットにVector Rotateノードをつないで回転させます。回転中心の位置を指定できるソケットがあるので、Center入力ソケットに、EmptyObject InfoノードのLocationを接続します。

Vector Rotateノードは上のVector入力ソケットに現在のPositionをつないでおく必要があります。Axisモードで回転させるときはY軸を軸に設定して、Angleにラジアンの数値を入れると回転します。

スポンサーリンク

線を震わす

グリースペンシルアニメと言えば、線がごにょごにょ動いてるような効果をよく見るんじゃないでしょうか。

ジオメトリノードを使っても簡単にできます。

全てのパーツの外形を震わせたいので、全てのパーツをJoin Geometryノードで合わせた後にSet Positionノードをつなぎます。Offsetにノイズテクスチャなどをつなげると、面や線が震えるような動きをつけることができます。

思うように震えない震えの調整が難しいという場合は、グリースペンシルのコントロールポイントが少なすぎ、または多すぎなのかもしれません。Resample Curveノードでポイントを再配置できるので、自分の思うちょうどいい間隔でポイントを置いてみると震える動きをつけやすくなると思います。

スポンサーリンク

完成

上記に書いた、Transform Geometryのシンプルな動きと、Set Positionでの回転を組み合わせて動きを作っていき、スピードや頻度や動きの調整をします。

線や形が震えるアニメも追加して、ノードの全体図は左図のようになります。

完成したものがこちら。くしくしてるビーバーのアニメーションです。

キーフレームを打たずにこんな感じで簡単なアニメーションを作成できます。

スポンサーリンク

おまけ

色が変わるアニメ

Blender4.5で登場したSet Grease Pencil Colorっていう神ノードのおかげで、ジオメトリノードからグリースペンシルの塗りと線を簡単に変更できるようになりました。

上のノードはビーバーの身体につけていて、身体の色が時間の経過で変更するように組んだものです。(Separate ColorやCombine Colorノードを使って色の彩度を上げています)

あっという間に

ゲーミングビーバー!!

簡単なのにとても楽しいのでぜひやってみてください!

コメント