On this page

Deprecated

オブジェクトレベルのMuscleツールは、新しいSOPベースのMuscles & Tissueシステムがリリースされるまで非推奨となりました。

Musclesを使ってキャラクタのスキンを変形させる方法

この基本的なワークフローでは、アニメーションキャラクタにMusclesを追加して、それらのMusclesをスキンデフォーマとして使用する方法について説明しています。 この手法では、Musclesを使用することで、処理が重い物理シミュレーションを実行することなくキャラクタのスキンを変形させることができます。 HoudiniのMuscleシステムは、ノンリニアなワークフローに対応しているので、厳格な手順を踏むことなく、キャラクタリグを追加して拡張させることができます。

Note

Musclesを追加するのに、完全にキャラクタにリグを組んだりアニメーションさせる必要はありません。 ただ、リグやアニメーションを構築しておけば直ぐにそのフィードバックが得られるので役立ちます。 この例では、足にリグを組んでアニメーションさせたティラノサウルスを使用します。

Musclesを描画して、それらのMusclesをリグに取り付ける方法

初めに Muscles シェルフのStroke Muscleツールをクリックして、キャラクタのスキンオブジェクトを選択します。 これでストローク状態になり、そのスキンが投影ジオメトリとして取り込まれます。

Tip

マウスホイールまたは⇧ Shiftを押したままドラッグすることで、カーソルの半径を変更することができます。

スキンの表面上をストロークすると、プロキシマッスルが作成されます。あなたが求めている位置になるように同じMuscleを何度もストロークし続けることができます。

実際のMuscleの位置は、 Depth パラメータで制御可能な深度で投影されます。 ストローク状態になっている間は、 Radius を変更したり、 Stroke Profile のランプを使うことで、Muscleのシルエットを変更することもできます。

Note

後でそれらのMusclesに戻って修正するためのオプションが用意されているので、現時点でそれらのMusclesが正しくなっている必要はありません。

一度Muscleの初期配置に満足したら、Enterを押してストロークを受け入れるか、パラメータダイアログの Accept Stroke を押します。 他にも Accept and Create a New Stroke のオプションがあります。これは、ストロークを現在のMuscleに確定しますが、Stroke Muscleツールのままにすることができるので、続けて他のMuscleを作成することができます。 これによって、キャラクタ上に複数のMuscleを迅速に作成することができます。

Note

アニメーションを再生すると、そのMuscleがキャラクタと一緒に動いていないことが分かります。なぜなら、Muscleがどこにも接続されていないからです。 Muscleノードには2つの入力があります。1番目の入力は、Headアンカー(赤)の親の入力です。2番目の入力は、Tailアンカー(緑)の親の入力です。

Attach To Bonesシェルフツールを使って、Muscleをボーンに接続します。 キャラクタリグに取り付けたいMuscleを選択してEnterを押し、次にHeadアンカーを選択してEnterを押し、次にTailアンカーを選択してEnterを押します。

ビューポート内でMusclesを取り付けるこのインタラクティブな方法は、ネットワークツリー内からノードを探すのが面倒になるくらいMusclesとリグが複数ある時に便利です。

Tip

このツールの名前は Attach to Bones ですが、Muscleアンカーはボーン以外にも付けることができ、オブジェクトや拘束にも取り付けることができます。

Muscleハンドルを使ってMuscleの形状を変更する方法

⌃ Ctrl + Rを押すことでポーズ状態がアクティブになります。これによって、Musclesの位置と向きの両方を変更することができます。 ⇧ Shiftを押したまま複数のMuscleを選択してドロップダウンから Global Transform Handle を選択することで、一度に複数のMuscleに位置と向きを適用することができます。 これは、すべてのハンドルが選択したオブジェクトすべてに影響を与えれるように1つのハンドルにまとめます。

Tip

編集中に内部ハンドルをビューアからクリアするには、選択したMuscleに対してビューポートの Muscle チェックボックスを無効にすることで、それらのMusclesの外側のジオメトリを非表示にすることができます。

Tip

Muscle Radialメニューをアクティブメニューにして使用することもできます。ビューポート内でCを押すことでそのメニューが開きます。 これは、Muscleオブジェクトを迅速にそれだけを表示したり表示/非表示をするのに役立ちます。詳細は、Radialメニューのヘルプを参照してください。

Musclesがスキンの表面を押し上げるように編集することで、そのMusclesの外側表面がキャラクタのスキンを膨れ上がらせます。 ハンドルを使ってこれを行なうことができ、さらにその初期セットアップがMuscleオブジェクトを制御します。 Geometry タブには、内部のMuscle Rigsで変形させる前のMuscleの初期形状を定義するパラメータがあります。 例えば、ランプによって Profile Curve を変更し、最小/最大値によってプロファイルが適用される範囲を設定することができます。 詳細は、Muscleオブジェクトを参照してください。

Note

各ハンドルの初期方向は、Muscleを作成した時にあなたが描画したストロークのサーフェス法線ベクトルによって決まります。 各ハンドルのY軸は、その法線ベクトルに整列します。

初期のMuscleの位置を一度セットアップしたら、この状態をキャプチャーポーズとして、それらのパラメータ値を保存する必要があります。 これは、Musclesを選択してから Capture Deform タブの Set Capture Pose ボタンを押すことで可能です。 これを行なうことで、Muscleパラメータのコピーがフリーズされるので、Muscleのキャプチャーポーズが必要な時にいつでも、他のツールからそれらのパラメータにアクセスすることができます。

次に、 Jiggle タブの Use Jiggle チェックボックスを有効にすることで、自動的にMusclesにセカンダリアニメーションを追加することができます。 これによってJiggle(微震)が有効になり、そのJiggle品質の挙動を制御することもできます。 Musclesのボディには自動的に幾分のオーバーシュート(超過)やスプリングバック(戻り)が適用されます。

Note

これによって、処理が重いシミュレーションを実行することなく簡単に揺れを追加することができます。

Musclesを変位デフォーマとして使用する方法

Muscles シェルフのMuscle Displaceツールをクリックしてスキンオブジェクトを選択してから、変位に使うMusclesを選択します。 すると、大腿部に膨らみの効果が確認できることでしょう。

アニメーションを再生すると、Musclesが押し出した箇所でスキンがそれに応じて変形していることが確認できます。 Muscleの動きは、スキンサーフェスに依存していません。キャラクタが動くと、スキンは直接Musclesに拘束されていないので筋肉上とその周辺を滑ります。

Tip

Muscle Deform SOPでは、スキンの緊張と弛緩のパラメータを調整することができます。

既存の変位セットアップにMusclesを追加する方法

マッスルのワークフローは完全にプロシージャルなので、変位セットアップにMusclesを追加するのは比較的単純です。 追加でMuscleを構築してそれをリグに取り付けたら、そのMuscleを変位セットアップに組み込む必要があります。 単に、再度 Muscles シェルフのMuscle Displaceツールをクリックしてスキンオブジェクトを選択してからEnterを押します。 この時に、その変位セットアップにMuscleを追加または削除するのか促されます。⇧ Shiftを押したままその新しいMuscleをクリックすると追加、⌃ Ctrlを押したままMuscleをクリックすると削除になります。

すべてのMusclesが選択されていることを確認して、Enterを押します。 このシェルフツールは、その新しいMuscleをObject Mergeに自動的に挿入します。

Muscleマスクの使い方

場合によっては、スキンの領域が、重なったMusclesからの影響を受けてしまって、その変位量が正しくないことがあります。 この問題は、Muscleマスクを使って回避することができます。Muscleマスクを使用することで、Muscle(またはMusclesのグループ)の変位量を、ウェイト値でペイントしたスキンの特定の領域に制限することができます。

Muscles シェルフのPaint Muscle Maskツールをクリックしてキャラクタのスキンジオメトリを選択します。 ドロップダウンメニューを使って、現在の領域として使用したいMuscleを選択します。次に、Muscleからの影響を受けるスキンの領域をペイントします。

Note

このツールは、スキンをペイントするまでは、すべてのMuscle変位を無効にします。このツールは、ペイントする前にすべてのウェイトマスクを自動的に0に設定します。

Tip

