On this page

概要

Houdiniにおけるボーンとリグの大体の考え方はガイドラインリグスタイルを参照してください。

オブジェクトレベルでBonesツールを使ってBoneオブジェクトを作成します。次の説明で混同しないように注意してください。

キネマティクス

キネマティクス は、デジタルキャラクタをまるで生きてるかのような動きにします。キャラクタの動きを指定する方法は主に2つあります:

  • 手動でボーンチェーンの各ジョイントの回転を設定します。

  • インバースキネマティクス(IK) は、ボーンチェーンが到着する終点を指定します。そして、 IKソルバ がゴールに到達するジョイントの回転を自動的に設定します。(このプロセスは、“逆の”キネマティクスと呼ばれています。なぜなら、求めるゴールの結果から“逆方向”にソルバが必要な状態を計算しているからです。)

    例えば、腕のボーンチェーンでは、手の位置を指定すると、ソルバは、肩と肘のジョイントを自動的に回転します。

    ソルバがより自然な解が見つけられるように“ヒント”を与えることができます。例えば、停止角度(Rest Angle)を指定すると、ソルバはジョイントの曲げが自然な感じになるように計算します。

KIN_Chops

キネマティクスソルバでボーンを作成する度に、HoudiniはKIN_ChopsというCHOPネットワークを作成します。このネットワークは、色々なボーンセットアップをするキネマティックソルバエンジンを含んでいます。手動で別々のCHOPネットワークを作成することもできますが、Houdiniは自動でKIN_Chopsを作成します。

CHOPネットワーク内のソルバは単純にボーンとゴールを入力として受け取り、ボーンに回転を返すCHOPの集合体です。Composite CHOPを使って異なるキネマティクスを選択したりブレンドすることができます。

ボーンの作り方

Tip

ボーンを作成していると、 オペレーションコントロールツールバーのテキストフィールドでボーンの名前を設定することができます。

Tip

Houdiniは2つのボーンのボーンチェーンに最適なIKソルバを使います。もし、自然なシステムの2つのボーンパートがあれば、最適なソルバを利用するために別々にボーンを作成します。

To...Do this

キネマティクス付きのボーンを作成する

  1. オブジェクトレベルでBonesツールを選択します。

  2. オペレーションコントロールツールバーを使うか、またはクリックでキネマティクスソルバ(例: Inverse Kinematics )を選択します。

  3. ビューアにボーンを作成するには、クリックします。作成を終了するには、クリックします。

    ビューアでは、ボーンはルート部分が小さい球になっていてチェーン状につながっています。ネットワークエディタでは、各ボーンにはノードがあり、ルートとチェーンゴールはNullオブジェクトです。Houdiniはキネマティクスを動かすCHOPを含んだCHOPネットワークも作成します。

キネマティクスがないボーンを作成する

  1. オブジェクトレベルでBonesツールを選択します。

  2. ビューアにボーンを作成するには、クリックします。作成を終了するには、クリックします。

    ビューアでは、ボーンはルート部分が小さい球になっていてチェーン状につながっています。ネットワークエディタでは、各ボーンにはノードがあり、ルートはNullオブジェクトです。

既存のチェーンから新しいチェーンを枝分かれする

  • オブジェクトレベルでBonesツールを選択します。

  • 既存のボーンの先端からボーンを作成するには、⇧ Shift + でボーンをクリックします。

  • 既存ボーンを親にして、その下に新しくチェーンを作成するなら、⌃ Ctrl + でボーンをクリックします。

2つの既存のチェーンを新しいボーンで接続する

  1. オブジェクトレベルでBonesツールを選択します。

  2. 最初のチェーンのエンドボーンを⇧ Shiftクリックすると、そこから新しいボーンが作られます。

  3. スナップを有効にするには、⌃ Ctrl + Jを押します。

  4. 2番目のチェーンのスタートボーンのルートをクリックします。

  5. 2番目のチェーンを新しいボーンの子にします。

ボーンを新しく2つのボーンに分割する

  1. オブジェクトレベルでBonesツールを選択します。

  2. 分割したいボーンを⌃ Ctrl + クリックします。

既存のカーブの形状に合わせてボーンを作成する

ボーンの編集の方法

To...Do this

ボーンで回転を検査する

  • ボーンノードでクリックすると、ボーンのそのpre-transformとIKソルバで駆動した時のボーンの実際の回転を表示します。

既存のボーンからキネマティクスを除去する

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

  2. を押すと、Bonesツールのツールメニューが表示されるので、 Remove Kinematics を選択します。

  3. キネマティクスを除去したいボーンを選択して、クリックして終了します。

既存のボーンにキネマティクスを追加する

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

  2. オペレーションコントロールツールバーから、ポップアップメニューを使って追加したいキネマティクスの種類を設定します。

  3. クリックからBonesツールのツールメニューが表示されるので、 Add Kinematics を選択します。

  4. チェーンの最初のボーンを選択して、クリックして、最後のボーンを選択してクリックして終了します。

