Houdini 19.0 キャラクタ KineFX

コントロールシェイプのセットアップ

On this page

コントロールオブジェクトまたはコントロール シェイプ とは、 ローカル空間 または ワールド空間 で作成された名前付きのパックプリミティブまたはアンパックプリミティブです。 Attach Joint Geometry SOPノードを使用して、KineFXスケルトンのジョイント(ポイント)に割り当てることができます。

コントロールがローカル空間シェイプの場合、それはシーン原点でモデリングされたことを意味し、 そのコントロールをジョイントに割り当てられるとターゲットポイントのローカル空間に自動的に移動されます。 コントロールがワールド空間シェイプの場合、コンテキスト内でターゲットポイント付近のワールド空間内の正しい位置でモデリングされたことを意味し、 そのコントロールをジョイントに割り当てても位置は変わりません。

コントロールシェイプをジョイントに割り当てると、そのコントロールをジョイントの セレクタ として使用することができます。 これらのコントロールによって、 Rig Pose SOPノードを使用してキャラクタにポーズを付ける際にスケルトンのジョイントを簡単に選択することができます。

例: コントロールシェイプを使ったKineFXノードネットワーク
例: コントロールシェイプを使ったキャラクタ。キャラクタ提供: Christophe Desse氏

シェイプライブラリ

ローカル空間コントロールシェイプを作成する方法

  1. ネットワークエディタ で、シーン原点でアンパックプリミティブまたはパックプリミティブのジオメトリオブジェクトを作成します。これらはローカル空間のコントロールシェイプになります。

    Warning

    コントロールシェイプにはポリゴンプリミティブのみを使用してください。 NURBSは適切に動作 しません

  2. 作成したローカル空間シェイプの形状またはサイズを変更したい場合は、 Edit SOPまたは Transform SOPといったいつものSOPノードを使用します。

  3. コントロールシェイプに独自のカラーを定義したい場合、シェイプ毎に Color SOPノードを使用してください。

    Note

    Color SOP ノードの Class パラメータを Primitive に設定してください。

例: ネットワークエディタでのローカル空間コントロールシェイプ
例: ビューポートでのローカル空間コントロールシェイプ

ローカル空間シェイプライブラリを作成する方法

ローカル空間シェイプライブラリは、ジョイントにローカルで割り当てたいシェイプをすべて含んでいる必要があります。

  1. コントロールシェイプとして使用したいローカル空間シェイプをすべて作成したら、 Merge Packed SOPノードを作成します。

  2. すべてのローカル空間シェイプを Merge Packed SOP ノードに接続します。

    例: Merge Packed SOP ノードに接続したローカル空間オブジェクト

    Note

    Merge Packed SOP ではなく Merge SOPノードを使用してシェイプを組み合わせる古いコントロールシェイプセットアップは、 Attach Joint Geometry SOP ノードで引き続き機能します。

  3. Merge Packed SOP ノードのパラメータで、以下の操作を行ないます:

    • Name Primitive AttributeName Override Attribute パラメータを有効にします。これで、ローカル空間シェイプの新しい名前を定義することができます。

    • Name パラメータを使用して、すべてのローカル空間シェイプに分かりやすい名前を指定します。例えば、wrist_lefthips_tiltといった意味のある名前を付けます。適切なシェイプ名を付けておくと、後で簡単に識別できるのでお勧めです。

    Warning

    Attach Joint Geometry SOP ノードでシェイプを割り当てた後は、 Merge Packed SOP ノードでReload Node Namesボタンをクリック しないでください 。クリックすると、コントロールシェイプの名前がすべてデフォルトに戻り、シェイプ-ジョイントの割り当てがすべて無効になります。

  4. ローカル空間シェイプライブラリが準備できたら、 Attach Joint Geometry SOPノードを作成します。

  5. キャラクタのインポートノードのアニメーションポーズ出力を Attach Joint Geometry SOP1番目の入力 に接続します。その後、 Merge Packed SOP ノードの出力を Attach Joint Geometry SOP ノードの 2番目の入力 (シェイプライブラリ入力)に接続します。

