Houdini 20.5 キャラクタ KineFX

ラグドールシミュレーション

On this page

Ragdoll Solver SOPを使用してキャラクタに対してRBD(リジッドボディダイナミクス)シミュレーションを実行することで、そのキャラクタにそのシミュレーションの動きや衝突効果を作成することができます。 Configure Joint Limits SOPRagdoll Collision Shapes SOPは、ラグドールシミュレーションで使用される設定をセットアップすることができます。

ラグドールシミュレーションの作成手順は以下のとおりです:

  1. キャラクタスケルトンにジョイント制限を設定する。

  2. ラグドールコリジョンシェイプを作成する。

  3. ラグドールシミュレーションを実行する。

  4. シミュレーション結果を表示する。

以下のワークフローは、Electraテストジオメトリにラグドールシミュレーションを追加します:

ラグドールのワークフロー

Electraテストジオメトリの Output パラメータを Skin Surface に設定します。

Rig Stash Pose SOPは、後でラグドールソルバで使用されるrest_transformアトリビュートをキャラクタ上に保存することで、そのキャラクタの静止ポーズを作成します。

ジョイント制限を設定する

Configure Joint Limits SOPには、スケルトンに対してジョイント制限をインタラクティブに設定/修正することができます。 ジョイント制限は、そのConfigure Joint Limits SOPのビューポートステート内で作成します:

  1. Configure Joint Limits SOPを選択します。

  2. ビューポート上にマウスカーソルを置いてEnterを押すか、または、ビューポートの左側にあるツールバーのをクリックして、そのConfigure Joint Limits SOPのビューポートステートに入ります。

  3. 上部のツールバーの Rotation Limit Display オプションはデフォルトでオンになっているので、ジョイントを選択すると、その回転制限が表示されます。

    ジョイントを選択して、回転制限ハンドルを調整します:

    ジョイントの回転制限を設定
  4. ジョイントの移動制限を設定するには:

    • 上部のツールバーの Translation Limit Display をオンにします。

    • 移動制限を有効にします:

      • ビューポート上にマウスカーソルをを置いてFを押すと、その制限を有効にするためのHUDが出ます。

      • Translation Limits をオンにします。

    • ジョイントを選択して、移動制限ハンドルを調整します。

    ジョイントの移動制限を設定

    ジョイント制限は、各ポイント上の辞書アトリビュートに格納されます。 その辞書アトリビュートの名前は、Configure Joint Limits SOPの Output Configuration パラメータで設定します。

    Note

    現在のところ、ラグドールソルバは、ジョイントの移動制限に対応していません。 移動制限は、ポージングにのみ使用されます。

  5. ジョイントが制限外にあるかどうかを確認するには:

    • Configure Joint Limits SOPの Display Joints Outside Their Limits をオンにします。

      または

    • Configure Joint Limits SOPのビューポートステートで、上部のツールバーの Display Joints Outside Their Limits をオンにします。

    そのジョイントが制限外にあると、そのジョイントの球が赤に変わります。

    ジョイント制限インジケータ

    ジョイント制限はローカル空間で適用されます。 ジョイントの親が移動すると、ジョイント制限もその親に追従しますが、ジョイント自体を移動させた場合でもそのジョイント制限が適用されます。

    ジョイント制限はローカル空間で適用される

回転制限ハンドルと移動制限ハンドルの表示に関するいくつかの事項:

Configure Joint Limits SOP

  • Display Rotation Limits パラメータや Display Translation Limits パラメータは、Configure Joint Limits SOPのビューポートステートに入ることなく回転制限や移動制限を表示できるようにします。これらのパラメータは、すべてのジョイント制限をガイドジオメトリで表示します。

