Houdini 20.0 キャラクタ KineFX

リグコンポーネント

On this page
この機能はまだ開発中です。現在の機能は未完成で変更される予定であり、 ドキュメントが手薄だったり、なかったりします。 これを使用するときは、そのことに我慢してください。

概要

リグの挙動は、グラフを作成することで手動で構築することも、リグコンポーネントのつなぎ合わせで構築することもできます。 リグコンポーネントは、Houdiniに同梱されている事前構築済みコンポーネント、または、異なるリグで再利用できるように独自に作成したコンポーネントのどちらでも構いません。 APEX Autorig Component SOPは、キャラクタのリグロジックを構築するためにFK、IK、ボーン変形などの機能を追加するいくつかの事前構築済みリグコンポーネントへのインターフェースです。

まずは、いくつかの単純なサンプルを通して、Houdiniの事前構築済みリグコンポーネントの紹介から始めます。 それから、リグコンポーネントを使用して、Electraテストジオメトリに対して基本的なリグを構築します。 最後に、キャラクタリグを構築するための色々な手法を紹介します。

事前構築済みリグコンポーネント

このセクションでは、APEX Autorig Component SOPで利用可能な事前構築済みリグコンポーネントの基本的なサンプルをいくつか紹介します。 まずは、3本のジョイントが入ったチューブジオメトリに、FK、ボーン変形、コントロールシェイプを追加することから始めます。 それから、IK、スパイン、トランスフォームドライバーリグコンポーネントを紹介します。

FK

この例では、APEX Autorig Component SOPを使用して、3本のジョイントが入ったチューブジオメトリにFKリグロジックを追加しています。

  1. まず、チューブジオメトリのスケルトンを描画することから始めます。このスケルトンはpoint_0point_1point_2のジョイントを持ちます。 point_0point_1の親で、そのpoint_1point_2の親です。スケルトンの作成に関する詳細はスケルトンの扱い方を参照してください。

    チューブジオメトリのスケルトンを作成する
    スケルトンの描画

    この例では、ボーン変形をリグロジックに追加しないので、これ以降は、このチューブジオメトリはもはや必要ありません。

  2. チューブ“キャラクタ”の異なる入力要素(ジオメトリ、スケルトン、リグ)を格納するパックフォルダ構造にスケルトンを追加します。 Animateステートでは、パックフォルダ構造に追加されている要素のみが表示可能です。 Animateステートで評価されるキャラクタデータを準備する方法の詳細は、パックキャラクタフォーマットを参照してください。

    Note

    パックフォルダ構造内の“キャラクタ”という用語は、リグロジックとそのリグロジックの入力が参照している要素を含んだ汎用コンテナのことを指します。 実際には、キャラクタコンテナは、キャラクタ、プロップ、アセットが該当します。

  3. APEX Autorig Component SOPを使用してリググラフを作成します。リグロジックの構築はFKリグコンポーネントから始めるのが簡単です。FKリグコンポーネントはスケルトンのジョイント階層に基づいてFK階層を作成します。

    FKリグロジックをチューブに追加

ノード

説明

add_to_packed_folder

キャラクタ要素をパックフォルダ構造に追加します。 この例では、チューブスケルトンをパックフォルダ構造に追加し、名前をtube.skel( NametubeTypeskelに設定)にします。

Rig Treeビューで、パックフォルダ構造の内容を確認します:

  1. ネットワークエディタでPack Folder SOPを選択します。

  2. Rig Treeビューを開きたいペインの上部にある New Tabアイコンをクリックして、 New Pane Tab Type ▸ Animation ▸ Rig Tree を選択します。

  3. Rig Treeビューで、ノード名(この例ではadd_to_packed_folder)の右隣りにあるドロップダウンボックスをoutput1に設定します。

  4. TypePacked Folders に設定します。

以下のパックフォルダ階層が表示されます:

/
-- tube.skel

これで、APEX Autorig Component SOPを使用してリググラフをパックフォルダ構造に追加できるようになりました。

fk

この事前構築済みFKリグコンポーネントは、パックフォルダ構造内のチューブスケルトンをリグ階層に変換してリググラフを作成します。 FKリグコンポーネントは、各スケルトンジョイントを受け取り、そのスケルトンジョイントの位置を表現したTransformObjectノードを作成します。そして、そのTransformObjectノードの restlocal パラメータには、そのジョイントの静止位置が設定されます。 このTransformObjectノードは、Animateステートでユーザが操作可能なコントロールに変換することができます。 FKリグコンポーネントは、リググラフをパックフォルダ構造に追加します。