Tip

(任意)このシェイプライブラリを standard として保存し、後で再利用することもできます。

以下の操作を行ないます

  1. Merge Packed SOP ノードの出力を ROP Geometry Output SOPノードに接続します。

  2. ROP Geometry Output SOP ノードを使用してライブラリをディスクに保存します。

  3. 後でキャラクタにシェイプライブラリを使用したい場合は、 File SOPノードを使用して保存したジオメトリライブラリをロードし、 File SOP ノードの出力を Attach Joint Geometry SOP ノードの2番目の入力に接続します。

これで、ローカル空間シェイプをキャラクタのジョイントに割り当てられるようになりました。

ワールド空間コントロールシェイプを作成する

  1. ネットワークエディタ で、コンテキスト内でキャラクタ付近のワールド空間にあるコントロールシェイプとして使用するジオメトリオブジェクトをモデリングします。

    この方法は、モデリング時にオフセットする必要が ない ので、キャラクタの輪郭に合わせた複雑なコントロールシェイプをモデリングする際に便利です。

    Warning

    コントロールシェイプにはポリゴンジオメトリのみを使用してください。 NURBSは適切に動作 しません

  2. 作成したワールド空間シェイプの形状またはサイズを変更したい場合は、 Edit SOPまたは Transform SOPといったいつものSOPノードを使用します。

  3. コントロールシェイプに独自のカラーを選択したい場合、ワールド空間シェイプ毎に Color SOPノードを使用してください。

    Note

    Color SOP ノードの Class パラメータを Primitive に設定してください。

  4. 各ワールド空間シェイプに Name SOPノードを作成してから、 Name パラメータを使用してオブジェクトに分かりやすい名前を指定します。例えば、wrist_lefthips_tiltといった意味のある名前を付けます。適切なシェイプ名を付けておくと、後で簡単に識別できるのでお勧めです。

Tip

コントロールシェイプに名前を付け なかった 場合は、 Attach Joint Geometry SOPノードのCreate Missing Names by Connectivityパラメータを有効にします。 シェイプの接続性に基づいて、ワールド空間コントロールシェイプのすべての名前が自動的に作成されます。 名前のない入力シェイプの数が変わると、既に割り当てられたシェイプの命名に影響があるので、このオプションの使用には注意してください。

例: ネットワークエディタでのワールド空間コントロールシェイプ
例: ビューポートでのワールド空間コントロールシェイプ

ワールド空間シェイプライブラリを作成する

ワールド空間シェイプライブラリは、ジョイントに割り当てる予定のシェイプをすべて含めたうえに、それらをワールド空間オフセットに維持する必要があります。

  1. コントロールとして使用したいワールド空間シェイプをすべて作成し、名前を割り当てたら(nameアトリビュート)、 Merge SOPノードを作成します。

  2. すべてのワールド空間コントロールシェイプの Name SOP ノードを Merge SOP ノードに接続します。

    例: Merge SOPノードに接続したワールド空間コントロールシェイプ
  3. Group Create SOPノードを作成して、 Merge SOP を1番目の入力に接続します。これがワールド空間シェイプライブラリになります。

  4. Group Create SOP ノードのパラメータで、 Group Nameworld_shapesに、 Group TypePrimitives に設定します。

    例: Group Create SOPノードのパラメータ
    例: Group Create SOPノードに接続したMerge SOPノード
  5. ワールド空間シェイプライブラリが準備できたら、 Attach Joint Geometry SOPノードを作成します。

  6. キャラクタのインポートノードのアニメーションポーズ出力を Attach Joint Geometry SOP1番目の入力 に接続します。その後、 Group Create SOP ノードの出力を Attach Joint Geometry SOP ノードの 2番目の入力 (シェイプライブラリ入力)に接続します。

  7. Attach Joint Geometry SOP パラメータで、 Add Shapes ▸ Advanced Shape Settings セクションのHas Input Worldspace Shape Groupパラメータを有効にして、 Group パラメータをworld_shapesに設定します。これにより、ビューポートステートのツールバーの Assign in World Space有効 にすると、ビューポートステートでワールド空間シェイプが表示され選択できるようになります。

    例: Has Input Worldspace Shape Groupをオン、Groupをworld_shapes

    Tip

    (任意)このライブラリをstandardとして保存し、後で再利用することもできます。

    以下の操作を行ないます

    • Merge Packed SOP ノードの出力を ROP Geometry Output SOPノードに接続します。

    • ROP Geometry Output SOP ノードを使用してライブラリをディスクに保存します。

    1. 後でキャラクタにシェイプライブラリを使用したい場合は、 File SOPノードを使用して保存したジオメトリライブラリをロードし、 File SOP ノードの出力を直接ローカルシェイプライブラリとして使用します。

