nParticle インスタンサ アトリビュート(Instancer Attributes)

インスタンサ ノード(Instancer Nodes)

インスタンス化されたオブジェクトに対してどのインスタンサの設定を行うかを選択します。アトリビュート エディタでのみ使用可能です。

すべてのデータ型を許可(Allow All Data Types)

オンの場合、パーティクルへの入力として選択できる次ページ以降にあるアトリビュートのリストが拡張表示されます。拡張されたリストには、オプションとは異なるデータ型のアトリビュートも表示されるようになります。

入力アトリビュートのデータ型が受け取り側のオプションとは異なる場合、そのデータ型は受け取り側オプションのデータ型へ変換されます (データ型の詳細については、『MEL とエクスプレッション』マニュアルを参照してください)。たとえば、ベクトル配列オプションへの入力として整数型アトリビュートを選択した場合は、配列の各要素について、3 つのベクトル コンポーネントのそれぞれに、整数値が使用されます。

すべてのデータ型を許可(Allow All Data Types)がオフの場合、受け取り側のオプションと同じデータ型のアトリビュートだけが有効な選択肢として表示されます。

インスタンス化するパーティクル(Particle Object To Instance)

ジオメトリを適用するパーティクル オブジェクトを指定します。このオプションは、パーティクル インスタンサ オプション(Particle Instancer Options)ウィンドウでのみ使用可能です。

一般オプション(General Options)

位置(Position)

インスタンス化されたオブジェクトの位置を指定します。既定の設定は、ワールド位置(World Position)です。Maya は、ワールド空間ではなく、インスタンサ ノードのローカル空間で選択されたアトリビュートの値を解釈します。したがってインスタンサ ノードを移動した場合は、インスタンスも同様に移動することになります。

API 開発者であれば、ポイント データをインスタンサに送る API を書くことができます。

スケール(Scale)

インスタンス化されたオブジェクトのスケールを指定します。既定の設定はなし(None)で、そこでは 1、1、1 の値を使用します。

シア(Shear)

インスタンス化されたオブジェクトのシアを指定します。既定値の設定はなし(None)で、そこでは 0、0、0 の値を使用します。

可視性(Visibility)

各インスタンス化されたオブジェクトの表示をオンまたはオフに設定します。既定の設定はなし(None)で、そこではすべてのパーティクルのインスタンスの表示をオンに設定します。

オブジェクト インデックス(Object Index)

インスタンサ(Instancer)サイクル(Cycle)オプションをなし(None)に設定した場合、このオプションは、インスタンス オブジェクト(Instanced Objects)リストのどのオブジェクトをそれぞれのパーティクルに対してインスタンス化するかを設定します。サイクルシーケンス(Sequence)に設定した場合、オブジェクト インデックス(ObjectIndex)は無視されます。

このオプションを使用するための、いくつかの一般的な方法があります。いずれのケースでも オブジェクト インデックス(ObjectIndex) に対する入力としてカスタム アトリビュートを選択し、アトリビュートを制御するエクスプレッションを書きます。

1 つめの方法は、作成時のエクスプレッションを使用して、各パーティクルの値をカスタム アトリビュートで使用する方法です。別々の値を使用してインスタンス オブジェクト(Instanced Objects) リストの中の別々のオブジェクトを選択します。値 0 は、リストの最初のオブジェクトを選択し、値 1 は 2 つめのオブジェクトを、そして値 2 は 3 つめのオブジェクトを選択するといった方法です。

エクスプレッションを使用した別の方法は、インスタンス オブジェクト(Instanced Objects)リストから特定の番号を割り当てるか、または rand() のような乱数関数を使用してリストからそれぞれ異なるランダム オブジェクトを各パーティクルに割り当てる方法です。

あるいは、作成時のエクスプレッションおよびランタイム エクスプレッションを使用して、通常以外のオブジェクト シーケンス(2-4-6-8 など)によってカスタム アトリビュートの値を増分する方法もあります。

既定の設定はなし(None)で、そこではリストの最初のオブジェクトである 0 に値を設定します。

回転オプション(Rotation Options)

回転タイプ(Rotation Type)

インスタンス化されたオブジェクトの方向として、回転(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)に対するアトリビュート入力を選択していない場合は、回転が使用されます。

