カーブパーティクルジェネレータの機能追加(分布編)
https://www.youtube.com/watch?v=sd0V6nX2xiI
MODO 12.1ではカーブ上にポイントを作成するカーブパーティクルジェネレータ機能に、大幅な機能強化が図られています。
まずはサンプルとしてカーブを作成してみます。カーブを作成したら、このカーブの上にポイントを作成するため、アイテムツリーのアイテム追加 > パーティクル > Curve Particle Generatorを追加します。Curve Particle Generatorのプロパティをよく見てみると、タブがCPG 分布とCPG コントロールの2つに分かれています。様々なプロパティが実装されたため、12.1からはタブを2つに分けています。
それでは、CPG 分布タブにあるソースカーブで先程のカーブのメッシュを設定します。ただ、このままではパーティクルを作っただけで、実際に視覚的に確認することはできませんので、リプリケータを使用して、パーティクルの存在を確認してみます。アイテム追加 > パーティクル > Replicatorを追加し、原型となるアイテムに矢印のメッシュ、ポイントソースに先ほど作成したCurve Particle Generatorを追加します。3D ビューポート上でリプリケータがバウンディングボックス表示されてよくわからない場合には、12.1から追加されたビューポート上の切り替えボタンで、全て表示させる設定に切り替えてください。
カーブの流れに矢印が沿うように、CPG コントロールのタブから前方軸の設定をXに設定しておきます。では、12.1から新たにオプションが加わったポイントモードのオプションを見てみましょう。このポイントモードは、カーブ上でパーティクルを配置する際の数や間隔を指定しているものですが、従来まではポイント数と間隔距離の2つでした。ポイント数は、カーブ上に存在させるパーティクルの数を指定し、間隔距離はカーブの始端と終端を固定した状態で、パーティクルとパーティクルの間隔を指定します。この場合、始端と終端を固定させているため、ここで指定する間隔の距離はあくまで近似値ということになり、正確な間隔とはなりません。これを解消するため、12.1からは絶対距離というオプションが追加されました。これにより、パーティクルとパーティクルの間は正確に指定した距離分、間隔が空くことになりますが、終端にピッタリと合致することはなくなりますので、ご注意ください。
また、12.1からはカーブパーティクルジェネレータに対して、パーティクルIDモードというモードが追加されました。このモードは、カーブ上に生成されるパーティクルのID生成方法について指定します。
サンプルとなるシーンには、複数のカーブが存在しています。このカーブに対して先程と同様、カーブパーティクルジェネレータを追加し、さらにリプリケータを追加します。カーブパーティクルジェネレータには、複数カーブのメッシュレイヤーを指定します。このシーンにはリプリケータの原型となるアイテムが存在していないので、簡単に立方体を作ってリプリケータの原型となるアイテムに設定し、ポイントソースを作成したカーブパーティクルジェネレータを指定します。
パーティクルIDモードが各カーブの間隔に設定されている場合、カーブ一本一本の始端から終端に向かって、パーティクルのIDが割り振られています。これを確認するため、グラディエントのマテリルを適用してみます。シェーダツリーへと移り、レイヤー追加 > 処理 > Gradientを追加します。入力パラメータをパーティクルエフェクトのパーティクル ID を指定したら、色のグラディエントを設定します。そうするとカーブに沿って設定したグラディエントに基づいて、色がつけられているのが確認できます。パーティクル ID モードの設定を全カーブの間隔へと変えてみると、メッシュレイヤー内に存在している全てのカーブを一つとみなして連続したパーティクルIDが割り振られるようになるため、グラディエントも全てのカーブで一つのグラディエントが対応するようになります。パーティクルIDモードをランダム化に設定すれば、全てのパーティクルを通してパーティクルIDはランダムに設定されます。このようにCPG分布のタブに追加されたポイントモードやパーティクルIDモードを使えば、パーティクルの分布具合などを、より正確にコントロールできるようになります。