スケルトンをリグ用に準備するには、キャラクターのベース スケルトンに追加情報を追加し、 ガイド スケルトン と呼ばれる参照スケルトンを作成します。ガイド スケルトンの情報は、下流のリグ コンポーネントによって取得され、キャラクターのリグ機能の構築に役立ちます。
ガイドスケルトン
ガイド スケルトンは、タグ、プロパティ、およびその他の情報が追加されたキャラクターのベース スケルトンです。ガイド スケルトン用にリグが構築されるわけではないことに注意してください。ガイド スケルトンの追加情報を使用して、キャラクターの最終的なリグを構築するだけです。ガイド スケルトンのジョイントをガイド ジョイントと呼びます。
ガイド スケルトンを作成するために追加できる情報の一部は次のとおりです。
- リグ上のコントロールを作成するための参照として使用される追加のジョイント。
- ジョイントのグループを識別するタグまたはラベル。
- ガイド ジョイントに関する特定の情報を設定するプロパティ。
注記 用語に関する注意: fktranform リグ コンポーネントを使用してスケルトン (またはガイド スケルトン) をリグに変換すると、スケルトンのジョイントは1 対 1 のマッピングでTransformObjectグラフ ノードに変換されます。これらの TransformObject ノードは基本的に APEX のジョイント階層を構成するため、理解しやすいように、TransformObject ノードをAPEX ジョイントと呼びます。 APEX ジョイント上の少なくとも 1 つの変換コンポーネント (移動、回転、またはスケール) がプロモートされると、APEX ジョイントは、ユーザーがビューポート内で操作できるコントロールになります。 |
タグ
タグは、ガイドジョイントに追加されるラベルで、ジョイントを識別してグループ化するためのものです。例えば、スケルトンの左側にある肩、肘、手のジョイントを「L_Arm」という文字列でタグ付けし、これらのジョイントを体の一部としてグループ化することができます。このタグは、Rig Componentによって、リグの機能を適用するジョイントのグループを特定するために使用されます。タグは、スケルトンがRig Componentに情報を伝える手段です。
タグは、ガイドジョイントの tags
という文字列配列アトリビュートに保存され、Attribute Adjust Array SOPを使用して作成されます。
注記 ジョイントにタグを指定しても、Rig Componentが自動的にそれを認識するわけではありません。Rig Componentを更新してタグを取得する必要があります。Rig Component内のSegmentパラメータに取得するタグを指定してください。 |
プロパティ
プロパティは、ガイドジョイントに保存されている情報で、Rig Componentによって後で取得され、作成するコントロールの設定に使用されます。例えば、キャラクターの指のコントロールをボックス形状にしたい場合、ガイドスケルトン内の指のジョイントに対してコントロール形状のプロパティを設定できます。下流のfktransformコンポーネントがリグのコントロールを作成する際、このプロパティを指のガイドジョイントから取得し、ボックス形状のコントロールを作成します。
プロパティは、ガイドジョイントの properties
という辞書アトリビュートに保存され、Attribute Adjust Dictionary SOPを使用して作成されます。以下のプロパティを設定することができます。
プロパティ |
タイプ |
説明 |
---|---|---|
scaleinheritance |
|
APEXジョイントのスケール継承 |
rord |
|
APEXジョイントの回転順序 |
xord |
|
APEXジョイントの変換順序 |
promote |
|
APEXジョイントでプロモートする変換コンポーネント“t r s” |
shape |
|
コントロール形状 |
shapetranslate |
|
コントロール形状の位置 |
shaperotate |
|
コントロール形状の回転 |
shapescale |
|
コントロール形状のスケール |
shapecolor |
|
コントロール形状の色 |
タグを使用した基本的な例
この例では、エレクトラの腕と脚にタグが追加されています。これらのタグは、下流のマルチIKリグコンポーネントによって取得され、タグ付けされた手足にIK機能が追加されます。
タグを使用してガイドスケルトンを作成する
まず、エレクトラのベーススケルトンにタグを追加してガイドスケルトンを作成します。
- Electra test geometry SOPを作成し、Output を Skin Surface に設定します。
-
パラメーターを設定します。
-
Attribute Class を Pointに設定
-
Array Type を Stringに設定
-
-
左のツールバーで「ハンドルを表示」
をクリックするか ビューポートにカーソルを合わせて Enter キーEnterを押すことで Attribute Adjust Array Viewer Stateに入ります
- ジョイントを選択します。
- Aをおす
- タグ名を入力
-
Enterを押す
Attribute Adjust Array SOPの「Set Values」セクションにあるマルチパラメータのエントリは、Viewer Stateで設定されたタグで自動的に埋められます。
-
スケルトンの両側のタグに異なる色を設定します:
-
Attribute Adjust Array SOPの「Visualize」セクションで、Colorizeの横にあるアイコンをクリックして、タグのグループに色を追加します。
-
Valueパラメータを「L_*」に設定します。
-
色を設定します。
-
右側についても同様に繰り返し、Valueを「R_*」に設定します。
タグの色が切り替わらない場合、一度sキーで選択ツールに切り替え、その後再度EnterキーでViewer Stateに入ります。
-
- タグが追加されたエレクトラのベーススケルトンがガイドスケルトンです。Pack Folder SOPはガイドスケルトンをキャラクターファイルのセットに戻します。Pack Folder SOPで次の操作を行います。接続順で入力番号が決定します。
-
1番目の入力: エレクトラのスキン。Name = Base、Type = shpに設定します。
-
2番目の入力: エレクトラの基本スケルトン。Name = Base、Type = skelに設定します。
-
3番目の入力: ガイドスケルトン。Name = Guides、Type = skelに設定します。
キャラクターフォルダー構造内のキャラクター要素の名付け方法についての詳細は、Packed Character Formatを参照してください。
-
- ガイドジョイントのタグを表示するには、以下の手順を実行します。
- Attribute Adjust Array SOPを選択します。
- ジオメトリスプレッドシートで、上部ツールバーから
を選択します。
-
腕と脚のジョイントについて、
tags
列のエントリを右クリックし「Inspect」を選択します。
腕のジョイントには、次のタグの文字列配列が表示されます。
[ L_Arm ]
スケルトンタグをRig Componentで使用する
次に、HoudiniのプリビルトのRig Componentを使用して、エレクトラの腕と脚にIK機能を含むリグを構築します。
- まず、fktransform Rig Componentを使用してFK機能を追加します。
fktransformコンポーネントはスケルトンジョイントをAPEXジョイントに変換します。fk APEX Autorig Component SOPで次の操作を行います。
-
Component Sourceをfktransformに設定します。
-
Sourceタブで、skeletonをGuides.skelに設定します。
-
Controlsタブで、tpromotegroupとrpromotegroupを*に設定します。これにより、すべてのAPEXジョイントのtranslateとrotateコンポーネントがプロモートされ、ビューポートで操作できるようになります。
-
- bonedeform Rig Componentは、スケルトンにキャラクタースキンを追加します。 APEX Autorig Component SOPで、Component Sourceを
bonedeform
に設定します。
- Auto Rig Componentを追加します。
- Componentをbonedeformに変更します。
ビューポートにスキンが表示されます。
- Auto Rig Componentを追加します。
- multiik Rig Componentは、リグにIK機能を追加します。このコンポーネントは、スケルトンジョイントのタグを参照し、それらのジョイントグループに自身を追加することで、リグに複数回追加できます。multiik APEX Autorig Component SOPでの設定は次のとおりです:
- 3つ目のAuto Rig Componentを追加します。
- Component Sourceを
multiik
に設定します
- Drivenタブで、
segments
を*Leg *Arm
に設定します。これにより、multiik Rig Componentが、LegおよびArmタグを持つガイドジョイントにIKを追加するよう指示されます。
- 3つ目のAuto Rig Componentを追加します。
注記 ユーザーがガイドスケルトンを作成するために追加できるタグに加えて、Rig Componentはコントロール、APEXジョイント、およびそれらが作成する他のグラフノードにタグを追加することもできます。後続のRig Componentはこれらのタグを認識し、特定のノードグループに対して独自の機能を実行できます。 例えば、fktransformコンポーネントは、作成するすべてのAPEXジョイントに |