Configure Joint Limits SOPのビューポートステート

  • ジョイントを選択すると、すべての値が0に設定されたジョイント制限が作成されます。ビューポート上にマウスカーソルをを置いてGを押すと制限値のHUDが出るので、そこで制限値を確認することができます。

  • 上部のツールバーの Rotation Limit Display オプションはデフォルトでオンになっているので、ジョイントを選択すると、そのジョイントの回転制限ハンドルが表示されます。

  • Show All Handles がオフ、且つ、 Rotation Limit Display または Translation Limit Display がオンな場合、選択したジョイント(s)にのみ制限ハンドルが表示されます。

  • Show All Handles がオンの場合、すべてのジョイント制限が表示されます。

  • Rotation Limit Display または Translation Limit Display がオフの場合、 Show All Handles の設定に関わらず、それらの制限は表示されません。

Note

Rotation Limit Display または Translation Limit Display がオンになっているのに、ジョイントを選択してもその制限が表示されない場合は、 その制限が有効になっているかどうか確認してください。制限を有効にするには:

  • Configure Joint Limits SOPのビューポートステートで、ビューポート上にマウスカーソルを置いてFを押して、制限を有効にするためのHUDを出します。そして、 Rotation Limits または Translation Limits をオンにします。

    または

  • ビューポート上にマウスカーソルを置いてPを押して、ジョイント制限パラメータウィンドウを出します。 Viewer State Dialog タブにある Enable R Limits または Enable T Limits をオンにします。

MotionClipからジョイント制限を計算する

MotionClipがあるのであれば、Configure Joint Limits SOPは、そのMotionClipのポーズに基づいて自動的にジョイント制限を計算することができます。

このサンプルには、ジョイント回転制限を設定するための開始点として使用可能なMotionClipが用意されています。

以下のポーズから生成されたMotionClipがあったとします:

MotionClipに変換されたポーズ
  1. MotionClipをConfigure Joint Limits SOPのMotionClip入力(2番目の入力)に接続します。

  2. Configure Joint Limits SOPの Compute Limits for Joints from MotionClip をオンにします。

  3. Compute Limits セクションにある Group パラメータに、ジョイント制限を計算したジョイントを指定します。

  4. Configure Joint Limits SOPのビューポートステートに入ります:

    MotionClipから計算されたジョイント制限

How-to

To...Do this

制限が付けられているジョイントすべてのハンドルを表示する

Configure Joint Limits SOPの Guide Geometry セクションにある Display Rotation Limits または Display Translation Limits をオンにします。

または

Configure Joint Limits SOPのビューポートステートで、 Show All Handles をオンにして、 Rotation Limit Display または Translation Limit Display をオンにします。

選択した回転制限/移動制限のみを表示する

Configure Joint Limits SOPのビューポートステートで:

  1. Show All Handles をオフにします。

  2. Rotation Limit Display または Translation Limit Display をオンにします。

  3. ジョイント(s)を選択します。

ジョイント制限を調整する

Configure Joint Limits SOPのビューポートステートで:

上部のツールバーの Show All Handles をオンにして、ジョイント制限ハンドルを調整します。

または

ジョイントを選択して、ビューポート上にマウスカーソルを置いてGを押して、制限値HUDを出します。

または

ジョイントを選択して、ビューポート上にマウスカーソルを置いてPを押して、ジョイント制限パラメータウィンドウを出します。 Viewer State Dialog タブにある X Angle RangeY Angle RangeZ Angle Range の値を調整します。

特定のジョイントにのみ制限を設定する

Configure Joint Limits SOPのビューポートステートで:

  1. 制限を設定したくないジョイント(s)を選択します。

  2. クリックして Delete を選択します。

Configure Joint Limits SOPの Group パラメータが更新されて、制限が設定されていないジョイントがリストされます(ジョイント名の頭に^が付きます)。

ジョイント制限をコピーアンドペーストする

Configure Joint Limits SOPのビューポートステートで:

  1. ジョイントを選択して⌃ Ctrl + Cを押すと、それらのジョイント制限がコピーされます。

  2. 別のジョイントを選択します。

  3. ⌃ Ctrl + Vを押すと、ジョイント制限がペーストされます。

    または

    移動制限の場合、⌃ Ctrl + ⇧ Shift + Vを押すと、ミラーされた制限がペーストされます。