APEX Autorig Component SOPの Component パラメータを fktransform に設定します。

Note

FKリグコンポーネントは、スケルトンをリグ階層に変換するので、リグロジックを構築する際の最初の事前構築済みコンポーネントとして使用するのに役立ちます。

設定

パラメータ

リグ名

デフォルトでは、FKリグコンポーネントで作成されるリグの名前は( Rig セクションの Name パラメータで指定されている)Base.rigです。 このリグの名前を変更しても構いませんが、他のすべての事前構築済みリグコンポーネントのリグ名もデフォルトでBase.rigに設定されているので、 ネットワーク内のAPEX Autorig Component SOPチェーン上のすべてのリグ名を更新する必要があることに注意してください。

ソーススケルトン

Source タブの skeleton パラメータには、リグ階層の作成に使用されるスケルトンを指定します。 デフォルトでは、Base.skelが設定されています。 パックフォルダ構造内のスケルトンの名前(この例ではtube.skel)と一致するように skeleton パラメータを変更します。

コントロールの作成

リグ上にコントロールを作成するために、 Controls タブ内の *promotegroup パラメータには、コントロールに変換したいTransformObjectノードを指定します。 TransformObjectノードは、それらのパラメータが(グラフのinputノードに接続されて) プロモート された時にコントロールに変換されます。 コントロールの作成に関する詳細は、APEXグラフを参照してください。

*promotegroup パラメータには、APEXパスパターン構文を使用して、 TransformObjectノードのグループを指定します。 APEXパスパターン構文に関する詳細は、Unpack Folder SOPExtract Pattern パラメータを参照してください。

デフォルトでは、 tpromotegroup パラメータと rpromotegroup パラメータには*が設定されています。 これは、グラフ内のすべてのTransformObjectノードの移動コンポーネント(t)と回転コンポーネント(r)をプロモートします。

これでパックフォルダ構造にはスケルトンとリググラフが追加されました。 fk APEX Autorig Component SOPを選択し、Rig Treeビューを開いて、以下のパックフォルダ階層になっていることを確認します:

/
-- tube.skel
-- Base.rig

下図のリググラフがFKリグコンポーネントによって生成されています(わかりやすくするために、ノードの配置を変更し、色を追加しています)。 緑のTransformObjectノードは、スケルトンジョイントを表現していて、そのスケルトンジョイント階層に基づいて接続されています。 各TransformObjectノードの移動パラメータと回転パラメータはプロモートされています(tポートとrポートがinputグラフノードに接続されています)。 TransformObjectノードを接続してノード階層を定義する方法に関する詳細は、親子階層を参照してください。

FKリグコンポーネントによって生成されたリググラフ

TransformObjectノードとSetPointTransformsノードに関する詳細は、ジオメトリ変形を参照してください。

Note

APEX Autorig Component SOP上のリググラフを確認するには、Unpack Folder SOPを使用して、パックフォルダ構造からリグを抽出する必要があります。 すると、Unpack Folder SOP上でそのリググラフを確認することができます:

  1. リググラフを確認したいノードの出力をUnpack Folder SOPの入力に接続します。

    ノード上でリグロジックを確認する
  2. Unpack Folder SOPの Extract Pattern にリグの名前(この例では/Base.rig)を設定します。

  3. ネットワークエディタ内でそのUnpack Folder SOPを選択します。

  4. APEX Network Viewにそのグラフが表示されます。

AnimateステートでFK機能を確認する:

  1. fk APEX Autorig Component SOPを選択し、そのディスプレイフラグを有効にします。

  2. 左側のツールバーにある Animateをクリック、または、ビューポート内でEnterを押します。

AnimateステートでのFK機能

ボーン変形

これから、前のFKリグにボーン変形リグロジックを追加します。 ボーン変形を実行するには、まず最初にJoint Capture Biharmonic SOPを使用して、ジオメトリ上にキャプチャウェイトを作成します。 次に、この更新されたジオメトリをスケルトンと一緒にパックフォルダ構造に追加します。

Note

他のDCCでは、ウェイトの生成はデフォーマ上で行なうことが多いです。 Houdiniでは、ウェイトの生成は変形工程から分離されています。 このようになっているので、APEXに入ってリグロジックを作成する前に、正しいウェイトを持つ入力ジオメトリを準備することができます。

