Houdini 20.5 Muscles & Tissue

Muscle用ジオメトリの準備

On this page

概要

上手くMuscleシミュレーションを行なうには、適切なジオメトリの準備が重要になります。 このページでは、シミュレーションの前にMuscleジオメトリとボーンジオメトリを準備する方法について説明します。 正しいジオメトリフォーマットと適切な命名規則を使用し、セットアップを検証することで、よくあるシミュレーションの問題を回避することができます。 これらの手順は必須ではありませんが、より良い結果を得るために推奨されています。

ジオメトリ要件

ジオメトリの準備には、Muscleジオメトリとボーンジオメトリの両方が含まれます。

Muscleジオメトリとボーンジオメトリを準備するにあたり、注意点がいくつかあります:

  • すべてのMuscleサーフェスは、交差のないマニフォールド(多様体)のポリゴンジオメトリである必要があります。

  • 入力ジオメトリのプリミティブタイプはパックプリミティブではなく、ポリゴンフェースである必要があります。パックプリミティブの場合は必ずアンパックし、必要に応じて変換してください。

  • ジオメトリがHoudiniのメートル単位系に準拠していることを確認します。

  • 適切な物理シミュレーションにするには、モデルは現実世界のスケールである必要があります。

    • センチメートルからメートルへ:均一スケールを0.01に設定した Transform SOPを使用します。エクスポート前に、スケールを100に設定した別のTransform SOPを使用して、元のサイズに戻すことを忘れないでください。

Muscleジオメトリのみ

  • 各Muscleコンポーネントには、識別できるように一意のmuscle_idアトリビュート値が必要です。

ボーンジオメトリのみ

ボーンサーフェスはMuscleアタッチメントの土台となるため、特別な準備が必要です:

  • 衝突の処理を向上させるため、ジオメトリの解像度はなるべく低くする必要があります。

  • 小さい隙間や穴を可能な限り除去します。

  • 静止位置を参照するために、有効なtposeアトリビュートが必要です。

  • bone_idなどの識別用の文字列アトリビュートは、Muscle to Bone拘束を指定するのに役立ちます。

Muscle IDとTポーズセットアップ

TポーズとMuscle IDは、HoudiniのMuscleシミュレーションシステムの基本を形成します。 Tポーズは、すべての拘束関係とアタッチメントポイントが確立される静止位置です。 muscle_idアトリビュートを使用すると、Muscleのプロパティ、拘束関係、対称的な挙動を個別に制御することができます。 これによって、各Muscleの物理的特性や相互作用をより正確にカスタマイズできるようになります。 適切なMuscle IDを設定することで、プロパティと拘束がグローバルに適用されるのではなく、特定のMuscleに正しく割り当てられるようになります。 これらのセットアップは両方ともシミュレーションの前に行なわれます。Muscle SolverはTポーズを使用して拘束を設定しますが、その際にアニメーションを一時的に削除し、ニュートラルな状態に戻します。

このセットアップは重要です。適切なTポーズとMuscle IDがないと、以下の問題が発生するからです:

  • Muscleアタッチメントの参照位置が安定せず、ターゲットプロパティの割り当てが困難になります。

  • Muscle同士およびMuscleとボーンの関係を正確に確立するのが困難になります。

  • 拘束が不安定になり、Muscleの挙動が不正確になります。また個々のMuscleプロパティを効果的に制御できなくなります。

Muscle IDとTポーズの設定方法の詳細は、Muscles & TissueのワークフローのMuscleパスセクションまたはMuscleマスタークラスのジオメトリ準備のビデオを参照してください。

Muscle ID

muscle_idアトリビュートは、個々のMuscleを識別します。 各Muscleとボーンピースには、固有な識別用のアトリビュートが必要です。

このアトリビュートは2通りの方法で作成できます:

1. 既存の名前から

  1. Attribute Copy SOPを使用して、既存のnameアトリビュートをコピーします。

  2. ソースアトリビュートをname(または既存のアトリビュート)に設定します。

  3. 両方の入力を同じ上のノードに接続します。

  4. ターゲットアトリビュートをmuscle_idに設定します。

2. Muscle ID SOPを使用する

  1. ビューポートステートに入り、個別にMuscleを選択します。

  2. 命名規則に従って適切な接頭辞を割り当てます:

    • 左側のMucleにはL_接頭辞

    • 右側のMucleにはR_接頭辞

    • 中央のMucleにはC_接頭辞

Bone IDアトリビュート

Muscleと同様、ボーンにも識別用のアトリビュートが必要です。 現時点では、ボーンに既定のアトリビュート名はありません。 しかし、bone_idが推奨されており、将来的には標準化される可能性があります:

  1. 利用可能な場合は既存の名前をコピーします。

  2. 新しいBone IDを作成するには Muscle ID SOPを使用します。

    • 名前は分かりやすく、Muscleの命名規則と一貫性のあるものにしてください。

Tポーズセットアップ

Muscle Solidify SOPでは、MuscleジオメトリのTポーズを作成することができます。 処理中に、Tポーズアトリビュートを自動的に生成し、モデルの姿勢を静止位置として格納します。 このノードはこの静止位置アトリビュートをtposeと名付け、すべてのMuscleの拘束計算と変形において、適切な静止位置が使用されるようにします。

ボーンのTポーズセットアップ

Muscleとは異なり、ボーンのTポーズは手動でセットアップする必要があります。 これを行なうには、ボーンジオメトリに Set T-Pose SOPを設定します。 このノードは、Muscleシステムが拘束の計算に使用する重要な静止位置情報を作成および格納します。 Tポーズアトリビュートは、ネットワークの早い段階で指定して、すべての下流ノードがこの参照位置にアクセスできるようにする必要があります。 Tポーズ値は、後続のすべてのMuscleアタッチメントと変形に影響するため、キャラクタの意図した静止位置を正確に表現していることを確認してください。 tposeアトリビュートの値を確認するには、アニメーションされたボーンジオメトリに Extract T-Pose SOPを一時的に配置します。 これによって、結果とTポーズが一致することを確認できます。

プリロール設定

セットアップにプリロールフェーズが必要な場合は、ネットワークに Muscle Preroll SOPを追加します。

このノードは、3つの重要なパラメータによって、静止ポーズとアニメーション間の遷移を管理します:

  • Initialization Frameは、ターゲットポーズとなるフレームを指定し、プリロールの遷移の終点を定めます。

  • Initial Holdパラメータは、遷移を開始する前にシステムがTポーズを維持する時間を決定します。これはフレーム番号に対応し、Tポーズが保持される最後のフレームになります。

  • Pre-roll Durationは、Tポーズと初期アニメーションポーズ間のブレンドの長さを制御し、ダイナミクスのスムーズな統合を可能にします。これはフレーム番号ではなく、フレーム数です。

  • プリロール後の出力アニメーションを入力アニメーションと一致させたい場合はInitial Hold + Pre-roll Duration +1 = Initialization Frameとなるように設定します。

Muscles & Tissue

基本

リソース

  • How-toリソース

    Muscles & TissueシステムのHow-toリソースリスト。

  • トラブルシューティング

    Muscles & Tissueシステムをセットアップする際に遭遇する可能性のある問題と、推奨される回避策または解決策。