On this page |
概要 ¶
デジタルアセットを作成してしまえば、Type Propertiesウィンドウを使用して、その新しいノードのパラメータインターフェースを編集することができます。 アセット内のノードのパラメータをアセットのユーザインターフェースに プロモート させることができます。 オブジェクトのアセットにレンダープロパティを追加することで、レンダリングの方法を制御することもできます。
アセットのインスタンスを右クリックして、 Type Properties を選択し、 Parameters タブをクリックします。
アセットのインターフェースを編集した時は、そのノードの変更を確認するのにType Propertiesウィンドウの Apply または Accept をクリックする必要があることを忘れないで下さい。
パラメータの作成とプロモート ¶
To... | Do this |
---|---|
パラメータをプロモートする |
ネットワークエディタで、アセット内に入り、プロモートしたいパラメータのノードを選択します。パラメータエディタペインでパラメータを探します。そして、以下のどれかを行ないます:
または
|
ノードのパラメータすべてをプロモートする |
ネットワークエディタで、アセット内に入り、プロモートしたいパラメータのノードを選択します。そして、そのノードをType Propertiesウィンドウのパラメータリストにドラッグします。 ネストしたデジタルアセットをそのリストにドラッグすると、Houdiniはネストしたアセットからパラメータをそのままの構成でプロモートします。 |
非表示・ドラッグ不可のパラメータをプロモートする |
Type Propertiesウィンドウの Parameters タブで、 Create Parameters の From Nodes サブタブをクリックします。これは、全体のシーン内のすべてのノードの すべてのパラメータ のツリービューを表示します。 そのツリービューを使用して、欲しいノードとパラメータを探し、それを Existing Parameters のパラメータリストにドラッグします。 |
ゼロからパラメータを新しく作成する |
Type Propertiesウィンドウの Parameters タブで、 Create Parameters の By Type サブタブをクリックします。作成したいパラメータのタイプを Existing parameters のパラメータリストにドラッグします。 アセット内のノードのパラメータの値をチャンネル参照したり、それをスクリプトに使用することができます。 |
メニューパラメータを作成する |
アセット内のノードのパラメータの値をチャンネル参照したり、それをスクリプトに使用することができます。 |
パラメータの整理 ¶
To... | Do this |
---|---|
パラメータをグループにまとめる |
Separatorをパラメータリストにドラッグして、パラメータのグループ間に分割線を作成することもできます。 |
一連のパラメータを左右に並べて、レイアウトのスペースを節約する |
|
アニメーション用のアセットをセットアップ ¶
To... | Do this |
---|---|
チャンネルリストに自動追加されるパラメータを設定する |
|
スクリプト化したコントロールと挙動を追加 ¶
To... | Do this |
---|---|
パラメータが変わる度にスクリプトを実行する |
Type Propertiesウィンドウの Existing Parameters でパラメータを選択し、 Parameter Description の Parameter サブタブで、 Callback Script フィールドにスクリプトを入力します。 Callback Script フィールドの右側にあるポップアップメニューで、そのスクリプトがHScriptなのかPythonなのかを選択することができます。 詳細は、Parametersサブタブのヘルプを参照してください。 Pythonのパラメータコールバックスクリプトに関する情報は、HOMドキュメントを参照してください。 |
インスタンスが作成または破棄された時にスクリプトを実行する |
Pythonのイベントハンドラーに関しては、HOMドキュメントを参照してください。 |
ハンドルとHUDスライダ ¶
アセット内のノードからハンドルとHUDスライダをプロモートすることができるので、アセットを選択した時にそれらがビューポートに表示されます。 Type Propertiesウィンドウは開いたままにしなければなりません。
ハンドルにアセット内のノードのパラメータを駆動させたいならば、まず最初にアセットのパラメータをプロモートしなければなりません。それから、そのパラメータをハンドルにバインドすることができます。
Note
ハンドルとHUDスライダは、それらを右クリックして“Persistent”を有効にしない限りは、 Handlesツールを使用している時のみ表示されます。
To... | Do this |
---|---|
アセット内からハンドルまたはHUDスライダをプロモートする |
ハンドル/スライダを表示させるには、ノードを選択解除して再選択する必要がある場合があります。 |
アセットのパラメータにハンドルを作成する |
|
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で使用されているのを確認することができます。