vfxvelocity

VFXエフェクトのトピックス、CG最新情報を発信していきます

Thinking Particle 第4回 グループの階層(ヒエラルキー)ってなんなのさ!

こんにちは、コンドウ タカシです。
いやー 年の瀬ですねー 例年通り年末は案件が忙しくってなかなかブログを更新できなかったです(涙)
という訳でひと段落しましたので、ブログ再開です!
今回は前回解説した「グループ」の続きです。
グループの中でも重要な「階層」(ヒエラルキーについて)解説していこうと思います。
うーん、私も巨大なヒエラルキー社会の荒波の中でもがき、、、 という事はおいといて
前に作った「red」「blue」の他に「parent(親)」のグループをつくり、「red」を「parent」にドラッグアンドドロップしてあげます。

すると「red」が「parent」の下に階層付けされた状態になります。

Dynamic Setツリービューで「Create」をクリックして新しいDynamicSetを作ります。
見やすくする為に、最初に作ったDynamicSetを「first」、2つめを「second」と名前を変えてあげましょう

それから「second」DynamicSet内で、前回同様に「PPass」ノードを作っていき「parent」を選択して「velocity」ノードを繋いであげます。

velocityノードを選択してパラメーターロールアウトの「User Direction Axis」の「Y軸」を -1.0 と入力します。

おわかりいただけただろうか、、、、、、、、

さっきまで、画面向かって左ナナメに飛んでいたパーティクルが「右ナナメ」になった事を、、、、、、

確認するために、DynamicSetの「second」にマウスポインタを重ねて右クリックしてみます。
すると任意のDynamicSetをオン/オフする事が出来ます。きりから
オン/オフすることにより、挙動が違った事を確認することが出来ると思います。

すぐに切り替わらない場合は
「MasterDynamic」の項目にある「Edit on the fly」をオフにしましょう~

なんで、飛んでいく方向が変わったかというと最初に「red」のグループを「parent」の子供にしましたよね。

つまり、親であるグループ「parent」にノードを適用したら子供である「red」に対しても影響が掛かる事になるんです。
では次に、面白い事をして見ましょう^^
パーティクルグループツリービューで再び「Create」をクリックして新しいグループを作ります。
名前を「force」にして、「blue」のグループを「force」の子供にします。

次にDynamic Setツリービューで再び「Create」をクリックして新しいDynamicSetを2つ作ります。
一つは「changeGroup」に、もう一つは「force」に名称を変更します。

「changeGroup」DynamicSetで新しく「PPass」ノードを作り「red」グループを選択します。(召還!!!)
次に、右クリックして「Conditions」→「Standard」→「particleAge」ノードと
「Operators」→「Standard」→「Group」ノードを新しく作って以下のように接続します。

「particleAge」ノードとはパーティクルの寿命を考慮してブールのON/OFFを受け渡すことが出来るノードです(すみません、説明がヘタですね(汗)
えっと、この例だと「red」の寿命を「particleAge」ノードが受け取ってパラメーターの「Relativce」のTime1が「50」、Time2が「100」つまり
寿命の半分以降のパーティクルが「Group」ノード(選択が「blue」)に変化する様になります。

絵で見るとこんな感じです。

次に「force」DynamicSetの中に「PPass」ノードで「force」グループを選択。
右クリックから「operators」→「Dynamics」→「force」ノード、
再び右クリックから「Helpers」→「Math」→「Point3」ノードを作って以下のように繋げます。

「force」ノードは繋げたグループに対して力が働くノードになっていて、Point3ノードでZ軸に -1.0 を入れて「force」ノードの「Direction」に
繋いであげることによって、”下方向に力=重力”が掛かるようにする事が出来ます。
もちろん「force」ノードの「Strength」の項目にマイナスの値を入れると下に向いて力が働くのですが、ここは昔からこういう風にしていたので、、、、(笑)

すると

先ほどまで、ナナメ方向に飛んでいたパーティクルが「blue」グループになったとたんに「force」グループの子供なので、重力が適用されて下に落ちていっています。
このように、グループに親子関係を持たせると子供が親の影響を受けるので、様々な動きの制御を行うことが出来ます。
今回は「Particle Age」ノードを使ってパーティクルの寿命によって、違うグループに変化→違う動きが適用されるといった感じになりましたが、
他に色々条件分けをする事ができるので、色々触ってみてください。(また違う回で説明したいと思います。)

それでは、よい年末を!!

ってもう明とるがな!

関連記事