ビューポート内での動作を高速化したいのであれば、ディスプレイフラグをCapture Layer Paint SOPに切り替えることで、ペイントした時に処理される計算量を減らすことができます。 これは、ペイントした時のバルジ(膨らみ)が表示されなくなりますが、だいたいのMuscleの位置が分かっているなら、これによって迅速にペイントすることができます。

より視覚的な手法を用いたいのであれば、オブジェクトの可視性メニューからビューを Ghost Other Objects に切り替えて、⌃ Ctrl + を使ってペイントしたいMuscleを選択します。 これは、選択を変更した時にドロップダウンメニューが自動的に更新されるので、堂々とスキン上をペイントすることができます。

Tip

Space + Yは、 Muscleをブロックせずにスキンをペインして他のMuscleの選択に戻ることができるようにビュー間を切り替えることができます。

たいていの場合、Muscle Deform SOPは個々にMusclesを扱うよりも、複数のMusclesをグループとして扱った方が合理的です。 一群のMusclesに論理名を与えてマスクをペイントすることができます。どのMuscleオブジェクトにも、この目的のために用意された Muscle ID パラメータがあります。 デフォルトでは、そのパラメータには$OS変数のエクスプレッションが設定されていて、このエクスプレッションは、そのオブジェクトノード名を展開するだけです。 つまり、どのMuscleにも固有のIDが割り当てられています。このデフォルトを上書きすることで、一群のMusclesに共有IDを割り当てることができます。 Muscles シェルフのPaint Muscle Maskツールをクリックして3本の左太もものMusclesを選択して、 Muscle ID$OSからL_thighに変更します。

セットアップしたMuscle Deformに接続されているすべてのMusclesには、 Muscle ID Point/Primitiveアトリビュートが付与されます。 Muscle Deform SOPは、その値を使って筋肉、中心、ウェイトマスクのマッチングを行なうことで、指示されたとおりにバルジ(膨らみ)を発生させます。 Muscle Capture SOPは、Muscle IDとウェイトマスクとの初期の関係性のマスキングを担います。

Note

オリジナルのMuscle IDの名前は、Muscle IDの名前をグループ化して名前変更する前にペイントされていた場合、その名前が古くなってもドロップダウンメニューに残ります。 Capture Layer Paintノードの Reset All Changes をクリックすることで、その古いマスクをクリアすることができます。 この保存された情報をクリアすると、ドロップダウンメニューからオリジナルの名前のMusclesが削除され、グループ化されたMusclesが一個のエントリーになっていることが分かります。 さらに、⌃ Ctrl + でペイントする領域を選択すると、同じIDのグループ内のすべてのMusclesが選択されます。

適切に変形を動作させるために、一群の領域に対してウェイトマスクを再度ペイントしてください。 Muscle Deform SOPのディスプレイフラグを有効にすると、その変形が以前よりもうまく動作し、その重複問題が解決されているのが確認できるはずです。

Muscleセットアップをミラー化する方法

従来のキャラクタセットアップでは、片側のリグに対してMuscleのほとんどの作業を行なってから、ミラーリングを使って、対称平面を基準にあなたの作業をコピーします。

Tip

標準の命名規則に準拠してノード名を付けることで、ミラー化が容易になります。例えば、左側を表現する場合には、単純にL_のように接頭辞を付けます。

Muscles シェルフのMirrorツールをクリックします。このツールは、汎用的なミラー化ツールですが、Muscles以外では動作しません。 選択されたものすべてがミラー化されます。ビューポートよりもネットワークエディタ内でMusclesを選択した方が簡単です。その方が不意に他のものを選択しなくて良いです。

オペレーションコントロールツールバーの New Prefix パラメータを使用して、古いL_接頭辞を新しいR_接頭辞に置換することで右側を表現することもできます。 そして、Enterを押して対称コピーを確定します。 このミラー機能は、ノードの入力を調べて、それらの入力がL_R_の命名規則に準拠している親に接続されていれば、それらの入力が自動的にミラー側の親に接続されます。

アニメーションを再生すると、ミラー化されたMusclesが正しいボーンに取り付けられていて、オリジナルのMusclesと同じJiggle設定でアニメーションしているのが確認できるはずです。

