Houdini 20.5 ノード APEXノード

ragdoll::Solve

1つまたは複数のキャラクタにラグドールシミュレーションを適用します。

On this page
Since 20.0

入力

skeleton: GeometryArray

各キャラクタの静止スケルトン。 スケルトンジオメトリは、 configurationattrib Pointアトリビュートを介してジョイント制限を提供することが見込まれています。

collision_shapes: GeometryArray
motionclip: GeometryArray

各キャラクタのモーションクリップ。 モーションクリップは、ラグドールのターゲットアニメーションとして使用され、ラグドールの初期ポーズも決定します。

channels: GeometryArray

各キャラクタおよびそのジョイントのアニメーションされたパラメータまたは静的パラメータを含むジオメトリ。 アニメーションされたパラメータは、name Primitiveアトリビュートを持つチャンネルプリミティブによって指定されます。 静的パラメータは、parmsという名前のDetail辞書アトリビュートに格納されています。

Note

整数パラメータの値は、評価されたチャネル値を一番近い整数に丸めることで決定されます。

次のパラメータは、キャラクタ全体に適用されます:

名前

アニメーション

デフォルト値

説明

globalactive

int

Yes

1

ラグドール全体がアクティブかどうかを制御します。 これを使用すると、ラグドールがアクティブになる時のキーフレームを打つことができます。

configurationattrib

string

No

""

ノードのconfigurationattribパラメータのキャラクタ毎の上書き。

以下のパラメータは、個々のジョイントに適用されます。 これらのチャンネルプリミティブまたは辞書のキーは、接頭辞としてジョイント名をパラメータ名に追加した名前にすることになっています(例: LArm_active)。

名前

アニメーション

デフォルト値

説明

active

int

Yes

1

ジョイントをアクティブオブジェクトとしてシミュレーションするかどうかを制御します。

matchlocaltransforms

int

Yes

0

有効にすると、 Bend StiffnessBend Damping に応じて、ジョイントをターゲットスケルトンのローカルトランスフォームに追従させようと試みます。 これは、ラグドールを強制的にスケルトンのワールド空間トランスフォームに一致させることなく、ターゲットアニメーションからモーションを継承するのに役立ちます。

bendstiffness

float

Yes

5

Match Local Transforms が有効な場合、ジョイントがローカル回転の変更に抵抗する強さ、または、ジョイントがターゲットアニメーションのローカルトランスフォームへの一致を試みる強さを指定します。

この値は、バネの周波数に相当します。

benddampingratio

float

Yes

1

Match Local Transforms が有効な場合、ジョイントがローカル回転の変更に抵抗する時、または、ジョイントがターゲットアニメーションのローカルトランスフォームに一致させる時に適用される減衰量を指定します。 0の値は減衰なし、1の値は振動が回避されるほど十分な減衰が用意されます。 0から1の間の値は(ある程度の減衰がある)振動を許可し、1より大きい値は振動のない大きく減衰するモーションが用意されます。

この値は、バネの減衰率に相当します。

matchworldtransforms

int

Yes

0

有効にすると、 Position StiffnessPosition DampingOrientation StiffnessOrientation Damping に応じて、ジョイントをターゲットスケルトンのワールドトランスフォームに一致させようと試みます。 これは、特定のジョイントがターゲットアニメーションに追従するようにピン留めするのに役立ちます。

targetposstiffness

float

Yes

100

Match World Transforms が有効な時、ここには、ワールド空間のターゲット位置に一致させようと試みるフォースの強度を指定します。

この値は、バネの周波数に相当します。

targetposdampingratio

float

Yes

5

Match World Transforms が有効な時、ここには、ワールド空間のターゲット位置に一致させようと試みる時にモーションに適用される減衰量を指定します。 0の値は減衰なし、1の値は振動が回避されるほど十分な減衰が用意されます。 0から1の間の値は(ある程度の減衰がある)振動を許可し、1より大きい値は振動のない大きく減衰するモーションが用意されます。

