On this page |
キャプチャは、スキン変形用のジオメトリ上にウェイトを作成するための方法です。 キャプチャウェイトはジオメトリ上に作成され、スケルトンジョイントにウェイトが付けられます。 ジョイントが動くと、キャプチャウェイトとジョイントの位置に応じてジオメトリが変形します。
他のDCCソフトウェアとは対照的に、Houdiniのキャプチャの工程は、ウェイト作成と変形で分かれています。 こうして、Houdiniの広範なノードネットワークを使用してプロシージャルにスキンジオメトリをスキニングし、非破壊ワークフローで作業することができます。
キャプチャウェイトは、以下のSOPノードを使用して作成および修正することができます:
キャプチャウェイトの作成 |
説明 |
---|---|
ジョイントの位置とボリュームに基づいて、滑らかなキャプチャウェイトを作成します。 より柔らかくて、機械的でない、有機的な変形に対してうまく動作します。 |
|
ジオメトリからスケルトンジョイントまでの距離に基づいて、キャプチャウェイトを作成します。 これは、Joint Capture Biharmonic SOPよりも素早く、計算負荷の低い処理ですが、特に有機的なサーフェスでは、ウェイトがあまり均等に分散されなかったり、滑らかにならなかったりします。 Joint Capture Proximity SOPは、チューブなどの単純なジオメトリのリギングでうまく動作します。 |
|
これは、指定したジョイントにジオメトリピースが100%のウェイトで割り当てられる剛体のウェイトメソッドです。 |
|
キャプチャウェイトをジオメトリ上にインタラクティブにペイントすることができます。 |
キャプチャウェイトの修正 |
説明 |
---|---|
ジオメトリをジョイントに取り付けて、ジオメトリがキャプチャの結果に影響を与えるようにします。 |
|
Joint Capture Paint SOP |
既存のウェイトを持つジオメトリ上に、キャプチャウェイトをインタラクティブにペイントすることができます。 |
キャプチャウェイトの作成 ¶
以下は、キャプチャウェイトを作成し、ジオメトリを変形する基本ワークフローです。
Joint Capture Biharmonic SOPがジョイント位置に基づいてジオメトリ上にキャプチャウェイトを作成し、
Joint Deform SOPがキャプチャウェイトに応じてジオメトリポイントを移動します:

Joint Capture Biharmonic SOPでDisplayフラグをオンにして、各ジョイントの影響を受けているジオメトリ領域を表示します。 下図の例では、赤の領域のジオメトリポイントは、joint_0の位置に追従します。紫の領域のポイントはjoint_1、青の領域のポイントはjoint_2に追従します:

Rig Pose SOPを使用することで、スケルトンのポーズを変更することができ、変形したジオメトリをビューポートで確認することができます:

-
Rig Pose SOPを選択します。
-
Joint Deform SOPのDisplayフラグをオンにします。
-
左側のツールバーの
Show Handleをクリックするか、ビューポート内にマウスカーソルを置いてEnterを押します。 これで、Rig Poseビューアステートになり、ジョイントを選択および移動すると、変形したジオメトリを確認することができます:
Rig Pose SOPを使用してジオメトリを変形
キャプチャアトリビュート ¶
キャプチャウェイトは、Joint Capture系ノード(Joint Capture Biharmonic SOP、Joint Capture Proximity SOP、Joint Capture Paint SOP)によって生成されるboneCapture
アトリビュートに格納されます。
このboneCapture
アトリビュートは、“パック”または“アンパック”のどちらのフォーマットでも設定することができます。
Joint Capture系ノードによって生成されるboneCapture
アトリビュートはパックフォーマットになっており、このフォーマットの方が読み込みや移動が簡単です。
アンパックフォーマットは、VEXを使用してboneCapture
アトリビュートを簡単に操作するために存在しています。
パックキャプチャアトリビュート ¶
前の例では、チューブジオメトリでBiharmonic(重調和)キャプチャを実行しました。 以下の画像では、チューブジオメトリのポイント110は主にスケルトンのjoint_1(紫の領域)から影響を受け、joint_0(赤の領域)からはあまり影響を受けていないことが分かります:

