2018-04-18

hda menu default value

ここでは、HDA で Ordered Menu を使う方法とデフォルト値の設定方法を、Sphere か Box を Polygon か Polygon Mesh タイプのいずれかのみで生成するアセットを元に紹介する。


使用したバージョン: Houdini 16.5.439
シーンファイルへのリンクは一番下にあり。

1. 元になるネットワーク作成

最初に元となるネットワークを作る。

  1. Create シェルフで、Ctrl キーを押しながら、Box ツールを実行。
      ビューポートに立方体が現れ、ネットワークエディタには box_object1 ノードが現れる。
  2. ネットワークエディタで box_object1 ノードをダブルクリックするか i キーを押して中に入る。
  3. box1 の Primitive Type を Polygon Mesh にして、Axis Division を 3、3、3 以上にする。
  4. ネットワークエディタ内で TAB->Sphere を実行。Enter キーを押してノードを配置。
      これで box1 と sphere1 の二つのノードが出来た。
  5. TAB->Switch を実行。Enter キーを押してノードを配置。
  6. box1 と sphere1 を選択、switch1 に接続する。

      どちらが先でも良いが、ここではbox1 が先になっている。入れ替えるには switch1 を選択して Shift+R。
  7. switch1 に表示フラグを設定し、Select Input を 0 にすれば box が表示され、1 にすれば球が表示される。
これで元になるネットワークの構築は終了。

2. HDA の作成と既存パラメータの追加・調整

#1 で作ったネットワークをHDA にする。

  1. 上記3つのノードをすべて選択、Create Subnet from Selected () を実行。
      subnet1 というコンテナノードが出来、その中に選択したネットワークが格納されている。
  2. できた subnet1 を test_parm などと名称変更し、RMB->Create Digital Asset... を実行。
    1. 別パネルで設定する HDA ファイルのパスは、以下のように(デスクトップ)に保存。自分で後で見つけられる場所であれば何処でもよい。
    2. Accept をクリックして確定。
  3. 次に表示される Edit Operator Type Properties ウィンドウでは Paramters タブに進む。
      このときに test_parm ノードのパラメータビューをみれば、現在何も表示されていないことがわかる。
  4. ネットワークエディタで、test_parm ノード内に入り、switch1 を選択。
  5. Select Input パラメータを左ボタンでクリックし、Edit Operator Type Properties ウィンドウの Existing Paramters 以下にドラッグ&ドロップする。
  6. Apply (Accept ではない) ボタンをクリックし、変更を反映すれば、test_parm ノードのパラメータパネルに Select Input のスライダーが表示されている。

    ただし、有効な選択肢は2つしかないにもかかわらず、スライダは 0 から 9 の間で変更可能。これを調整する必要がある。
  7. Edit Operator Type Properties ウィンドウの Existing Parameter 以下で Select Input が選択されていることを確認し、右下の Range の部分を 0 と 1 にし、Apply をもう一度クリックすれば、Select Input は 0 と 1 のいずれかだけにスライドするようになる。
  8. 右側で Channels タブに移り、Defaults 以下の最初の値を 0 から 1にして、Apply をクリックすれば、このパラメータのデフォルト値が 1 になる。

3. 新規パラメータの追加・リンク

新しくパラメータを作り、それを既存ノードにリンクする。ここでは、Ordered Menu をひとつ新規作成、選択肢を Polygon と Polygon Mesh にして、box1 と sphere1 の Primitive Type をコントロールできるようにする。

  1. 再び Edit Operator Type Properties ウィンドウで、今度は左側の Craete Parameters の By Type タブ以下で Ordered Menu を探し、真ん中の矢印を押して、Existing Parameters 以下に追加。
  2. 右側の Parameter Description で以下のように設定
    • Name を type
    • Label を Primitive Type
  3. Menu タブに行き、Menu Items 以下に次のペアを入力
    • 0, Polygon
    • 1, Polygon Mesh
  4. Apply をクリックすれば、パラメータパネルに追加したメニューが確認できる。

    ただし、まだ何もしない。
  5. Primitive Type パラメータの上で RMB->Copy Parameter を実行。
  6. ネットワークエディタで box1 を選択、box1 の Primitive Type パラメータ上で、RMB->Paste Relative Reference を実行。
      ドロップダウンメニュー部分が緑色に変わり、パラメータがリンクされたのが確認できる。
  7. test_parm の Select Input を0 (box) にして、Primitive Type を変更すれば、正しく切り替わっているのが確認できるはず。

4. パラメータのリンクその2

Sphere の Primitive Type は 'Primitive', Polygon', 'Polygon Mesh' ... であり、box と同じように Paste Relative Reference でリンクしても、Primitive (0) と Polygon (1) の選択となり、うまく行かない。そこで以下の方法を取る。

  1. sphere1 を選択、Primitive Type パラメータ上で、RMB->Expression->Edit Expression を実行。
    1. エディタに表示されている primを削除し、
    2. ch("../type")+1
      と入力、Accept を押して閉じる。
  2. test_parm ノードに戻り、Select Input を1 にして、Primitive Type を Polygon と Polygon Mesh で変更すれば、形状も正しく切り替えられているのがわかる。
  3. Edit Operator Type Properties ウィンドウで Accept を押してウィンドウを閉じ、ネットワークエディタで test_parm の上で RMB->Save Node Type とすれば、ここまでの変更がすべて保存される。
おしまい。

シーンファイル

0 件のコメント:

コメントを投稿