移動先: 概要 戻り値 関連項目 フラグ Python の例
collision(
[objects]
, [friction=float], [name=string], [resilience=float])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
collision は「元に戻す」が可能、「照会」が可能、「編集」が可能です。
collision コマンドは、パーティクルをジオメトリと衝突させます。
また、コリジョンのサーフェス プロパティ(摩擦と弾性)の値を指定することもできます。この値は、ジオメトリ オブジェクトの geoConnector ノードに格納されます。Maya の以前のバージョンとは異なり、分離した「コリジョン ノード」はありません。
ソフト オブジェクトがセレクション リスト内にある場合、collision コマンドは、これをコライダにすると仮定します。ソフト オブジェクトを何かと衝突させるには、connectDynamic -c を使用します。コリジョン(Collision)メニュー オプションは最重要オブジェクト規則を使用してこれを分類し、必要なコマンドを発行します。
作成時、このコマンドは、パーティクル コリジョン用に設定したジオメトリ名の文字配列を返します。
このコマンドを使用して情報を照会すると、返される可能性のあるタイプが複数あります。
これには次のようなケースがあります。
- -resilience フラグまたは -friction フラグがコマンド ラインに渡され、単一のコリジョン ジオメトリが選択されるかコマンド ラインにある場合は、コリジョン ジオメトリ用の弾力または摩擦を表す値が単一の float 値として返されます。
- -resilience または -friction フラグがコマンド ラインに渡されて、1 つのコリジョン ジオメトリと 1 つのパーティクル オブジェクトが選択されるかコマンド ラインにある場合は、2 つの結果が生じることがあります。
パーティクル オブジェクトを設定せずにジオメトリと衝突しない場合は、その旨を示すエラーが表示されます。オブジェクトがお互いに衝突するように設定されている場合は、パーティクル オブジェクトがジオメトリとの衝突で使用した弾力または摩擦を表す値が単一の float 値として返されます。ユーザがジオメトリの geoConnector ノードの弾性またはパーティクルへの摩擦からのコネクションを解除し、そのジオメトリに対して使用されているパーティクルのコリジョンの弾性(Collision Resilience)、コリジョンの摩擦(Collision Friction)またはコリジョン オフセット(Collision Offset)アトリビュートに異なる値を設定しているという理由で、この値がジオメトリの弾性や摩擦とは異なる場合もあります。これで、同じサーフェスに対して、各パーティクルにそれぞれ異なる反応をさせることができます。
- どちらのフラグもコマンド ラインに渡されず、単一のジオメトリと単一のパーティクル オブジェクトが選択されるかコマンド ラインにあれば、オブジェクトが互いに衝突するように設定されている場合には単一の整数値 1 が、そうでなければ 0 が返されます。
- 最後に、フラグがコマンド ラインに渡されず、単一のパーティクル オブジェクトが選択されるかコマンド ラインにある場合は、パーティクル オブジェクトが衝突する可能性のあるすべてのジオメトリの名前とジオメトリが接続されているマルチインデックスを含む文字配列が返されます。この配列の書式は次のとおりです。
pPlaneShape1:0 pPlaneShape2:2 nurbsSphereShape1:3
ここで、「:」の後の数字はマルチインデックスです。
string[] | パーティクル コリジョン用に設定したジオメトリ名。 |
戻り値の型は照会モードでは照会フラグが基になります。
event, particle
friction, name, resilience
ロング ネーム(ショート ネーム) |
引数型 |
プロパティ |
name(n)
|
string
|
|
|
このフラグは現在サポートしていません。Maya 2.0 ですでに「コリジョン ノード」はありませんでした。したがって必要ありません。コリジョンのマニュアルを参照してください。このフラグは、古いバージョンの Maya で記述されたスクリプトを実行する目的のためだけに含まれています。
警告メッセージが発生しますが、問題ありません。
|
|
resilience(r)
|
float
|
|
|
サーフェスの弾性です。これは、サーフェスの法線に沿って反映される、衝突するパーティクルの速度です。サーフェスの法線に沿って、値が 1 の場合に完全に反映され、0 の場合にまったく反映されません。
|
|
friction(f)
|
float
|
|
|
サーフェスの摩擦です。これは、パーティクルが衝突する場合に減速される、衝突するパーティクルのサーフェスに対して平行な速度です。
値 0 では接線速度はまったく失われず、値 1 ではパーティクルはサーフェスの法線に沿ってまっすぐに反映します。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
import maya.cmds as cmds
cmds.collision( 'nurbsSphere1', 'particle1', r=.75, f=.1 )
# Causes particles of particle1 to collide with nurbsSphere1,
# and sets a resilience value of 0.75 and a friction value of 0.1
# for the surface.
cmds.collision( 'nurbsSphere1', q=True, f=1 )
# Returns the friction value stored in the geoConnector for nurbsSphere1.
cmds.collision( 'particleShape1', 'nurbsSphere1', q=True, f=1 )
# Returns the friction value that particleShape1 is using for collisions
# against nurbsSphere1. This may be the same as the friction stored in
# nurbsSphere1's geoConnector. Or, if the user broke that connection,
# then it is whatever value is in the particleShape1's collisionFriction
# attribute that is used for collision with nurbsSphere1.
cmds.collision( 'nurbsSphere1', 'particleShape1', q=True )
# Returns whether or not particleShape1 is checking for collisions
# against nurbsSphere1.
cmds.collision( 'particleShape1', q=True )
# Returns all of the geometries that particleShape1 is colliding with.