ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.
connectDynamic(
[objects]
, [addScriptHandler=script], [collisions=string], [delete=boolean], [emitters=string], [fields=string], [removeScriptHandler=int])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
connectDynamic は、取り消し可能、照会不可能、および編集不可能です。
ダイナミック接続は、オブジェクトのフォース フィールド、エミッタ、あるいは衝突が、他のダイナミック オブジェクトに影響するよう指定します。フィールド、エミッタ、衝突に接続されているダイナミック オブジェクトは、それらのフィールド、エミッタ、あるいは衝突オブジェクトに影響されます。
それぞれのフィールド、エミッタ、衝突に接続が設定されます。したがって、1 つのオブジェクトにいくつものフィールドがある場合に、ユーザがその中のいくつかのフィールドでオブジェクトに影響を与えたいときは、「-f」フラグを使用します。一方、オブジェクトに属するすべてのフィールドを接続したい場合は、「-f」フラグでオブジェクト名を指定します。エミッタと衝突についても同様です。同じオブジェクトの対での、異なる接続 タイプ(すなわちフィールドとエミッタ)は、理論的には独立しています。すなわち、オブジェクトは、別のオブジェクトのエミッタや衝突に影響されなくても、別のオブジェクトのフィールドによって影響を受けることがあります。
それぞれの接続されたオブジェクトは、ダイナミック オブジェクトでなければなりません。接続先のオブジェクトは、フィールド、エミッタなどを持つオブジェクトならどんなものでもかまいません。ダイナミック オブジェクトである必要はありません。影響力を持つオブジェクトは、パーティクル、ジオメトリ オブジェクト(NURBS とポリゴン)とラティスです。影響を受けるオブジェクトは、シェイプ名あるいはトランスフォーム名のいずれでも指定することが出来ます。
air, drag, emitter, gravity, newton, particle, radial
addScriptHandler, collisions, delete, emitters, fields, removeScriptHandler
ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
fields(f)
|
string
|
|
|
特定のオブジェクトのフィールドに各オブジェクトを接続します。
|
|
emitters(em)
|
string
|
|
|
特定のオブジェクトのエミッタに各オブジェクトを接続します。
|
|
collisions(c)
|
string
|
|
|
特定のオブジェクトの衝突モデルに各オブジェクトを接続します。
|
|
delete(d)
|
boolean
|
|
|
addScriptHandler(ash)
|
script
|
|
|
dynamicConnect コマンドの呼び出しを処理する機会が提供されるスクリプトを登録します。このフラグにより、他のダイナミクス システムが connectDynamic コマンドの動作をオーバーライドすることができます。このフラグの引数として Python 関数を渡す必要があり、その関数では fields、emitters、collisionObjects、および objects のキーワード引数を取る必要があります。Python 関数は、connectDynamic の呼び出しを処理した場合に True を返す必要があります。スクリプトが true を返す場合、connectDynamic コマンドは作業がスクリプトによって処理されたとみなすため、何も行いません。すべてのコールバックが false を返す場合、connectDynamic コマンドは通常どおりに続行します。addScriptHandler フラグを他のフラグと一緒に使用することはできません。フラグを使用すると、コマンドは後でコールバックを登録解除するために使用できる数値 ID を返します(removeScriptHandler フラグを参照)。
|
|
removeScriptHandler(rsh)
|
int
|
|
|
このフラグを使用して、以前に addScriptHandler フラグと一緒に登録されたコールバックを除去します。このフラグの引数は、addScriptHandler フラグを使用したときに dynamicConnect によって返された数値 ID です。このフラグが無効な ID で呼び出される場合、コマンドは何も実行しません。このフラグを他のフラグと一緒に使用することはできません。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
cmds.connectDynamic( 'Book', c='Floor' )
# Connects the dynamic object "Book" to the collision model of the
# "Floor". This means that the book will collide with and bounce off of
# the floor.
cmds.connectDynamic( 'Moon', 'Spaceship', f='Moon' )
# Connects dynamic object "Spaceship" to the all fields and emitters
# owned by "Moon".
cmds.connectDynamic( 'Spaceship', f='newtonField1' )
# Connects dynamic object "Spaceship" to "newtonField1" owned by "Moon".
cmds.connectDynamic( 'Moon', f='newtonField1' )
# If the selection list consists of "Spaceship", connects dynamic object
# "Spaceship" to "newtonField1" and all emitters owned by "Moon".
cmds.connectDynamic( 'Spaceship', d=True, f='Moon' )
# Deletes the field connection between all the fields owned by "Moon" and
# "Spaceship". Note that the command establishing the connection need not
# be in the undo queue.
cmds.connectDynamic( 'Spaceship', d=True, f='newtonField1' )
# Deletes the field connection between "newtonField1" owned by "Moon" and
# "Spaceship".
def callback(fields, emitters, collisionObjects, objects):
'''
Test callback for intercepting calls to the connectDynamic command
'''
print 'Fields: %s' % str(fields)
print 'Emitters: %s' % str(emitters)
print 'Collision Objects: %s' % str(collisionObjects)
print 'Objects: %s' % str(objects)
# Let connectDynamic handle the connection
return False
handler_id = cmds.connectDynamic(addScriptHandler=callback)
# Installs the above handler to intercept calls to the connectDynamic command
cmds.connectDynamic(removeScriptHandler=handler_id)
# Remove the above script handler