次のすべてのオプションは、1 つを除いて、カスタム アトリビュートまたはスタティック アトリビュートのどちらを入力に使用するかを選択するためのメニューを表示します。オプションの入力として使用するカスタム アトリビュートの値を設定する場合は、エクスプレッションを使用する方法が一般的です。オプション自体はアトリビュートではありません。
メニューのすべてのスタティック アトリビュートが実用的というわけではありません。たとえば、オブジェクトの回転(Rotation)への入力としてワールド速度を使用しても実用的な効果は得られないことがあります。各入力アトリビュートがどれだけ有用かは、コンテキストに依存します。
次に示すオプションの最初の 3 つを除くオプションでは、パーティクル単位のアトリビュート値を持つ入力アトリビュートを設定することができます。したがって、それぞれのパーティクルに異なる値を設定することができます。
一般コントロール アトリビュート(General Control Attributes)
運動量保存の値は、パーティクル オブジェクトの速度がどれだけフレーム間で維持されるかを制御します。具体的には、運動量保存は各フレームの始めにパーティクルの速度アトリビュートをスケールします。速度をスケールした後、Maya は適用可能なダイナミクスをパーティクルに適用して、そのフレームの終わりに最終的な位置決めをします。
運動量保存は、キーフレームによって作成されたモーションには効果がありません。キーフレームは、パーティクル オブジェクトのワールド速度アトリビュートにのみ効果があり、速度アトリビュートには効果がありません。
運動量保存を 0 に設定した場合、速度アトリビュート値は維持されません。速度は、各フレームの前で 0 にリセットされます。各フレームの終わりでは、速度は、そのフレームの間に適用されたダイナミクスの結果そのものです。
運動量保存を 1 に設定した場合、すべての速度アトリビュート値が保存されます。これは、実世界の物理的な応答です。
運動量保存を 0 から 1 の間の値に設定した場合、速度アトリビュート値のパーセンテージが保持されます。たとえば、運動量保存を 0.75 に設定すると、フレームごとにまず速度アトリビュートが 25% 削減され、次に、オブジェクトに対するダイナミックまたはエクスプレッション エフェクトが計算されます。
たとえば、9.8 単位/秒の重力加速度で落下するパーティクルを作成するとします。次の表は、1(デフォルト)、0.5、および 0 の運動量保存値が数フレーム実行後に速度アトリビュートにどのように影響するかを比較しています。
運動量保存を 1 に設定した場合、速度は各フレームを正確な重力加速度率で加速します。
運動量保存を 0 に設定した場合、速度は一定の値を保持し、パーティクルは加速しません。各フレームの先頭で、速度は 0 にリセットされます。次に、重力フィールドのアクセラレーションが速度値 0 に加算されるので、フレームの最後には同じ数値<<0,-0.41,0>>が使用されるようになります。
運動量保存を 0.5 に設定した場合、速度は重力よりもかなり小さい率で加速します。各フレームの最初では、速度はその前のフレームの終わりで保持されていた値の 50% にスケールされます。このスケールされた値に重力加速度が追加され、フレームの終わりで使用されるゆっくりと増加する速度が作成されます。
パーティクル オブジェクトがそのローカル空間でフィールドの影響を受けるようにするには、まずパーティクルを選択します。次にアトリビュート エディタ(Attribute Editor)を表示して、ワールドでのフォースをオフに設定します。
オブジェクトを回転させない限り、パーティクル オブジェクトのローカル軸の方向とワールド空間の軸の方向は一致することに注意してください。
詳細については、 オブジェクトのローカル空間にフォースを適用するを参照してください。
アトリビュート エディタのキャッシュ データ アトリビュートをオフに設定することで、メモリ キャッシュのオンとオフを切り替えることができます。このアトリビュートのアトリビュート エディタでの位置は、オブジェクトのタイプによって変わります。あるリジッド ボディに対するキャッシングをオンに設定した場合、そのリジッド ボディのソルバ内のすべてのリジッド ボディに対するキャッシングがオンになります。
放出されたパーティクルのデータをメモリにキャッシュし、後でエミッタまたは放出されたパーティクルのレートまたはその他のアトリビュートを変更した場合、アトリビュートの変更を反映したエフェクトを表示するためにはキャッシュを無効にしなければなりません。
ライフスパン アトリビュート(Lifespan Attributes)
このアトリビュートは、ライフスパン モードが “ランダム範囲” に設定されている場合にのみ使用されるもので、
パーティクルそれぞれのライフ スパンのランダムな変化の範囲を表します。ゼロ以外の値に設定した場合、各パーティクルのライフ スパンは ±ランダム ライフスパン/2 までの間でランダムに変化します。このとき、“ライフスパン” アトリビュートが平均ライフスパンとして使用されます。たとえば、ライフスパンが 5 でランダム ライフスパンが 2 のときは、ライフ スパンは 4 と 6 の間で変化します。
定数またはランダム範囲モードでは、finalLifespanPP アトリビュートには、ライフスパンとランダム ライフスパンから生成された値が格納されます。
コリジョン アトリビュート(Collision Attributes)
詳細については、 パーティクル > コリジョンの作成(Particles > Make Collide)を参照してください。
カレント パーティクルがコリジョン オブジェクト フィールドで指定したサーフェスと衝突する場合に、その位置をオフセットします。また、オフセットはカレント パーティクルが指定したコリジョン オブジェクトのサーフェスを貫通するのを防ぎます。たとえば、オフセットを使えば、単一のテイクでパーティクルのコリジョンのマクロ レベルのショットからミクロ レベルのショットに進むときに、パーティクル コリジョン オフセットのサイズをコントロールすることができます。オフセットのデフォルト値は 0.01 です。詳細については、『ノード&アトリビュート リファレンス(英語)』の「particle」も参照してください。
このドロップダウン リストを使用して、パーティクルのコリジョン U/V アトリビュート値からゴール ポイントの位置を計算するために、どの UV セットを使用するか指定します。デフォルトでは、コリジョン オブジェクトのカレント UV セットが使用されます。この設定は保持されます。
コリジョン U/V の値にどの UV セットを使用するかを明確に指定できると、これから使用される UV セットをロックできるので便利です。テクスチャ アーティストが複数の UV セットを使用してオブジェクトに作業を行う場合、UV セット間を頻繁に切り替え、オブジェクトの「カレント」UV セット アトリビュートを違う値に設定したままにすることがあります。
ソフト ボディ アトリビュート(Soft Body Attributes)
詳細については、 ソフト ボディを参照してください。
入力ジオメトリの空間(Input Geom Space)
このアトリビュートを使用すると、入力ジオメトリによって提供されたポイント データをパーティクルのシェイプ ノードに配置するために使用する座標空間を選択することができます。元のジオメトリは、ソフト ボディに変換されるジオメトリです。「入力ジオメトリ」は、元のジオメトリを作成する、Maya におけるノードを指します。たとえば、NURBS 球体の入力ジオメトリは Make Sphere ノードです。
ターゲット ジオメトリの空間(Target Geom Space)
このアトリビュートを使用すると、パーティクル シェイプによって提供されたポイント データをターゲット ジオメトリに配置するために使用する座標空間を選択することができます。
このアトリビュートをオンに設定した場合、元のジオメトリのコンストラクション ヒストリを変更して CV、頂点、またはラティス ポイントの数が変化すると、ソフト ボディの対応するパーティクルの数が更新されます。
たとえば、NURBS サーフェスのソフト ボディにスパンまたはセクションを追加した場合、CV がサーフェスに、そして対応するパーティクルがソフト ボディに追加されます。このパーティクルの更新により、新しく追加されたポイントまたは削除されたポイントに従ってソフト ボディが変形することが保証されます。
場合によっては、この更新処理が発生しないようにしたい場合もあります。たとえば、ソフト ボディのパーティクルをエミッタにコネクトした場合、ソフト ボディをビュー内に放出する場合です。
ゴール ウェイトおよびオブジェクト(Goal Weights and Objects)
ゴールを有効にします。ゴールのアクティブ化と他のゴール ウェイト アトリビュートを表示させるには、まずゴール オブジェクトを作成( パーティクル > ゴール(Particles > Goal))する必要があります。
パーティクル システムがゴール オブジェクトに引き付けられると、これらのアトリビュートは、各パーティクルが引き付けられる各ゴール オブジェクト上の特定の点に関するデータで埋められます。この情報はコンポーネント エディタ(Component Editor)のパーティクル(Particles)タブで確認できます。
このセクションの他のアトリビュートは、作成(Create)ボタンをクリックして作成します。ボタンが削除(Delete)に変化します。次に削除をクリックして削除します。
パーティクル単位のゴール ウェイトを N 番目のゴール オブジェクトに提供します。ゴール オブジェクトの番号は、パーティクル システムの goalGeometry 配列で使用されているインデックスに対応します。これにより、パーティクル システムでゴール オブジェクトを追加または削除しても、パーティクルごとのウェイトは保持されます。
特定のゴール オブジェクトにパーティクルごとのゴール ウェイトが見つからない場合、このオブジェクトの標準ゴール ウェイト値(パーティクルのアトリビュート エディタ(Attribute Editor)でオブジェクト名の隣にあるスライダで指定された値)がすべてのパーティクルに適用されます。すると、物理計算で生成されたゴール PP アトリビュートは、それぞれのパーティクルに作用するゴール フォースの合計に対するウェイト係数として働きます。
インスタンサ(ジオメトリの置き換え)(Instancer(Geometry Replacement))
オンの場合、パーティクルへの入力として選択できる次ページ以降にあるアトリビュートのリストが拡張表示されます。拡張されたリストには、オプションとは異なるデータ型のアトリビュートも表示されるようになります。
入力アトリビュートのデータ型が受け取り側のオプションとは異なる場合、そのデータ型は受け取り側オプションのデータ型へ変換されます (データ型の詳細については、『MEL とエクスプレッション』マニュアルを参照してください)。たとえば、ベクトル配列オプションへの入力として整数型アトリビュートを選択した場合は、配列の各要素について、3 つのベクトル コンポーネントのそれぞれに、整数値が使用されます。
すべてのデータ型を許可がオフの場合、受け取り側のオプションと同じデータ型のアトリビュートだけが有効な選択肢として表示されます。
インスタンサ(Instancer)のサイクル(Cycle)オプションをなしに設定した場合、このオプションは、インスタンス オブジェクト(Instanced Objects)リストのどのオブジェクトをそれぞれのパーティクルに対してインスタンス化するかを設定します。サイクルをシーケンスに設定した場合、オブジェクト インデックスは無視されます。
このオプションを使用するための、いくつかの一般的な方法があります。いずれのケースでも オブジェクト インデックス に対する入力としてカスタム アトリビュートを選択し、アトリビュートを制御するエクスプレッションを書きます。
1 つめの方法は、作成エクスプレッションを使用して、各パーティクルの値をカスタム アトリビュートで使用する方法です。別々の値を使用してインスタンス オブジェクト リストの中の別々のオブジェクトを選択します。値 0 は、リストの最初のオブジェクトを選択し、値 1 は 2 つめのオブジェクトを、そして値 2 は 3 つめのオブジェクトを選択するといった方法です。
エクスプレッションを使用した別の方法は、インスタンス オブジェクト(Instanced Objects)リストから特定の番号を割り当てるか、または rand()のような乱数関数を使用してリストからそれぞれ異なるランダム オブジェクトを各パーティクルに割り当てる方法です。
あるいは、作成エクスプレッションおよびランタイム エクスプレッションを使用して、通常以外のオブジェクト シーケンス(2-4-6-8 など)によってカスタム アトリビュートの値を増分する方法もあります。
インスタンス化されたオブジェクトの方向として、回転(Rotation)、エイム方向(AimDirection)、および エイム位置(AimPosition)のいずれかを選択することができます。通常はインスタンス化されたオブジェクトのすべてに同じ方法を選択しますが、回転タイプ(RotationType)アトリビュートを設定するパーティクル単位のエクスプレッションを使用することで、それぞれのオブジェクトに別の方法を選択することもできます。
回転タイプ(RotationType)アトリビュートを設定する場合、回転(Rotation) には値 0 を、エイム方向(AimDirection)には値 1 を、エイム位置(AimPosition)には値 2 を使用します。
値を指定しない場合、回転(Rotation)、エイム方向(AimDirection)、およびエイム位置(AimPosition)オプションの中で、アトリビュートの入力が選択されているものが使用されます。たとえば、エイム位置(AimPosition)のアトリビュート入力を選択している場合は、エイム位置がデフォルトで使用されます。
いくつかの回転タイプ(RotationType)に対してアトリビュート入力を選択している場合は、回転(Rotation)、エイム方向(AimDirection)、およびエイム位置(AimPosition)の順で最初の項目が使用されます。たとえば、エイム位置(AimPosition)とエイム方向(AimDirection)の両方への入力を選択している場合は、エイム方向が使用されます。回転(Rotation)、エイム方向(AimDirection)、およびエイム位置(AimPosition)への入力を選択している場合は、回転が使用されます。
回転(Rotation)、エイム方向(AimDirection)、およびエイム位置(AimPosition)に対するアトリビュート入力を選択していない場合は、回転が使用されます。
各インスタンス化されたオブジェクトがそのローカル原点の元の位置を基準に指す方向を指定することによって、インスタンス化されたオブジェクトの方向を設定します。デフォルト設定はなしで、そこでは 1、0、0 の値を使用します。詳細については、「回転タイプ(RotationType)」も参照してください。
速度を選択することによって、パーティクルが移動する方向にオブジェクトが向くように設定することができます。詳細については、 インスタンス化されたジオメトリの向きの設定を参照してください。
エイム軸(AimAxis)がどのようにエイム方向(AimDirection)またはエイム位置(AimPosition)を指すかを基準としてアップ方向を指すオブジェクト軸を(できる限り)指定します。
このエイム アップ軸のアップとは、ワールド アップ軸が指す方向です(エイム ワールド アップ(AimWorldUp)の説明を参照)。エイム アップ軸(AimUpAxis)は、エイム方向(AimDirection)およびエイム位置(AimPosition)回転タイプでのみ有効なベクトル アトリビュートです。デフォルト設定はなしで、そこでは 0、1、0 の値を使用します。
たとえば、エイム位置(AimPosition)がワークスペースの原点に設定されていて、ワールド空間の Y 軸(0, 1, 0)がエイム ワールド アップ(AimWorldUp)値となります。インスタンス化されたオブジェクトの X 軸(1, 0, 0)はエイム軸(AimAxis)値で、オブジェクトの Y 軸(0, 1, 0)はエイム アップ軸(AimUpAxis)値です。インスタンス化されたオブジェクトがワークスペース内を左から右へ移動すると、各オブジェクトの座標系は次のような方向になります。
この場合オブジェクトの X 軸は、オブジェクトがワークスペース内を移動する限り原点を指します。オブジェクトは、できる限り Y アップ軸となるように、その X 軸を中心に回転します。アップは、エイム ワールド アップ(AimWorldUp)設定によって定義されます。この場合は、ワールドの Y 軸に設定されています。
エイム アップ軸(AimUpAxis)によって使用されるアップ方向を示す軸をワールド座標で設定します。エイム ワールド アップ(AimWorldUp)は、エイム方向(AimDirection)およびエイム位置(AimPosition)回転タイプでのみ有効なベクトル アトリビュートです。デフォルト設定はなしで、そこでは 0、1、0 の値を使用します。このアトリビュートは、 ウィンドウ > 設定/プリファレンス > プリファレンス(Window > Settings/Preferences > Preferences)ウィンドウの設定(Settings)セクションにあるワールド座標系(World Coordinate System)のアップ軸(Up Axis)の設定による影響は受けません。
インスタンサのサイクルオプションをシーケンス(Sequence)に設定した場合、Age はインスタンサのサイクル ステップ(Cycle Step)設定と一緒に機能して、オブジェクトが変更される頻度を設定します。
たとえば、myAge という名前のアトリビュートを作成したとします。このアトリビュートを 存在時間オプションへの入力として選択した後、myAge を制御する次のランタイム エクスプレッションを書きます。
これにより、particleId 1 のパーティクルは particleId 0 のパーティクルの 2 倍の速度で、particleId 2 のパーティクルは particleId 0 のパーティクルの 4 倍の速度で 1 つずつ順番に選択されるようになります。
レンダー アトリビュート(Render Attributes)
カレント レンダー タイプ(Current Render Type)をクリックすると、選択したパーティクル タイプの追加のアトリビュートが表示されます。詳細については、 次にアトリビュートを追加(Add Attributes For)のカレント レンダー タイプ(Current Render Type)ボタンを参照してください。
ダイナミック アトリビュートの追加(Add Dynamic Attribute)
パーティクル エクスプレッション(式)の詳細については、『MEL とエクスプレッション』マニュアルとチュートリアルを参照してください。