以降のセクションでは、アトリビュートを編集して、ゴールに対する追従パーティクルと nParticle オブジェクトのエフェクトを調整する方法を説明します。
ゴールをオブジェクトに追加すると、対応するゴール ウェイト アトリビュートが追従パーティクル オブジェクトに追加されます。ゴール ウェイトは、追従オブジェクトのすべてのパーティクルがどの程度ゴールに引き付けられるかを設定します。ゴール ウェイトは、ゴールを作成する前にゴール オプション(Goal Options)ウィンドウを使って設定することができます。また、後でアトリビュート エディタ(Attribute Editor)を使用してゴール ウェイトを調整することもできます。
ゴール ウェイトは、0 から 1 の範囲に含まれる値に設定することができます。値 0 は、ゴールの位置は追従パーティクルに何の影響も与えないことを表します。この値を 1 に設定すると、追従パーティクルはゴール オブジェクトに即座に移動します。
0 から 1 の値を設定した場合、パーティクルはゴム製のスプリングで結ばれているかのようにゴールに向かって移動します。値が 1 に近いほど、追従パーティクルは最終位置にすばやく移動します。デフォルトのゴール ウェイト値は 0.5 です。
ゴール ウェイトを調整しなくても、ゴール オブジェクトのエフェクトのオン/オフを切り替えることができます。これを行うには、アトリビュート エディタ(Attribute Editor)で追従パーティクル オブジェクトのアトリビュートを表示している状態で、ゴール オブジェクトに関連付けられているゴールのアクティブ化(Goal Active)アトリビュートをオフに設定します。
ゴール ウェイトがゴール オブジェクト名の横に表示されます。このウェイトを変更すると、オブジェクト全体に適用されます。
(パーティクル単位の設定のいずれかを変更すると、このゴール ウェイトは適用されなくなります。)
パーティクル オブジェクトが複数のゴール オブジェクトを持っている場合は、それぞれのオブジェクトに対応するゴール ウェイト セクションが表示されます。
パーティクル単位でゴール ウェイトを調整して、追従パーティクルのモーションをより細かく制御することができます。パーティクル単位のゴール ウェイトは、追従オブジェクトの goalPP アトリビュートによって制御されます。
パーティクル単位の goalPP(per particle goalPP) アトリビュートは、パーティクルにコネクトされているすべてのゴール オブジェクトに対して使用されます。デフォルトでは、各パーティクルの goalPP アトリビュートは 1 です。
goalPP 値とオブジェクト単位のゴール ウェイトとが乗算され、各パーティクルの合計ゴール ウェイトが作成されます。
たとえば、オブジェクト単位のゴール ウェイトが 0.5 で、パーティクルの一部にパーティクル単位のゴール ウェイト 0.5 を加えた場合、これらのパーティクルの合計ゴール ウェ イトは 0.25 になります。2 つめのゴール オブジェクトがあり、対応するオブジェクト単位のゴール ウェイトが 0.1 である場合は、パーティクルの合計ゴール ウェイトは 0.05 に なります。
ゴール ウェイトを、パーティクル単位、オブジェクト単位で設定する
パーティクル システムと関連付けられている各ゴール オブジェクトについて、パーティクルがこのオブジェクトにどのくらい強く引き付けられるかを表すゴール ウェイト(Goal Weight)値を設定できます。基本のパーティクル単位の goalPP アトリビュートを使用しても、各パーティクルにおけるゴール フォースの全体的な効果を軽減することはできますが、他のパーティクルとオブジェクトの反応から独立して、特定のパーティクルにおける特定のゴールのインフルエンスを選択的に変更することはできません。この変更を行うには、特定のゴール オブジェクトにパーティクル単位でゴール ウェイト値を指定できるユーザ定義アトリビュートを使用する必要があります。これらのアトリビュートを使用して、1 つのパーティクル システム内で、1 つのゴール オブジェクトにさまざまなゴール引力を作成できます。
goalWeightNPP ユーザ定義アトリビュートは、N 番目のゴール オブジェクトに、パーティクル単位のゴール ウェイトを提供します。ゴール オブジェクトの番号は、パーティクル システムの goalGeometry 配列で使用されているインデックスに対応します。これにより、パーティクル システムでゴール オブジェクトを追加または削除しても、パーティクルごとのウェイトは保持されます。特定のゴール オブジェクトにパーティクルごとのゴール ウェイトが見つからない場合、このオブジェクトの標準ゴール ウェイト値(パーティクルのアトリビュート エディタ(Attribute Editor)でオブジェクト名の隣にあるスライダで指定された値)がすべてのパーティクルに適用されます。
パーティクルごとのゴール ウェイト アトリビュートを設定するには
ゴール オブジェクトを作成したら、パーティクル ノードにパーティクルごとにユーザ定義アトリビュートをいくつか追加できます。パーティクル システムがゴール オブジェクトに引き付けられると、これらのアトリビュートは、各パーティクルが引き付けられる各ゴール オブジェクト上の特定の点に関するデータで埋められます。この情報はコンポーネント エディタ(Component Editor)のパーティクル(Particles)タブで確認できます。この情報は変更できません(編集はできますが、シミュレーションを再実行すると値が置き換えられます)が、ランタイムでのパーティクルの表現では便利なこともあります。たとえば、ゴール オブジェクトに近づくにしたがってカラーが濃くなるように、パーティクル カラーを変更することができます。
パーティクル システムは複数のゴール オブジェクトを持つことがあるため、これらの新しいアトリビュートには、ゴール オブジェクトとデータの対応を表す番号が付けられています。ゴール オブジェクトの番号は、パーティクル システムの goalGeometry 配列で使用されているインデックスに対応します。この方法により、パーティクル システムにゴール オブジェクトを追加したり、削除したりしても、パーティクルごとのアトリビュートの意味が変わらないことが保証されます。
これらのアトリビュートでは、アニメーション化された UV はサポートされていません。ゴール オブジェクト上の UV にアニメーションをつけた場合、生成された接線はオリジナルの UV パラメータに対応します。メッシュを僅かに変形したりコントロール ポイントをアニメーション化したりすると、全フレームでのメッシュ データのリフレッシュをメッシュがトリガするので、結果として問題を回避できます。
Maya では、パーティクル システムのゴール オブジェクトとしていろいろな種類のオブジェクトを使用できますが、接線と法線が適切に生成されるのは、NURB サーフェスおよびポリゴン サーフェスのゴール オブジェクトだけです。NURBS カーブ、ゴール オブジェクトとして使用されるその他のパーティクル システム、その他のコントロール ポイント ベースのプリミティブからは、適切な法線や接線は生成されません。
ゴール ポイント データのパーティクルごとのアトリビュートを設定するには
パーティクルごとのゴール ポイント データ アトリビュートをオフにするには
NURBS またはポリゴン サーフェスの CV をゴールとして使用すると、追従パーティクルは直接その CV へと移動します。しかし一般に CV は、離れた位置に配置されています。追従パーティクルのシェイプ ノードの既定のゴール U(goalU)、ゴール V(goalV) アトリビュートを追加し設定することにより、パーティクルを直接的にまたは均等にサーフェスに移動させることができます。これらのパーティクル単位のアトリビュートは、パーティクルが引き付けられる NURBS またはポリゴン サーフェス上の正確な UV(座標)位置を設定します。
定義済み goalOffset アトリビュートを追加および設定して、より簡単に似たような結果を得ることができます( ゴール位置のオフセットの指定を参照)。
追従オブジェクトが複数のゴール オブジェクトを持つ場合、それぞれのゴール オブジェクトに対して同じパーティクル単位の U および V 値が使用されます。
アトリビュートがオブジェクト上の有効な位置を指定していない場合は、その代わりとしてサーフェスまたはカーブ上で最も近い位置がゴールとして使用されます。オブジェクトの U および V の範囲外にある位置やトリミングされたカーブまたはサーフェスの一部にある位置は、無効として扱われます。最も近い位置が使用されるようにするには、-1 を指定します。
アトリビュートの追加については、 ダイナミック アトリビュートを追加するを参照してください。これらのアトリビュートの値は、エクスプレッション、MEL スクリプト、またはその他のアトリビュート編集方法を使用して設定することができます。
パーティクル単位のゴール V(goalV)/ゴール U(goalU)アトリビュートがポリゴン メッシュ ゴール オブジェクトに適用されるとき、パーティクルを引き付けるゴール メッシュ サーフェス上の特定の点を指定します。ゴール V(goalV)/ゴール U(goalU)値のアニメーション、およびゴール オブジェクトとその UV 座標は完全にサポートされます。
各ポリゴン メッシュのオブジェクトに対してUV セット(UV Set)コントロールが表示され、ゴール V(goalV)/ゴール U(goalU)値が与えられたパーティクルのゴール位置の決定に際し、どの UV セットを使用するか決定できます。
ポリゴン メッシュ オブジェクト上の UV マッピングは任意であるため、与えられたゴール V(goalV)/ゴール U(goalU)のペアがゴール サーフェス上の 2 つ以上の点にマップされることがありえます。あるパーティクルに潜在的なゴール ポイントが複数ある場合、Maya はパーティクルのワールド空間上のカレント位置に最も近いポイントを選択し、それをゴール位置として使用します。この決定はフレームごとに再計算されるので、パーティクルが他の潜在的なゴール位置に近づくと、オリジナルのゴール位置ではなくそのゴール位置にパーティクルが引き付けられます。
同様に、ある特定のパーティクルのゴール V(goalV)/ゴール U(goalU)値にマッチするポイントがない場合もあります。この場合、指定したゴール ポイントに UV 空間上で最も近いメッシュ頂点が使用されます。この決定もフレームごとに再計算されます。
既定の goalOffset アトリビュートを追従パーティクル オブジェクトのシェイプ ノードに追加した場合、ゴール オブジェクトのワールド空間位置へのオフセットを設定することができます。たとえば、カーブの CV から構成されるゴールへ向かって移動するパーティクルがあるとします。ここでオフセット機能は、それぞれの CV および goalOffset をパーティクルに指示します。goalOffset アトリビュートは、パーティクル単位のベクトル アトリビュートです。
アトリビュートの追加については、 ダイナミック アトリビュートを追加するを参照してください。このアトリビュートの値は、エクスプレッション、MEL スクリプト、またはその他のアトリビュート編集方法を使用して設定することができます。