ジョイント制限をミラーさせる

Configure Joint Limits SOPのビューポートステートで:

  1. ミラーさせたいジョイントを選択します。

    ジョイントをミラーさせることができるかどうか確認するには、ビューポートステートのヒントを見てください(⇧ Shift + F1を押します)。 MirroringSuccess に設定されていれば、そのジョイントをミラーさせることができます。

  2. ビューポート上にマウスカーソルを置いてクリックして、 Mirror を選択します。ハンドルが元のジョイントと同じ方向を指すようになります。

回転制限ハンドルの表示を反転させる

Configure Joint Limits SOPのビューポートステートで、ジョイントを選択して⇧ Shift + Fを押します。

設定されているジョイント制限をすべて削除する

Configure Joint Limits SOPの Clear Overrides をクリックします。

特定のジョイント制限を削除する

Configure Joint Limits SOPのビューポートステートで:

  1. ジョイント(s)を選択します。

  2. クリックして Remove Override を選択します。

ジョイント制限値をリセットする

Configure Joint Limits SOPのビューポートステートで:

  1. ジョイント(s)を選択します。

  2. ビューポート上にマウスカーソルを置いてGを押して、制限値HUDを出します。

  3. Clear をクリックします。

ジョイント制限を有効/無効にする

Configure Joint Limits SOPのビューポートステートで:

  1. ジョイントを選択します。

  2. ビューポート上にマウスカーソルを置いてFを押して、制限を有効/無効にするためのHUDを出して、 Rotation Limits または Translation Limits をオン/オフします。

    または

    ビューポート上にマウスカーソルを置いてPを押して、ジョイント制限パラメータウィンドウを出します。 Viewer State Dialog タブの Enable R Limits または Enable T Limits をオン/オフします。

Enable R Limits/Enable T Limits をオフにすると、もはやジョイントに制限が割り当てられなくなります。 制限値はポイント上の辞書アトリビュートに書き出されなくなり、Configure Joint Limits SOPのビューポートステートでは制限ハンドルが表示されなくなります。 しかし、その制限は削除されるわけでなく、 Enable R Limits/Enable T Limits をオンにすることで再びアクティブにすることができます。

制限を超えているジョイントを表示する

Configure Joint Limits SOPの Display Joints Outside Their Limits をオンにします。

または

Configure Joint Limits SOPのビューポートステートの上部のツールバーにある Display Joints Outside Their Limits をオンにします。

制限を超えているジョイントの制限を広げる

Configure Joint Limits SOPのビューポートステートで:

  1. 制限を超えているジョイントを選択します。

  2. ビューポート上にマウスカーソルを置いてGを押して、制限値HUDを出します。

  3. Extend Limits From Pose をクリックします。

ジョイント制限ガイドジオメトリのサイズを変更する

Configure Joint Limits SOPの Guide Geometry Scale を調整します。

ラグドールコリジョンシェイプを作成する

