Houdini 19.5 キャラクタ KineFX

キャラクタのポージングとアニメーションのレイヤー化

On this page

アニメーションをリターゲットしてリターゲットの結果をクリーンアップした後は、 Rig Pose SOPを使用することで、インポートしたアニメーションを調整したり、ソース入力の上に独自のアニメーションを追加することができます。

この Rig Pose SOP では、キャラクタのポーズを付けたり、キャラクタのジョイントを選択して操作したり、ポーズにキーを打つことができます。

Full Body IK SOPノードに関連したリターゲットネットワーク内に Rig Pose SOP を配置する 場所 と各ポイントのトランスフォームに使用するモードが非常に重要です。 その理由は、 Rig Pose SOP ノードを配置した場所によってキャラクタの既存アニメーションに新しいキーが適用される タイミング が決まり、各ポイントのトランスフォームで選択された モード によってそれらのトランスフォームが適用される 方法 が決まるからです。

ネットワークに複数の Rig Pose SOP ノードを追加すると、 レイヤー化された アニメーション効果が生成されます。 リターゲットネットワークのアニメーションポーズストリーム、または、 Full Body IK SOP 直前のソーススケルトンストリームのどこにでも Rig Pose SOP を追加することができます。 アニメーションをどのようにレイヤー化するかによって、それがFBIKソルバに影響し、ネットワークから出力されるアニメーションが変わります。

アニメーションをベイクする

Rig Pose SOPノードを使用することで、リターゲットネットワーク内のアニメーションを一連の アニメーションチャンネル にベイクすることができます。 例えば、単一ポーズ、リターゲットのソースアニメーション、一連のIKキーフレームをベイクすることができます。

そのベイクされたアニメーションチャンネルをアニメーションエディタで開くことで、個々のキーフレームを編集または削除することができます。 これは、モーションキャプチャアニメーションのソーススケルトンから膨大なキーフレームを間引く必要がある時に非常に役立ちます。

  1. ベイクしたいキーフレームを含んだ Rig Pose SOP ノード、または、ベイクしたい入力アニメーションの下流にある Rig Pose SOP ノードを選択します。

    例: FBIKソルバによって計算されたソースアニメーションを含んだRig Pose SOP
  2. パラメータエディタ で、 Pose タブを選択してから Bake をクリックします。

    Rig Pose Baking コントロールダイアログウィンドウが表示されます。

  3. その Rig Pose Baking コントロールダイアログで、アニメーションに使用したいベイク設定を選択してから、 Bake All または Bake Current Pose をクリックします。

    あなたが選択した Rig Pose SOP 内のすべてのアニメーショントランスフォームからそれぞれ Transformations マルチパラメータが追加されて Group パラメータが設定され、 各マルチパラメータの Mode は自動的に Override に設定されます。

    例: パラメータエディタでの右足ジョイントのグループとベイクされたアニメーションチャンネル
  4. Rig Pose Baking コントロールダイアログウィンドウを閉じます。

  5. アニメーションエディタ を開きます。

    Rig Pose SOP のすべてのアニメーションチャンネルとキーフレームが アニメーションエディタ に読み込まれます。

    例: アニメーションエディタでの右足ジョイントのベイクされたアニメーションチャンネル
  6. ベイクされたアニメーションチャンネルとキーフレームを必要に応じて編集します。

ポージング用のコントロールシェイプを作成する

FKを使ってリターゲット済みのスケルトンとキャラクタにポーズとアニメーションを付ける

Rig Pose SOPを使用することで、リターゲット内の個々のジョイントトランスフォームにポーズとアニメーションを付けることができます。 これは、ジオメトリが交差しないように少しポーズを調整する必要がある時やIKチェーンを必要としないちょっとしたアニメーションを追加したい時に役立ちます。

  1. ネットワークエディタで、Rig Pose SOPノードを配置します。

  2. この Rig Pose SOP ノードを、影響を及ばせたい タイミング に基づいてリターゲットネットワークの変形ポイントトランスフォームストリーム上に接続します。

    • Rig Pose SOP ノードのポーズまたはキーフレームを適用した後にその結果をFBIKソルバに渡したいのであれば、 Full Body IK SOP よりも 上流 のソーススケルトンストリーム上でこのノードを接続します。 こうすることで、 Rig Pose SOP ノードのポーズまたはキーフレームがFBIKソルバを通じて実行されるようになります。

    • Rig Pose SOP ノードのポーズまたはキーフレームをFBIKソルバの後に適用したいのであれば、 Full Body IK SOP よりも 下流 のターゲットスケルトンストリーム上でこのノードを接続します。 こうすることで、 Rig Pose SOP ノードのポーズまたはキーフレームがFBIKソルバを通じで実行され ません 。 これが従来の配置場所です。

    例: リターゲットネットワーク終端のRig Pose SOP
  3. Joint Deform SOP のディスプレイフラグを有効にしてから Rig Pose SOP ノードを選択します。

  4. マウスカーソルをビューポート内に移動させてからEnterを押します。

    これでRig Pose操作 状態 になります。

    この状態になると、Rig Poseツールバーポップアップメニューにアクセスできるようになります。

    例: Rig Pose操作状態
  5. ポーズまたはアニメーションを付けたいジョイント毎に、そのジョイントまたはコントロールジオメトリを選択してから、そのジョイントのマニピュレータハンドルを使用して、あなたが求めているアニメーションになるようにポーズを付けてKホットキーでキーを打ちます。

    ジョイントを選択すると、自動的に Transformations マルチパラメータが追加されて Group が設定されます。 このマルチパラメータには、そのジョイントのすべてのトランスフォームデータが格納されます。

    例: Transformationsマルチパラメータ

    キーを打たずにジョイントをトランスフォームさせると、そのジョイントのスケルトンの ポーズ またはキャラクタの全体のアニメーションが変更されます。

    ジョイントをトランスフォームさせて色々なポーズでキーを打つと、そのジョイントがFKを使ってアニメーションします。

    スケルトンまたはキャラクタのジョイントを操作する時、必要に応じてModeを切り替えてください。 選択した Mode に応じて、ジョイントのトランスフォームの修正が適用されます:

    • (Post-Multiply)親空間では、親からジョイントのオフセットが変更されます。

    • (Pre-Multiply & From Rest Pose)ローカル空間では、ジョイントのトランスフォームが入力アニメーションの上にレイヤー化されます。

    • (Override)置換として適用され、完全に入力アニメーションを上書きします。

    例: ジョイントの制御とFKキーの設定