ボーン変形リグロジックを追加

ノード

説明

add_to_packed_folder

以下のキャラクタ要素をパックフォルダ構造に追加します:

  • 変形に使用するチューブジオメトリ。これがPack Folder SOPの2番目の入力の1つ目の接続です。 このジオメトリの名前をtube.shpにします( NametubeTypeshpに設定します)。

  • リグロジックの生成に使用するチューブスケルトン。これがPack Folder SOPの2番目の入力の2つ目の接続です。 このスケルトンの名前をtube.skelにします( NametubeTypeskelに設定します)。

Note

Pack Folder SOPの2番目の入力の順番は、Pack Folder SOPのパラメータエディタにリストされている NameType のパラメータの順番に必ず合わせてください。 パックキャラクタフォーマットでのキャラクタ要素の命名に関する詳細は、パックキャラクタフォーマットを参照してください。

以下のパックフォルダ構造がRig Treeビューに表示されます:

/
-- tube.skel
-- tube.shp

bonedeform

上流のFKリグコンポーネントによって作成されたリググラフにボーン変形ロジックを追加します。 そのAPEX Autorig Component SOPの Component パラメータを bonedeform に設定します。 Component Parameters セクションに何もパラメータが表示されていなければ、 Reload Setup Parms アイコンをクリックします。

設定

パラメータ

リグ名

デフォルトでは、このリグコンポーネントは( Rig セクションの Name パラメータで設定された)Base.rigにリグロジックを追加します。

アニメーションスケルトン

SetPointTransformsグラフノードの出力はアニメーションスケルトンです。 animatedskeleton パラメータを<Name of SetPointTransforms node>.<output>に設定します。 デフォルトでは、pointtransform.geoに設定されます。 これは、FKリグコンポーネントで生成されたリググラフ内のSetPointTransformsノードの名前と出力ポートに一致します。

SetPointTransformsノードの詳細は、APEXグラフを参照してください。

ソースジオメトリとソーススケルトン

Settings タブで、パックフォルダ構造内のジオメトリとスケルトンの名前に合うように以下のパラメータを変更します:

  • restgeo = tube.shp

    変形したいキャプチャウェイト付きジオメトリ。

  • restskeleton = tube.skel

    キャプチャウェイトのベースとなる入力スケルトンの名前。 restskeleton のジョイントは restgeo のキャプチャウェイトと一致する必要があります。

  • outputgeo = tube.shp

    表示したい出力ジオメトリの名前。 通常で、これはinputグラフノードのジオメトリの名前に合わせてください。

このボーン変形リグコンポーネントは、前のサンプルのFKリググラフにリグロジックをさらに追加します。

FKリグコンポーネントによって生成されたリググラフ
ボーン変形リグロジックが追加されたリググラフ

Animateステートでは、選択可能なコントロールがチューブジオメトリ上に用意されるので、FKポージングを実行することができます。

Animateステートでのボーン変形

コントロールの設定

APEX Configure Controls SOPを使用して、コントロールのシェイプと色を設定します。

コントロールの設定

ノード

説明

adjust_control_ shapes_colors

Control Configs の隣りにあるアイコンをクリックして、コントロールグループ別に設定を追加します。

設定

パラメータ

リグ名

Rig Source パラメータで、コントロールを設定するリグを指定します。 この例では、 Rig Source/Base.rigに設定します。

設定するコントロール

Control Config セクションの Control Group パラメータで、ドロップダウンリストから選択、または、APEXパスパターン構文を使用して、TransformObjectノードのグループを指定します。 APEXパスパターン構文の詳細は、Unpack Folder SOPExtract Pattern パラメータを参照してください。

コントロールのシェイプ、サイズ、色

Control Configs マルチパラメータのコントロールグループ毎に、必要に応じて、 Use Shape OverrideUse ShapeoffsetUse Color のパラメータを有効にします。

設定されたコントロールのシェイプと色

IK

この例では、チューブスケルトンに対してIKリグを構築します。 まず最初にそのスケルトンからFKリグ階層を作成し、次に、そのFKリグの上にIK機能を追加します。

IKリグロジックを追加

ノード

説明

add_to_packed_folder

チューブスケルトンをパックフォルダ構造に追加します。 そのスケルトンの名前をtube.skelにします( NametubeTypeskelに設定します)。

fk

チューブスケルトンをリグ階層に変換します。 APEX Autorig Component SOPの Component パラメータを fktransform に設定します。