これで、ワールド空間シェイプをキャラクタのジョイントに割り当てられるようになりました。

ローカル空間およびワールド空間シェイプライブラリを単一の入力として組み合わせる方法

キャラクタにローカル空間コントロールシェイプとワールド空間コントロールシェイプの両方を使いたい場合は、コントロールオブジェクトの入力を単一の入力に結合できます。

  1. Merge SOPノードを作成します。

  2. ワールド空間シェイプライブラリの出力( Group Create SOPノード)を Merge SOP ノードに接続します。

  3. ローカル空間シェイプライブラリの出力( Merge Packed SOPノード)を Merge SOP ノードに接続します。

    例: 結合されたローカル空間シェイプライブラリとワールド空間シェイプライブラリ
  4. Attach Joint Geometry SOPノードを作成します。

  5. キャラクタのインポートノードのアニメーションポーズ出力を Attach Joint Geometry SOP1番目の入力 に接続します。その後、 Merge SOP ノードの出力を Attach Joint Geometry SOP ノードの 2番目の入力 (シェイプライブラリ入力)に接続します。

    例: 結合されたローカル空間シェイプライブラリとワールド空間シェイプライブラリ
  6. Attach Joint Geometry SOP パラメータで、 Add Shapes ▸ Advanced Shape Settings セクションのHas Input Worldspace Shape Groupパラメータを有効にして、 Group パラメータをworld_shapesに設定します。これにより、ビューポートステートのツールバーの Assign in World Space有効 にすると、ビューポートステートでワールド空間シェイプが表示され選択できるようになります。

    例: Has Input Worldspace Shape Groupをオン、Groupをworld_shapes

これで、ローカル空間シェイプとワールド空間シェイプをキャラクタのジョイントに割り当てられるようになりました。

ローカル空間コントロールシェイプをジョイントに割り当てる方法

例: Gホットキーと中マウスボタンのスクロールホイールを使用してインタラクティブにローカル空間シェイプを割り当てる

ローカル空間シェイプを入力スケルトンのジョイントに割り当てることで、そのシェイプをジョイントにリンクさせて、そのシェイプをそのジョイントの新しい コントロールオブジェクト として指定することができます。

  1. Attach Joint Geometry SOPノードを選択して、ビューポート内をクリックしてからEnterを押します。これで、ビューポートステートになります。

  2. ビューポートステートのツールバーMode ▸ Assign Shapes を選択して、操作モードをシェイプの割り当てに設定します。

    Attach Joint GeometryビューポートステートツールバーのAssign Shapesモード
  3. ローカル空間シェイプをコントロールとして割り当てたいスケルトンのジョイントをクリックして、Gを押します。

    Tip

    複数のジョイントを同じAssign Shapesマルチパラメータに割り当てることもできます。 マルチパラメータを作成する際、目的のジョイントを⇧ Shift + クリックして選択に含めます。

    パラメータエディタ で、ジョイントの新しいAssign Shapesマルチパラメータタブが Add Shapes タブに表示され、選択したジョイントの名前がGroupフィールドに表示されます。

    新しいAssign Shapesマルチパラメータ

    ジョイントの周囲には 青色のリング も表示され、アクティブな Assign Shapes マルチパラメータができたことがわかります。

    ジョイントにAssign Shapesマルチパラメータがあることを示す青色のリング

    Tip

    ビューポートステートのツールバーのCreate New Groupボタンをクリック、 または、 パラメータエディタ で手動でマルチパラメータを追加することで、新しい Assign Shapes マルチパラメータを作成することができます。

  4. ビューポートステートでを使って、マルチパラメータのShape Nameフィールド内のローカルシェイプライブラリをスクロールし、選択したジョイントのコントロールとして割り当てたいシェイプの名前で止めたら、ビューポート内でクリックして選択を確定します。

    例: ローカルシェイプライブラリをスクロールする

    これで、 Shape Name パラメータフィールドで選択したローカル空間シェイプが、 Group フィールドにリストされたジョイントのコントロールとして割り当てられます。

    さらに、ローカル空間シェイプは、シーン原点からターゲットジョイントのローカル空間の位置に自動的に移動されます。

