modoのmodoのパーティクル色ついて書いてみたいと思います。
Particle ModifierやParticle Generator、Particle Operatorノードには「色」というチャンネルがあり、パーティクルに色の情報を設定することができます。
パーティクルに設定した色を使用するには Particle Sampleノードの「パーティクル色」を使用します。スケマティックにParticle Sampleを追加して、マテリアルの「ディフューズ色」にリンクすると、リプリケータを使用して複製したアイテムに「パーティクル色」を適用することができるようになります。
下の画像はParticle Modifierの「色」で設定したグラデーションを使用して、リプレイケータで複製した球に色を設定したものです。Capsule Falloffを使用して色を設定する範囲を指定しています。
スケマティックはこんな感じです。
Particle Operatorはベースになる色を設定するのに使用しています。パーティクル色はデフォルトで黒色なので、Particle Operatorに特性「色」を追加して演算ノードで1を設定して白色にしています。ただしパーティクルが発生したフレームは色が適用されず必ず黒色になるようです。パーティクル色を使用する場合は発生直後のパーティクルをレンダリングしないようにする必要があるかも知れません。
単純な表現であればグラディエントテクスチャを使用して同じようなことができますが、
パーティクル色を使うとスケマティックを使用した複雑な表現ができるようになります。
たとえば下の画像のように、ポリゴンメッシュに距離が近いパーティクルに色を設定することができます。
スケマティックはこんな感じです。
基本的にはレゴブロック風の表現と同じ処理で、Intersectノードを使用してメッシュとパーティクルの距離を出力して、Relationshipノードを使用してメッシュに近い場合に任意の色になるように設定しています。
Intersectノードはmodo標準機能だと、コンストレインの「交差サーフェイス」で使用されるノードです。IntersectノードのTypeはデフォルトでLineになっているのでSurfaceに変更します。このTypeチャンネルは凄く重要なパラメータなのですが、プロパティには表示されないので、チャンネルビューポートで設定する必要があります。
Intersectはメッシュチャンネルとアイテムの位置情報を使用するので、ToroidのワールドチャンネルをMatrix Composeして「トランスフォーム入力」にリンクします。Matrix ComposeやMatrix Constructが何かわからない場合はマトリクスチャンネルの記事を読んでみてください。
Particle Generatorをエミッターにして等間隔に発生させたパーティクルを使用すると、ドット絵っぽい表現になります。
ちなみにParticle Generatorについてる「色」は、タイプが「配列」のときは正常に動作しないので注意が必要です。「放射状」では正しく色が反映されます。Particle Generatorは簡単にテストしたいときによく使うので、ちょっと罠っぽいですね。
タイプが配列の場合、グラデーションが無視される。
タイプが放射状の場合、グラデーションが適用される。
パーティクル色はスケマティックと連携すると色々面白い表現ができそうです。モーショングラフィックにも最適ですね。