設定

パラメータ

ソーススケルトン

Source タブの skeleton パラメータには、リグ階層の作成に使用されるスケルトンを指定します。 パックフォルダ構造内のスケルトンの名前(この例ではtube.skel)と一致するように skeleton パラメータを変更します。

コントロール

この例ではIKコントロールのみを制御したいので、FKジョイントはコントロールにならないようにプロモートしません。 そのため、 Controls タブの *promotegroup パラメータからすべてのTransformObjectノードを削除します。

ik

上流のFKリグコンポーネントで作成されたリググラフにIKリグロジックを追加します。 APEX Autorig Component SOPの Component パラメータを smoothik に設定します。

設定

パラメータ

ソーススケルトン

guidesource には、パックフォルダ構造内のスケルトンのtube.skelを設定します。

ミラーリングの無効化

リグ階層には左側も右側も存在しないので、 Settings タブの mirror をオフにします。

IKコントロールで駆動されるジョイント

Driven タブで、スケルトン内の親子ジョイント階層に基づいて駆動されるジョイントを設定します:

  • root = point_0

  • mid = point_1

  • tip = point_2

IKコントロール

Controls タブで、作成するIKコントロールの名前を指定します。例:

  • polevector = pole

  • ikhandle = ikhandle

driverparent パラメータは、 polevector コントロールと ikhandle コントロールの親となるコントロールを定義します。 driverparent コントロールを移動すると、 polevector コントロールと ikhandle コントロールもそれと一緒に移動します。 driverparent を空っぽのままにすると、 polevector コントロールと ikhandle コントロールはどの子にもなりません。

AnimateステートでのIK機能:

スパイン(背骨)

スパインオートリグコンポーネントは、スパインカーブに基づいて基本的なスパインセットアップを追加します。 このリグコンポーネントを、曲げや捩れのセットアップの開始点として使用すると良いでしょう。 この例では、スパインリグロジックをチューブスケルトンに追加します。

スパインリグロジックの追加

ノード

説明

tube_skeleton

スパインリグの効果が良く分かるように、ここでは9本のジョイントスケルトンを作成します。

add_to_packed_folder

そのチューブスケルトンをパックフォルダ構造に追加します。 このスケルトンの名前をtube.skelにします( NametubeTypeskelに設定します)。

fk

チューブスケルトンをリグ階層に変換します。 APEX Autorig Component SOPの Component パラメータを fktransform に設定します。

設定

パラメータ

ソーススケルトン

Source タブの skeleton パラメータには、リグ階層の作成に使用されるスケルトンを指定します。 パックフォルダ構造内のスケルトンの名前(この例ではtube.skel)と一致するように skeleton パラメータを変更します。

spine

上流のFKリグコンポーネントによって作成されたリググラフにスパインリグロジックを追加します。 APEX Autorig Component SOPの Component パラメータを spine に変更します。

設定

パラメータ

スパインコントロールで駆動されるジョイント

Driven タブで、9本のジョイントそれぞれに対して transform パラメータを追加し、各パラメータにpoint_0point_1などを設定します。

スパインコントロール

Controls タブでは、デフォルトで4個のスパインコントロールが作成され、ジョイントチェーンに沿って均等に配置されます。 これらのコントロールの階層的な挙動は、 controlhierarchy パラメータで設定します:

  • fk - コントロールは、 Controls タブにリストされているコントロールの順番に基づいてFK階層内に存在します。

  • flat - スパインコントロールに対して階層はありません。つまり、コントロールはどの子にもなりません。

  • tangent - ジョイントチェーンの間にあるスパインコントロールは、最も近い外側コントロールの子になります。

adjust_control_ shapes_colors

ジョイントとコントロールのシェイプと色を設定します。

このSOPを選択してAnimateステートに入ると、スパイン機能が表示されます。 スケルトンジョイントは赤、スパインコントロールは青です:

ジョイントチェーンの間にあるコントロールが最も近い外側コントロールの子になるスパイン機能

トランスフォームドライバ

トランスフォームドライバリグコンポーネントを使用すれば、スケルトン内の既存コントロールのトランスフォーム(移動、回転、スケール)を駆動させる新しいコントロールを作成することができます。 基本的には、その既存コントロールはその新しいトランスフォームドライバコントロールに拘束されます。 その新しいトランスフォームドライバコントロールは、新しくスケルトンコントロールを作成することなく既存のスケルトンジョイントのピボットと向きを別の値で定義することができます。 もし新しいスケルトンコントロールを作成するとなれば、下流で何かのボーン変形に影響を与えてしまうことでしょう。

