On this page

IKと回転のブレンド

ボーンチェーンをアニメーションさせる時に、ボーン回転を使用してモーションを駆動させたい事もあれば、IKゴールを使用したい事もあるでしょう。

HoudiniのIKセットアップは、その2つの制御系を blend アトリビュートによって滑らかに切り替えることができます。 このアトリビュートは、Poseツールのインタラクティブハンドルで設定することができます。

Tip

以下に説明しているように、ブレンドハンドルとSnap to IK/Rotatesメニュー項目は、デフォルトの1つのゴールセットアップを使うときに利用可能です。 デフォルトのセットアップを変更して複数のゴール間をブレンドする場合は、これらの便利なUIの機能は動きません。 詳細は、リグの手引きを参照してください。

To...Do this

IKと回転間をブレンド/切り替えをする

  1. TabメニューからPoseツールを選択します。

  2. IKボーンチェーンをクリックします。ゴールがチェーンの先端に移動します。Rを押してボーンの回転マニピュレータを表示します。IKソルバがチェーンをコントロールしているので、回転ハンドルは何の効果もありません。

  3. ビューアの上部にあるオペレーションコントロールツールバーHandle ModeObject-specific Handles に設定されていることを確認します。

  4. 最後のボーンを選択します。

  5. ゴールハンドルでクリックして、 Show Blend Handle を選択します。

    新しいハンドルがチェーンの軸ラインの下に表示されます。

  6. ブレンドハンドルをそのスライダラインに沿ってドラッグします。そのラインの始点に近いほど、ジョイント回転はチェーンに影響を与えます。

  7. ジョイントを選択して、回転マニピュレータRを使うと、ジョイントが回転します。

    回転はブレンドハンドルによって比例的に修正されます。ブレンド係数が低ければ大きな回転でも影響は小さいです。ブレンド係数を上げると、回転の効果は大きくなります。

IKや回転に合うようにボーンをリセットする

  1. TabメニューからPoseツールを選択します。

  2. 最後のボーンを選択します。

  3. ゴールハンドルでクリックして、 Snap to IK または Snap to Rotations を選択します。

IK/回転のブレンドセットアップをキーフレームする

Note

ブレンドパラメータはキネマティクスチャンネルオペレーション(kin_chop)の一部です。これは、インバースキネマティクスの解を計算します。ハンドルでこの値を調整すると、Houdiniはチャンネルオペレータのパラメータを更新します。

オブジェクトの親子のブレンド

Houdiniでは、オブジェクトを複数の親の子にして、Blendノードでそれらの親の影響の度合いをブレンドすることができます。これは色々な使い方があります。使い方にもよりますが、別のユーザインターフェースのツールにも使えるでしょう:

  • ある時間でアニメーション別に、別々の空間でキャラクタのパートを子にしたいことがあります。例えば、ある時間でどのような動きのアニメーションをしたいかによって、キャラクタの空間や肩の空間でポージング可能な頭をセットアップすることができます。

  • キャラクタが、オブジェクトを拾ったり、置いたり、渡したりするようなアニメーションをするには、親子関係をキーフレームすればよいでしょう。例えば、オブジェクトを拾うキャラクタをアニメーションするときは、キャラクタの手をオブジェクトの親にすることで、手がオブジェクトに接触するようになります。キャラクタが動いてもオブジェクトは手にひっついたままになります。

別の方法で動的に親子化をセットアップすることができます。これは、別の用途に適しています:

  • ネットワークエディタで親とBlendノードを手動でセットアップすることができます。動的な親子化を一度セットアップしてしまえば(キャラクタリグのように)、インタラクティブなDynamic Parentツールを使うよりも簡単です。

  • Dynamic Parentツールは、 親子関係を切り替えることができ、自動的に、切り替えに必要なBlendノードとエクスプレッションを作成します。複数の切り替えをアニメーションする場合は、手動でこのノードをセットするよりは効率的です。