この値は、バネの減衰率に相当します。

targetorientstiffness

float

Yes

100

Match World Transforms が有効な時、ここには、ワールド空間のターゲット方向に一致させようと試みるフォースの強度を指定します。

この値は、バネの周波数に相当します。

targetorientdampingratio

float

Yes

5

Match World Transforms が有効な時、ここには、ワールド空間のターゲット方向に一致させようと試みる時にモーションに適用される減衰量を指定します。 0の値は減衰なし、1の値は振動が回避されるほど十分な減衰が用意されます。 0から1の間の値は(ある程度の減衰がある)振動を許可し、1より大きい値は振動のない大きく減衰するモーションが用意されます。

この値は、バネの減衰率に相当します。

disablecollisions

int

Yes

0

ジョイントのコリジョンシェイプのすべての衝突を無効にします。

bounce

float

No

0.5

オブジェクトの弾力性。 Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。

density

float

No

1000

オブジェクトの質量は、体積とこの密度の乗算で決まります。

friction

float

No

1

オブジェクトの摩擦係数。 0の値は、摩擦なしを意味します。

これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。

time: Float

シミュレーションを評価する時間(秒単位)。

timestep: Float

シミュレーションのタイムステップの長さ(秒単位)。

configurationattrib: String

(例えば)Configure Joint Limits SOPで定義されているような、回転制限の読み込み先の構成Pointアトリビュートの名前。

starttime: Float

シミュレーションの開始時間(秒単位)。

groundpos: Vector3

グランドプレーンの位置。

groundorient: Vector4

クォータニオンとして指定したグランドプレーンの向き。

groundbounce: Float

グランドプレーンの弾性。Bounceが1.0の2つのオブジェクトが衝突すると、それらのオブジェクトはエネルギーを消失せずに跳ね返ります。 Bounceが0.0の2つのオブジェクトが衝突すると、それらのオブジェクトは停止します。

groundfriction: Float

グランドプレーンの摩擦係数。0の値は、摩擦なしを意味します。 これは、接線Velocityが衝突と静止接触で影響を受ける強さを制御します。

pinroot: Bool

有効にすると、親コリジョンシェイプを持たないコリジョンシェイプが自由に移動できないようにスケルトンに取り付けたままになるように拘束されます。 これは、スケルトンのサブセットのみ(例えば、尻尾)をシミュレーションする場合に役立ちます。

groundenable: Bool

Trueに設定されている場合、グランドプレーン衝突オブジェクトを有効にします。

forceresetsim: Bool

Trueに設定されている場合、シミュレーションを強制的にリセットします。 これにより、 starttime から現行の time までのすべてのタイムステップが計算されます。

gravity: Vector3

シミュレーションオブジェクトに適用する重力。

autoresimframe: Bool

Trueに設定、且つ、指定したシミュレーションフレームが最後のパラメータ変更後にまだシミュレーションし直されていない場合、 そのフレームがシミュレーションし直されます(さらに、そのフレーム以降のキャッシュ化されたフレームをクリアします)。 これによって、シミュレーション全体をリセットすることなく、前のフレームに巻き戻して再生するだけで、前のフレームでのパラメータ変更の挙動を素早くプレビューすることができます。 かといって、処理が重いシミュレーションでは、このように余計にシミュレーションをやり直すのは望ましくないこともあります。

Falseに設定すると、パラメータ変更は、現行フレームのみをシミュレーションし直すので、前のフレームは元のキャッシュ化された結果を返します。

resetvelocities: Bool

Trueに設定されている場合、各タイムステップの後に各オブジェクトのVelocityと角速度をゼロに設定します。 これは、キャラクタをインタラクティブにポーズ付けする時、ターゲットスケルトンを正確に追従するのに役立ちます。

solverparms: Dict

Bullet Solverのパラメータの上書きを指定する辞書。

出力

skeleton: GeometryArray

ラグドールシミュレーションから変更されたスケルトン。

See also

APEXノード