Tip

  • シェイプの割り当てからジョイントを削除する必要がある場合は、ビューポートステートでジョイントを⌃ Ctrl + クリックします。

  • ジョイントを新しいマルチパラメータに割り当て直す必要がある場合は、ジョイントを選択して再度Gを押します。ジョイントが古いマルチパラメータから自動的に削除され、新しいマルチパラメータに追加されます。

ワールド空間コントロールシェイプをジョイントに割り当てる方法

例: Gホットキーを使用してインタラクティブにワールド空間シェイプを割り当てる

ワールド空間シェイプを入力スケルトンのジョイントに割り当てることで、そのシェイプをジョイントにリンクさせて、そのシェイプをそのジョイントの新しい コントロールオブジェクト として指定することができます。

  1. Attach Joint Geometry SOPノードを選択して、ビューポート内をクリックしてからEnterを押します。これで、ビューポートステートになります。

  2. ビューポートステートのツールバーMode ▸ Assign Shapes を選択して、操作モードをシェイプの割り当てに設定したら、Assign in World Spaceを有効にします。

    Attach Joint GeometryのビューポートステートツールバーのAssign ShapesモードとAssign in World Space

    ビューポートステートでワールド空間シェイプが水色で表示されます。

  3. ビューポートステートで、ワールド空間シェイプをコントロールとして割り当てるスケルトンのジョイントをクリックし、Gを押したまま、ジョイントに割り当てたいワールド空間シェイプをクリックします。

    例: ビューポートステートでワールド空間シェイプを割り当てる

    パラメータエディタ で、ジョイントの新しいAssign Shapesマルチパラメータが Add Shapes パラメータタブに表示されます。

    Assign Shapes マルチパラメータで、選択したジョイントがGroupフィールドに表示され、クリックしたワールド空間シェイプがShape Nameフィールドに表示され、Keep Shape World Transformパラメータが オン になります。

    ワールド空間シェイプの新しいAssign Shapesマルチパラメータ

    ジョイントの周囲には 青色のリング も表示され、アクティブな Assign Shapes マルチパラメータができたことがわかります。

    ジョイントにAssign Shapesマルチパラメータがあることを示す青色のリング

    Tip

    ビューポートステートのツールバーのCreate New Groupボタンをクリック、 または、 パラメータエディタ で手動でマルチパラメータを追加することで、新しい Assign Shapes マルチパラメータを作成することができます。

    これで、 Shape Name パラメータフィールドで選択したワールド空間シェイプが、 Group フィールドにリストされたジョイントのコントロールとして割り当てられます。

    (ワールド空間で、キャラクタを基準とした)ワールド空間シェイプの位置は 変わりません

Tip

  • シェイプの割り当てからジョイントを削除する必要がある場合は、ビューポートステートでジョイントを⌃ Ctrl + クリックします。

  • ジョイントを新しいマルチパラメータに割り当て直す必要がある場合は、ジョイントを選択して再度Gを押します。ジョイントが古いマルチパラメータから自動的に削除され、新しいマルチパラメータに追加されます。

Tweaks

Tweaks(調整)とは、入力ジョイントに適用できるトランスフォームオフセットで、入力ジョイントに割り当てられたコントロールシェイプ(ローカル空間またはワールド空間)はそれを継承します。 シェイプテンプレートおよび/またはオフセットアトリビュートによって指定されたコントロールシェイプのオフセットやカラーを変更したい場合、Tweaksが便利です。