手動でブレンドをセットアップ

  1. ネットワークエディタでTabメニューからBlendノードを作成します。

  2. 親をBlendノードの入力に接続します。

  3. Blendノードのパラメータで、親からインポートしたいパラメータを選択します。動的な親の1つにキャラクタのルートNullを使っていたら、その移動パラメータ(tx, ty, tz)のインポートをオフにしたい場合があります。

  4. Blendノードは、各入力毎に別々と Weight スライダがあり、任意でミックスすることができます。親が2つあるケースでは、1つのスライダだけ動かして2つの入力のブレンドをしたい場合があります。それをするには、2番目のスライダを1番目のスライダにリンクすることで、スライダが上から下に動かせば、自動的に他のスライダは下から上に動くようにできます。

    1番目のスライダの値でクリックして、 Copy Parameter を選択して、2番目のスライダの値でクリックして、 Paste Relative Reference を選択します。Houdiniは1番目のスライダへのパラメータ参照を挿入します。最後に2番目のスライダが1番目のスライダの値を反転するようにしたいので、エクスプレッションの前に1-を追加します。

Note

あるケースでは、異なる親間をブレンドすると、予期しない回転を招いてしまう場合があります。これは、親が異なる方向になっていることが原因です。

これを修正するには、Nullを新しく作成して、それをあなたが使いたい動的な親の1つの子にします。それからNullの方向を回転させて向きを補正します。最後に、元の動的な親の代わりに新しいNullをBlendノードに接続します。

例えば、頭のボーンを作成して、それを動的にキャラクタルートNullと首ボーンルートの両方の子にした場合、ボーンとキャラクタルートNullが違う向きでブレンドされていると頭がZ軸に対して90度回転するかもしれません。これを修正するには、新しいNullをキャラクタルートの子にして、そのNullをZ軸に対して-90度回転させてから、キャラクタルートの代わりに、それをBlendノードに接続します。

Tip

1番目の Weight スライダをHUDスライダにすると、アニメータがコントロールするのが楽になります。

Dynamic Parentツールを使う

To...Do this

動的親子化のセットアップをする

  1. TabメニューからDynamic Parentツールを選択します。

  2. 動的に親にしたいオブジェクトを選択して、クリックで選択を終了します。

    この時点では、何も変化はありません。実際にオブジェクトを親にするには、 transitions (以下参照)を指定する必要があります。

オブジェクトの親を動的に変更する

  1. タイムスライダを、オブジェクトを親にしたい時のフレームに移動します。

  2. ビューアの上部にあるオペレーションコントロールツールバーで Add Transition をクリックします。

  3. 新しい親を選択(例えば、ボーンチェーンのゴール)して、クリックで選択を終了します。

動的にオブジェクトの親を解除する

  1. タイムスライダを、オブジェクトの親を解除したい時のフレームに移動します。

  2. ビューアの上部にあるオペレーションコントロールツールバーで End Transition をクリックします。

Tip

チェーンのゴールは、理想の親ではないです。その理由は、腕を回転しても通常はその方向がワールド空間のままだからです。実際のセットアップでは、コントロールオブジェクトを腕のセットアップで回転する手の子にします。

どのように機能するのか

Houdiniは Blend ノードを作成することで隠れたNullオブジェクト(子の停止ポーズを制御する)と動的な親の両方の子を設定することができます。どっちの親を使うのか制御する Blend オペレータの Sequence パラメータには、キーフレームを設定することができます。

その他

  • Houdiniでは、ジオメトリのUVセットにターゲットを置きたい場合、通常はBlendオブジェクトまたはBlend Stickyオブジェクトを使います。

  • Houdiniではパラメータの関係を作成する方法がたくさんあります。例えば、Blend Poseと呼ばれるMAYAのようなキーを駆動させるツールを使うとch()パラメータ参照(MELに相当)に役に立ちます。

See also

オブジェクトレベルのキャラクタ

リグ

ペイン

アニメーション