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