Ragdoll Collision Shapes SOPは、スケルトンジョイントに対するキャラクタジオメトリ(スキン)のウェイトに基づいて、コリジョンシェイプを作成します。 コリジョンシェイプは、Ragdoll Collision Shapes SOPのビューポートステートで表示/更新することができます:

  1. Ragdoll Collision Shapes SOPを選択します。

  2. ビューポート上にマウスカーソルを置いてEnterを押すか、または、ビューポートの左側にあるツールバーのをクリックして、Ragdoll Collision Shapes SOPのビューポートステートに入ります。

    デフォルトでは、Ragdoll Collision Shapes SOPは、すべてのジョイントに対して凸ハルコリジョンシェイプを作成します。

    凸ハルコリジョンシェイプ

    Note

    ラグドールソルバーは、凸ハル形状よりもカプセルやボックスなどの基本形状に対して解析を高速に実行します。 これは、ソルバーが特に数千体ものラグドールを同時に実行するような群衆で重要になってきます。

  3. コリジョンシェイプの位置、向き、スケールを手動で調整するには、そのコリジョンシェイプのトランスフォームハンドルを使用します:

    • シェイプまたはジョイントを選択します。

    • 上部のツールバーの Enable Handle をオンにします。

    • (オプション) ビューポート上にマウスカーソルを置いてYを押して、別のトランスフォームハンドルモードに切り替えます。

  4. 複数のジョイントを包含した1個のコリジョンシェイプ(例えば、手全体が1個のコリジョンシェイプ)を作成するには:

    • 指のジョイント/シェイプ(s)を選択します。

    • クリックして、 Merge Convex Hull with Parent を選択します。

      選択したジョイントから1個のコリジョンシェイプを生成

    Ragdoll Collision Shapes SOPの Generate Shapes セクションの Generate Shapes Group パラメータが更新され、コリジョンシェイプが生成されないジョイントがリストされます(ジョイント名の頭に^が付きます)。 これらのジョイントのコリジョンシェイプは親シェイプにマージされました。

    Note

    ジョイントまたはシェイプを選択すると、上部のツールバーの Shape 設定のシェイプが自動的に変更されます。

  5. 複数のコリジョンシェイプの親シェイプへのマージをやり直すには:

    • Zを押して Restore from Groups モードに入ります。マージされたジョイントが選択できるようになります。

    • ジョイントを選択します。

    • ビューポート上にマウスカーソルを置いてクリックして、 Restore Convex Hull を選択します。

    • 再びZを押して、 Restore from Groups モードを抜けます。

カスタムコリジョンシェイプを作成する

  1. Ragdoll Collision Shapes SOPのビューポートステートで、シェイプまたはジョイントを選択します。

  2. 上部のツールバーの ShapeCustom に設定します。すると、現在のシェイプが消えます。

  3. (オプション) ビューポートの左側にあるツールバーの Selectボタンをクリックして、どれかの選択オプションを選択します。

  4. ビューポート上にマウスカーソルを置いてSを押して、キャラクタスキンを表示します。

  5. カスタムシェイプの作成に使用したいキャラクタスキン上の領域を選択します。

  6. SまたはEnterを押して、選択モードを抜けます。選択した領域から凸ハルが構築されます。

    カスタムコリジョンシェイプの作成
  7. カスタムシェイプを除去するには:

    • シェイプまたはジョイントを選択します。

    • ビューポート上にマウスカーソルを置いてSを押して、キャラクタスキンを表示します。

    • 何も選択されないように、キャラクタスキンから離れたところをクリックします。

    • SまたはEnterを押して選択モードを抜けます。

基本シェイプの扱い方

すべてのコリジョンシェイプに基本シェイプを使用するように選択することができます。 この基本シェイプは、スキン(Rest Geometry入力)がない場合に役立ちますが、さらにスケルトンジョイントに基づいて自動的にすべてのコリジョンシェイプを作成たいことでしょう。

すべてのコリジョンシェイプで基本シェイプが使用されるように設定するには:

  1. Ragdoll Collision Shapes SOPの Generate Convex Hulls from Skin Geometry をオフにします。このパラメータは、そのRagdoll Collision Shapes SOPのRest Geometry入力(3番目の入力)に何も接続されていない場合は利用できません。

  2. Generate Basic Shapes をオンにします。

  3. ドロップダウンメニューから、使用したいシェイプを選択します。

特定のコリジョンシェイプで基本シェイプが使用されるように設定するには:

  1. Ragdoll Collision Shapes SOPのビューポートステートで、シェイプ(s)を選択します。

  2. 上部のツールバーの Shape ドロップダウンメニューから基本シェイプを選択します。

基本コリジョンシェイプの向きと位置を変更する

