移動先: 概要 戻り値 関連項目. フラグ. Python 例.

概要

rigidSolver([autoTolerances=boolean], [bounciness=boolean], [cacheData=boolean], [collide=boolean], [collisionTolerance=float], [contactData=boolean], [create=boolean], [current=boolean], [deleteCache=boolean], [displayCenterOfMass=boolean], [displayConstraint=boolean], [displayVelocity=boolean], [dynamics=boolean], [friction=boolean], [interpenetrate=boolean], [interpenetrationCheck=boolean], [rigidBodies=boolean], [rigidBodyCount=boolean], [showCollision=boolean], [showInterpenetration=boolean], [solverMethod=int], [startTime=float], [state=boolean], [statistics=boolean], [stepSize=float], [velocityVectorScale=float])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

rigidSolver は 「元に戻す」が可能、「照会」が可能、「編集」が可能 です。

リジッド ソルバのアトリビュートを設定します。

戻り値

なし

戻り値の型は照会モードでは照会フラグが基になります。

関連項目

constrain, rigidBody

フラグ

autoTolerances, bounciness, cacheData, collide, collisionTolerance, contactData, create, current, deleteCache, displayCenterOfMass, displayConstraint, displayVelocity, dynamics, friction, interpenetrate, interpenetrationCheck, rigidBodies, rigidBodyCount, showCollision, showInterpenetration, solverMethod, startTime, state, statistics, stepSize, velocityVectorScale
ロング ネーム(ショート ネーム) 引数型 プロパティ
create(cr) boolean
新しいリジッド ソルバを作成します。
current(cu) boolean
リジッド ソルバをカレント ソルバとして設定します。
interpenetrationCheck(ic) boolean edit
シーン内で相互に貫通するリジッド ボディをチェックします。
interpenetrate(i) boolean queryedit
リスト表示した 2 つのリジッド ボディを相互に貫通させます。 デフォルト: 相互貫通はすべてのボディでオフになっています。
collide(c) boolean queryedit
リスト表示した 2 つのリジッド ボディが相互に貫通しないようにします。 デフォルト: すべてのリジッド ボディで衝突がオンになっています。
showInterpenetration(si) boolean queryedit
相互に貫通するオブジェクトを別のカラーで表示します。
showCollision(sc) boolean queryedit
衝突するオブジェクトを別のカラーで表示します。
autoTolerances(at) boolean queryedit
許容値を自動的に計算するかどうかを切り替えます。自動計算による許容値は、デフォルトまたはユーザ定義のステップ サイズの値や、シーンのオブジェクトに基づいて計算されるコリジョンの許容値より優先されます。 デフォルト: 0(オフ)
stepSize(s) float queryedit
ソルバのステップ サイズを設定します。ソルバが 1 回で取りうるステップの最大のサイズです。 範囲: 0.0004 - 0.100 デフォルト: 0.0333
collisionTolerance(ct) float queryedit
コリジョンの許容値を設定します。2 つのオブジェクトが衝突するとみなされる場合にはエラーとなります。 範囲: 0.0005 - 1.000 デフォルト: 0.02
friction(f) boolean queryedit
シミュレーションのオブジェクトで摩擦のオンとオフを切り替えます。 デフォルト値: オン
bounciness(b) boolean queryedit
シミュレーションのオブジェクトで弾性のオンとオフを切り替えます。 デフォルト値: オン
dynamics(d) boolean queryedit
シミュレーションのオブジェクトでダイナミクスのオンとオフを切り替えます。 デフォルト値: オン
solverMethod(sm) int queryedit
ソルバのメソッドを設定します。選択肢は 0、1、2 です。 0=Euler(最も速い/最も不正確)、1=Runge-Kutta(Euler より遅い/Euler より正確)、2=適応 Runge-Kutta(最も遅い/最も正確)。 デフォルトは 2(適応 Runge-Kutta)です。
displayVelocity(dv) boolean queryedit
速度ベクトルを表示します。 デフォルト値: オフ
displayCenterOfMass(dcm) boolean queryedit
重心アイコンを表示します。 デフォルト値: オン
velocityVectorScale(vs) float queryedit
速度ベクトルの表示をスケールします。 デフォルト値: 1.0
displayConstraint(dc) boolean queryedit
コンストレイン ベクトルを表示します。 デフォルト値: オン
cacheData(cd) boolean queryedit
システム内のすべてのリジッド ボディでキャッシュをオンに切り替えます。 デフォルト値: オフ
deleteCache(deleteCache) boolean queryedit
システム内のすべてのリジッド ボディでキャッシュを削除します。
startTime(stt) float createqueryedit
ソルバの開始時間を設定します。
state(st) boolean queryedit
リジッド ソルバのオンとオフを切り替えます。
contactData(ctd) boolean queryedit
すべてのリジッド ボディでコンタクト データ情報のオンとオフを切り替えます。 デフォルト値: オフ
statistics(sta) boolean queryedit
すべてのリジッド ボディでスタティック情報のオンとオフを切り替えます。 デフォルト値: オフ
rigidBodies(rb) boolean query
ソルバ内のリジッド ボディのリスト表示を返します。
rigidBodyCount(rbc) boolean query
ソルバ内のリジッド ボディの数を返します。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python 例

import maya.cmds as cmds

# Set the playback time range to [1, 100]
cmds.playbackOptions(min=1, max=100)
# Create a poly cube named "floor"
cmds.polyCube(w=10, h=0.10, d=10, sx=10, sy=1, sz=10, ax=(0, 1, 0), name='floor')
# Create a poly sphere named "ball", then move it to 0 9 0
cmds.polySphere(r=1, sx=20, sy=20, ax=(0, 1, 0), name='ball')
cmds.move(0, 9.0, 0, r=True)
# Create a new rigid body solver
cmds.rigidSolver(create=True, name='rigidSolver1')
# Set the floor to passive rigid body
cmds.select('floor')
cmds.rigidBody(passive=True, solver='rigidSolver1', name='passiveRigidBody')
# Set the ball to active rigid body
cmds.select('ball')
cmds.rigidBody(active=True, solver='rigidSolver1', name='activeRigidBody')
# Add a gravity field, and connect it to ball
cmds.gravity(pos=(0, 0, 0), m=9.8, dx=0, dy=-1, dz=0, name='gravityField')
cmds.connectDynamic('activeRigidBody', f='gravityField')
# Play
cmds.play(w=True)

# Set the rigid solver to allow the ball to interpenetrate the floor, then replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('passiveRigidBody', 'activeRigidBody', 'rigidSolver1', e=True, interpenetrate=True)
cmds.play(w=True)

# Set the rigid solver to disallow the ball to interpenetrate the floor, replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('passiveRigidBody', 'activeRigidBody', 'rigidSolver1', e=True, collide=True)
cmds.play(w=True)

# Set the rigid solver to turn off the bounciness, replay
cmds.currentTime(1, e=True)
cmds.rigidSolver('rigidSolver1', e=True, bounciness=False)
cmds.play(w=True)