APEXグラフでは、そのトランスフォームドライバリグコンポーネントは、新しいTransformObjectノードを作成し、 その新しいTransformObjectノードと駆動される既存のTransformObjectノードの間に拘束を追加します。 その新しいTransformObjectノードはスケルトンに追加されません。 その新しいTransformObjectノードは、単にスケルトンジョイントを駆動するために使用される追加コントロールにすぎません。

トランスフォームドライバリグロジックの追加

ノード

説明

tube_skeleton

3本のジョイントスケルトンから始めます。

transformdriver

スケルトン上の既存コントロールを駆動させる新しいコントロールを追加します。 APEX Autorig Component SOPの Component パラメータを transformdriver に設定します。

この例では、トランスフォームドライバコントロールのrootを追加します。 このrootコントロールは、point_0の位置に留まり、point_0の移動と回転を駆動します。 setups マルチパラメータの隣りにあるをクリックして、新しいトランスフォームドライバコントロール毎にパラメータを追加して定義します ( setups マルチパラメータ内のデフォルトで作成されている余分なコントロールは削除してください)。

設定

パラメータ

ソーススケルトン

guidesource には、パックフォルダ構造内のスケルトン(tube.skel)を設定します。

コントロール名

Control タブの driverrootに設定します。

コントロール位置

新しいrootコントロールは、( Control タブの) driverguide パラメータの位置に留まります。 driverguidepoint_0に設定します。 新しいroot TransformObjectノードの restlocal パラメータは、そのpoint_0の位置に設定されます。

driverguide に何も設定しなかった場合、新しいrootコントロールは原点に作成されます。

コントロールによって駆動されるトランスフォームコンポーネント

Control タブの makecontrolpromotet (移動)、 promoter (回転)を有効にします。

コントロールによって駆動されるジョイント

Driven タブの driventransformspoint_0に設定します。

トランスフォームドライバコントロールがジョイントチェーンのルートに留まります

2つ目のトランスフォームドライバコントロールの追加

これから2つ目のトランスフォームドライバコントロールのtipを追加します。 このtipコントロールは、point_2の位置に留まり、point_2の移動と回転を駆動します。 rootトランスフォームドライバコントロールを移動または回転しても、point_2tipコントロールに拘束されているので、もはや移動しません。

ジョイントチェーンのrootとtipにあるトランスフォームドライバコントロール

トランスフォームドライバが異なる位置でジョイントを駆動させる

トランスフォームドライバコントロールが、それが駆動しているジョイントとは異なる位置に留まっている場合、そのトランスフォームドライバコントロールは親拘束のように動作します。 トランスフォームドライバコントロールを回転させると、駆動されるTransformObjectとその子すべてがそのトランスフォームドライバコントロールを中心に回転します。

トランスフォームドライバコントロールがpoint_0に留まり、point_1を駆動します。

トランスフォームドライバコントロールがpoint_0に留まり、point_2を駆動します。

トランスフォームドライバコントロールがpoint_2に留まり、point_1を駆動します。

キャラクタリグの構築

この例では、事前構築済みリグコンポーネントを使用して、Electraテストジオメトリに対してリグを構築します。 以下のピースを追加して最終リグを構築します:

  • Electraスケルトンジョイント階層に基づいたFKリグ階層

  • IKロジック

  • 追加コントロール

  • スパインロジック

  • コントロールの設定

FKリグの作成

Electraテストジオメトリに対してFKリグを作成し、そのキャラクタでのFK機能が確認できるようにするために、そのリググラフにボーン変形ロジックを追加します。

事前構築済みリグコンポーネントを使用して、FKリグロジックとボーン変形リグロジックを追加

ノード

説明

Electraテストジオメトリ

Electraテストジオメトリノードの Output パラメータを Skin Surface に設定します。 これは、Electraの形状を1番目の出力として出力します。 2番目の出力はElectraのスケルトンです。

start_character

Electraテストジオメトリから以下のキャラクタ要素をパックフォルダ構造に追加します:

  • 変形用の静止スキンとして使用するシェイプ。これはPack Folder SOPの2番目の入力の1つ目の接続です。このスキンの名前をBase.shpにします( NameBaseTypeshpに設定します)。

  • Electraスケルトン。これはPack Folder SOPの2番目の入力の2つ目の接続です。このスケルトンの名前をBase.skelにします( NameBaseTypeskelに設定します)。