基本コリジョンシェイプを特定のジョイントの方へ向かせるには:

  1. Ragdoll Collision Shapes SOPのビューポートステートで、基本コリジョンシェイプ、または、その基本コリジョンシェイプに関連付けられているジョイントを選択します。

  2. Aを押します。コリジョンシェイプの向きを変更させることができるジョイントオプションが表示されます:

    コリジョンシェイプの向きを変更させることができるジョイント
  3. 基本コリジョンシェイプを向くジョイントを選択します:

    基本コリジョンシェイプの向きを変更

    Note

    上部のツールバーの Compute Shape TransformOff に設定されていた場合、 Compute Shape TransformFrom Convex Hull または From Reference Joint に設定しない限り、その基本コリジョンシェイプの向きが変わる効果を確認できません。

基本コリジョンシェイプの位置を自動的に決めるには:

  1. 基本コリジョンシェイプ、または、その基本コリジョンシェイプに関連付けられているジョイントを選択します。

  2. 上部のツールバーの Compute Shape Transform ドロップダウンメニューから以下のどれかのオプションを選択します:

    • From Convex Hull は、基本コリジョンシェイプをスケールし、それを凸ハルの境界内に配置します。

      凸ハル境界内に配置されたコリジョンシェイプ
    • From Reference Joints は、選択したジョイントと参照ジョイントとの距離を使用してコリジョンシェイプをスケールします。

      選択したジョイントと参照ジョイントの間のコリジョンシェイプ
    • Off は、コリジョンシェイプの中心が選択したジョイントに位置するようにします。

      選択したジョイントに配置されたコリジョンシェイプ

How-to

To...Do this

Ragdoll Collision Shapes SOPのビューポートステートに入らずに、コリジョンシェイプを表示する

Ragdoll Collision Shapes SOPの Display Collision Shapes をオンにします。

コリジョンシェイプを変更する

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプまたはジョイントを選択します。

  2. 上部のツールバーの Shape ドロップダウンメニューからコリジョンシェイプを選択します。

    または

    ビューポート上にマウスカーソルを置いてGを押して、シェイプオプションHUDを出します。

    または

    ビューポート上にマウスカーソルを置いてPを押して、コリジョンシェイプパラメータウィンドウを出します。 Viewer State Dialog タブの Shape ドロップダウンメニューからコリジョンシェイプを選択します。

すべてのコリジョンシェイプに基本コリジョンシェイプを使用する

  1. Ragdoll Collision Shapes SOPの Generate Convex Hulls from Skin Geometry をオフにします。このパラメータは、そのRagdoll Collision Shapes SOPのRest Geometry入力(3番目の入力)に何も接続されていない場合は利用できません。

  2. Generate Basic Shapes をオンにします。

  3. ドロップダウンメニューから、使用したいシェイプを選択します。

元のコリジョンシェイプに戻す

Ragdoll Collision Shapes SOPの Clear Overrides ボタンをクリックします。これは、すべてのコリジョンシェイプを元に戻します。

または

特定のシェイプを元に戻すには、Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプ/ジョイントを選択します。

  2. ビューポート上にマウスカーソルを置いてクリックして、 Remove Override を選択します。

これは、親シェイプにマージされているコリジョンシェイプは元に戻しません。 それを行ないたいのであれば、“複数のコリジョンシェイプの親シェイプへのマージをやり直す”を参照してください。

特定のジョイントのコリジョンシェイプを削除する

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプまたはジョイントを選択します。

  2. クリックして、 Delete を選択します。

Ragdoll Collision Shapes SOPの Group パラメータが更新され、コリジョンシェイプを持たないジョイントがリストされます(ジョイント名の頭に^が付きます)。

削除されたコリジョンシェイプを復元する

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. Zを押して、 Restore from Groups モードに入ります。コリジョンシェイプが削除されているジョイントが選択できるようになります。

  2. ジョイントを選択します。

  3. ビューポート上にマウスカーソルを置いてクリックして、 Restore を選択します。

  4. 再びZを押して、 Restore from Groups モードを抜けます。

