リジッドボディ(Rigid Body)とは NURBS やポリゴンのサーフェスを固い形状にしたものです。
リジッドボディ同士を衝突させて、
貫通しないで跳ね返らせるようにすることができます。
リジッドボディにはアクティブとパッシブという 2 種類があります。
例えば、壁にぶつかるボールを作りたい時は
ダイナミクスによってアニメーションするボールをアクティブリジッドボディに、
そのボールが衝突する壁をパッシブリジッドボディにしておきます。
リジッドボディを作成する時に注意しなければならないのは、 衝突する物体同志の法線の向きが反対になっていないと衝突しないということです。
リジッドボディを作るには maya.cmds.rigidBody() 関数を使用します。
プレーンに球が当たってバウンドするアニメーションです。
import maya.cmds
def makeRigid1():
sname = maya.cmds.sphere()
pname = maya.cmds.nurbsPlane()
maya.cmds.scale(10, 30, 20)
maya.cmds.rotate(0, 0, 115)
maya.cmds.move(3, -8, 0, r=True)
rname = maya.cmds.rigidBody(sname[0], active=True, initialVelocity=(10.0, 0.0, 0.0), bounciness=0.5, staticFriction=0.4)
maya.cmds.rigidBody(pname[0], passive=True)
gname = maya.cmds.gravity(pos=(0, 0, 0))
maya.cmds.connectDynamic(rname, fields=gname[0])
import maya.cmds
def makeRigid1()
sname = maya.cmds.sphere(
pname = maya.cmds.nurbsPlane()
maya.cmds.scale(10, 30, 20)
maya.cmds.rotate(0, 0, 115)
maya.cmds.move(3, -8, 0, r=True)
rname = maya.cmds.rigidBody(sname[0], active=True, initialVelocity=(10.0, 0.0, 0.0), bounciness=0.5, staticFriction=0.4)
maya.cmds.rigidBody(pname[0], passive=True)
gname = maya.cmds.gravity(pos=(0, 0, 0))
maya.cmds.connectDynamic(rname, fields=gname[0])