boneCapture
アトリビュートのパックフォーマットは、Point Index Pairアトリビュートです。
ジオメトリの各ポイントで、そのポイントに影響を与えるジョイント毎に値のペアが格納されます。
値のペアは、ジョイントキャプチャ領域とそれに呼応するウェイトで構成されます。
ウェイト値はキャプチャ領域間で正規化されます。
Geometry Spreadsheetは、チューブジオメトリの各ポイントのboneCapture
アトリビュートを表示します:
-
Joint Capture Biharmonic SOPを選択します。
-
ペインの上部で、
New Tabアイコンをクリックして、 New Pane Tab Type ▸ Inspectors ▸ Geometry Spreadsheet を選択します。
-
Geometry Spreadsheetで、上部のツールバーから
Pointsを選択します。下の例では、ポイント110は主にjoint_1(より高いウェイトを持つ)から影響を受け、joint_0の影響は少ないことが分かります:
Index Pair boneCaptureアトリビュート
アンパックキャプチャアトリビュート ¶
Index Pairアトリビュートは配列アトリビュートに“アンパック”することができ、これによりVEXで操作しやすくなります。
boneCapture
配列アトリビュートは、DetailおよびPointアトリビュートで構成され、Capture Attribute Unpack SOPを使用してIndex Pairアトリビュートから取得することができます:

アンパック配列アトリビュート |
アトリビュートタイプ |
説明 |
---|---|---|
|
Detail |
キャプチャ時のキャプチャ領域の逆静止トランスフォームと、その領域の追加データを含む配列。 これは領域毎に20個のfloatの配列です:(4×4マトリックスに16個、テーパーに2個、最小/最大ウェイトに2個)。 KineFXは4×4マトリックスのみを使用します。他のデータは、レガシーのオブジェクトベースのキャラクタシステムで使用されます。 |
|
Detail |
キャプチャ工程で使用されるジョイントが格納されている配列。 |
|
Point |
|
|
Point |
|
アンパック配列アトリビュートは、Geometry Spreadsheetで確認することができます:
-
Capture Attribute Unpack SOPを選択します。
-
Geometry Spreadsheetで、上部のツールバーから
Detailまたは
Pointsを選択します:
アンパックboneCapture配列Detailアトリビュート boneCapture_data
Pointアトリビュートでのウェイト値は、パックIndex Pair boneCaptureアトリビュートのそれと一致します:アンパックboneCapture配列Pointアトリビュート
アンパックboneCapture
配列アトリビュートは、Capture Attribute Pack SOPを使用してIndex Pairアトリビュートにパックすることができます。
キャプチャジオメトリシェイプを使用してキャプチャウェイトを修正する ¶
Attach Joint Geometry SOPを使用すると、スケルトンジョイントにジオメトリを取り付けることができます。
このジオメトリは、下流の
Joint Capture Biharmonic SOPでのキャプチャウェイト作成の結果に影響を与えます。
Biharmonic(重調和)キャプチャに影響を与えるジオメトリシェイプを作成する工程:
-
キャプチャジオメトリシェイプを作成します。
-
キャプチャジオメトリシェイプをスケルトンジョイントに割り当てます。
-
キャプチャジオメトリシェイプをBiharmonicキャプチャ工程に適用します。
このファイルのサンプルでは、ジョイントに取り付けたジオメトリを使用してBiharmonicキャプチャの結果に影響を与える方法を説明しています。
キャプチャジオメトリシェイプの作成 ¶
ネットワークエディタで、キャラクタのボリューム内部のワールド空間位置にキャプチャジオメトリシェイプを作成します。
ボリューム内部のキャプチャジオメトリポイントのみが、Biharmonic(重調和)計算で考慮されます。
キャプチャジオメトリのサイズまたはシェイプを変更するには、Edit SOPまたは
Transform SOPなどのSOPノードを使用します。
Warning
キャプチャシェイプにはポリゴンジオメトリのみを使用してください。 NURBSは適切に動作 しません 。


Merge Packed SOP(
create_capture_geo_library
)は、キャプチャジオメトリのセットをマージしてシェイプのライブラリを作成します。Merge Packed SOPで:
-
Name Primitive Attribute パラメータはデフォルトでオンになっています。 入力をMerge Packed SOPに接続すると、 Name パラメータが自動的に作成され、入力ノードの名前が入力されます。 Name パラメータを
wrist_left
やhips_tilt
などの分かりやすい名前で更新することで、キャプチャジオメトリシェイプに新しい名前を定義することができます。 -
Name Override Attribute パラメータをオンにすると、デフォルトで
name
アトリビュートに設定されます。 Name Override Attribute がオンの時、Merge Packed SOPは入力ジオメトリに存在するname
アトリビュートの値にシェイプ名を設定します。name
アトリビュートが存在しない場合、代わりに Name パラメータが使用されます。
Warning
下流のAttach Joint Geometry SOPを使用してシェイプをジョイントに割り当てた後は、Merge Packed SOPの Reload Node Names ボタンをクリック しないでください 。 そのボタンをクリックすると、シェイプの名前がデフォルトに戻って、シェイプとジョイントとのすべての割り当てが無効になってしまいます。
キャプチャジオメトリシェイプをジョイントに割り当てる ¶
Attach Joint Geometry SOPを使用して、キャプチャジオメトリシェイプをスケルトンジョイントに割り当てます。 これによりシェイプをジョイントにリンクして、シェイプをジョイントの キャプチャオブジェクト として指定することができます:

