Houdini 20.5 キャラクタ KineFX

リグコンポーネントを使ったキャラクタリギング

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

このページでは、事前構築済みリグコンポーネントを使用してElectraテストジオメトリのリグを構築します。以下のリグロジックのピースを追加してリグを完成させます:

これ以降のセクションでは、以下の最終ネットワークを構築する手順を段階を追って説明します:

セットアップ

  1. Electra SOPで、 Output パラメータを Skin Surface に設定します。 これによって、Electraのシェイプが1番目の出力として、Electraのスケルトンが2番目の出力として出力されます。

  2. Attribute Adjust Array SOPを使用して、Electraのベーススケルトンにタグを追加し、下流で様々なリグコンポーネントによって使用されるガイドスケルトンを作成します。 Attribute Adjust Array SOPでは、 Attribute ClassPoint に、 Array TypeString に設定します。

    Electraのリグを構築していく中で、タグを追加していきます。 このページの以降のセクションでは、各タグがガイドスケルトンに追加されるタイミングについて説明します。 以下の画像では、リグの構築が完了したElectraのタグのフルセットを確認することができます:

  3. Pack Folder SOPは、以下のキャラクタ要素をパックフォルダ構造に追加します:

    • Pack Folder SOPの1番目の入力は、変形に使用されるRestスキンです。 このジオメトリの名前をBase.shpにします( NameBaseTypeshpに設定します)。 ( NameType パラメータは、Pack Folder SOPの入力順にリストされます)。

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

    • 3番目の入力はガイドスケルトンです。これはタグが追加されたElectraのベーススケルトンです。 このガイドスケルトンの名前をGuides.skelにします( NameGuidesTypeskelに設定します)。

  4. Pack Folder SOPを選択し、Rig Treeビューでパックフォルダ階層を確認します。 Rig Treeビューで、 TypePacked Folders に設定します:

    /
    -- Base.shp
    -- Base.skel
    -- Guides.skel
    

FKおよびボーン変形

ElectraにFKリグを作成し、ボーン変形ロジックを追加してキャラクタのFK機能を確認します:

  1. 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
      
  2. APEX Autorig Component SOPのbonedeformは、ボーン変形ロジックをリググラフに追加するbonedeformリグコンポーネントです。 bonedeformノードで、 Component パラメータを bonedeform に設定します。 restgeorestskeletonoutputgeo パラメータのデフォルト値は、パックフォルダ構造のキャラクタ要素の名前に一致します。

  3. AnimateステートでElectraにFKポージングを実行します:

    • bonedeformノードを選択し、そのDisplayフラグをオンにします。

    • 左側のツールバーにある Animateをクリックするか、ビューポート内でEnterを押します:

      ElectraのFKの挙動
  4. 残りのリグを構築するのに、FKコントロールとして利用可能なすべてのジョイントが必要なわけではありません。 fkノードの Controls タブで、 tpromotegrouprpromotegroupspromotegroup パラメータのすべてのエントリを削除します。

rootコントロールおよびcogコントロールを追加する

transformdriverリグコンポーネントを使用して、Electraリグにrootおよびcogコントロールを追加します。 rootコントロールはスケルトンのルートジョイントにあり、cogコントロールはスケルトンの骨盤ジョイントにあります。cogコントロールは、背骨ジョイントチェーンの親として後ほど使用します。

  1. Attribute Adjust Array SOPで、骨盤にタグを追加します(タグの配置についてはセットアップを参照してください)。 pelvisタグはtransformdriverリグコンポーネントによって取得されます。 タグの作成についての詳細はスケルトンを準備するを参照してください。

  2. APEX Autorig Component SOPのadd_controlsは、Electraにrootコントロールおよびcogコントロールを追加します。 add_controlsノードで、 Component パラメータを transformdriver に設定します。

  3. rootコントロールに対して以下を設定します:

    • Driven タブで、 driventransformsrootに設定します。これは新しいコントロールによって駆動されるジョイントです。

    • Control タブで、 driver を新しいrootコントロールの名前に設定します。この例では、 driverMainに設定します。

    • driverguiderootに設定します。これにより、新しいコントロールがルートジョイントに配置されます。

    • Shape タブでコントロールシェイプを変更します。

  4. setups の横にあるをクリックし、もう1つコントロールを追加します。

  5. cogコントロールに対して以下を設定します:

    • Settings タブで、 use_tuse_r をオンにします。

    • cogコントロールがpelvisジョイントを駆動するようにしたいので、 Driven タブの driventransformspelvisに設定します。 driventransforms パラメータはAPEXパスパターンにも対応しているので、%tag(Pelvis)などの%tag()構文を使用してジョイントのグループを指定することができます。

      Note

      タグは大文字と小文字を区別します。 Electraリグでは、pelvis TransformObjectノードはすべて小文字です。タグを追加する際、Pelvisタグを大文字にしました。

    • Control タブの driverCogに設定します。

    • cogコントロールを骨盤ジョイントに配置したいので、 driverguidepelvisまたは%tag(Pelvis)に設定します。

    • cogコントロールの親をメインコントロールに設定するため、 driverparentMainに設定します。

    • makecontrolpromotetpromoter をオンにします。

    • Shape タブでコントロールシェイプを変更します。

  6. Animateステートで新しいコントロールを確認します:

    rootおよびcogコントロール付きのElectra

