2022-03-12

kinefx delete joints HDA

Delete Joints ノードの Group パラメータを HDA にただ単に露出するとエラーになり、削除するジョイントの選択ができない。ここでは、それを可能にする方法を紹介する。

使用したビルド:

  • Houdini 19.0.554 (すべてきれいに動かすには 19.0.553 以降が必須)
HDA およびスクリプトファイルへのリンクは一番下にあり。

1. 元シーンファイルの作成

a. 単一出力ノードの場合

  1. Houdini を起動、Geometry ノードを作成、中に入る。
  2. L-System ノード (lsytem1) を作成。
  3. lsytem1 の出力に Rig Doctor ノード (rigdoctor1) を作成。
      これにより、L-system の枝分かれ部分のポイントがすべてジョイントとなる。
  4. rigdoctor1 の出力に Delete Joints ノード (rigdoctor1) を作成。
    • Group フィールドの右端にある矢印ボタンをクリックすれば Rig Tree パネルが表示がされ、このパネルまたはビューポートでジョイントの選択ができ、Enter キーで選択を確定する。

      Enter を押すときに、カーソルは Rig Tree の外にある必要がある。
ここまでは問題なく動作する。

2. HDA にした時の問題点

  1. 上記のノード三つをすべて選択し、Shift+C でコンテナ (Subnet)ノードにまとめる。
  2. できた Subnet ノードの名前を後から分かり易い名前 (例: test_del_joints 等) に変更、RMB->Create Digital Assets を実行。
      アセット名、ファイル名を決め、Accept をクリックすると、Edit Operator Type Properties パネルが現れる。
  3. ネットワークエディタで、test_del_joints 内に戻り、deletejoints1 を選択、Group パラメータを Edit Operator Type Properties パネルの中央部 (Existing Parameters 以下に) ドラッグ & ドラッグする。

  4. Accept を押してパネルを閉じ、ネットワークエディタで一つ階層を上がると、HDA のパラメータとして Group パラメータだけが露出されているのがわかる。
  5. ただし、この HDA の Group パラメータの右側の矢印アイコンをクリックすると、以下のエラーが発生、OK をクリックすると Rig Tree パネルも一緒に閉じてしまうので、ジョイントの選択ができない。
この問題を以下で解決する。

3. HDA での解決策 (1)

  1. test_del_joints 上で RMB->Type Properties を実行、パネルを再び開く。
  2. Group パラメータを選択、右側で Action Button タブに行く。
  3. ここに存在する2行 Python スクリプトを添付の zip にある rigtreeconfig.py の中身で完全に置き換え、Accept を押してパネルを閉じる。
  4. HDA の Group パラメータの右側の矢印アイコンをクリックすると、今度はエラーなしで Rig Tree パネルが開くので、ジョイントの選択が可能になった。
これで問題の一部が解決できた。以下で、これだけでは解決できない問題とその対応策を紹介する。


実際にスケルトンを操作する際には L-system を元にジョイントを作ることはあまりなく、KineFX ノードを操作することが多く、その場合、操作すべきデータのストリームは三連出力の三番目(一番右) であり、その場合には、上記の手法だけでは足りない。以下でそれを説明する。

4. KineFX ノード (三連出力)を使った場合

b. 三連出力の場合

  1. 再度 test_del_joints 内に入り、Labs Test Geometry: Luiz ノード (testgeometry_luiz1) を作成する。これには SideFX Labs のインストールが必要。
  2. testgeometry_luiz1 の一番右の出力を deletejoints1 に上書き接続。
  3. 一つ上に戻り、HDA の Group パラメータの右側の矢印アイコンをクリックすると、今度は先程とはちがうエラーが現れ、選択ができない。
  4. testgeometry_luiz1 と deletejoints1 ノードの間に Null ノード (null1) を挿入する。
  5. 再度一つ上に戻り、HDA の Group パラメータの右側の矢印アイコンをクリックすると、今度はエラーがなく Rig Tree パネルが現れ、選択がでるようになった。
  6. null1 を Switch ノード (switch1) で置き換えても良い。
  7. switch1 の Select Input パラメータも HDA に露出し、RMB->Save Node Type で HDA を保存。
これで既知の問題がすべて解決した。

リンク

  • HDAファイル:
  • ここでの手順を H19.0.553 以前で行うと Rig Tree パネルでジョイントが閉じた状態で表示されるの Expand を行う必要がある。553 で改善。
  • 次のバージョンの Houdini では、この回避策を使わなくとも良いように改善予定。

0 件のコメント:

コメントを投稿