既存のボーンのキネマティクスソルバを変更する

  • 既存のキネマティクスを除去して、新しいキネマティクスを追加します(上記参照)。

  • ボーンに使いたいキネマティクスソルバCHOPが既にあるなら、ボーンの Kinematic Solver パラメータ(パラメータエディタの Bones タブ)に、そのパスを入力します。

ボーンの長さとゼロポジションを編集する

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

  2. ボーン間のジョイント部分にある小さい四角をクリックして、移動(T)、回転(R)、スケール(E)マニピュレータを使って編集します。

    特別なマニピュレータ(Y)を使ってチェーンに関連したジョイントを上や下のボーンに沿って、または2つのボーン軸間の中間軸に沿って動かします。

ボーンを子にする

  1. Houdiniはネットワークエディタでボーンを親子化すると子ボーンは親の位置に移動して階層化します。

    もしボーンチェーンを親子化しても親の位置に動かしたくないならば、ボーンチェーンの Keep position when parenting パラメータをオンにします。

    (この設定は、Houdini Preferencesウィンドウの Objects and Geometry で全体的にオフにすることができます。)

  2. Parentツールを使うか、または親のボーンの出力を子の入力に接続します。

    “子”チェーンにNullルートオブジェクトがあれば、そのNullオブジェクトはチェーンの一部ではないので削除しても構いません。

ジョイントを削除する

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

  2. 削除したいジョイント上でクリックして、 Delete Joint を選択します。Houdiniは、削除したジョイントのどちらかを1つにして2つのボーンを結合します。

Note

セットアップ中はジョイントを回転するのにTransformツールを使わないでください。なぜなら、そららのツールはボーンの Rotate 値を変更してしまうからです。代わりにBonesツールを使ってください。

停止ポーズ(Rest Pose)をセットアップした後はボーンのアニメーションをするときにTransformツールを使ってください。

Reverse footのセットアップの作成方法

  1. 腿のボーン、すねのボーン、足首のボーン、足のボーンを持つIKボーンチェーンを作成します。

  2. ゴールNullすべてに Keep position when parenting をオンにします。

  3. 足首の下部にあるゴールを足首の上部のゴールのにし、つま先のゴールを足首の下部のゴールの子にします。

  4. コントロールNullを新しく作成して、足首の上部のゴールをそれの子にします。

  5. コントロールNullの Keep position when parenting パラメータをオンにします。そしてワールド空間の代わりにキャラクタ空間を使いたいので、それをキャラクタルートNullの子にします。

  6. コントロールNullを使って足のポーズを設定します。コントロールNullを移動・回転すると、足、足首、脚ボーンがうまく駆動します。

  7. つま先のゴールのトランスフォームをクリーンして、移動パラメータをロック、YとZの回転パラメータもロックします。つま先がX軸回転しかしないので、Reverse footのセットアップでうまく回転します。

  8. 足首の上部と底部のゴールに対しても前のステップを繰り返します。

  9. コントロールNullの見た目を変更すると、その機能が何かわかりやすくなります。例えば、足ボーン下にコントロールNullを配置して、それを足跡の見た目に変更します。

  10. 任意で、足首の上部、下部、つま先のゴールを不可視で選択不可にします。

ボーンの終点にNullを配置する方法

ボーンの始点にNullを配置するのは、簡単です。Nullをボーンオブジェクトの子にして、Nullの位置や向きを (0, 0, 0)に設定します。

Nullをボーンの 終点 に配置するには、次のどれかを行ないます。

スナップによる方法

  1. ポイントの表示をオンにします。

  2. Nullをボーンのにします。

  3. PoseまたはMoveツールとスナップ機能を使って、Nullをボーンの終点にスナップします。

パラメータ参照による方法

  1. Nullをボーンのにします。

  2. ボーンオブジェクトを選択して、パラメータエディタから Length パラメータをクリックして、 Copy Parameter を選択します。

  3. Nullオブジェクトを選択して、パラメータエディタから Translate Z パラメータをクリックして、 Paste Relative Reference を選択します。

    これはパラメータ参照をボーンの長さにペーストすると、Nullはボーンの空間で常にボーンの長さ分オフセットされます。あいにく、参照する長さはプラスの値なのでマイナスの値でオフセットする必要があります。

  4. Paste Relative Reference で挿入されたエスクプレッション(例:ch("../L_hip_bone1/length))の頭にマイナス記号を付け加えれば、値を反転することができます。

キャラクタのトラブルシューティング

IK駆動の動きが痙攣したような動きをする

ソルバはトランスフォームを階層的にオブジェクトに適用します。とても大きくて複雑なリグネットワークでは、エラーが蓄積されていき、その結果、動きがだんだん滑らかでなくなってきます。

キネマティックソルバCHOPでは、トラッキング閾値を下げてください。これはトランスフォームの精度を上げますが、またクッキング時間も増えます。

リグの構築