凸ハルシェイプの生成に使用されるアルゴリズムを変更する

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプまたはジョイントを選択します。

  2. 上部のツールバーの Algorithm ドロップダウンメニューからアルゴリズムを選択します。

    または

    ビューポート上にマウスカーソルを置いてGを押して、シェイプオプションHUDを出します。 Algorithm ドロップダウンメニューから、 Shrinkwrap または Convex Decomposition を選択して、( Convex Decomposition が選択されている場合) Max Concavity を調整します。

    または

    ビューポート上にマウスカーソルを置いてPを押して、コリジョンシェイプパラメータウィンドウを出します。 Viewer State Dialog タブの Algorithm ドロップダウンメニューからアルゴリズムを選択して、( Convex Decomposition が選択されている場合) Max Concavity を調整します。

カスタムコリジョンシェイプを作成する

カスタムコリジョンシェイプの作成を参照してください。

基本コリジョンシェイプをジョイントの方へ向ける

基本コリジョンシェイプの向きと位置の変更を参照してください。

基本コリジョンシェイプの位置を自動的に決める

基本コリジョンシェイプの向きと位置の変更を参照してください。

キャラクタの片側にコリジョンシェイプをミラーさせる

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. ミラーさせたいシェイプを選択します。

    シェイプをミラーさせることができるかどうか確認するには、ビューポートステートのヒントを見てください(⇧ Shift + F1を押します)。 MirroringSuccess に設定されていれば、そのシェイプをミラーさせることができます。

  2. ビューポート上にマウスカーソルを置いてクリックして、 Mirror を選択します。

コリジョンシェイプの位置、向き、スケールを手動で調整する

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. 調整したいシェイプを選択します。

  2. Enable Handle をオンにして、そのハンドルを使用して、シェイプを移動、回転、スケールさせます。

    または

    ビューポート上にマウスカーソルを置いてPを押して、コリジョンシェイプパラメータウィンドウを出します。 Viewer State Dialog タブで、 TranslateRotateScalePivot TranslatePivot Rotate の値を調整します。

コリジョンシェイプトランスフォームに手動で変更された更新を元に戻す

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプまたはジョイントを選択します。

  2. ビューポート上にマウスカーソルを置いてクリックして、 Reset Transform を選択します。 Reset Transform は、シェイプトランスフォームハンドルを使って変更された更新のみを元に戻します。

トランスフォームハンドルモードを切り替える

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. シェイプまたはジョイントを選択します。

  2. 上部のツールバーの Enable Handle をオンにします。

  3. ビューポート上にマウスカーソルを置いてYを押すと、トランスフォームハンドルモードを切り替えることができます。

複数のジョイントを包含した1個のコリジョンシェイプを作成する

  1. Ragdoll Collision Shapes SOPのビューポートステートで、シェイプ/ジョイントを選択します。

  2. クリックして、 Merge Convex Hull with Parent を選択します。

複数のコリジョンシェイプの親シェイプへのマージをやり直す

Ragdoll Collision Shapes SOPのビューポートステートで:

  1. Zを押して、 Restore from Groups モードに入ります。マージされたジョイントが選択できるようになります。

  2. シェイプまたはジョイントを選択します。

  3. ビューポート上にマウスカーソルを置いてクリックして、 Restore Convex Hull を選択します。

  4. 再びZを押して、 Restore from Groups モードを抜けます。

または

Ragdoll Collision Shapes SOPの Generate Shapes セクションにある Generate Shapes Group パラメータから、ジョイント名の頭に^が付いた関連ジョイントを除去します。

コリジョンシェイプが交差している箇所を表示する

Ragdoll Collision Shapes SOPの Display Intersections をオンにします。

または

Ragdoll Collision Shapes SOPのビューアステートの上部のツールバーの Display Intersections をオンにします。

隣接していないコリジョンシェイプがお互いに交差している領域は赤で表示されます。 これは、ラグドールソルバが重複しているシェイプを処理する際に問題になり得る領域をハイライトするのに役立ちます。

コリジョンシェイプの交差を修復する

