Houdini 20.0 デジタルアセット

アセットのユーザインターフェースを編集

On this page

概要

デジタルアセットを作成してしまえば、Type Propertiesウィンドウを使用して、その新しいノードのパラメータインターフェースを編集することができます。 アセット内のノードのパラメータをアセットのユーザインターフェースに プロモート させることができます。 オブジェクトのアセットにレンダープロパティを追加することで、レンダリングの方法を制御することもできます。

アセットのインスタンスを右クリックして、 Type Properties を選択し、 Parameters タブをクリックします。

アセットのインターフェースを編集した時は、そのノードの変更を確認するのにType Propertiesウィンドウの Apply または Accept をクリックする必要があることを忘れないで下さい。

パラメータの作成とプロモート

To...Do this

パラメータをプロモートする

ネットワークエディタで、アセット内に入り、プロモートしたいパラメータのノードを選択します。パラメータエディタペインでパラメータを探します。そして、以下のどれかを行ないます:

  • パラメータエディタからパラメータをType Propertiesウィンドウのパラメータリストにドラッグします。

    複数コンポーネントを持つパラメータ(例えば、X,Y,Zの位置パラメータやR,G,Bのカラーパラメータ)に関しては、 パラメータラベル をドラッグすることですべてのコンポーネントをプロモートすることができ、 コンポーネントのテキストボックスをドラッグすることで単一コンポーネントをプロモートすることができます。

または
  • パラメータを右クリックして、 Export Parameter to Type Properties を選択します。

ノードのパラメータすべてをプロモートする

ネットワークエディタで、アセット内に入り、プロモートしたいパラメータのノードを選択します。そして、そのノードをType Propertiesウィンドウのパラメータリストにドラッグします。

ネストしたデジタルアセットをそのリストにドラッグすると、Houdiniはネストしたアセットからパラメータをそのままの構成でプロモートします。

非表示・ドラッグ不可のパラメータをプロモートする

Type Propertiesウィンドウの Parameters タブで、 Create ParametersFrom Nodes サブタブをクリックします。これは、全体のシーン内のすべてのノードの すべてのパラメータ のツリービューを表示します。 そのツリービューを使用して、欲しいノードとパラメータを探し、それを Existing Parameters のパラメータリストにドラッグします。

ゼロからパラメータを新しく作成する

Type Propertiesウィンドウの Parameters タブで、 Create ParametersBy Type サブタブをクリックします。作成したいパラメータのタイプを Existing parameters のパラメータリストにドラッグします。

アセット内のノードのパラメータの値をチャンネル参照したり、それをスクリプトに使用することができます。

メニューパラメータを作成する

  1. 整数、文字列、ファイル、ノードパスのパラメータを作成/プロモートします。

  2. Existing Parameters でパラメータを選択します。

  3. Parameter Description で、 Menu サブタブをクリックします。

  4. Use Menu を有効にして、その隣にあるポップアップメニューからメニュータイプを選択します。

  5. Menu Items をクリックして、値/ラベルのペアの静的なリストをセットアップするか、 Menu Script をクリックして、動的にペアを生成するスクリプトを記述します。詳細は、メニュータブのヘルプを参照してください。

アセット内のノードのパラメータの値をチャンネル参照したり、それをスクリプトに使用することができます。

パラメータの整理

To...Do this

パラメータをグループにまとめる

  1. Type Propertiesウィンドウの Parameters タブで、 Create ParametersBy Type サブタブをクリックします。

  2. Folderを Existing Parameters のパラメータリストにドラッグします。

  3. そのフォルダを選択すると、 Parameter Description のコントロールでタイプ、ラベルなどを編集することができます。 タイプ はフォルダをタブ、折り畳み可能な見出し、ボックス化されたグループや他の見た目にすることができます。

  4. 既存パラメータを、その新しいフォルダにドラッグします。

Separatorをパラメータリストにドラッグして、パラメータのグループ間に分割線を作成することもできます。

一連のパラメータを左右に並べて、レイアウトのスペースを節約する

  1. 最初のパラメータを選択して、 Horizontally join to next parameter を有効にします。

  2. “横”に並んだパラメータのラベルを隠したい場合は、そのパラメータの Label オプションのチェックを外します。

アニメーション用のアセットをセットアップ

To...Do this

チャンネルリストに自動追加されるパラメータを設定する

  1. Existing Parameters でパラメータを選択します。

  2. Parameter Description のオプションで、 Channels サブタブをクリックします。

  3. そのチャンネルの隣にある Autoscopeアイコンを有効にします。

スクリプト化したコントロールと挙動を追加

To...Do this

パラメータが変わる度にスクリプトを実行する

Type Propertiesウィンドウの Existing Parameters でパラメータを選択し、 Parameter DescriptionParameter サブタブで、 Callback Script フィールドにスクリプトを入力します。

Callback Script フィールドの右側にあるポップアップメニューで、そのスクリプトがHScriptなのかPythonなのかを選択することができます。

詳細は、Parametersサブタブのヘルプを参照してください。 Pythonのパラメータコールバックスクリプトに関する情報は、HOMドキュメントを参照してください。

インスタンスが作成または破棄された時にスクリプトを実行する

Pythonのイベントハンドラーに関しては、HOMドキュメントを参照してください。