背骨

splineリグコンポーネントを使用して、Electraリグに背骨ロジックを追加します:

  1. Attribute Adjust Array SOPで、Spineタグを背骨ジョイントに追加します。これらのタグはsplineリグコンポーネントによって取得されます。

  2. APEX Autorig Component SOPのspineは、spline機能をElectraに追加します。spineノードで、 Component パラメータを spline に設定します。

  3. Driven タブの driven%tag(Spine)に設定します。

  4. splineセグメントは1つしかないので、 segmentsroottip パラメータのエントリを削除します。

  5. Parents タブで背骨のコントロールの親を設定します:

    • rootparent および tipparent先ほど追加したCogコントロールに設定します。

    • cvparentroot_ctrlに設定します。これは、背骨チェーンのルートのデフォルトの名前です( Driver タブの rootname パラメータで設定されています)。

  6. Animateステートで背骨の機能を確認します:

IK

multiikリグコンポーネントを使用して腕と脚にIK機能を追加します:

  1. Attribute Adjust Array SOPで、L_ArmR_ArmL_LegR_Legという腕と脚のタグを追加します。 これらのタグはmultiikリグコンポーネントによって取得されます。

  2. APEX Autorig Component SOPのikは、IK機能をElectraに追加します。 ikノードで、 Component パラメータを multiik に設定します。

  3. Driven タブの segments を、IKを追加したいタグに設定します。 この例では、 segments*Arm *Legに設定します。

    Note

    segments パラメータは、%tag()関数などのAPEXパスパターンを受け取りません。 代わりに、このフィールドでは直接タグ名を指定してください。

  4. Parents タブで、 tipparentCogに設定します。 povectorparent が空っぽの場合、極ベクトルはtipに親子化されます。

  5. AnimateステートでIKの挙動を確認します:

IK/FKブレンド

ikfkblendリグコンポーネントを使用して、腕と脚のIKおよびFK間をブレンドする機能を追加します:

  1. APEX Autorig Component SOPのikfkblendは、IK/FKブレンド機能をElectraに追加します。 ikfkblendノードで、 Component パラメータを ikfkblend に設定します。

  2. Driven タブの segments を、IK/FKブレンドを追加したいタグに設定します。 この例では、 segments*Arm *Legに設定します。

  3. AnimateステートでIK/FKブレンドの挙動を確認します:

    Note

    ハンドルパラメータUse Click and Drag がオフの場合、抽象コントロールを最初に選択してから、ドラッグしてIK/FKブレンドの効果を確認する必要があります。 Use Click and Drag がオンの場合は、抽象コントロールを一度にクリックアンドドラッグすることができます。

リバースフット

reversefootリグコンポーネントを使用してリバースフット機能を追加します:

  1. Attribute Adjust Array SOPで、足のタグ(L_FootR_Foot)、球ジョイントのタグ(Ball)、足首ジョイントのタグ(Ankle)を追加します。 これらのタグはreversefootリグコンポーネントによって取得されます:

  2. APEX Autorig Component SOPのreverse_footで、 Component パラメータを reversefoot に設定します。

  3. Driven タブで:

    • segments*Footに設定します。

    • デフォルトで、 ankle%tag(Ankle)に、 ball%tag(Ball)に設定されています。 これらはスケルトンに追加したタグ名と一致します。

    • ikdriven パラメータはデフォルトで%tag(ik_tip)に設定されています。 ik_tip上流のmultiikリグコンポーネントによって追加されたタグです( Tags タブの tagtarget パラメータ)。

  4. Animateステートでリバースフットの挙動を確認します:

つま先ジョイントを追加する

Electraのスケルトンにはつま先ジョイントがありませんが、reversefootコンポーネントは自身の目的ために自動的につま先を作成するので、 Driven タブの toe パラメータには何も指定する必要はありません。 独自のつま先ジョイントを追加したい場合:

  1. Rig Attribute VOP SOPを使用してつま先ジョイントを追加します。 詳細は、ジョイントを追加するを参照してください:

  2. Rig Attribute VOP SOPで、Electraのball_lおよびball_rジョイントを参照として使用して、つま先ジョイントを作成します:

    Rig Attribute VOP SOPでつま先ジョイントを追加
  3. Offset Transform VOPTranslate パラメータを調整して、つま先ジョイントの位置を設定します。

  4. 左のつま先のAdd Joint VOPで、 Nametoe_lに設定します。 同様に、右のつま先のAdd Joint VOPで、 Name パラメータをtoe_rに設定します:

    追加されたつま先ジョイント
  5. Attribute Adjust Array SOPで、つま先ジョイントにToeR_FootL_Footというタグを追加します:

  6. reverse_foot APEX Autorig Component SOPで、 Driven タブの toe%tag(Toe)に設定します。

  7. Settings タブで、 toeoffset および toecontroloffset を必要に応じて調整します。

Look At

lookatリグコンポーネントを使用してlookat機能を追加します:

  1. Attribute Adjust Array SOPで、頭部のタグを追加します。 このタグはlookatリグコンポーネントによって取得されます。

  2. APEX Autorig Component SOPのlookatで、 Component パラメータを lookat に設定します。

  3. Driven タブで、 driven%tag(Head)に設定します。これはlookatコントロールによって駆動されるジョイントです。

  4. ターゲットコントロールの位置を設定します。 Settings タブで worldspace をオンにし、 targetpos を設定します。

  5. Upコントロールの位置を設定します。 Settings タブで updir を設定します。

  6. Driven タブで頭部、ターゲット、Upコントロールの名前を設定します。 ここでは driverhead_drivertargethead_targetuphead_upに設定します。

  7. Shape タブで コントロールのスケールとカラーを設定します:

  8. AnimateステートでLook Atの挙動を確認します:

コントロールを設定する

APEX Configure Controls SOPを使用して、コントロールの形状とカラーを設定します:

  1. APEX Configure Controls SOPで、 Control Configs の横にあるをクリックして、コントロールのグループ毎に設定を追加します。

  2. 設定するコントロールを指定します。 Control Group パラメータで、ドロップダウンリストから選択するか、APEXパスパターン構文を使用してTransformObjectノードのグループを指定します。

  3. Control Configs マルチパラメータのコントロールのグループ毎に、 Use Shape OverrideUse ShapeoffsetUse Color パラメータをオンにし、希望するコントロールの形状、サイズ、カラーを指定します。

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

    コントロールを設定する前(左)と後(右)

アニメーションシーンにElectraを追加する

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

Full Body IK

この例では、fbikリグコンポーネントを使用してElectraにFull Body IKを追加します:

  1. Attribute Adjust Array SOPで、足、骨盤、手首、首などのジョイントにfbikというタグを追加します。このタグはfbikリグコンポーネントによって取得されます:

  2. APEX Autorig Component SOPのfkノードで、 Controls タブの tpromotegrouprpromotegroupspromotegroup のすべてのエントリを削除します。

  3. APEX Autorig Component SOPのfbikで、 Component パラメータを fbik に設定します。 デフォルトで、 Drivers タブの drivers パラメータは%tag(fbik)に設定されているので、fbikとタグ付けされたジョイントがFull Body IKの挙動を駆動します。

  4. AnimateステートでFull Body IKの挙動を確認します:

KineFX

概要

キャラクタ要素の準備

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

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

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

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

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

変形

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

H20以前

ペイン

別表