Animation_nodesの複製・操作を考える
よくよく思ったけどBGAとかの3Dモーションって基本的に複製・操作系しか使わないよなと思ったので、 とりあえずAN(Animation_nodes)でこの二点に絞ってまとめようかなと思った。
注意として、言語を日本語に設定しているのでノードの翻訳がたまに変なのと、
プロでもなんでもないので、間違った解釈や非効率な組み方をしているものがあるかもしれないという点に気を付けて読んで欲しいです。
複製系
まずは複製系から。(操作はObject Controller Falloffを使ってます)
1.メッシュを元にオブジェクトを複製(単一のみ)
https://gyazo.com/3c40f927d81ec592df9bdc93b14b268f
(クリックで拡大)
恐らく一番スタンダードであろうやつ。
仕組み
https://gyazo.com/58f3855c07d2b01760f7c446ae526234
(クリックで拡大)
※ここでの位置情報は位置でだけではなく回転やスケールも含む情報としておいてください
青色部分はあくまでメッシュ情報の入力なのでスザンヌに入れ替えても出来る。
https://gyazo.com/7268ed10463e0189433bbeb3278734b2
(クリックで拡大)
ただ、単一のオブジェクトのみしか複製できない(Listを繋げようとすると間にノードが生成される)
https://gyazo.com/707d2e21df575fe4b11986cfafeade1c
(クリックで拡大)
メリット
ノードが直感的
動作が軽い
デメリット
同時に2種類以上のオブジェクトを使えない
細かい操作が難しい
2.メッシュを元にオブジェクトを複製(複数可)
https://gyazo.com/9e7bf820d36c40c9460d8d42e59c4d29
(クリックで拡大)
1のノードを2種類以上のオブジェクトに対応させたやつ。
単一でも対応しているので絶対にこっちを使った方が良い。
仕組み
https://gyazo.com/1861611e830c2277bdd01f51cb372227
(クリックで拡大)
※Get LengthとRandom Listの長さは繋げておいてください
複製するオブジェクトの入力はもちろんリストでも可能
https://gyazo.com/0c719fc67d57e64448efa622a57a421f
(クリックで拡大)
メリット
ノードが直感的
動作が軽い
デメリット
細かい操作が難しい
3.パーティクルを元にオブジェクトを複製(複数可)
https://gyazo.com/a8633141f922a3f8b6f6ec675010b040
(クリックで拡大)
パーティクルを元にオブジェクトを複製するやつ。
案外使えると思う。
仕組み
https://gyazo.com/c7a80da51633e9aebd2ebe538c309987
(クリックで拡大)
Compose Matrixの部分に回転はRandom Euler、スケールはRandom Vectorを以下のように
接続すると最初からランダムな値になる。
https://gyazo.com/83e823b94f865280a069cb8ae6c45434
(クリックで拡大)
スケールのXYZ軸を同じにしたい場合は下のようにする
https://gyazo.com/b345e6466aa63f4f639e1a30de6bdef1
(クリックで拡大)
メリット
直感的な操作
細かい操作が可能
デメリット
パーティクルの知識が必要
操作系
Falloff系のノードの解説についてはここの方が詳しいのでこっちを見てください。
ここでは応用的なものを解説します。
1.最初から回転とかスケールとかをランダムにしておきたい
パーティクルの所でもちらっと出てきたけど、Offset Matrixに接続するところに、
Decompose Matrixで一度位置、回転、スケールに分けてから、
Compose Matrixでそれぞれ回転はRandom Euler、スケールはRandom Vectorを繋げてあげてください。
https://gyazo.com/08b28d27d6f64fbf586748c165f447db
(クリックで拡大)
2.複製とかしなくていいのでオブジェクトをANで操作したい
実は複製の2番のやつを応用するとできます。
何故一度複製しないとダメかというと、複製の手順を踏まずにCollection Infoから直接Object Matrix Outputに繋げちゃうと、
際限なく移動し続けてしまうので絶対複製しましょう。
ちなみに地味に追加されてるObject Visiblity Outputは、
表示、非表示を切り替えてくれるものなので、今回みたいに数が多いときはどんどん使いましょう。
https://gyazo.com/448c34b354fcdd3da33c25ec1f70b1fd
(クリックで拡大)
3.Offset Matrixの移動量とかをランダムにしたい
操作の1と同じくRandom系が使えるので、
それぞれ回転はRandom Euler、移動とスケールはRandom Vectorに気を付けて繋げてください。
https://gyazo.com/f6ac2d1e07c62fe6578bdfd6a939c2d5
最後に
随時追加していくので、こうゆうの知りたいみたいなのあれば
DMとか聞きに来てもらってOKです。多分やります。
(@TRAFDACOまたは@FubMVKまで)