ハンドルとHUDスライダ

アセット内のノードからハンドルとHUDスライダをプロモートすることができるので、アセットを選択した時にそれらがビューポートに表示されます。 Type Propertiesウィンドウは開いたままにしなければなりません。

ハンドルにアセット内のノードのパラメータを駆動させたいならば、まず最初にアセットのパラメータをプロモートしなければなりません。それから、そのパラメータをハンドルにバインドすることができます。

Note

ハンドルとHUDスライダは、それらを右クリックして“Persistent”を有効にしない限りは、 Handlesツールを使用している時のみ表示されます。

To...Do this

アセット内からハンドルまたはHUDスライダをプロモートする

  1. アセット内に入り、プロモートしたいハンドル/スライダのノードを選択します。そのハンドルをビューポートで可視にします。

    HUDスライダに関しては、その位置と設定がプロモートする前にアセットで必要なものであることを確認します。

  2. ハンドルまたはスライダを右クリックして、 Export Handle To Digital Asset を選択します。

  3. Type Propertiesウィンドウで Apply または Accept をクリックします。

ハンドル/スライダを表示させるには、ノードを選択解除して再選択する必要がある場合があります。

アセットのパラメータにハンドルを作成する

  1. Type Propertiesウィンドウで、 Handles タブをクリックします。

  2. Create Handle をクリックして、ハンドルのタイプを選択します。

  3. Bindings の真下で、ユーザがハンドルの別の部分をドラッグした時にどのパラメータを変更するのか選択することができます。 Bindingsフィールドの隣にあるドロップダウンメニューをクリックすると、アセット上のすべてのパラメータから選択することができます。

opdef:を使用してアセット内部のファイルを指定する方法

Type PropertiesウィンドウExtra Files タブを使用することで、デジタルアセット内部にファイルを埋め込むことができます。

ファイルパスが指定可能なパラメータで以下の構文を使用することで、ファイルパスの代わりにアセット内のセクションの内容を指定することができます:

opdef:/Network_type/asset_name?section_name

この構文を使用することで、アセットで必要となるすべてのファイル(例えば、テクスチャ)をアセット自体の中で完結させることができます。

例:

opdef:/Object/my_asset?Texture.png

opdef:.?section(現行アセットからファイルを取得)とopdef:..?section(現行ノードの親からファイルを取得)のように使用することもできます。 例えば、アセット内の直下にFileノードが存在すれば、以下の構文を使用してそのアセットからジオメトリファイルを読み込むことができます:

opdef:..?test.bgeo

Note

相対opdef:はどの場所でも動作するわけではありません。 例えば、シェーダ内でtexture("opdef:/Shop/foo/texture.rat")を記述したとしても、コンパイルされたVEXには親ノードの概念がないのでopdef:..を使用することができません。

Tip

Houdiniファイル選択ダイアログを使用してアセットに埋め込まれているファイルをインタラクティブに選択することができます。 ファイル選択ダイアログの左側にあるopdef:ルートをクリックしてください。

Multiparm(マルチパラメータ)インスタンスのカスタムラベル

パラメータインターフェースには Multiparm(マルチパラメータ) を追加することができます。 このマルチパラメータは特別なフォルダになっていて、このフォルダの中にあるパラメータは、ユーザ側で作成可能な“項目”の テンプレート として機能します。 例えば、アセット製作者は、中に“Source”と“Destination”の2個のパラメータが入った“Mappings”マルチパラメータをノードテンプレート内に作成することができます。 そのノードのインスタンスでは、ユーザはパラメータインターフェースを使用してその“Mappings”マルチパラメータ内に何個も項目を作成して、各項目に“Source”と“Destination”のパラメータを入れることができます。

通常では、各パラメータのラベルは、テンプレートから取得されるのであって、そのラベルをスクリプトによって変更することはできません。 しかしながら、マルチパラメータの項目別にパラメータのインスタンスのラベルは異なっている方がわかりやすい場合もあります。

これを行なうには、少し複雑で完璧でない回避策があります:

  • Houdiniでは、パラメータに エイリアス(別名) を付けることができます。このエイリアスはアニメーションカーブエディタ内でパラメータの内部名の代わりに使用されています。スクリプトでは、hou.Parm.setAliasを使用してこのエイリアスを設定することができます。

  • パラメータラベルにマジック文字列の%sを含めると、HoudiniはUIにそのパラメータラベルを表示する際にその%sをそのパラメータのエイリアスに置換します。

これはラベルの変更だけでなく、エクスプレッション内やアニメーションカーブエディタ内にエイリアスを使用してパラメータ値を参照するのにも役立ちます(例えば、bone2ではなくtorsoの値を参照するなど)。 ただし、エイリアスは必ずパラメータの命名規則に準拠していなければならないので、“カスタムラベル”にはスペースや句読点を含めることはできません。

このテクニックの例がBlend Shapes SOP( Update Channel Names from Inputs ボタンをクリックすると、マルチパラメータインスタンスのエイリアスを設定するスクリプトが走ります)とMerge Packed SOPで使用されているのを確認することができます。

デジタルアセット

はじめよう

  • デジタルアセットの紹介

    Houdiniでは、デジタルアセットと呼ばれる再利用可能なカスタムノードに作業を変更することができます。

アセットの作成

次のステップ