オブジェクトのローカル空間にフォースを適用する
 
 
 

ダイナミック フォースは、ワールド空間座標系内の NURBS およびポリゴン オブジェクトに作用します。たとえば、重力フィールドにデフォルトのオプション値を設定すると、コーンをどのように回転させても、ワールド空間の Y 軸に沿って下方に移動します。

デフォルトでは、フィールドはワールド空間内のパーティクル オブジェクトにも作用します。ただし、パーティクル オブジェクトのローカル空間内のパーティクル オブジェクトにフィールドが作用するように設定することもできます。たとえば、ワールド空間の Y 軸ではなく、パーティクル オブジェクトのローカル Y 軸に沿ってパーティクル オブジェクトが落下するように重力フィールドを設定することができます。

詳細については、ワールドでのフォース(Forces In World)を参照してください。

ワールド位置、速度、および重心の取得

パーティクル オブジェクトの位置、速度、および重心のアトリビュートには、ローカル空間値があります(パーティクル オブジェクトの中心とは、すべてのパーティクルの平均の位置です)。特定のパーティクル オブジェクトのワールド空間値を知る必要がある場合があります。

たとえば、パーティクル オブジェクトに重力を加えて落下させ、ガラスの床を貫通させるとします。さらに、パーティクル オブジェクトの回転 Y(Rotate Y)アトリビュートにキーを設定して、落下しながら起点の Y 軸を中心に回転するようにします。パーティクルが床を貫通するときにそのカラーを変更できるように、パーティクルのワールド空間位置を知る必要があるとします。位置アトリビュートを使用してこの情報を取得することはできません。なぜなら、位置アトリビュートはローカル空間位置だからです。

この情報は、位置、速度、および重心の次の 3 つのワールド空間のアトリビュートから取得できます。

重心(Centroid)アトリビュートは、重心 X(Centroid X)重心 Y(Centroid Y)、および重心 Z(Centroid Z)から構成される複合アトリビュートです。ワールド重心(World Centroid)アトリビュートは、ワールド重心 X(World Centroid X)ワールド重心 Y(World Centroid Y)、およびワールド重心 Z(World Centroid Z) から構成される複合アトリビュートです。

ワールド位置(World Position)ワールド速度(World Velocity)、および ワールド重心(World Centroid)の値は、コネクション エディタ(Connection Editor)で入力として読み出すことができます。ワールド重心 X(World Centroid X)ワールド重心 Y(World Centroid Y)、およびワールド重心 Z(World Centroid Z) の値は、エクスプレッションで読み出すことができます。これらのアトリビュートの値は設定できません。

ワールド速度(World Velocity)は、現在のフレームと前のフレームとの間のワールド位置(World Position)の差です。ワールド速度(World Velocity)はオブジェクト(およびオブジェクトの親)の移動(Translate)回転(Rotate)、およびスケール(Scale)値のインフルエンスを受けるため、それらに適用するキーの効果を含んでいます。

パーティクル オブジェクトのワールド空間の速度をローカル空間の速度に変換する必要があるときには、パーティクル オブジェクトのオブジェクト空間のワールド速度(World Velocity In Object Space)を使用できることに注意してください。

worldAcceleration というアトリビュートはありません。

アトリビュート コネクションを使った入力フォースの設定

パーティクル オブジェクトにコネクトされているフィールドまたはスプリングは、そのベクトル フォース値をオブジェクトの入力フォース(Input Force)[ ] アトリビュートに書き込みます。このアトリビュートはベクトルの配列です。オブジェクトにコネクトされているそれぞれのフィールドに対して 1 つの入力フォース(Input Force)配列があります。たとえば、3 つのフィールドにコネクトされているオブジェクトには入力フォース[0]、入力フォース[1]、および入力フォース[2] があります。配列のベクトルはそれぞれ、1 つのパーティクルのフォースを表します。

コネクション エディタ(Connection Editor)または API を使用して、1 つの particleShape アトリビュートを別の入力フォース[ ] アトリビュートに入れることができます。アトリビュートは、ベクトル配列(たとえば速度)でなければなりません。

アトリビュートが入力フォース(Input Force)[0] にコネクトされていて、2 つのパーティクル オブジェクトが同数のパーティクルを含んでいる場合、入力フォース[0] に入力される値は 1 対 1 で対応します。入力フォース[0] を含むオブジェクトが、入力を与えるオブジェクトよりも少ない数のパーティクルを持っている場合、残りの値は無視されます。逆の場合は、最後の値が繰り返されます。

入力フォース[ ] は、リジッド ボディのシェイプ ノードにも存在します。入力フォース [ ] は、パーティクルの場合と同様に、CV または頂点に対して機能します。