IKを使ってリターゲット済みのスケルトンとキャラクタにポーズとアニメーションを付ける

IK Chains SOPノードと Rig Pose SOPノードを使用することで、IKによってリターゲット内の3ジョイントトリプレットにポーズとアニメーションを付けることができます。 これは、まったく正しく曲がっていない肘や膝のポーズを調整する必要がある場合、または、ターゲットスケルトンやキャラクタの手足にジェスチャアニメーションを追加する必要がある場合に役立ちます。

  1. IKを駆動させるジオメトリを作成します。

    KineFXでは、IKを駆動させるジオメトリに直接 IK Chains SOP を適用することができません。 代わりに、マニピュレータ用途でゼロから作成、または、スケルトンジオメトリの サブセット を使って作成された個別のドライバジオメトリを使用する必要があります。 この後者のスケルトンジオメトリのサブセットを使った手法の強力な特徴は、入力アニメーションがこれらのIKコントロールに継承されることです。

    • Delete Joints SOPを配置します。

    • Full Body IK SOPノードのターゲットスケルトン出力(2番目の出力)を Delete Joints SOP の入力に接続します。

      例: ネットワークのDelete Joints SOPノード
    • この Delete Joints SOP を選択して パラメータエディタ で、 Group フィールドの隣にある矢印アイコンをクリックして、ビューポート内でその選択ツールを使ってIKチェーンで駆動させたい3つのジョイントを選択してからEnterを押します。

      選択したジョイントが Group フィールドに入ります。

      例: Groupパラメータフィールドにリストされたジョイント
    • Operation ドロップダウンメニューから Delete Non-Selected を選択します。

      例: Delete Points SOPノードのDelete Non-Selectedパラメータ

    これで、IKチェーンの ハンドル として機能する3つの新しいドライバポイントができました。 オリジナルの階層から一部を抜き出したばかりなので、この3つのポイントの名前がそれによって駆動されるジョイントに呼応します。

  2. Rig Pose SOP を配置してから、 Delete Joints SOP の出力をこの Rig Pose SOP の入力に接続します。

    この Rig Pose SOP では、IKチェーンを選択してポーズを付けたりキーを打つことができます。

  3. IK Chains SOP を配置して、以下の操作を行ないます:

    • Full Body IK SOP ノードのターゲットスケルトン出力(1番目の出力)を IK Chains SOP ノードの入力に接続します。

    • Rig Pose SOP の出力を IK Chains SOP ノードの入力に接続します。

    • IK Chains SOP ノードの出力を Joint Deform SOP の変形ポイント入力(3番目の入力)に接続します。

    例: ネットワークのIK Chainsノード
  4. IK Chains SOP ノードを選択します。

  5. パラメータエディタ で、以下の操作を行ないます:

    • Root Name パラメータでは、そのフィールドの隣にある矢印アイコンをクリックして、ビューポート内でその選択ツールを使用してIKチェーンを 開始 するジョイントを選択してEnterを押します。

    • Mid Name パラメータでは、そのフィールドの隣にある矢印アイコンをクリックして、ビューポート内でその選択ツールを使用してIKチェーンの 中間 ジョイントを選択してEnterを押します。

    • Tip Name パラメータでは、そのフィールドの隣にある矢印アイコンをクリックして、ビューポート内でその選択ツールを使用してIKチェーンを 終了 するジョイントを選択してEnterを押します。

    • Match By Name パラメータを 有効 にします。

      Delete Joints SOP を使って作成したサブセットジオメトリはIKで駆動されるジョイントと同じ名前になっているので、このオプションを有効にすることで、サブセットジオメトリは、それが駆動させる階層ポイントに自動的にマッチされます。

    • Blend パラメータを 1 に設定します。

      これでIKチェーンが有効になりました。

      例: IK Chains SOPノードのパラメータ設定
      例: ビューポートでのIKチェーン
  6. Joint Deform SOP のディスプレイフラグを有効にして、 Rig Pose SOP ノードを選択します。

  7. これで、ビューポート内でIKチェーンドライバポイントを選択して操作したりキーを打つことができるようになります。

    IKドライバポイントを選択すると、自動的に Transformations マルチパラメータが追加されて Group駆動される ジョイントが設定されます。 このマルチパラメータには、そのIKドライバのジョイントのすべてのトランスフォームデータが格納されます。

    例: Transformationsマルチパラメータ

    キーを打たずにIKチェーンドライバポイントをトランスフォームさせると、そのジョイントのスケルトンの ポーズ またはキャラクタの全体のアニメーションが変更されます。

    IKチェーンドライバポイントをトランスフォームさせて色々なポーズでキーを打つと、その駆動されるジョイントがIKを使ってアニメーションします。

    スケルトンまたはキャラクタのIKチェーンドライバポイントを操作する時、必要に応じてModeを切り替えてください。 選択した Mode に応じて、すべての駆動されるジョイントのトランスフォームの修正が適用されます:

    • (Post-Multiply)親空間では、親からジョイントのオフセットが変更されます。

    • (Pre-Multiply & From Rest Pose)ローカル空間では、ジョイントのトランスフォームが入力アニメーションの上にレイヤー化されます。

    • (Override)置換として適用され、完全に入力アニメーションを上書きします。

例: IKによるポージングとアニメーション

ポーズまたはアニメーションのミラー化

Rig Mirror Pose SOPノードを使用することで、リターゲットオペレーション内でアニメーションをミラー化することができます。

リターゲットネットワークで以下の3つのどれかに当てはまるアニメーションを予測通りにミラー化することができます:

  • ソース入力(入力アニメーション)より後で、且つ、リターゲットオペレーションよりも前のアニメーション

  • FBIKソルバの後で、且つ、FKやIKによるポーズとキーよりも前のアニメーション

  • ネットワークの最後で、且つ、 Joint Deform SOP よりも前のアニメーション

複数のパラメータ設定の組み合わせを Rig Mirror Pose SOP で使用することもできますが、以下の操作の方が一貫して良い結果を生成することが判明しています。

  1. ネットワークエディタ で、必ずソースKineFXインポートノードを最初のフレームに設定してから、 Rig Mirror Pose SOP ノードと Rig Stash Pose SOPノードを作成します。

  2. 以下の操作を行ないます:

    • ソース KineFXインポートノードの出力を Rig Stash Pose SOP ノードのリグ入力(1番目の入力)に接続します。

    • その Rig Stash Pose SOP ノードのリグ出力(1番目の出力)を Rig Mirror Pose SOP ノードの入力に接続します。

    • Rig Mirror Pose SOP ノードの出力を Rig Match Pose SOPノードのソーススケルトン入力(2番目の入力)に接続します。

      例: ネットワークのRig Mirror Pose
  3. Rig Stash Pose SOP ノードを選択して、 パラメータエディタ でそのパラメータを見てください。

    Attribute Name フィールドにrest_transformアトリビュートが設定されているのが確認できます。 このRest Poseの補助によって、 Rig Mirror Pose SOP は反転した軸を修正して、ミラーアニメーションに適したジョイントの向きを生成します。

    例: Rig Stash Poseパラメータ
  4. ネットワークエディタ で、 Rig Mirror Pose SOP を選択します。

  5. パラメータエディタ で、 Compute Mirroring Options セクションを展開します。

    例: Compute Mirroring Optionsセクション
  6. Compute Mirroring Options セクションで、 Rest Pose SourceAttribute に設定し、必ず Compute Flip Axes FromRest Pose に設定してください。

    Rest Pose Attribute フィールドは、 Rig Stash Pose SOP ノードで作成したrest_transfromアトリビュートを自動入力します。

    このRest Poseが存在することで、 Rig Mirror Pose SOP は、反転した軸を計算して修正し、ミラーアニメーションに適したジョイントの向きを自動的に生成できるようになります。

    例: Rest Pose関係のRig Mirror Poseパラメータ設定
  7. ビューポートを見てみましょう。

    これで、ビューポートにミラーアニメーションが表示されているのが分かります。 ミラー化に成功したすべてのスケルトンジョイントが で強調されます。

    例: ミラー化したスケルトンとミラー平面マニピュレータ
  8. ミラー平面マニピュレータを選択して、各スケルトンがそのミラー平面の反対側にくるまでドラッグします。

  9. アニメーションを再生して、Rig Mirror Posノードの結果を確認します。

    例: ミラー化したアニメーションポーズ

KineFX

プロシージャルリギング

互換性

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

ペイン