Attach Joint Geometry SOPで、 Role パラメータを Capture Geo に設定すると、取り付けられたジオメトリを使用してBiharmonicキャプチャに影響を与えられるようになります。
キャプチャジオメトリシェイプをキャラクタのジョイントに割り当てるには:
-
Attach Joint Geometry SOPを選択します。
-
左のツールバーの
Show Handleをクリックするか、ビューポートにマウスカーソルを移動してEnterを押します。 これで、Attach Joint Geometryビューアステートになります。
-
ビューアステートのツールバーで、 Mode ▸ Assign Shapes を選択してその操作モードをシェイプ割り当てに設定し、 Assign in World Space をオンにします。 ワールド空間シェイプは青で表示されます:
-
ビューアステートで、スケルトンのジョイントをクリックし、Gを押したまま、そのジョイントに割り当てたいシェイプをクリックします。
パラメータエディタの Add Shapes タブに、ジョイントの新しい Assign Shapes マルチパラメータが以下のパラメータとともに表示されます:
-
Group - 選択したジョイント。
-
Shape Name - キャプチャジオメトリシェイプ。
-
Keep Shape World Transform はオンになっています。
ジョイントの周りには、それにシェイプが割り当てられていることを示す青いリングが表示されます。 これで、 Shape Name パラメータのキャプチャジオメトリシェイプが、 Group パラメータのジョイントに割り当てられました。 ワールド空間シェイプの位置(ワールド空間の位置とキャラクタに対する相対位置)は 変わりません 。
ジョイントにシェイプが割り当てられたことを示す青いリング ビューアステートツールバーの Create New Group ボタンをクリックするか、パラメータエディタで手動でマルチパラメータを追加しても、新しく Assign Shapes マルチパラメータを作成することができます。
-
Tip
シェイプの割り当てからジョイントを削除したい場合、ビューアステートで⌃ Ctrlを押したままそのジョイントをクリックします。
キャプチャジオメトリシェイプをキャプチャ処理に適用する ¶
Joint Capture Biharmonic SOPは、キャプチャジオメトリシェイプをジョイントに割り当てた、更新されたスケルトンを受け取り、キャラクタジオメトリ上にキャプチャウェイトを作成します。 その後、キャラクタジオメトリはJoint Deform SOPによって変形されます:

Joint Capture Biharmonic SOP(create_capture_weights
)で、 Capture Geo Role パラメータはデフォルトで Capture Geo に設定されています。
これにより、キャプチャジオメトリがBiharmonicキャプチャの結果に影響を与えるようになります。
キャプチャジオメトリシェイプを対称化する ¶
キャプチャジオメトリシェイプがスケルトンの片側に割り当てられている場合、Skeleton Mirror SOPを使用して、シェイプをもう片側に対称化することができます。
その後、対称化されたシェイプは別のAttach Joint Geometry SOPを使用して入力スケルトンに転送されます:

“”“キャプチャジオメトリシェイプを対称化して入力スケルトンに転送”
keep_left_side_joints
このDelete Joints SOPは、スケルトンの片側のジョイントを削除して、後続の対称化の手順をすっきりと開始できるようにします(キャプチャシェイプとジョイントの両方を対称化する場合)。
例えば、キャプチャシェイプがスケルトンの左側に追加される場合、スケルトンの 右 側のジョイントをすべて削除します。
後続のSkeleton Mirror SOPでは、スケルトンの左側にあるジョイントとキャプチャシェイプが右側に対称化されます。
Group パラメータで、削除したいジョイントのセットを指定します。
mirror_joints_and_capture_geo
このSkeleton Mirror SOPは、対称化の手法でスケルトン上のポイントを複製します。 Skeleton Mirror SOPの出力は、ジョイントシェイプがキャラクタの両側で対称化されたスケルトンです。
Find Tokens パラメータを、スケルトンジョイントの接頭辞または接尾辞と一致するように設定します。
対称化されたジョイントの名前は、元のジョイント名の接頭辞または接尾辞を Replace Tokens パラメータで置き換えたものになります。
例えば、 Find Tokens がL_
で、 Replace Tokens がR_
の場合、L_Arm
の対称化されたジョイントはR_Arm
になります。
transfer_mirrored_capture_geo
このAttach Joint Geometry SOPは、対称化されたシェイプをスケルトンに転送します。
Add Shapes タブで、 Role を Capture Geo に設定します。
Shape Template タブで、対称化したシェイプをスケルトンに転送する方法を指定します:
-
Target Joints - 新しく対称化されたシェイプを適用するスケルトンジョイントを指定します(例えば、
@name=R_*
)。 -
Template Joints - スケルトンに転送するシェイプを指定します(例えば、
@name=R_*
)。 -
Match By を Attribute Value に設定します。 これは、シェイプとジョイントの
name
アトリビュートに基づいて、キャプチャジオメトリライブラリのシェイプをスケルトンジョイントに一致させます(name
アトリビュートは、 Attribute to Match パラメータで指定されます)。 -
Keep Template World Transform をオンすると、シェイプのワールド位置を使用することができます。
シェイプテンプレート ¶
Attach Joint Geometry SOPのShape Template入力(3番目の入力)を使用すると、キャプチャジオメトリライブラリのシェイプをスケルトンジョイントに自動的に割り当てることができます:

