本記事ではBlenderのanimation_nodesの初心者向けの基本操作についてご紹介していきたいと思います。
本記事ではそんな基本操作の中でも複数のオブジェクトを連動させる方法をご紹介します。
これは、基本的に現実でも何かが動いた場合、他の何かも動くというのが多いと思います。そのようなことをBlenderのanimation_nodesを使って実現する方法を本記事ではメインでご紹介します。
下記の記事を前提にしているため、まだご覧になっていない方は下記の記事からご覧ください。
Blender animation_nodesの基本的な使い方 - TomoGのごちゃまぜ倉庫
結果
最近やってなかったanimation nodesを勉強中。
— 智G (@tomohikog12) 2019年12月13日
やはりアニメーションが付いたら、結構リアルに見える。 pic.twitter.com/CDyWoifpXi
上記のように歯車を回転させていくというのが本記事で目指す結果となります。
参考動画
上記の動画を参考にしています。本記事ではそれに自分なりの解説やノードを追加したものとなっています。
歯車の動かし方
歯車の準備
まず動かすための歯車を3つ用意します。
この歯車はBlenderに最初から用意されているアドオン【Add Mesh: Extra Objects】のGearsを利用することをお勧めします。
そして、この時付けた歯車の歯の個数をメモしておいてください。後程利用します。
Blender 基本的なアドオンの入れ方【初心者向け】 - TomoGのごちゃまぜ倉庫
本記事では上図のように歯車を3つ作成し、番号を振っています。
この歯車1~歯車3までを連動させて見せるため、本記事では歯車1を動作の基準にしています。
そのため、この歯車1を回転させているようなアニメーションを付けてください。
Blenderで基本的なアニメーションを作成する方法 - TomoGのごちゃまぜ倉庫
上図のようなアニメーションになると思います。
どの軸に歯車を置いたかによって異なりますが、基本的にはZ軸を変更するだけで問題ありません。
上図のようにそれだけで歯車1が回りますが、それによって他の歯車は回っていません。これを回るようにしていきたいと思います。
animation_nodesの設定
連動のさせ方
まずは歯車1の回転を歯車2の回転に連動させるために上図のようなノードをanimation_nodes上で組みます。
左から順に説明すると
Object Input:オブジェクトを取得
Object Transforms Input:オブジェクトの位置・回転・拡大縮小を取得できるようにするノード
Separate Euler:回転をXYZに分ける。
Combine Euler:XYZの回転を合成する
Object Transforms Output:オブジェクトのオブジェクトの位置・回転・拡大縮小を反映
となります。
これで、歯車2の回転が歯車1の回転と同じになったと思います。
しかし、下記の問題点があります。
・回る向きが逆
・歯車の歯に沿った回転
となります。
回転の向きを変更する
回転を向きを変更する方法として、上図のようにMathノードを追加して、-1を乗算してください。これで反対向きに回転するようになったと思います。
歯にあった回転
次に歯にあった回転ですが、これは下記の知識が関係してきます。
この数学をBlenderに組み込んだものが下記のものとなります。
上図の赤枠で囲んだ左のGearToothNumberは値ノードの名前を変更したものとなります。この数値ノードにメモしてもらっておいた歯車の歯の数を入力してください。
そして、その歯車の数で除算を行い乗算させることで歯車がかみ合った状態で動くようになると思います。
連動後のものを違うオブジェクトに連動させる
この状態だと歯車1と歯車2は動いていると思いますが、歯車3が動いていないと思います。
そして、歯車1と歯車3は隣接していないため、歯車1を基準にすることもできません。
そのため、動いている歯車2を基準にして歯車3を動かす必要があります。
今まで一番右にあったObject Transforms Outputのオブジェクトに再度、Object Transforms InputをリンクさせることでObject Inputと同じように利用することができます。
後は、前項で行ったことをコピーして再度やるだけとなります。
その結果が上図のようなものになります。画像をクリックすることで拡大できます。
これで、本記事の始めにご紹介したような歯車のアニメーションができたと思います。
本記事の内容は以上となります。
アニメーションノードはちょっと特殊ではあるものの、慣れれば使いやすいものとなっているため、是非活用してリアルなアニメーションを行ってみてください。
本記事は以上です。お疲れさまでした。