パスに沿って回転させながらパーティクルを動かすには
https://www.youtube.com/watch?v=L3tNqCcZUbg
Modo 13.0ではMergeMeshesオペレーションに対してパーティクルがサポートされたことにより、パスに沿って回転させながらパーティクルを動かすことが可能になりました。回転を伴わないパスに沿ったパーティクルの移動は、ビデオ「パスに沿ってパーティクルを動かすには」で解説している通り、カーブフォースを使えば簡単に実現できましたが、パスにまとわりつくように回転させながら動かしていくことはできませんでした。今回はバージョン13.0から実装されたMergeMeshesのパーティクルサポートを利用して、この表現を実現してみます。
まずは板ポリゴンを一枚作り、それをソースとして、パーティクルを発生させます。セットアップパレット > パーティクル > サーフェイスエミッターを追加し、ソースとして板ポリゴンを指定したら、初期速度と速度の広がりの値を少し小さめにして、ゆっくりとパーティクルが発生するようにします。
次に新たなメッシュレイヤーを追加し、その中にパーティクルが沿って移動するカーブを作ります。さらにもう一つ新たなメッシュレイヤーを作ります。このメッシュレイヤーにパーティクルを読み込んで、さらにメッシュオペレータを重ねていきます。まずはオペレータ追加 > 編集 > Merge Meshesを追加し、ソースからParticle Simulationを追加します。
ここで重要なのが、MergeMeshesオペレータを使用してメッシュレイヤーに読み込んだパーティクルはただの点群の状態であり、その状態のままではその後オペレータを重ねて操作しても、その変化を確認することができます。いったんリプリケータもしくはブロブなどで、目に見える形にしておきましょう。
今回は小さめのボックスを作り、リプリケータで複製してみましょう。リプリケータでパーティクルをソースとする場合、通常Particle Simulationをポイントソースとして指定しますが、今回はパーティクルを読み込んだメッシュレイヤーを指定します。
ではパーティクルを読み込んだメッシュレイヤーで、さらにオペレーションを重ねていきます。通常のメッシュの場合にはモデリングのオペレーションを重ねていきますが、パーティクルの場合、どのオペレーションを使えるのかというと、デフォーマのオペレーションを重ねることができます。通常であれば、パーティクルシミュレーションを行った後にデフォーマの影響を与えようとすると、いったんメッシュに変換し、それをデフォーマで変形させたら、パーティクルに戻すという処理になるかと思いますが、メッシュオペレーションを付けば、そのままメッシュの中に読み込んだパーティクルに対してデフォーマを適用することができます。
オペレータ追加 > Deformers > エフェクタの中にあるSpline Effectorを追加します。Y軸に対して適切な長さで設定します。スプラインエフェクタのターゲットカーブをCurveに設定してみると、カーブに沿うようになりましたが、カーブの途中からパーティクルが移動するようになります。これはスプラインエフェクタのセットアップが、パーティクルの発生位置とあっていないためです。これを修正するためには、セットアップモードへと入り、スプラインエフェクタのノードであるロケータを正しい位置へと配置し直します。セットアップモードを抜けて確認してみると、パーティクルがカーブに沿って動くようになったのがわかります。
さらに、メッシュオペレーションで操作するということは、複数のオペレーションを重ねることができます。今回は、カーブに沿う前に真っ直ぐにパーティクルが上昇している段階で回転をかけるようにします。
回転をかけるためには、まずオペレーションリストからMergeMeshesを選択した上で、オペレータ追加 > Deformers > エフェクタ > Rotation Effectorを追加します。こうすることで、スプラインのデフォーマをかける前に、回転のデフォーマをかけることができます。
Rotation Effectorロケータの回転Yの値を720と入力してみましょう。ただ、動きを確認してみても、パーティクルがパスに沿って回転しているようには見えません。これはパーティクル全体が回転しているため、ひねった動きを表現できていないためです。これを実現するため、回転のデフォーマに対して、リニアフォールオフを設定して、影響範囲を変えてみます。
オペレーションリストからRotation > フォールオフ > (フォールオフを追加)をクリックし、新規 > Linear Falloffを追加します。軸をYに設定し、ちょうどスプラインデフォーマのセットアップと合うぐらいに設定します。これにより、ひねりを加えてからパスに装用になりましたので、回転しながらパス上を移動するような表現が可能になりました。パーティクル発生元となる板ポリゴンの位置を原点から離すことで、より顕著に効果を確認することができます。
このようにMergeMeshesがパーティクルをサポートしたことにより、従来までは難しかった表現が可能になっています。