Ragdoll Collision Shapes SOPのビューアステートで:

  1. 調整したいシェイプを選択します。

  2. Enable Handle をオンにして、そのハンドルを使用して、シェイプを移動、回転、スケールさせます。

ラグドールシミュレーションを実行する

Ragdoll Solver SOPは、入力スケルトンに対してラグドールRBDシミュレーションを実行します。

  1. Ragdoll Solver SOPで、Electraが何かに衝突できるように地面を有効にします。 Ground Collision セクションにある Ground TypeGround Plane に設定します。

  2. Ragdoll Solver SOPを選択して、ディスプレイフラグをオンにします。

  3. プレイバー Playを押して、シミュレーションを再生します。

    ラグドールシミュレーション
  4. 上流のConfigure Joint Limits SOPで特定のジョイントに対してジョイント制限が作成されていなかった場合、ラグドールソルバは、それらのジョイントがその場で固定されているものとして扱って、それらのジョイントが動けないようにします。 この例では、足のジョイントにジョイント制限が作成されていません。 ラグドールシミュレーションは、すべてのジョイントに対して実行されますが、その足のジョイントはその場で固定されます:

    足のジョイントにはジョイント制限が作成されていません

上半身のみをラグドールとしてシミュレーションする

この例では、上半身のジョイントにのみラグドールシミュレーションを実行したいとします:

  1. Ragdoll Solver SOPの Ragdoll セクションの Group パラメータの隣りにあるをクリックします。

  2. 上半身のジョイントを選択します:

    • 開いたリグツリービューで、上半身のジョイントを⇧ Shiftまたは⌃ Ctrl選択して、 Accept をクリックします。

      または

    • ビューポート内で、上半身のジョイントを選択して、Enterを押します。

    Group パラメータに入っていないジョイントは非アクティブコリジョンシェイプ(シミュレーションされないオブジェクト)として扱われます。

    上半身のみのラグドールシミュレーション
  3. ラグドールシミュレーションの横に参照として入力コリジョンシェイプを表示させるには:

    • Ragdoll Solver SOPの Guide Geometry セクションの Display Reference Collision Shapes をオンにします。

    • Offset パラメータを調整して、入力アニメーションからラグドールシミュレーション結果をオフセットさせます。

    ラグドールシミュレーションのスケルトンが入力シェイプの位置に表示されます:

    元のアニメーション(左); ラグドールシミュレーション(右)

入力アニメーションに合わせる

ラグドールソルバを実行する前に、単純なアニメーションを追加します:

入力アニメーション

ラグドールシミュレーションを実行する時に、その入力アニメーションに合わせようとしたいのであれば、Ragdoll Solver SOPの Match Local Transforms をオンにします:

入力アニメーションに合わせようとした結果

入力アニメーションにもっと強く追従させるには、 Match Local Transforms をオンにしたまま Bend Stiffness を上げます:

入力アニメーションにもっと強く追従した結果

ジョイントの位置を入力アニメーションにピン留めする

Electraの右手を入力アニメーションの位置にピン留めするには:

  1. Ragdoll Solver SOPの Ragdoll セクションの1つ目の構成セットをデフォルト値のままにします( Group*Match Local Transforms をオフ)。

  2. Configurations の横にあるをクリックして、もう1つ構成セットを追加します。

  3. この2つ目の構成セットでは、右手のジョイントを選択します:

    • Group パラメータの横にあるをクリックします。

    • 開いたリグツリービューで、右手のジョイントを選択して、 Accept をクリックします。

      または

      ビューポート内で、右手のジョイントを選択して、Enterを押します。

    Note

    Configurations マルチパラメータ内の下にあるエントリーが上にあるエントリーを上書きします。

  4. Match World Transforms をオンにします。

    右手を入力アニメーションにピン留めした結果

取り付けられていないコリジョンシェイプのルートをピン留めする