例: ジョイントにTweaksを設定し、そのトランスフォームを調整

Tweaksを設定する方法

  1. Attach Joint Geometry SOPノードを選択します。

  2. パラメータエディタ で、Tweakタブを選択します。

    Tweakパラメータタブ

    コントロールオブジェクトの調整を定義するパラメータは、すべてこのタブにあります。

  3. ビューポート内をクリックしてEnterを押します。これで、ビューポートステートになります。

  4. ビューポートステートのツールバーMode > Tweak Shapesを選択して、操作モードをTweak Shapesに設定します。次にOffset Modeを選択して、コントロールシェイプへの調整が、シェイプテンプレートおよび/またはオフセットアトリビュートで指定した他のオフセット値に対してどのように動作するかを決定します。

    Attach Joint Geometry SOPビューポートステートのTweak Shapesモードツールバー
  5. 調整を適用したいスケルトンのジョイントをクリックして、Gを押します。

    パラメータエディタ で、ジョイントの新しいTweaksマルチパラメータが Tweak パラメータタブに表示され、選択したジョイントの名前がGroupフィールドに表示されます。

    Tweaksマルチパラメータ

    ジョイントの周囲には 緑色のリング が表示され、アクティブな Tweaks マルチパラメータができたことがわかります。

    アクティブなTweaksマルチパラメータがあるジョイント

    Tip

    ジョイントから調整を削除したい場合は、ビューポートステートでジョイントを選択し、⌃ Ctrl + Gを押します。

  6. ビューポートステートで調整のトランスフォームハンドルを使用するか、 パラメータエディタ でパラメータ値を調整して、 Tweaks マルチパラメータの設定を調整します。

    Note

    パラメータエディタ で設定できるのは、Color調整パラメータのみです。

シェイプテンプレート

キャラクタを作成する度に、最初からコントロールシェイプを作成したり割り当てるのは大変です。 シェイプテンプレート を使用すると、シェイプの割り当てや調整をエクスポートしたりインポートすることができます。 テンプレートだけでなく、同じ Attach Joint Geometry SOPノード内のシェイプテンプレートの上部では、いつでもシェイプの追加の割り当てや調整の変更を適用することができます。

シェイプテンプレートを作成する方法

ローカル空間シェイプライブラリ、ワールド空間シェイプライブラリ、またはローカルとワールドシェイプライブラリの組み合わせのセットアップが完了したら、シェイプライブラリを シェイプテンプレート としてエクスポートすることができます。

  1. ROP Geometry Output SOPノードを作成して、その入力をシェイプライブラリの Attach Joint Geometry SOPノードの出力に接続します。

    例: シェイプテンプレートネットワークのエクスポート
    例: シェイプテンプレートに保存される内容
  2. ROP Geometry Output SOP ノードで、.bgeoシェイプライブラリを保存したいネットワークロケーションへのOutput Fileパスを設定します。

  3. Save to Diskをクリックします。

    完全なスケルトン付きの Attach Joint Geometry SOP ノードの出力が、.bgeoシェイプテンプレートファイルとしてディスクに保存されます。

    シェイプテンプレートには、パックプリミティブ付きのポイントが含まれています。パックプリミティブは、マッチングのためのPointアトリビュートと、オプションでjointgeoプリミティブアトリビュートに保存されたオフセットのメタデータを含んでいます。

