maya.cmds.collision() 関数によって
パーティクルと、ポリゴンや NURBS などのオブジェクトとを衝突させることができます。
collision() 関数で作られたコリジョンオブジェクトは、
以下の関数によってパーティクルなどにコネクトします。
maya.cmds.connectDynamic(パーティクル, collisions=コリジョンオブジェクト)
以下の Python スクリプトによって、 エミッターから発生したパーティクルが NURBS プレーン に衝突して跳ね返りながら落ちてゆくアニメーションが作成されます。
import maya.cmds
def makeCollision1():
ename = maya.cmds.emitter(pos=(0.0, 5.0, 0.0), type='direction', dx=-1.0, dy=-1.0, dz=0.0, spread=0.5, rate=3)
pname = maya.cmds.particle()
maya.cmds.connectDynamic(emitters=ename[0])
plname = maya.cmds.nurbsPlane()
maya.cmds.scale(0, 15, 15)
maya.cmds.rotate(0, 0, 45)
maya.cmds.collision(plname[0], pname[0], resilience=0.3, friction=0.1)
gname = maya.cmds.gravity()
maya.cmds.connectDynamic(pname[0], fields=gname[0])
maya.cmds.connectDynamic(pname[0], collisions=plname[0])
import maya.cmds
def makeCollision1():
ename = maya.cmds.emitter(pos=(0.0, 5.0, 0.0), type='direction', dx=-1.0, dy=-1.0, dz=0.0, spread=0.5, rate=3)
pname = maya.cmds.particle()
maya.cmds.connectDynamic(emitters=ename[0])
plname = maya.cmds.nurbsPlane()
maya.cmds.scale(0, 15, 15)
maya.cmds.rotate(0, 0, 45)
maya.cmds.collision(plname[0], pname[0], resilience=0.3, friction=0.1)
gname = maya.cmds.gravity()
maya.cmds.connectDynamic(pname[0], fields=gname[0])
maya.cmds.connectDynamic(pname[0], collisions=plname[0])