promote_prim_to_point
このAttribute Promote SOPは、キャプチャジオメトリライブラリ(
create_capture_geo_library
)の Primitive name
アトリビュートを、Attach Joint Geometry SOPがShape Template入力で受け入れる point アトリビュートに変換します。
以下のパラメータを設定します:
-
Original Name =
name
-
Original Class = Primitive
-
New Class = Point
-
Delete Original をオンにすると、Primitive
name
アトリビュートが削除されます(もう必要ないため)。
attach_capture_geo_to_joints
Add Shapes タブで、 Role を Capture Geo に設定します。
Shape Template タブで、シェイプテンプレートのシェイプをスケルトンに転送する方法を指定します:
-
Target Joints - シェイプテンプレートを適用するスケルトンジョイントを指定します。
-
Template Joints - スケルトンに割り当てるシェイプを指定します。
-
Match By パラメータを Attribute Value に設定します。 これは、シェイプとジョイントの
name
アトリビュートに基づいて、シェイプテンプレートをスケルトンジョイントに一致させます(name
アトリビュートは、 Attribute to Match パラメータで指定されます)。 -
Keep Template World Transform をオンすると、シェイプのワールド位置を使用することができます。
キャプチャウェイトのペイント ¶
Joint Capture Paint SOPを使用すると、キャプチャウェイトをジオメトリ上にインタラクティブにペイントすることができます。
新しいキャプチャウェイトを作成したり、既存のキャプチャウェイトを変更するのに使用することができます:

またRig Pose SOPを使用してアニメーションを追加し、その変形を表示しながら、Joint Capture Point SOPでウェイトをペイントすることもできます:

関連ノード ¶
キャプチャウェイトを作成、編集、ペイント、使用するには、以下のSOPノードを使用します:
ノード |
説明 |
---|---|
ジオメトリをジョイントに取り付けて、Biharmonicキャプチャの結果に影響を与えるようにします。 ジョイント毎に影響する領域を細かく制御できるため、純粋にジョイント位置をベースにしたBiharmonicキャプチャ(Joint Capture Biharmonic SOP)やウェイトペイント(Joint Capture Paint SOP)よりも効果的です。 |
|
配列アトリビュートのセットを受け取り、命名規則を使用してそれらを単一のIndex Pairアトリビュートに変換します。 |
|
Index Pairアトリビュートを受け取り、命名規則を使用してそれを配列アトリビュートのセットに変換します。 |
|
キャラクタの片側のウェイトをもう片方の側に対称化します。 |
|
ジオメトリ全体を制御できるジョイントを設定します。これは主に、剛体として変形されるキャラクタの部分に使用されます。 |
|
ジョイントの位置とボリュームに基づいて、ジオメトリ上に滑らかなキャプチャウェイトを作成します。 ジオメトリはその後、Joint Deform SOPによって変形されます。 より柔らかくて、機械的でない、有機的な変形に対してうまく動作します。 |
|
キャプチャウェイトをジオメトリ上にインタラクティブにペイントすることができます。 |
|
ジオメトリポイントからジョイントまでの距離に基づいて、キャプチャウェイトを作成します。 これは、Joint Capture Biharmonic SOPよりも素早く、計算負荷の低いオペレーションですが、特に有機的なサーフェスでは、ウェイトがあまり均等に分散されなかったり、滑らかにならなかったりします。 Joint Capture Proximity SOPは、チューブなどの単純なジオメトリのリギングでうまく動作します。 |
|
Joint Capture系ノード(Joint Capture Biharmonic SOP、Joint Capture Proximity SOP、Joint Capture Paint SOP)と併用することで、ジオメトリを変形させることができます。 |