シェイプテンプレートを使用する方法

  1. File SOPノードを作成し、そのGeometry Fileパラメータを使用して、キャラクタに使用したいシェイプテンプレートをロードします。

  2. Attach Joint Geometry SOPノードを作成して、以下の操作を行ないます。

    • キャラクタのインポートノードの 3番目の出力Attach Joint Geometry SOP の1番目の入力に接続して、

    • File SOP ノードの出力を Attach Joint Geometry SOP ノードの 3番目の入力 に接続します。

    例: シェイプテンプレートネットワークのインポートと使用
    例: Erikのシェイプテンプレートを使用したTommy
  3. Attach Joint Geometry SOP ノードを選択します。

  4. パラメータエディタShape Templateタブを選択し、そのパラメータを使用して、シェイプテンプレートがキャラクタに転送される方法や、シェイプをジョイントにマッチさせる方法を設定します。

    Shape Templateタブのパラメータ
    • Target Jointsパラメータを使用して、テンプレートを割り当てるジョイントを決定します。

    • Template Jointsパラメータを使用して、スケルトンに割り当てるコントロールシェイプを決定します。

    • Match Byパラメータを使用して、シェイプテンプレートをスケルトンにマッチさせる方法を決定します。

      • スケルトンやシェイプテンプレートのPointアトリビュート値に基づいてマッチさせたい場合は、Attribute Value (デフォルト設定)を使用します。

      • スケルトンやシェイプテンプレートのポイント番号値に基づいてマッチさせたい場合はPoint Valueを使用します。

        Warning

        Point Number を使用する場合、スケルトンのジョイントの追加や削除を行なうと、ジョイントのポイント数が変わります。 このオプションの使用時は、この点に留意してください。

      • 辞書アトリビュートを使用してマッチさせたい場合は、Mapping Attributeを使用します。この Match By パラメータを使用すると、テンプレートを異なる名前のスケルトンにマッピングしたり、供給されたテンプレートをミラーリングできます。

    • 既存のシェイプオフセットが転送される方法を決定します。デフォルトでは、ローカルシェイプオフセットが転送されます。

      • シェイプのみを転送し、調整やオフセットは転送したくない場合は、Keep Template Joint Offsetsをオンにします。

      • テンプレートシェイプのワールド位置をオフセットとして使用したい場合は、Keep Template World Transformをオンにします。

Tip

1つのテンプレートシェイプを複数のジョイントにマッチさせることが可能です。 例えば、シェイプ名がmy_boxのテンプレートシェイプboxは、複数のジョイントが同じmy_boxというマッチするポイント値を持っている場合、複数の入力ジョイントに適用することができます。

コントロールシェイプを使用してキャラクタにポーズを付ける方法

  1. Rig Pose SOPノードを作成して、 Attach Joint Geometry SOPノードの出力を Rig Pose SOP ノードの入力に接続します。

  2. Rig Pose SOP ノードのパラメータで、コントロールにアクセスさせたくないトランスフォームパラメータをロックします。例えば、head_controlでコントロールがRotateパラメータにのみアクセス可能で、TranslateやScaleパラメータにはアクセスできないようにできます。

  3. ネットワークのJoint Deform SOPノードのSelectable Templateフラグを オン にしてから、 Rig Pose SOP ノードを選択し、そのDisplayフラグをオンにします。

    例: Joint DeformおよびRig Poseノードと、コントロールシェイプ付きのErik。キャラクタモデル提供: Christophe Desse氏
  4. ビューポート内をクリックしてEnterを押し、 Rig Pose SOP のビューポートステートに入ります。

    例: Rig Poseビューポートステートでのコントロールシェイプ付きのErik。キャラクタモデル提供: Christophe Desse氏
  5. コントロールシェイプを選択します。

    コントロールシェイプが割り当てられたジョイントの周囲に、マニピュレータハンドルが表示されます。

    例: 選択したコントロール。キャラクタモデル提供: Christophe Desse氏

    コントロールの新しい Transformations マルチパラメータが、 Rig Pose ノードのパラメータに表示されます。

    例: 新しいマルチパラメータを含む Rig Pose ノードのパラメータ
  6. コントロールシェイプを使用して自由にジョイントをトランスフォームします。

    コントロールシェイプのターゲットジョイントに加えたトランスフォームの変更は、すべてコントロールシェイプのジオメトリに継承されます。コントロールを見るだけで、いつでもジョイントのトランスフォームの状態を確認することができます。

    例: コントロールを使って頭部の回転を調整。キャラクタモデル提供: Christophe Desse氏
See also

KineFX

プロシージャルリギング

互換性

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

ペイン