| On this page |
概要 ¶
このページでは、いくつかの事前構築済みリグコンポーネントを使用してElectraテストジオメトリの完全なリグを構築します。事前構築済みリグコンポーネントは、FK、IK、ボーン変形といったリグ機能を追加するためのインターフェースが用意された
APEX Autorig Component SOPから利用可能です。
この例では、以下のリグ機能を追加してElectraのリグを完成させます:
-
Electraのスケルトンジョイント階層に基づいたFKリグ階層
-
ボーン変形
-
rootコントロールおよびcogコントロール
-
背骨ロジック
-
IK(腕と脚)
-
腕のツイスト機能
-
IK/FKブレンド
-
リバースフット
-
Lookat
-
Electraのコントロールの外観設定
このファイルの例では、事前構築済みリグコンポーネントを使用してElectraのリグを構築する方法を説明しています。
これ以降のセクションでは、以下の最終ネットワークを構築する手順を段階を追って説明します:
セットアップ ¶
APEX Autorig Component SOPを使用してリグ機能を追加する前に、Electraのキャラクタ要素(スキンとスケルトン)をキャラクタフォルダ構造にパックしておく必要があります:
-
Electra SOPで、 Output パラメータを Skin Surface に設定します。これによって、Electraのシェイプが1番目の出力として、Electraのスケルトンが2番目の出力として出力されます。
-
Electraに現在設定されているタグを削除します。
Attribute Delete SOPで、 Point Attributes を
tagsに設定します。この例では、一度まっさらにしたスケルトンから開始し、Electraのリグを構築していく中で、必要なタグを追加していきます。 -
ネットワークエディタのTabメニューで、
Attribute Adjust Array SOPのエイリアス(別名)であるAttribute Adjust Tagsを検索します。Attribute Adjust Tagsを使用して、Electraのスケルトンにタグを追加します。これらのタグは、ネットワークの下流で様々なリグコンポーネントがElectraのリグを構築する際に使用されます。デフォルトで、Attribute Adjust Tagsは Attribute Class パラメータを Point に、 Array Type を String に設定します。
このページの以降のセクションでは、タグがスケルトンに追加されるタイミングについて説明します。以下の画像は、Electraに追加されるタグの一例を示しています:
-
APEX Pack Character SOPは、Electraの形状とスケルトンをパックキャラクタフォルダ構造に追加します。デフォルトで、 Shape Path は
/Base.shpに、 Skeleton Path は/Base.skelに設定されます。これらは、Electraシェイプとスケルトンがフォルダ構造内にパックされる際、それぞれに適用される名前です。APEX Pack Character SOPを選択し、Rig Treeビューでキャラクタフォルダ構造を確認します。Rig Treeビューで、 Type を Packed Folders に設定します:/ -- Base.shp -- Base.skel
Note
Add FK and Bone Deform Components をオンにすると、キャラクタのリグにFKおよびボーン変形機能が自動的に追加されます。そのため、以下のセクションで説明しているFKトランスフォームやボーン変形リグコンポーネントを手動で追加する必要はありません。残りのリグを構築するのに、すべてのジョイントがFKコントロールとして利用可能である必要はないので、 Translate Group 、 Rotate Group 、 Scale Group パラメータのエントリを削除してください。
FKおよびボーン変形 ¶
FKリグを作成し、ボーン変形ロジックを追加してElectraのFK機能を確認します:
-
APEX Autorig Component SOPの
fkノードは、FKトランスフォームリグコンポーネント|/character/kinefx/rig_components/fktransform]で、Electraのスケルトンをリグ階層に変換することでリググラフを作成します。各スケルトンジョイントを受け取り、リググラフにTransformObjectノードを作成します。APEXネットワークビューでTransformObjectノードを確認することができます。
-
fkノードで、 Component Source パラメータを FK Transform に設定します。 -
デフォルトでは、FKトランスフォームコンポーネントによって作成されるリグの名前は( Rig セクションの Name パラメータで指定されている)
Base.rigです。 -
Source タブの Guide Skeleton パラメータで、リグ階層を作成するのに使用するスケルトンを指定します。
-
FKトランスフォームコンポーネントにキャラクタフォルダ構造にリググラフを追加します。
fkノードを選択し、Rig Treeビューでフォルダ階層を確認します:/ -- Base.rig -- Base.shp -- Base.skel
-
-
APEX Autorig Component SOPの
bone_deformは、ボーン変形ロジックをリググラフに追加するボーン変形リグコンポーネントです。bone_deformノードで、 Component Source を Bone Deform に設定します。 Rest Skeleton 、 Rest Geo 、 Output Geo パラメータのデフォルト値は、キャラクタフォルダ構造のキャラクタ要素の名前に一致します。 -
AnimateステートでElectraにFKポージングを実行します:
-
bone_deformノードを選択し、そのDisplayフラグをオンにします。 -
左側のツールバーにある
Animateをクリックするか、ビューポート内でEnterを押します:
ElectraのFKの挙動
-
-
Electraのジョイントは、移動および回転させることができます。なぜなら、Electraのスケルトンには
promoteプロパティが格納されているからです。スケルトンのプロパティを確認するには:-
Electra SOPを選択します。
-
Geometry Spreadsheetを開きます。
-
上部のツールバーのElectraの名前の横にあるドロップダウンメニューから、 Capture Pose を選択します。
-
上部のツールバーで
を選択し、各ジョイントの情報を表示します。
-
properties 列の下のエントリ
クリックし、 Inspect を選択します。ジョイントのプロパティがリストされ、そのうちの
"promote":"t r"は、ジョイントの移動および回転コンポーネントがプロモートされたことを示します。
-
-
残りのリグを構築するのに、すべてのジョイントがFKコントロールとして利用可能である必要はないので、Electraのジョイントから
propertiesアトリビュートを削除します:-
Attribute Delete SOPで、 Point Attributes パラメータに
propertiesを追加します。これで Point Attributes は“tags properties”に設定されました。 -
fkノードの Controls タブで、 T Promote Group 、 R Promote Group 、 S Promote Group パラメータのすべてのエントリを削除します。
-
rootコントロールおよびcogコントロールを追加する ¶
トランスフォームドライバリグコンポーネントを使用して、Electraリグにrootおよびcogコントロールを追加します。rootコントロールはスケルトンのルートジョイントにあり、cogコントロールはスケルトンの骨盤ジョイントにあります。cogコントロールは、背骨ジョイントチェーンの親として後ほど使用します。
-
Attribute Adjust Array SOPで、骨盤にタグを追加します。
pelvisタグは、トランスフォームドライバリグコンポーネントによって取得されます。タグの作成についての詳細はスケルトンを準備するを参照してください。
骨盤のタグ -
APEX Autorig Component SOPの
add_controlsは、Electraにrootコントロールおよびcogコントロールを追加します。add_controlsノードで、 Component Source パラメータを Transform Driver に設定します。 -
rootコントロールに対して以下を設定します:
-
Driven タブで、 Driven Transforms を
C_rootに設定します。これは新しいコントロールによって駆動されるジョイントです。 -
Control タブで、 Driver を新しいrootコントロールの名前に設定します。この例では、 Driver を
Mainに設定します。 -
Driver Guide を
C_rootに設定します。これにより、新しいコントロールがルートジョイントに配置されます。 -
Shape タブでコントロールシェイプを変更します。 Shape パラメータで、ここにリストされているAPEXコントロールシェイプのいずれかを指定します。
-
-
Setups の横にある
をクリックし、もう1つコントロールを追加します。
-
cogコントロールに対して以下を設定します:
-
cogコントロールが
C_pelvisジョイントを駆動するようにしたいので、 Driven タブの Driven Transforms をC_pelvisに設定します。 Driven Transforms パラメータはAPEXパスパターンにも対応しているので、#pelvisなどの#tag構文を使用してジョイントを指定することができます。Note
ジョイント名とタグは大文字と小文字を区別します。
-
Control タブの Driver を
Cogに設定します。これは新しいcogコントロールの名前です。 -
cogコントロールを骨盤ジョイントに配置したいので、 Driver Guide を
C_pelvisまたは#pelvisに設定します。 -
cogコントロールの親をメインコントロールに設定するため、 Driver Parent を
Mainに設定します。 -
Shape タブでコントロールシェイプを変更します。
-
-
Animateステートで新しいコントロールを確認します:
rootおよびcogコントロール付きのElectra
背骨 ¶
splineリグコンポーネントを使用して、Electraリグに背骨ロジックを追加します:
-
Attribute Adjust Array SOPで、
spineタグを背骨ジョイントに追加します。これらのタグはsplineリグコンポーネントによって取得されます。
背骨のタグ -
APEX Autorig Component SOPの
spineは、spline機能をElectraに追加します。spineノードで、 Component Source パラメータを Spline に設定します。 -
Driven タブの Driven を
#spineに設定します。 -
Parent タブで背骨のコントロールの親を設定します - Root および Tip を先ほど追加したコントロールの
Cogに設定します。 -
Shape タブでコントロールシェイプを変更します。
-
Animateステートで背骨の機能を確認します:
IK ¶
マルチIKリグコンポーネントを使用して腕と脚にIK機能を追加します:
-
Attribute Adjust Array SOPで、
L_Arm、R_Arm、L_Leg、R_Legという腕と脚のタグを追加します。これらのタグはマルチIKリグコンポーネントによって取得されます。
腕の脚のタグ Note
Electraの腕には、肩と肘にそれぞれ2つのジョイントがあります - 1つは通常のスケルトンジョイントで、もう1つはツイストジョイントです:
-
肩のジョイント -
*_upperarmおよび*_upperarm_01_twist -
肘のジョイント -
*_lowerarmおよび*_lowerarm_05_twist
肩と肘のツイストジョイントにはタグを付けないようにしてください。Attribute Adjust Array SOPの Operation パラメータのジョイントリストに
*twistジョイントが含まれていないことを確認します。例えば、タグL_armの場合、 Operation は@name=L_upperarm @name=L_lowerarm @name=L_handに設定されている必要があります。@name=L_upperarm_01_twist @name=L_lowerarm_05_twist @name=L_handに設定されていてはいけません。 -
-
APEX Autorig Component SOPの
ikは、IK機能をElectraに追加します。ikノードで、 Component Source パラメータを Multi IK に設定します。 -
Driven タブの Segments を、IKを追加したいタグに設定します。この例では、 Segments を
*arm *legに設定します。Note
Segments パラメータは、
#tag関数などのAPEXパスパターンを受け取りません。代わりに、このフィールドでは直接タグ名を指定してください。 -
Parent タブで、 Tip を
Mainに設定します。 Pole Vector が空っぽの場合、極ベクトルはtipに親子化されます。 -
Shape タブでコントロールシェイプを変更します。
-
AnimateステートでIKの挙動を確認します:
ツイスト ¶
ツイストリグコンポーネントを使用して腕にツイスト機能を追加します:
-
Attribute Adjust Array SOPで、腕にツイストタグを追加します。肩から肘まで、そして肘から手までの腕のセクション毎に、それぞれ別のタグセットが必要です。ツイストタグは、ルートジョイント、先端のジョイント、およびルートと先端の間にあるツイストジョイント(ルートにあるツイストジョイントも含む)に対して追加しなければなりません。これらのタグはツイストリグコンポーネントによって取得されます:
ツイストタグ Note
ルートジョイントや先端のジョイントと同じ位置に、ツイストジョイントがある場合があります。Attribute Adjust Array SOPの Operation パラメータでジョイントのリストを確認し、正しいジョイントにタグを付けていることを確認してください。
例えば、Electraの左上腕の場合、 Operation は以下のように設定されている必要があります:
-
ルートジョイント -
@name=L_upperarm -
先端のジョイント -
@name=L_lowerarm -
ルートと先端の間のツイストジョイント(ルートにあるツイストジョイントを含む) -
@name=L_upperarm_01_twist @name=L_upperarm_02_twist @name=L_upperarm_03_twist @name=L_upperarm_04_twist
ツイストコンポーネントにおけるジョイントのタグ付け方法についての詳細は、ツイストコンポーネントを参照してください。
スケルトンジョイント名を確認するには:
-
Attribute Delete SOPの Point Attributes パラメータで、前に追加した
properties値を削除します。 -
APEX Autorig Component SOPの
fkを選択し、そのDisplayフラグをオンにして、左側のツールバーにあるAnimateをクリックします:
-
-
APEX Autorig Component SOPの
twistは、ツイスト機能をElectraの腕に追加します。twistノードで、 Component Source パラメータを Twist に設定します。 -
Driven タブの Segments を、ツイスト機能を追加したいタグに設定します。この例では、 Segments を
*arm_twist*に設定します。 -
ツイスト機能の効果を確認するために、上腕のジョイントチェーンのルート(肩のジョイント)をピン留めします。ルートをピン留めしないと、すべてのツイストジョイントが同じ量だけ回転してしまいます。
-
上腕セグメントに
pinタグを追加します - Attribute Adjust Array SOPで、L_arm_twist_upperおよびR_arm_twist_upperマルチパラメータに対して、 Values の横にあるをクリックして新しい Value パラメータを
pinに設定します。
-
APEX Autorig Component SOPの
twistで、 Settings タブの Pin Root をオンにし、 Pin Tag をpinに設定します。ジョイントチェーンのルートに追加されたピンクのコントロールは、そのピンのUpベクトルです。ピン留めされていないルート(左)、ピン留めされたルート(右)
-
IK/FKブレンド ¶
IK/FKブレンドリグコンポーネントを使用して、腕と脚のIKおよびFK間をブレンドする機能を追加します:
-
APEX Autorig Component SOPの
ikfkblendは、IK/FKブレンド機能をElectraに追加します。ikfkblendノードで、 Component Source パラメータを IK / FK Blend に設定します。 -
Driven タブの Segments を、IK/FKブレンドを追加したいタグに設定します。この例では、 Segments を
*arm *legに設定します。 -
AnimateステートでIK/FKブレンドの挙動を確認します:
リバースフット ¶
リバースフットリグコンポーネントを使用してリバースフット機能を追加します:
-
Attribute Adjust Array SOPで、足のタグ(
L_foot、R_foot)、球ジョイントのタグ(ball)、足首ジョイントのタグ(ankle)を追加します。これらのタグはリバースフットリグコンポーネントによって取得されます:
-
APEX Autorig Component SOPの
reverse_footで、 Component Source パラメータを Reverse Foot に設定します。 -
Driven タブで:
-
Segments を
*footに設定します。 -
デフォルトでは、 Ankle は
#ankleに、 Ball は#ballに設定されています。これらはElectraのタグ名と一致します。 -
IK Driven パラメータはデフォルトで
#ik_tipに設定されています。ik_tipは上流のマルチIKリグコンポーネントによって追加されたタグです( Tags タブの _Target パラメータ)。
-
-
Parent タグで、 Root を
Mainに設定します。これは上流のトランスフォームドライバコンポーネントによって作成されたルートコントロールです。 -
Animateステートでリバースフットの挙動を確認します:
Tip
以下のホットキーは、ビューポートで抽象コントロール(つま先の前にある白の球)をドラッグする際の挙動を変更します:
ドラッグの挙動
アクション
抽象コントロールの値を整数のステップサイズ単位で変更する
⌃ Ctrlを押しながらドラッグします。
抽象コントロールの値をより遅い速度で変更する
⇧ Shiftを押しながらドラッグします。
抽象コントロールの値をより速い速度で変更する
⌃ Ctrl + ⇧ Shiftを押しながらドラッグします。
つま先ジョイントを追加する ¶
Electraのスケルトンにはつま先ジョイントがありませんが、リバースフットコンポーネントは自動的につま先を作成するので、 Driven タブの Toe パラメータには何も指定する必要はありません。独自のつま先ジョイントを追加したい場合:
-
Rig Attribute VOP SOPを使用してつま先ジョイントを追加します:
-
Rig Attribute VOP SOPで、Electraのballジョイントを参照として使用して、つま先ジョイントを作成します:以下のようにネットワークを構築する方法については、ガイドスケルトンにジョイントを追加するを参照してください:
Rig Attribute VOP SOPでつま先ジョイントを追加 -
Offset Transform VOPの Translate パラメータを調整して、つま先ジョイントの位置を設定します。
-
左のつま先の
Add Joint VOPで、 Name を
L_toeに設定します。同様に、右のつま先のAdd Joint VOPで、 Name パラメータをR_toeに設定します:
追加されたつま先ジョイント -
Attribute Adjust Array SOPで、つま先ジョイントに
toe、R_Foot、L_Footというタグを追加します:
-
APEX Autorig Component SOPの
reverse_footで、 Driven タブの Toe を#toeに設定します。 -
Settings タブで、 Toe Offset および Toe Control Offset を必要に応じて調整します。
Look At ¶
Look Atリグコンポーネントを使用してLook At機能を追加します:
-
Attribute Adjust Array SOPで、頭部にタグを追加します。このタグはLook Atリグコンポーネントによって取得されます。
頭部のタグ -
APEX Autorig Component SOPの
lookatで、 Component Source パラメータを Look At に設定します。 -
Driven タブの Driven を
#headに設定します。これはLook Atコントロールによって駆動されるジョイントです。 -
Driven タブで頭部、ターゲット、Upコントロールの名前を設定します。ここでは Driver を
head_driver、 Target をhead_target、 Up をhead_upに設定します。 -
Electraの頭部が離れてしまわないよう、頭部のドライバの回転のみをプロモートします - Driven タブで Driver Promote R をオンにして、 Driver Promote T をオフに設定します。
-
ターゲットコントロールの位置を設定します。 Settings タブで World Space をオンにし、 Target Position を調整します。
-
Upコントロールの位置を設定します:
-
Driven タブで Use Up をオンにして、ビューポートにUpコントロールを表示させます。
-
Settings タブで、 Up Position を調整します。
-
-
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 ¶
この例では、Full Body IKリグコンポーネントを使用してElectraにFull Body IKを追加します:
-
Attribute Adjust Array SOPで、足、骨盤、手首、首などのジョイントに
fbikというタグを追加します。このタグはFull Body IKリグコンポーネントによって取得されます:
-
APEX Autorig Component SOPの
fkノードで、 Controls タブにある T Promote Group 、 R Promote Group 、 S Promote Group パラメータのすべてのエントリを削除します。 -
APEX Autorig Component SOPの
fbikで、 Component Source パラメータを Full Body IK に設定します。デフォルトで、 Drivers タブの Drivers パラメータは%tag(fbik)に設定されているため、fbikとタグ付けされたジョイントがFull Body IKの挙動を駆動します。 -
AnimateステートでFull Body IKの挙動を確認します: