放出されるパーティクルを操作する

オブジェクトがパーティクルを放出させるようにする場合、放出されるパーティクルのアトリビュートに関する作成時のエクスプレッションまたはランタイム エクスプレッションを作成することができます。たとえば、放出されるパーティクルの不透明度やカラーの値を設定することができます。

放出されるパーティクルに関するエクスプレッションを作成するには

  1. エミッタを作成します。
  2. 放出されるパーティクルのシェイプ ノードに、任意のダイナミック アトリビュートを追加します。
  3. 放出されるパーティクルのシェイプ ノードをエクスプレッション エディタ(Expression Editor)で選択し、シェイプ ノードのアトリビュートを制御するエクスプレッションを作成します。

エミッタを作成し、パーティクル単位の不透明度 PP (Opacity PP)アトリビュートを放出されるパーティクルのシェイプ ノードに追加したと仮定します。次の作成時のエクスプレッションにより、放出されるパーティクルのそれぞれに 0 ~ 1 の範囲のランダムな不透明度を与えます。

particleShape1.opacityPP = rand(1);
重要: いずれかのオブジェクトのパーティクルが PP ライフスパン(Lifespan PP)アトリビュートの使用により)消滅するように設定されている場合は、パーティクル単位のアトリビュートを、別のオブジェクトのパーティクル単位のアトリビュートに代入しないでください。パーティクルが消滅すると、パーティクル オブジェクトの各パーティクルに関するエクスプレッションの評価順序が変更されるため、予期しない結果が発生する可能性があります。

ただし、消滅するパーティクルを含む同じオブジェクト内の 2 つのアトリビュート間で代入を行うことはできます。同じオブジェクト内にある各アトリビュートの配列の添字(インデックス)は同期して更新されます。

たとえば、パーティクルの PP ライフスパン(lifespanPP) アトリビュートが 2 のときには、次のようなエクスプレッションは記述しないでください。

emittedShape.rgbPP = otherParticleShape.rgbPP