Musclesをコピーしても、スキンへの影響はコピーされません。 あなたが太ももの筋肉に対して行なったことと同様に、Muscle Displaceセットアップにそれらの新しいMusclesを含める必要があります。 単に Muscles シェルフのMuscle Displaceツールをクリックしてスキンを選択し、Enterを押します。 既にMusclesが含まれていれば、それらがハイライトされます。追加したいMusclesを⇧ Shift + クリックして、Enterを押して確定します。

最後の手順は、コピーされたMusclesの変位によってスキンが影響を受けるようにウェイトマスクをミラー化することです。

Tip

より正確に選択できるようにするには、選択する前にSpace + 3をタイプして、ビューを正面ビューに変更します。

Muscles シェルフのMirror Muscle Maskツールをクリックしてミラー化したマスクウェイトを受けるポイントを選択し、Enterを押して選択を確定します。

Tip

Space + 1を押してPerspectiveビューに戻ります。

ミラー化したいMusclesを選択します。自動的に検出されなかったMusclesを追加するには、⇧ Shift + クリックして、Enterを押して選択を確定します。 最後に、(自動的に検出されるはずの)目的のMusclesを選択して、Enterを押します。

Muscleマスクの使用は、誤った変形の修復に役立つだけでなく、変位計算の量を最小限に抑えることでシミュレーションをより効率的にします。 Muscleマスクを使用することは、デフォーマがゼロ以外の値のMuscle IDを見つけた時にスキンポイントの投影のみに時間を費やすことを意味します。

Tips

  • 上記と同じワークフローでMuscleオブジェクトをレイヤー状にして重ねることで、基本的なMuscle形状でスキン内にディテールを生成することができます。

  • Muscleオブジェクトを使って、動物の腹部などのまったく解剖学的な筋肉でない内部形状を表現することもできます。単一形状のMuscleオブジェクトを使用することで、副次的な軽い揺れを生成し、スキン内で跳ね返る内部的な体重の効果を取得することができます。

  • Musclesの数でパフォーマンスを悪くし始めるような複雑なセットアップでは、一時的にすべてのJiggle(微震)を無効にして、作業しているMusclesにのみJiggleを有効にすることができます。たとえJiggleアニメーションが軽くても、Musclesの数が増えると、幾らか遅延が発生します。

  • 再生を高速化する他の方法は、あなたが作業しているMusclesだけを表示するようにビューポートを孤独化させることです。

Musclesを作成するツール

TMusclesを作成するための新しいツールがMusclesシェルフ上にあります。

Muscle

HeadとTailのアンカーを接続したRigged Muscleを作成します。

Stroke Muscle

スキンオブジェクト上にカーブをストロークすることで、Rigged Muscleを作成します。

Muscle Rig

スキンオブジェクト上にカーブをストロークすることで、Musclesの内部コンポーネント(リグ)を作成します。

Muscle Pin

Franken Muscleの領域をキャラクタリグにピン留めするための単純なリグコンポーネントを作成します。

Franken Muscle

いくつかのジオメトリオブジェクトといくつかのMuscle RigとMuscle Pinで構成されたHybrid Muscleを作成します。

Attach To Bones

Muscles、Muscle Rig、Muscle Pinアンカーをシーン内の他のオブジェクトに接続します。

Detach From Bones

シーン内の他のオブジェクトからMuscles、Muscle Rig、Muscle Pinアンカーの接続を解除します。

Set Muscle ID

選択したMusclesにMuscle IDを設定します。

Muscle Displace

選択したスキンジオメトリにデフォーマを適用することで、Musclesがスキンと接触した箇所でそのスキンが変位します。

Paint Muscle Mask

スキンジオメトリ上にマスクアトリビュートをmuscle_id毎にペイントして、Muscle Deformの効果を特定の領域に制限します。

Mirror Muscle Mask

ジオメトリオブジェクトの片側のMuscleマスクウェイトを反対側に適用します。

Tissue System

筋肉、モデル化された解剖学的なボーン、スキンオブジェクトを集めて、それらを単一ダイナミクスシミュレーションに格納します。

Masterclass

オブジェクトレベルのキャラクタ

リグ

ペイン

アニメーション