この時点で、Electraテストジオメトリのスキンとスケルトンがパックフォルダ構造に追加されています。 Rig Treeビューには、以下のパックフォルダ階層が表示されます:

/
-- Base.shp
-- Base.skel

fk

Electraスケルトンをリグ階層に変換してリググラフを作成します。 そのリググラフがパックフォルダ構造に追加されます。 そのAPEX Autorig Component SOPの Component パラメータを fktransform に設定します。

設定

パラメータ

リグ名

デフォルトでは、このFKリグコンポーネントによって作成されるリグの名前は( Rig セクションの Name パラメータで設定された)Base.rigです。

ソーススケルトン

ソーススケルトンの名前は、 Source タブの skeleton パラメータで指定します。 デフォルトでは、Base.skelに設定されています。 このBase.skelは、パックフォルダ構造内のスケルトンの名前と一致します。

これでRig Treeビューには、以下のパックフォルダ階層が表示されます:

/
-- Base.shp
-- Base.skel
-- Base.rig

bonedeform

リググラフにボーン変形ロジックを追加します。 そのAPEX Autorig Component SOPの Component パラメータを bonedeform に設定します。

restgeorestskeletonoutputgeo のパラメータのデフォルト値は、パックフォルダ構造内のキャラクタ要素の名前と一致します。

AnimateステートでElectraに対してFKポージングを実施します:

  1. bonedeform APEX Autorig Component SOPを選択し、そのDisplayフラグをオンにします。

  2. 左側のツールバーにある Animateをクリック、または、ビューポート内でEnterを押します。

FKリグロジックが追加されたElectra

IKリグロジックの追加

上記のFKリグロジック上に腕と足のIK機能を加えます。 IKリグコンポーネントは、単一IKチェーン(オプションでミラージョイント)の機能を定義するので、 腕と足で別々にIKリグコンポーネントが必要になります。

腕と足に対してIKリグロジックを追加

ノード

説明

ik_arms

キャラクタの腕にIK機能を追加します。 そのAPEX Autorig Component SOPの Component パラメータを smoothik に設定します。

設定

パラメータ

ソーススケルトン

guidesource には、パックフォルダ構造内のスケルトンのBase.skelを設定します。

ミラーリング

IK機能をElectraの右腕に対してミラーリングしたいので、 Settings タブの mirror パラメータを有効にします。

IKコントロールによって駆動される腕ジョイント

Driven タブで、スケルトンジョイント階層に基づいて駆動されるジョイントを設定します:

  • root = upperarm_l

  • mid = lowerarm_l

  • tip = hand_l

スケルトンの腕ジョイント

IK腕コントロール

Controls タブで、このリグコンポーネントによって作成されるIK腕コントロールの名前を指定します。例:

  • polevector = arm_pole_l

  • ikhandle = arm_ikhandle_l

driverparent パラメータは、 polevector コントロールと ikhandle コントロールの親となるコントロールを定義します。 driverparent コントロールを移動すると、 polevector コントロールと ikhandle コントロールもそれと一緒に移動します。 driverparent を空っぽのままにすると、 polevector コントロールと ikhandle コントロールはどの子にもなりません。

ik_legs

キャラクタの足にIK機能を追加します。 そのAPEX Autorig Component SOPの Component パラメータを Use Second Input に設定します。 これは、前のAPEX Autorig Component SOPの設定を現行SOPにコピーします。 その後に、様々なパラメータを有効にすることえ、前のコンポーネントの設定を上書きすることができます。

設定

パラメータ

IKコントロールによって駆動される足ジョイント

Driven タブで、スケルトンジョイント階層に基づいて駆動される足ジョイントを設定します:

  • root = thigh_l

  • mid = calf_l

  • tip = foot_l

スケルトンの足ジョイント

IK足コントロール

Controls タブで、このリグコンポーネントによって作成されるIK足コントロールを有効にして、その名前を指定します。例:

  • polevector = leg_pole_l

  • ikhandle = leg_ikhandle_l

bonedeform

ElectraのIKの挙動を確認します:

  1. bonedeform APEX Autorig Component SOPを選択し、そのDisplayフラグを有効にします。

  2. 左側のツールバーにある Animateをクリック、または、ビューポート内でEnterを押します。

IKリグロジックが追加されたキャラクタ

スパインリグロジックの追加