上流のRagdoll Collision Shapes SOPで一部のジョイントセットにのみコリジョンシェイプを作成していた場合、 例えば、右腕のジョイントにのみコリジョンシェイプを作成していた場合、その右腕をシミュレーションすると、その右腕はどこにもピン留めされていないので重力で落下します:

右腕にのみ作成されたコリジョンシェイプ

この腕を入力アニメーションに追従させる1つ目の方法は、 Match World Transforms をオンにすることです。 2つ目の方法は、 Pin Root をオンにすることです。これは、(コリジョンシェイプを持っている)腕のルートジョイントを入力アニメーションにピン留めします。

これは、ジョイントの階層の上位にあるどのコリジョンシェイプにも接続されていないジョイントチェーンがある場合に役立ちます。 Pin Root オプションを使用すると、手動でオブジェクト同士を拘束することなく、ジョイントチェーンをルートジョイントの動きに追従させることができます。 ルートジョイントは、入力アニメーションに追従し、残りのジョイントチェーンはラグドールとしてシミュレーションされます。

ルートジョイントを入力アニメーションにピン留めした結果

キャラクタをオブジェクトに拘束させる

この例では、Electraの手をボックスの角に拘束させます。

  1. Box SOPを作成し、そのボックスに単純な動きのキーフレームを設定します。

  2. このBox SOPの出力をRagdoll Solver SOPのCollision Geometry入力(3番目の入力)に接続します。

    ボックスがElectraに衝突
  3. Constraints セクションの Constraints マルチパラメータの横にあるをクリックして、いくつかの拘束を追加します。

    デフォルトの拘束

    Note

    Ragdoll Solver SOPの Collision Geometry セクションでは、このボックスの物理特性を設定することができます。 デフォルトでは、 Collision TypeAnimated (Rigid) に設定されているので、このボックスはアニメーションに追従します。 Collision TypeActive に設定すると、このボックスはラグドールとしてシミュレーションされ、重力の影響を受けて、その場に留まります。

  4. Electraの左手をボックスに拘束します:

    • Joint Group パラメータの横にあるをクリックします。

    • 開いたリグツリービューで、左手のジョイントを選択して、 Accept をクリックします。

      または

      ビューポート内で、左手のジョイントを選択して、Enterを押します。

  5. Electraの手をボックスの前面の最も近い角に拘束します:

    • Constrain ToClosest Location on Primitive に設定します。

    • Target Primitives Group パラメータの横にあるをクリックします。

    • ビューポート内で、ボックスの前面を選択して、Enterを押します。

  6. Electraの手がボックスに近づくようにするために、 Rest Length Scale を下げ、 Stiffness を上げます。

    Electraの手をボックスに拘束
To...Do this

特定のジョイントにのみシミュレーションを実行する

Ragdoll Solver SOPの Ragdoll セクションにある Group に、シミュレーションしたいジョイントを設定します。

ラグドールシミュレーションのそばに入力アニメーションを表示する

Guide Geometry セクションの Display Reference Collision Shapes をオンにして、 Offset 値を設定します。

入力アニメーションの動きに合わせる

Match Local Transforms をオンにして、 Bend StiffnessBend Damping のパラメータを調整します。

ジョイントを入力アニメーションにピン留めする

Match World Transforms をオンにして、 Position StiffnessPosition DampingOrientation StiffnessOrientation Damping のパラメータを調整します。

ジョイントチェーンのルートを入力アニメーションの動きにピン留めする

Pin Root をオンにします。

ラグドールキャラクタをオブジェクトに拘束する

キャラクタをオブジェクトに拘束するを参照してください。

キャラクタが衝突する地面を有効にする

Ground Collision セクションの Ground TypeGround Plane に設定します。

KineFX

概要

キャラクタ要素の準備

APEXグラフを使用したリギング

APEXスクリプトを使用したリググラフの構築

リグコンポーネントを使用したリギング

ビューポート内でアニメーションを付ける

SOPベースのアニメーション

変形

アニメーションのリターゲット

H20以前

ペイン

別表