2019-05-17

pose space deformer


ここでは Houdini の Pose Space Deformer (PSD) の設定について簡単に説明する。



使用したビルド: Houdini 17.5.258
シーンファイルへのリンクは一番下にあり。

0. シーン設定

  1. test_arm_basic.hip を開く。

    腕の形のチューブを2本のボーンでコントロールしているリグが表示される。
    タイムラインをスクラブしたり再生ボタンを押せば、アニメーションの設定がついているのが分かる。
  2. Object レベルでのノードは以下の通り。

    tube1 がスキン形状、chain_root1 がルート、chain_bone1 が上腕、chain_bone2 が下腕と理解すれば良い。

1. ポーズベースデフォーマの設定

  1. Network Editor で tube1 の中に入る。

    大枠では、tube1 (シリンダ) が edit1 で変形され、それに対し biharmonic キャプチャが行われていると理解すれば良い。ただし、鍵になるのは、最下流の bondeform1 の一つ上の attribcreate1。これが Rest Geometry として扱われる。
  2. 1 フレーム目に戻り、パラメータペーン右端の '+' -> New Pane Tab Type -> Pose-Space Deform を実行。

    3つのボタンのあるパネルが表示される。
    • Edit Existing PSD: 既にシーンに設定された PSD があるときにこれをクリックする。
    • Create Rigging PSD: リギング中に PSD を設定する時にこれをクリックする。
    • Create Shot-Finaling PSD: 既にスキニングが終了しているものを微調整する際に使用。
  3. ここでは Creating Rigging PSD をクリックして先に進むと、難解に見える次のパネルが表示される。

    ここで行うことは、デフォメーションの元形状となる Rest Geometry と Driver (Maya の Set Driven Key のドライバみたいなもの) を設定すること。
  4. Select Rest Geometry 脇の '+' に似たアイコンをクリック、Choose Operator ウィンドウで /obj/tube1/attribcreate1 を選択。
      このノード(もしくはここまでのネットワーク)がレストジオメトリとして扱われる。
  5. Add Driver ボタンをクリックして表示される Add Driver パネルで、
    • Driver Type を Parameter (のまま)
    • Parameter Path の Choose Operator ボタン('+') をクリックし、/obj/chain_bone2/Tranform/Rotate (r) を選択。
  6. Accept を押して閉じる。
  7. ここまでで Create Rigging PSD ウィンドウは以下のようになる。

    Driver は複数追加しても良い。例えば、 chain_root1 の Translate をドライバとして追加すれば、ルートの移動によりコントロールすることも可能。
  8. ここでは Accept を押してこのパネルを閉じて先に進む。すると Pose-Space Deform パネルは以下のようになっている。

    ここにポーズを好きなだけ追加していくことになる。

2. ポーズの追加

  1. 例えば 24フレーム目ぐらいでポーズを追加する場合、タイムラインで24フレーム目に移動し、Add Pose Shape ボタンをクリックする。

    rest_poseshape に poseshape1 が追加されたことが分かる。
  2. 左側中央の Edit Shape ボタンをクリックし、ビューポートでブラシツールを使って poseshape1 スキン形状を編集していく。


  3. 編集に満足したら必ず Done ボタンをクリックして作業を終了する。
  4. 他のフレームに移り、同じ要領で編集作業を続けていくことが可能。

3. PSD ノードネットワークの構成

  1. ここまでの作業で /obj/tube1 の中は以下のようなノード構成になった。
    1. attribcreate1 と bonedform1 の間に PSD ネットワークが追加された。
    2. PSD_PoseShape というサブネットワークが追加された。
    3. PSD_Poses という CHOP ネットワークが追加された。
  2. attribcreate1 と bonedform1 の間に挿入されたネットワークでは、
    • rigging_psd_import が PSD_PoseShapes 内の最下流からデータを持ってくる。
    • rigging_psd が設定した PSD のオン・オフを決める。 Pose-Space Deform パネルの ON|OFF トグルでこのノードがバイパスされるか否かを決定する。
    • psd_combine は複数のドライバが設定された場合にそれらをまとめる。
  3. PSD_PoseShape サブネットワークでは、
    • attribcreate1_import がレストポーズを持って来て
    • rest_poseshape と poseshape1 がそれぞれのポーズ形状を保存している。
    • 例えば poseshape1 の中に入ると以下のようになっている。

      Edit ノードがブラシで行った編集を保存している。
  4. PSD_Poses CHOP ネットワークでは、

    rigging_psd_drivers (左上)でドライバのアニメーションデータを抽出し、それらをポーズのデータとして Stash ノードに格納している。
ここまでが test_arm_psd_rigging.hip

4. PSD が設定されたファイルを読む。

  1. test_arm_psd_shot.hip を開く。
  2. Pose-Space Deformer パネルに行き、最初のボタン Edit Existing PSD をクリックする。
  3. Choose An Existing PSD Node 以下で /obj/tube1/shot_finaling_psd を選択し、Accept をクリック。
      ここで使われている PSD は Shot-Finaling PSD。ただし、ネットワークの構成は Rigging PSD とほぼ同じ。
  4. 編集方法もほぼ同じで、このシーンファイルでは、腕を曲げた時の間接のスキニングのを調整している。
細かい説明はまた次回。

シーンファイル

h175_psd.zip 356KB

  • test_arm_basic.hip: 元になっている PSD 設定の無いファイル
  • test_arm_psd_rigging.hip: Rigging PSD を一つ施したファイル
  • test_arm_psd_rigging_2drivers.hip: Rigging PSD を二つ施したファイル
  • test_arm_psd_shot.hip: hot-Finaling PSD を設定したファイル。


最終更新: 2020-11-16

4 件のコメント: