Houdini 20.5 キャラクタ KineFX

リギング用スケルトンの準備

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

リギング用のスケルトンを準備するには、キャラクタのベーススケルトンに情報を追加して、 ガイドスケルトン と呼ばれる参照スケルトンを作成します。ガイドスケルトンの情報は、下流のリグコンポーネントによって取得され、キャラクタのリグ機能を構築できるようになります。

ガイドスケルトン

ガイドスケルトンは、タグ、プロパティ、その他の情報が追加されたキャラクタのベーススケルトンです。ガイドスケルトンのためにリグが構築されるのではないことに注意してください。キャラクタの最終的なリグを構築するために、ガイドスケルトンの追加情報を使用しているだけです。ガイドスケルトンのジョイントを、 ガイド ジョイント と呼びます。

ガイドスケルトンを作成するために追加できる情報には、以下のようなものがあります:

  • リグにコントロールを作成するための参照として使用される追加ジョイント。

  • ジョイントのグループを識別するタグ(ラベル)。

  • ガイドジョイントに情報を設定するプロパティ

Note

用語に関する注意: fktranformリグコンポーネントを使用してスケルトン(またはガイドスケルトン)をリグに変換すると、スケルトンジョイントは1対1のマッピングでTransformObjectグラフノードに変換されます。これらのTransformObjectノードは基本的にAPEXでジョイント階層を構成するため、理解しやすいように、TransformObjectノードを APEXジョイント と呼びます。

APEXジョイント上の少なくとも1つのトランスフォームコンポーネント(移動、回転、スケール)がプロモートされると、APEXジョイントは、ユーザがビューポート内で操作できるコントロールになります。

タグ

Tags are essentially labels that are added on guide joints to identify and group joints. For example, we could tag the shoulder, elbow, and hand joints on the left side of the skeleton with the string L_Arm, which groups these joints as a body part. This tag is then used by rig components downstream to identify groups of joints to apply the rig functionality to. In this way, tags are a way for the skeleton to communicate information to the rig components.

Tags are stored in the tags string array attribute on the guide joints, and are created using the Attribute Adjust Array SOP. In the network editor, “Attribute Adjust Tags” is an alias to the Attribute Adjust Array SOP.

Skeleton tags

Note

ジョイント上のタグを指定しても、リグコンポーネントはタグを自動的に取得しません。 タグを取得するには、リグコンポーネントを更新する必要があります。 取得するタグは、リグコンポーネントの segments パラメータで指定します。

プロパティ

Properties are information stored on guide joints that are picked up later by rig components to configure the controls they create. For example, if you want a character’s finger controls to have a box shape, you could set the control shape property for the finger joints in the guide skeleton. When the FK rig component downstream creates controls for the rig, it will pick up this property on the finger guide joints and create box shape controls.

Properties are stored in the properties dictionary attribute on the guide joints, and are created using the Attribute Adjust Dictionary SOP. The following properties can be set:

Property

Type

Description

scaleinheritance

int

The scale inheritance of the APEX joint.

rord

int

The rotation order of the APEX joint.

xord

int

The transformation order of the APEX joint.

promote

string

The transform components to promote on the APEX joint, for example, “t r s”.

shape

string

The control shape. You can specify any of the pre-shipped shapes listed in the APEX Configure Controls SOP Shape Override parameter, for example, circleplanes_wires or torusb.

shapetranslate

Vector3

The position of the control shape.

shaperotate

Vector3

The rotation of the control shape.

shapescale

Vector3

The scale of the control shape.

shapecolor

Vector3

The color of the control shape.

タグの追加方法と使用方法

この例では、Electraの腕と脚にタグを追加します。 これらのタグは、下流のマルチIKリグコンポーネントによって取得され、タグ付けされた手足にIK機能が追加されます。

タグ付きのガイドスケルトンを作成する

まず、Electraテストジオメトリのベーススケルトンにタグを追加して、ガイドスケルトンを作成します:

ガイドスケルトンにタグを追加
  1. Electra Test Geometry SOPで、 OutputSkin Surface に設定します。

  2. Attribute Adjust Array SOPで:

    • Attribute ClassPoint に設定します。

    • Array TypeString に設定します。

  3. 左のツールバーの Show Handleをクリックするか、ビューポートにマウスカーソルを置いてEnterを押して、Attribute Adjust Arrayビューアステートに入ります。

  4. Attribute Adjust Arrayビューアステートで、タグを設定します:

    • ジョイントを選択します。

    • Aを押します。

    • タグの名前を入力します。

    • Enterを押します。

    Attribute Adjust Array SOPの Set Values セクションのマルチパラメータエントリには、ビューアステートで設定したタグが自動的に入力されます。

  5. スケルトンの両側のタグに異なるカラーを設定します:

    • Attribute Adjust Array SOPの Visualize セクションで、 Colorize の横にあるをクリックし、タグのグループにカラーを追加します。

    • Value パラメータをL_*に設定します。

    • カラーを設定します。

    • 右側でも ValueR_*に設定して繰り返します。

    スケルトンのタグ
  6. タグが追加されたElectraのベーススケルトンは、ガイドスケルトンです。Pack Folder SOPは、ガイドスケルトンをキャラクタファイルのセットに追加して戻します。 キャラクタフォルダ構造のキャラクタ要素に名前を付ける方法に関する詳細は、パックキャラクタフォーマットを参照してください。 Pack Folder SOPで:

    • 1番目の入力はElectraのスキンです。 NameBaseTypeshpに設定します。

    • 2番目の入力はElectraのベーススケルトンです。 NameBaseTypeskelに設定します。

    • 3番目の入力はガイドスケルトンです。 NameGuidesTypeskelに設定します。

  7. ガイドジョイントのタグを確認するには:

    • Attribute Adjust Array SOPを選択します。

    • Geometry Spreadsheetで、上部のツールバーからを選択します。

    • 腕と脚のジョイントについて、 tags 列の下のエントリをクリックし、 Inspect を選択します。腕ジョイントには、以下のtags文字列配列が表示されます:

      [ L_Arm ]
      

リグコンポーネントでスケルトンのタグを使用する

Houdiniの事前構築済みリグコンポーネントを使用して、腕と脚にIK機能を含むElectraのリグを構築します:

ガイドスケルトンを使用してリグロジックを構築
  1. まず、fktransformリグコンポーネントを使用してFK機能を追加します。fktransformコンポーネントは、スケルトンジョイントをAPEXジョイントに変換します。fk APEX Autorig Component SOPで:

    • Component Sourcefktransform に設定します。

    • Source タブで、 skeletonGuides.skelに設定します。

    • Controls タブで、 tpromotegroup および rpromotegroup*に設定します。これにより、すべてのAPEXジョイントの移動および回転コンポーネントがプロモートされ、ビューポートで操作できるようになります。

    FK機能をリグに追加
  2. bonedeformリグコンポーネントはスケルトンにキャラクタスキンを追加します。bonedeform APEX Autorig Component SOPで、 Component Sourcebonedeform に設定します。

    変形機能をリグに追加
  3. multiikリグコンポーネントは、リグにIK機能を追加します。スケルトンジョイントのタグを検索し、それらのジョイントグループに追加することで、複数回リグに追加することができます。multiik APEX Autorig Component SOPで:

    • Component Sourcemultiik に設定します。

    • Driven タブで、 segments"*Leg *Arm"に設定します。これは、*Legおよび*Armタグを持つガイドジョイントにIKを追加するようにmultiikリグコンポーネントに指示します。

    IK機能をリグに追加

Note

ユーザがガイドスケルトンを作成するためにタグを追加できることに加えて、リグコンポーネントもコントロール、APEXジョイント、作成されるその他のグラフノードにタグを追加できます。リグコンポーネントはさらに下流でこれらのタグを取得し、特定のノードグループに対して独自の機能を実行できます。

例えばデフォルトでは、fktransformコンポーネントは、作成されるすべてのAPEXジョイントにbindタグを追加します( tags パラメータで設定)。下流で、multiikコンポーネントの driven パラメータはデフォルトで%tag(bind)に設定されます。これはmultiikコンポーネントに、bindタグが付けられたすべてのAPEXジョイントにIK機能を適用できることを伝えます。次に、タグ付きのジョイントの segments パラメータを見つけて、実際にIKを適用します。

複数のキャラクタに同じリグを使用する

Electraに使用されるIKリグ機能は、異なるキャラクタ(ここでは象)にも適用できます:

同じリグ機能を使用している複数のキャラクタ

