Houdini 20.5 キャラクタ KineFX

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

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

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

ガイドスケルトン

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

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

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

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

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

Note

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

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

タグ

タグは実質的にはガイドジョイントに追加されるラベルであり、ジョイントを特定したりグループ化するのに使用します。 例えば、スケルトンの左側の肩、肘、手のジョイントにL_Arm文字列のタグを付けると、それらのジョイントをボディパーツとしてグループ化することができます。 下流のリグコンポーネントは、このタグを使用して、リグ機能を適用するジョイントのグループを特定します。 このように、タグは、スケルトンがリグコンポーネントに情報を伝達するための方法になっています。

タグは、ガイドジョイント上のtags文字列配列アトリビュートに格納され、Attribute Adjust Array SOPを使用して作成されます。 ネットワークエディタで、“Attribute Adjust Tags”はAttribute Adjust Array SOPのエイリアスです。

スケルトンのタグ

Note

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

プロパティ

プロパティはガイドジョイント上に格納される情報であり、後でリグコンポーネントがコントロールを作成する際にその情報を取得してそのコントロールを設定します。 例えば、キャラクタの指のコントロールシェイプをボックスにしたい場合、ガイドスケルトン内の指ジョイントにコントロールシェイププロパティを設定することができます。 下流のFKリグコンポーネントは、リグに対してコントロールを作成する際に、指のガイドジョイント上のこのプロパティを取得して、ボックス形状のコントロールを作成するようになります。

プロパティはガイドジョイント上のproperties辞書アトリビュートに格納され、Attribute Adjust Dictionary SOPを使用して作成されます。 以下のプロパティを設定できます:

プロパティ

説明

scaleinheritance

int

APEXジョイントのスケールの継承

rord

int

APEXジョイントの回転順

xord

int

APEXジョイントのトランスフォーム順

promote

string

プロモートするAPEXジョイントのトランスフォームコンポーネント(例えば、“t r s”)。

shape

string

コントロールシェイプ。 APEX Configure Controls SOPShape Override パラメータにリストされている事前に用意されたどれかのシェイプを指定することができます(例えば、circleplanes_wirestorusb)。

shapetranslate

Vector3

コントロールシェイプの位置。

shaperotate

Vector3

コントロールシェイプの回転。

shapescale

Vector3

コントロールシェイプのスケール。

shapecolor

Vector3

コントロールシェイプのカラー。

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

この例では、Electraの腕と脚にタグを追加します。 これらのタグは、下流のMulti 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ビューアステートで、タグを設定します:

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

    • 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. ジョイント(s)を選択します。

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

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

  4. Enterを押します。

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

以下のサンプルは、コンテンツライブラリで利用可能です:

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

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

KineFX

概要

キャラクタ要素の準備

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

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

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

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

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

変形

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

H20以前

ペイン

別表