回転(Rotation)

インスタンス化されたオブジェクトの方向を初期方向を基準に設定します。

nParticle の場合、回転(Rotation)オプションとして rotationPP を選択することで、インスタンス化したジオメトリをパーティクル単位で回転させることができます。回転の計算(Compute Rotation)アトリビュートがオンの場合、nParticleShape ノードに rotationPP アトリビュートが作成されます。

インスタンス化したジオメトリのパーティクル単位での回転については、「インスタンス化したジオメトリを回転させる」を参照してください。

エイム方向(Aim Direction)

各インスタンス化されたオブジェクトがそのローカル原点の元の位置を基準に指す方向を指定することによって、インスタンス化されたオブジェクトの方向を設定します。既定の設定はなし(None)で、そこでは 1、0、0 の値を使用します。詳細については、回転タイプ(RotationType)も参照してください。

速度を選択することによって、パーティクルが移動する方向にオブジェクトが向くように設定することができます。詳細については、インスタンス化されたジオメトリの向きの設定を参照してください。

エイム位置(Aim Position)

各インスタンス化されたオブジェクトがそのローカル原点の元の位置を基準に指す位置を指定することによって、インスタンス化されたオブジェクトの方向を設定します。既定の設定はなし(None)で、値 0、0、0 が使用されます。詳細については、回転タイプ(RotationType)の説明を参照してください。

エイム軸(Aim Axis)

エイム方向(Aim Direction)またはエイム位置(Aim Position)を直接指すオブジェクト軸を指定します。

エイム軸(Aim Axis)は、エイム方向(Aim Direction)エイム位置(Aim Position)回転タイプのみで使用できるベクトル アトリビュートです。既定の設定はなし(None)で、そこでは 1、0、0 の値を使用します。

エイム アップ軸(Aim Up Axis)

エイム軸(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 軸に設定されています。

エイム ワールド アップ(AimWorldUp)

エイム アップ軸(Aim Up Axis)によって使用されるアップ方向を示す軸をワールド座標で設定します。エイム ワールド アップ(Aim World Up)は、エイム方向(AimDirection)エイム位置(AimPosition)回転タイプのみで使用できるベクトル アトリビュートです。既定の設定はなし(None)で、そこでは 0、1、0 の値を使用します。このアトリビュートは、ウィンドウ > 設定/プリファレンス > プリファレンス(Windows > Settings/Preferences > Preferences)ウィンドウの設定(Settings)セクションにあるワールド座標系(World Coordinate System)アップ軸(Up Axis)の設定による影響は受けません。

サイクル オプション(Cycle Options)

サイクル開始オブジェクト(Cycle Start Object)

インスタンサ(Instancer)のサイクル(Cycle)オプションをシーケンス(Sequence)に設定した場合、サイクル開始オブジェクト(Cycle Start Object)は、インスタンス オブジェクト(Instanced Objects)リストの中からサイクルの開始オブジェクトを指定します。たとえば、リストに 4 つのオブジェクトがあるとします。サイクル開始オブジェクト(Cycle Start Object)への入力を提供するアトリビュートがそれぞれのパーティクルに対して 3 に設定されている場合、各パーティクルは、オブジェクト間を 3、0、1、2 の順にサイクルを繰り返します。既定値は 0 です。

存在時間(Age)

インスタンサ(Instancer)サイクル(Cycle)オプションをシーケンス(Sequence)に設定した場合、Age はインスタンサのサイクル ステップ(Cycle Step)設定と一緒に機能して、オブジェクトが変更される頻度を設定します。

たとえば、myAge という名前のアトリビュートを作成したとします。このアトリビュートを 存在時間(Age)オプションへの入力として選択した後、myAge を制御する次のランタイム エクスプレッションを書きます。

if (particleId == 0)

myAge = age;

if (particleId == 1)

myAge = age * 2;

if (particleId == 2)

myAge = age * 4;

これにより、particleId 1 のパーティクルは particleId 0 のパーティクルの 2 倍の速度で、particleId 2 のパーティクルは particleId 0 のパーティクルの 4 倍の速度で 1 つずつ順番に選択されるようになります。

既定値は、存在時間アトリビュートの設定です。