これからElectraリグにスパインリグロジックを追加します。 スパインリグコンポーネントを追加する前に、Electraリグにさらにコントロール階層(それぞれのコントロールは、スパインコントロールとしてそのスパインコンポーネントで使用します)を追加します。

スパインリグロジックの追加

ノード

説明

additional_controls

リグに2個のコントロール(maincog)を追加します。 mainコントロールは、スケルトンのrootジョイントの位置に留まり、 cogコントロールはスケルトンのpelvisジョイントの位置に留まります。 このcogコントロールは、スパインジョイントチェーンの親として、スパインリグコンポーネントで使用されます。

そのAPEX Autorig Component SOPの Component パラメータを transformdriver に設定します。 setups マルチパラメータの隣にあるをクリックして、新しいコントロール毎にパラメータセットを追加します。

設定

パラメータ

ソーススケルトン

guidesource には、パックフォルダ構造内のスケルトン(Base.skel)を設定します。

コントロール名

Control タブの drivermainまたはcogに設定します。

コントロール位置

Control タブで:

  • mainコントロール: driverguide を空っぽのままにします。このコントロールは原点に作成されます。

  • cogコントロール: driverguidepelvisに設定します。

コントロールの親

Control タブで:

  • mainコントロール: mainコントロールは親を持たないので、 driverparent を空っぽのままにします。

  • cogコントロール: driverparentmainに設定します。

コントロールによって駆動されるジョイント

Driven タブで:

  • mainコントロール: driventransformsrootに設定します。

  • cogコントロール: driventransformspelvisに設定します。

コントロールによって駆動されるトランスフォームコンポーネント

Control タブの makecontrolpromotet (移動)、 promoter (回転)を有効にします。

追加されたmainコントロールとcogコントロール

spine

リグにスパインリグロジックを追加します。 そのAPEX Autorig Component SOPの Component パラメータを spine に設定します。

設定

パラメータ

スパインコントロールによって駆動されるジョイント

Driven タブの transform パラメータには、スパインコントロールで駆動されるスケルトンジョイントを設定します: pelvis, spine_01, spine_02, spine_03

pelvisジョイントとspineジョイント

スパインコントロール

Controls タブでは、デフォルトで4個のスパインコントロールが作成され、 transform パラメータで指定された4本のジョイントの位置にそれらのコントロールが配置されます。

以下の動画では、スパインロジックが追加されたリグと追加されていないリグの違いを示しています。 スケルトンのスパインジョイントは黄、スパインロジックのスパインコントロール(右側の動画)は緑です。

スパインロジックが追加されていないリグ
スパインロジックが追加されたリグ

コントロールを設定する

APEX Configure Controls SOPを使用して、コントロールのシェイプとカラーを設定します。 Rig Source パラメータで、コントロールを設定するリグを指定します。 この例では、 Rig SourceBase.rigに設定します。

コントロールを設定したら、Electraのリグの構築は完了です。

最終Electraリグ
コントロールのシェイプとカラーを設定する前(左)と設定した後(右)

ガイドスケルトンを使用してリグ階層を作成する

この例では、ジョイントをベーススケルトンに追加することで、 ガイドスケルトン を作成します。 このガイドスケルトンは、初期のリグ階層を作成するために使用し、リグロジックピースをそのリグ階層に追加して最終リグを構築します。 そこで追加したジョイントは、後で(実質的にジョイントで表現された)コントロールを作成する際の参照として使用します。 このため、適切なジョイントがベーススケルトンに追加されるように、リグにおいてあなたが欲しいコントロールを事前に知っておく必要があります。 コントロールがジョイントで表現されているわけなので、コントロールの階層と静止位置をガイドスケルトンの一部として定義することができます。

リグを構築する手順:

  1. ジョイントをベーススケルトンに追加してガイドスケルトンを作成します。

  2. FKリグコンポーネントを使用して、そのガイドスケルトンからFK階層リググラフを作成します。 これ以降は、そのガイドスケルトンはもはや使用しません。リグの構築に必要なすべての情報は、そのリググラフから取得することとなります。

  3. リグロジックピース(IK、ボーン変形など)を追加して、最終リグを構築します。

キャラクタを作成する

まずはElectraテストジオメトリから始めて、そのスケルトンをベーススケルトンとして使用します。 そして、ジョイントをベーススケルトンに追加してガイドスケルトンを作成します。 次に、そのElectraのスキン、ベーススケルトン、ガイドスケルトンをパックフォルダ構造に追加します。

ガイドスケルトンを持つキャラクタの作成

ノード

説明

Electraテストジオメトリ

Electraテストジオメトリノードの Output パラメータを Skin Surface に設定します。 これは、Electraの形状を1番目の出力として出力します。 2番目の出力はElectraのスケルトンで、ベーススケルトンとして使用します。

guide_skeleton

Skeleton SOPは、Electraスケルトンのコピーを作成し、このコピーにさらに ガイドスケルトン と呼ばれるジョイントを追加します。 追加されたジョイントは、後でコントロールを作成する際の参照として使用します。

オリジナルのElectraスケルトン(左); 黒のジョイントを追加したガイドスケルトン(右)

start_character

以下のキャラクタ要素をパックフォルダ構造に追加します:

  • 変形用の静止スキンとして使用するシェイプ。これはPack Folder SOPの2番目の入力の1つ目の接続です。このスキンの名前をBase.shpにします( NameBaseTypeshpに設定します)。

  • Electraスケルトン。これはPack Folder SOPの2番目の入力の2つ目の接続です。このスケルトンの名前をBase.skelにします( NameBaseTypeskelに設定します)。

  • ジョイントが追加されたガイドスケルトン。これはPack Folder SOPの2番目の入力の3つ目の接続です。このガイドスケルトンの名前をGuides.skelにします( NameGuidesTypeskelに設定します)。

リグロジックを構築する

いくつかの事前構築済みリグコンポーネントを使用することで、キャラクタのリグロジックを構築することができます。 以下に載せている各APEX Autorig Component SOPは、リグロジックピースをキャラクタ全体のリグロジックに追加します。

リグコンポーネントによってキャラクタのリグロジックを構築

それぞれのリグコンポーネントの詳細は、事前構築済みリグコンポーネントを参照してください。 以下のテーブルには、ガイドスケルトンを持つリグの構築に特化した設定に焦点を当てています。

ノード

リグコンポーネント

説明

fk_from_skeleton

fktransform

パックフォルダ構造内のガイドスケルトンをリグ階層に変換してリググラフを作成します。 これ以降は、そのガイドスケルトンはもはや使用しません。リグの構築に必要なすべての情報は、このFKコンポーネントによって作成されたリググラフから取得することとなります。

Source タブの skeleton パラメータをGuides.skelに設定します。

additional_controls

transformdriver

情報はリググラフから取得し、ガイドスケルトンから取得しないので、 guidesource パラメータを無効にします。

spine

spine

guidesource パラメータを無効にします。

arm_ik

smoothik

guidesource パラメータを無効にします。

leg_ik

Use Second Input

guidesource パラメータを無効にします。

キャラクタをシーンに追加する

APEX Scene Add Character SOPおよびAPEX Scene Animate SOPを使用して、キャラクタをシーンに追加し、アニメーションさせます。 詳細は、アニメーションワークフローを参照してください。

コントロールシェイプが追加されたガイドスケルトンの使用方法

この例では、ジョイントをベーススケルトンに追加することで、ガイドスケルトンを作成します。 次に、コントロールシェイプをガイドスケルトンに追加し、この最終ガイドスケルトンをパックフォルダ構造に追加します。

リグロジックをさらに深く構築する時に、コントロールの位置とシェイプに関する情報は、ガイドスケルトンから取得されます。 これは、リググラフから情報を取得するよりも高速です。

ガイドスケルトンを使用してリグを構築
コントロールシェイプを持ったガイドスケルトン

ノード

リグコンポーネント

説明

fk_from_skeleton

fktransform

ベースのElectraスケルトンをリグ階層に変換してリググラフを作成します。 Source タブの skeleton パラメータをBase.skelに設定します。

additional_controls

transformdriver

リグにコントロールを追加し、ガイドスケルトンをチェックして正しい位置を取得します。 guidesource パラメータをGuides.skelに設定します。

spine

spine

guidesource パラメータを無効にします。

arm_ik

smoothik

guidesource パラメータを無効にします。

leg_ik

Use Second Input

guidesource パラメータを無効にします。

adjust_control_colors

N/A

ガイドスケルトンからコントロールシェイプが取得されるようにするために、 Guide Source パラメータをGuides.skelに設定します。

KineFX

リグ入力の準備

プロシージャルリギング

変形

アニメーション

別表

アニメーションのリターゲット

KineFX19.5の機能

互換性

ペイン