象の脚にタグを設定します:

象のタグ

multiikリグコンポーネントで、 segments パラメータは"*Leg *Arm"に設定されています。そのためElectraの場合、IKは、*Legおよび*Armとタグ付けされたElectraの腕と脚に追加されます。象の場合、IKは*Legとタグ付けされた4本の脚に追加されます。

IK機能を象のリグに追加

ガイドスケルトンにプロパティを追加する

前の例では、fktransformリグコンポーネントを使用して、ジョイントをコントロールにプロモートしました。 以下の例では、代わりにプロパティを使用して、コントロールに変換するAPEXジョイントを指定します。 また、このプロパティを使用してコントロールの外観も指定します。 プロパティは、Attribute Adjust Dictionary SOPを使用して作成します。

ガイドスケルトンにプロパティを追加
  1. Attribute Adjust Dictionary SOPで:

    • Attribute Namepropertiesに設定します。

    • Attribute ClassPoint に設定します。

  2. プロパティを適用するスケルトンジョイントを選択します。:

    • Group パラメータの横にあるをクリックします。

    • ビューポートで、指ジョイントを選択します。⇧ Shiftを押したまま複数のジョイントを選択します。

    • Enterを押します。 Group パラメータに、選択したジョイントのポイント番号が入力されます。

    Note

    異なるジョイントセットにプロパティを追加したい場合は、別のAttribute Adjust Array SOPを使用し、各SOPで Group パラメータを別のジョイントグループに設定する必要があります。

  3. 指ジョイントの回転がプロモートされるように設定します。 Set Values セクションで:

    • Key = promote

    • Type = String

    • Value = r

    Note

    複数のコンポーネントをプロモートするには、 Value のコンポーネントをスペース区切りで指定します(例えば、“t r s”)。

  4. 指ジョイントのコントロールシェイプを設定します。 Set Values セクションで:

    • Number of Entries の横にあるをクリックし、properties辞書に別のエントリを追加します。

    • Key = shape

    • Type = String

    • Value = circle_wires

  5. 指のコントロールのサイズを設定します。 Set Values セクションで:

    • Number of Entries の横にあるをクリックし、properties辞書に別のエントリを追加します。

    • Key = shapescale

    • Type = Vector3

    • Value = (0.2, 0.2, 0.2)

  6. ガイドジョイントのプロパティを確認するには:

    • Attribute Adjust Dictionary SOPを選択します。

    • Geometry Spreadsheetで、上部のツールバーからを選択します。

    • 指ジョイントについて、 properties 列の下のエントリをクリックし、 Inspect を選択します。以下のproperties辞書が表示されます:

      "promote":"r",
      "shape":"circle_wires",
      "shapescale":[0.2,0.2,0.2]
      
  7. fk APEX Autorig Component SOPで:

    • Component Sourcefktransform に設定します。

    • Source タブで、 skeletonGuides.skelに設定します。

    • Controls タブで、 tpromotegrouprpromotegroupspromotegroup パラメータをクリアすることで、fktransformコンポーネント自体がどのジョイントもコントロールにプロモートしないようにします。

  8. fktransformコンポーネントによって取得されるコントロールプロパティを確認します。fk APEX Autorig Component SOPを選択し、ビューポートでEnterを押します。

    リグ上の指のコントロール

ガイドスケルトンにジョイントを追加する

Rig Attribute VOP SOPを使用することで、ガイドスケルトンにジョイントを追加することができます。 それらのジョイントは後で参照として使用して、リグ上にコントロールを作成することができます。 この例では、追加されたジョイントは、下流のlookatリグコンポーネントで使用されます:

ガイドスケルトンにジョイントを追加

ガイドスケルトンにlookatジョイントを追加する

  1. Rig Attribute VOP SOPのディスプレイフラグを有効にします。

  2. Rig Attribute VOP SOPをダブルクリックして、そのノードの中に入ります。

  3. ビューポートの左側にあるツールバーの Show Handleをクリックするか、マウスカーソルをビューポート内に置いてEnterを押して、Rig Attributeビューアステートに入ります。

  4. 頭ジョイントをネットワークビューにドラッグすると、頭ジョイントのトランスフォームを表すGet Point Transform VOPが自動的に作成されます。この頭ジョイントは、lookatジョイントの作成時に参照として使用されます。

    頭ジョイントを取得
  5. Offset Transform VOPAdd Joint VOPを追加します:

    ガイドスケルトンにlookatジョイントを追加
  6. Offset Transform VOPの Translate パラメータを調整して、lookatジョイントの位置を設定します。

  7. Add Joint VOPで、 Namelookat_locatorに設定します。

  8. lookatジョイントを頭ジョイントの子にします - Get Point Transform VOP ptnum → Add Joint VOP parent に接続します。

    ガイドスケルトンに追加されたlookatジョイント

lookatコントロールを作成する

では、lookatジョイントの位置にコントロールを作成します:

  1. Pack Folder SOPで:

    • 1番目の入力はElectraのスキンです。 NameBaseTypeshpに設定します。

    • 2番目の入力はElectraのベーススケルトンです。 NameBaseTypeskelに設定します。

    • 3番目の入力はガイドスケルトンです。 NameGuidesTypeskelに設定します。

  2. fk APEX Autorig Component SOPで:

    • Component Sourcefktransform に設定します。

    • Source タブで、 skeletonGuides.skelに設定します。

    • ルートジョイントをプロモートし、頭ジョイントのコンポーネントを回転します。 Controls タブで:

      • tpromotegrouprootに設定します。

      • rpromotegrouproot headに設定します。

  3. bonedeform APEX Autorig Component SOPで、 Component Sourcebonedeform に設定します。

  4. lookatジョイントにコントロールを作成します。create_lookat_control APEX Autorig Component SOPで:

    • Component Sourcetransformdriver に設定します。

    • Settings タブで、 use_tuse_ruse_s をオフにします。

    • Driven タブで、 driventransforms パラメータをクリアします。

    • Control タブで:

      • driverlookat_ctrlに設定します。これはlookatコントロールの名前です。

      • driverguidelookat_locatorに設定します。これはlookatコントロールを配置する位置です。

      • driverparentrootに設定します。これは、lookatコントロールをルートジョイントの子にします。

    • Shape タブで:

      • shapeballに設定します。

      • シェイプの scale を上げます。

    lookatコントロール

lookat拘束を作成する

create_lookat_constraint APEX Autorig Component SOPで:

  1. Component Sourcelookat に設定します。

  2. Settings タブで、 updir を(0, 0, -0.3)に設定します。これにより、Upベクトルが頭ジョイントの上に配置されます。

  3. Driven タブで:

    • drivenheadに設定します。

    • driverhead_ctrlに設定します。これは、lookatコンポーネントによって作成され、 driven ジョイントを移動できるようにするコントロールの名前です。

    • targetlookat_ctrlに設定します。

    • uphead_upに設定します。これは、Up位置のコントロールの名前です。

    • useup をオンにします。

    lookat拘束

ガイドスケルトンにカラーを追加する

ガイドスケルトンにカラーを追加

Color SOPで:

  1. Group TypePoints に設定します。

  2. カラーを適用するジョイントを指定します:

    • Group パラメータの横にあるをクリックします。

    • ビューポートで、ジョイントを選択します。⇧ Shiftを押したまま複数のジョイントを選択します。

    • Enterを押します。 Group パラメータに、選択したジョイントのポイント番号が入力されます。

  3. Color を設定します。

    ガイドスケルトンのカラー

How to

To...Do this

ジョイントからタグを削除する

Attribute Adjust Arrayビューアステートで:

  1. ジョイントを選択します。

  2. ⌃ Ctrl + Aを押します。

  3. タグ名を入力します。

  4. Enterを押します。

コンテンツライブラリのサンプル

以下のサンプルは、コンテンツライブラリから入手できます:

Electraスケルトンにタグを追加し、事前構築済みリグコンポーネントを使用してElectraのリグを作成する方法を学びます。ファイルはここからダウンロードしてください。

各キャラクタのスケルトンに追加されたタグに基づいて、様々なキャラクタリグを簡単に切り替えることができます。ファイルはここからダウンロードしてください。

KineFX

概要

キャラクタ要素の準備

APEXグラフを使用したリギング

APEXスクリプトを使用したリググラフの構築

リグコンポーネントを使用したリギング

ビューポート内でアニメーションを付ける

SOPベースのアニメーション

変形

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

H20以前

ペイン

別表