| On this page |
このページでは、事前構築済みリグコンポーネントを使用してElectraテストジオメトリのリグを構築します。以下のリグロジックのピースを追加してリグを完成させます:
-
Electraのスケルトンジョイント階層に基づいたFKリグ階層
-
ボーン変形
-
rootコントロールおよびcogコントロールの追加
-
背骨ロジック
-
IKロジック
-
IK/FKブレンド
-
リバースフット
-
Lookat
-
Electraのコントロールの外観設定
これ以降のセクションでは、以下の最終ネットワークを構築する手順を段階を追って説明します:
セットアップ ¶
-
Electra SOPで、 Output パラメータを Skin Surface に設定します。 これによって、Electraのシェイプが1番目の出力として、Electraのスケルトンが2番目の出力として出力されます。
-
Attribute Adjust Array SOPを使用して、Electraのベーススケルトンにタグを追加し、下流で様々なリグコンポーネントによって使用されるガイドスケルトンを作成します。 Attribute Adjust Array SOPでは、 Attribute Class を Point に、 Array Type を String に設定します。
Electraのリグを構築していく中で、タグを追加していきます。 このページの以降のセクションでは、各タグがガイドスケルトンに追加されるタイミングについて説明します。 以下の画像では、リグの構築が完了したElectraのタグのフルセットを確認することができます:
-
Pack Folder SOPは、以下のキャラクタ要素をパックフォルダ構造に追加します:
-
Pack Folder SOPの1番目の入力は、変形に使用されるRestスキンです。 このジオメトリの名前を
Base.shpにします( Name をBase、 Type をshpに設定します)。 ( Name と Type パラメータは、Pack Folder SOPの入力順にリストされます)。 -
2番目の入力はElectraのスケルトンです。このスケルトンの名前を
Base.skelにします( Name をBase、 Type をskelに設定します)。 -
3番目の入力はガイドスケルトンです。これはタグが追加されたElectraのベーススケルトンです。 このガイドスケルトンの名前を
Guides.skelにします( Name をGuides、 Type をskelに設定します)。
-
-
Pack Folder SOPを選択し、Rig Treeビューでパックフォルダ階層を確認します。 Rig Treeビューで、 Type を Packed Folders に設定します:
/ -- Base.shp -- Base.skel -- Guides.skel
FKおよびボーン変形 ¶
ElectraにFKリグを作成し、ボーン変形ロジックを追加してキャラクタのFK機能を確認します:
-
APEX Autorig Component SOPの
fkノードは、fktransformリグコンポーネントで、Electraのスケルトンをリグ階層に変換することでリググラフを作成します。 各スケルトンジョイントを受け取り、リググラフにTransformObject nodeノードを作成します。 APEXネットワークビューでTransformObjectノードを確認することができます。-
fkノードで、 Component パラメータを fktransform に設定します。 -
デフォルトでは、fktransformコンポーネントによって作成されるリグの名前は( Rig セクションの Name パラメータで指定されている)
Base.rigです。 -
Source タブの skeleton パラメータで、リグ階層を作成するのに使用するスケルトンを指定します。 デフォルトでは
Guides.skelに設定されており、これはパックフォルダ構造のガイドスケルトンの名前に一致します。 -
fktransformコンポーネントがパックフォルダ構造にリググラフを追加します。
fkノードを選択し、Rig Treeビューでパックフォルダ階層を確認します:/ -- Base.rig -- Base.shp -- Base.skel -- Guides.skel
-
-
APEX Autorig Component SOPの
bonedeformは、ボーン変形ロジックをリググラフに追加するbonedeformリグコンポーネントです。bonedeformノードで、 Component パラメータを bonedeform に設定します。 restgeo 、 restskeleton 、 outputgeo パラメータのデフォルト値は、パックフォルダ構造のキャラクタ要素の名前に一致します。 -
AnimateステートでElectraにFKポージングを実行します:
-
bonedeformノードを選択し、そのDisplayフラグをオンにします。 -
左側のツールバーにある
Animateをクリックするか、ビューポート内でEnterを押します:
ElectraのFKの挙動
-
-
残りのリグを構築するのに、FKコントロールとして利用可能なすべてのジョイントが必要なわけではありません。
fkノードの Controls タブで、 tpromotegroup 、 rpromotegroup 、 spromotegroup パラメータのすべてのエントリを削除します。
rootコントロールおよびcogコントロールを追加する ¶
transformdriverリグコンポーネントを使用して、Electraリグにrootおよびcogコントロールを追加します。 rootコントロールはスケルトンのルートジョイントにあり、cogコントロールはスケルトンの骨盤ジョイントにあります。cogコントロールは、背骨ジョイントチェーンの親として後ほど使用します。
-
Attribute Adjust Array SOPで、骨盤にタグを追加します(タグの配置についてはセットアップを参照してください)。
pelvisタグはtransformdriverリグコンポーネントによって取得されます。 タグの作成についての詳細はスケルトンを準備するを参照してください。 -
APEX Autorig Component SOPの
add_controlsは、Electraにrootコントロールおよびcogコントロールを追加します。add_controlsノードで、 Component パラメータを transformdriver に設定します。 -
rootコントロールに対して以下を設定します:
-
Driven タブで、 driventransforms を
rootに設定します。これは新しいコントロールによって駆動されるジョイントです。 -
Control タブで、 driver を新しいrootコントロールの名前に設定します。この例では、 driver を
Mainに設定します。 -
driverguide を
rootに設定します。これにより、新しいコントロールがルートジョイントに配置されます。 -
Shape タブでコントロールシェイプを変更します。
-
-
setups の横にある
をクリックし、もう1つコントロールを追加します。
-
cogコントロールに対して以下を設定します:
-
Settings タブで、 use_t と use_r をオンにします。
-
cogコントロールが
pelvisジョイントを駆動するようにしたいので、 Driven タブの driventransforms をpelvisに設定します。 driventransforms パラメータはAPEXパスパターンにも対応しているので、%tag(Pelvis)などの%tag()構文を使用してジョイントのグループを指定することができます。Note
タグは大文字と小文字を区別します。 Electraリグでは、
pelvisTransformObjectノードはすべて小文字です。タグを追加する際、Pelvisタグを大文字にしました。 -
Control タブの driver を
Cogに設定します。 -
cogコントロールを骨盤ジョイントに配置したいので、 driverguide を
pelvisまたは%tag(Pelvis)に設定します。 -
cogコントロールの親をメインコントロールに設定するため、 driverparent を
Mainに設定します。 -
makecontrol 、 promotet 、 promoter をオンにします。
-
Shape タブでコントロールシェイプを変更します。
-
-
Animateステートで新しいコントロールを確認します:
rootおよびcogコントロール付きのElectra
背骨 ¶
splineリグコンポーネントを使用して、Electraリグに背骨ロジックを追加します:
-
Attribute Adjust Array SOPで、
Spineタグを背骨ジョイントに追加します。これらのタグはsplineリグコンポーネントによって取得されます。 -
APEX Autorig Component SOPの
spineは、spline機能をElectraに追加します。spineノードで、 Component パラメータを spline に設定します。 -
Driven タブの driven を
%tag(Spine)に設定します。 -
splineセグメントは1つしかないので、 segments 、 root 、 tip パラメータのエントリを削除します。
-
Parents タブで背骨のコントロールの親を設定します:
-
rootparent および tipparent を先ほど追加した
Cogコントロールに設定します。 -
cvparent を
root_ctrlに設定します。これは、背骨チェーンのルートのデフォルトの名前です( Driver タブの rootname パラメータで設定されています)。
-
-
Animateステートで背骨の機能を確認します:
IK ¶
multiikリグコンポーネントを使用して腕と脚にIK機能を追加します:
-
Attribute Adjust Array SOPで、
L_Arm、R_Arm、L_Leg、R_Legという腕と脚のタグを追加します。 これらのタグはmultiikリグコンポーネントによって取得されます。 -
APEX Autorig Component SOPの
ikは、IK機能をElectraに追加します。ikノードで、 Component パラメータを multiik に設定します。 -
Driven タブの segments を、IKを追加したいタグに設定します。 この例では、 segments を
*Arm *Legに設定します。Note
segments パラメータは、
%tag()関数などのAPEXパスパターンを受け取りません。 代わりに、このフィールドでは直接タグ名を指定してください。 -
Parents タブで、 tipparent を
Cogに設定します。 povectorparent が空っぽの場合、極ベクトルはtipに親子化されます。 -
AnimateステートでIKの挙動を確認します:
IK/FKブレンド ¶
ikfkblendリグコンポーネントを使用して、腕と脚のIKおよびFK間をブレンドする機能を追加します:
-
APEX Autorig Component SOPの
ikfkblendは、IK/FKブレンド機能をElectraに追加します。ikfkblendノードで、 Component パラメータを ikfkblend に設定します。 -
Driven タブの segments を、IK/FKブレンドを追加したいタグに設定します。 この例では、 segments を
*Arm *Legに設定します。 -
AnimateステートでIK/FKブレンドの挙動を確認します:
Note
ハンドルパラメータの Use Click and Drag がオフの場合、抽象コントロールを最初に選択してから、ドラッグしてIK/FKブレンドの効果を確認する必要があります。 Use Click and Drag がオンの場合は、抽象コントロールを一度にクリックアンドドラッグすることができます。
リバースフット ¶
reversefootリグコンポーネントを使用してリバースフット機能を追加します:
-
Attribute Adjust Array SOPで、足のタグ(
L_Foot、R_Foot)、球ジョイントのタグ(Ball)、足首ジョイントのタグ(Ankle)を追加します。 これらのタグはreversefootリグコンポーネントによって取得されます:
-
APEX Autorig Component SOPの
reverse_footで、 Component パラメータを reversefoot に設定します。 -
Driven タブで:
-
segments を
*Footに設定します。 -
デフォルトで、 ankle は
%tag(Ankle)に、 ball は%tag(Ball)に設定されています。 これらはスケルトンに追加したタグ名と一致します。 -
ikdriven パラメータはデフォルトで
%tag(ik_tip)に設定されています。ik_tipは上流のmultiikリグコンポーネントによって追加されたタグです( Tags タブの tagtarget パラメータ)。
-
-
Animateステートでリバースフットの挙動を確認します:
つま先ジョイントを追加する ¶
Electraのスケルトンにはつま先ジョイントがありませんが、reversefootコンポーネントは自身の目的ために自動的につま先を作成するので、 Driven タブの toe パラメータには何も指定する必要はありません。 独自のつま先ジョイントを追加したい場合:
-
Rig Attribute VOP SOPを使用してつま先ジョイントを追加します。 詳細は、ジョイントを追加するを参照してください:
-
Rig Attribute VOP SOPで、Electraの
ball_lおよびball_rジョイントを参照として使用して、つま先ジョイントを作成します:
Rig Attribute VOP SOPでつま先ジョイントを追加 -
Offset Transform VOPの Translate パラメータを調整して、つま先ジョイントの位置を設定します。
-
左のつま先の
Add Joint VOPで、 Name を
toe_lに設定します。 同様に、右のつま先のAdd Joint VOPで、 Name パラメータをtoe_rに設定します:
追加されたつま先ジョイント -
Attribute Adjust Array SOPで、つま先ジョイントに
Toe、R_Foot、L_Footというタグを追加します:
-
reverse_footAPEX Autorig Component SOPで、 Driven タブの toe を%tag(Toe)に設定します。 -
Settings タブで、 toeoffset および toecontroloffset を必要に応じて調整します。
Look At ¶
lookatリグコンポーネントを使用してlookat機能を追加します:
-
Attribute Adjust Array SOPで、頭部のタグを追加します。 このタグはlookatリグコンポーネントによって取得されます。
-
APEX Autorig Component SOPの
lookatで、 Component パラメータを lookat に設定します。 -
Driven タブで、 driven を
%tag(Head)に設定します。これはlookatコントロールによって駆動されるジョイントです。 -
ターゲットコントロールの位置を設定します。 Settings タブで worldspace をオンにし、 targetpos を設定します。
-
Upコントロールの位置を設定します。 Settings タブで updir を設定します。
-
Driven タブで頭部、ターゲット、Upコントロールの名前を設定します。 ここでは driver を
head_driver、 target をhead_target、 up をhead_upに設定します。 -
Shape タブで コントロールのスケールとカラーを設定します:
-
AnimateステートでLook Atの挙動を確認します:
コントロールを設定する ¶
APEX Configure Controls SOPを使用して、コントロールの形状とカラーを設定します:
-
APEX Configure Controls SOPで、 Control Configs の横にある
をクリックして、コントロールのグループ毎に設定を追加します。
-
設定するコントロールを指定します。 Control Group パラメータで、ドロップダウンリストから選択するか、APEXパスパターン構文を使用してTransformObjectノードのグループを指定します。
-
Control Configs マルチパラメータのコントロールのグループ毎に、 Use Shape Override 、 Use Shapeoffset 、 Use Color パラメータをオンにし、希望するコントロールの形状、サイズ、カラーを指定します。
コントロールを設定したら、Electraのリグの構築は完了です:
コントロールを設定する前(左)と後(右)
アニメーションシーンにElectraを追加する ¶
APEX Scene Add Character SOPおよび
APEX Scene Animate SOPを使用して、Electraをアニメーションシーンに追加します。
詳細は、アニメーションワークフローを参照してください。
Full Body IK ¶
この例では、fbikリグコンポーネントを使用してElectraにFull Body IKを追加します:
-
Attribute Adjust Array SOPで、足、骨盤、手首、首などのジョイントに
fbikというタグを追加します。このタグはfbikリグコンポーネントによって取得されます:
-
APEX Autorig Component SOPの
fkノードで、 Controls タブの tpromotegroup 、 rpromotegroup 、 spromotegroup のすべてのエントリを削除します。 -
APEX Autorig Component SOPの
fbikで、 Component パラメータを fbik に設定します。 デフォルトで、 Drivers タブの drivers パラメータは%tag(fbik)に設定されているので、fbikとタグ付けされたジョイントがFull Body IKの挙動を駆動します。 -
AnimateステートでFull Body IKの挙動を確認します: