絶対に挫折しないHoudini入門 6 - パラメーター

 パラメーター

 Houdiniのノードにはたくさんのパラメータがありますが、それらは一貫して共通の機能を持っています。パラメーターエディタのヘルプはこちらです。

 この記事では、Houdiniを使う上で特に重要な/よく使う機能についていくつかピックアップして説明します。

数値の変更

 トランスフォームなど数値のパラメーターフィールドの上でマウスの中ボタンをクリックすると下の様なUIが表示されます。中ボタンを押したまま、変更したい単位の上でマウスを左右にドラッグすると、その分だけ数値を変更することが出来ます。

画像1

キーフレーム

 キーフレームはフィールドをAlt+クリックすることで設定できます。解除するにはCtrl+クリックです。

画像2

パラメーター参照

 パラメーターは他のパラメーターを参照することが出来ます。フィールドを右クリック>Copy Parameterを押すとそのパラメーターをコピーすることが出来ます。

画像4

 コピーしたパラメーターは別のパラメーターフィールドにペーストすることが出来ます。参照を設定したい場合は、ペーストしたいフィールド上で右クリック > Paste Relative Referencesを選択します。

画像5

 TransformノードのScale Xに、Translate Xへの参照を設定した例です。Translate Xの値を変えると、Scale Xも同様に変わります。

画像6

エクスプレッション表示の切り替え

 パラメーターフィールドには単純な数値や文字列だけではなく、スクリプトを記述できます。エクスプレッションについての詳細は別の記事で説明します。
 実はキーフレームやパラメーター参照はエクスプレッションの一つです。Houdiniがあなたの代わりにエクスプレッションを書いてくれています。

 エクスプレッションが設定されるとフィールドが緑色など他の色になります。これはエクスプレッションが書かれているということを示しています。

 緑色になっているフィールドのラベルをクリックすると、エクスプレッションとその結果を交互に表示できます。キーフレームが設定されているパラメータのラベルをクリックすると以下の様なエクスプレッションが書かれていることが分かります。

画像3

 パラメーター参照はこのようになっています。

画像7

 緑色になっているフィールドは直接数値を変更できない場合があるので、そういう時はどのようなエクスプレッションが書かれているのか確認します。

Parameter Interface

 パラメーターは自分で作成したり、削除したりすることもできます。ここではNullノードを使って複数のジオメトリを動かすコントローラーを作ってみます。

 まず、NullノードとSphereノード、Boxノードを配置します。SphereノードとBoxノードは一緒に表示させるためにMergeノードでまとめておきます。(SphereとBoxは重なっているのでBoxが見えていません。)

画像14

 Nullノードを選択して、歯車アイコン > Edit Parameter Interfaceを選択します。

画像9

 このようなウィンドウが表示されます。

画像10

 このウィンドウでは、左ペインに使用できるパラメーターの型(FloatやVectorなど)がリストアップされています。右のペインは現在のノードが持っているパラメータ―リストです。Nullノードは何も持っていません。(Copy InputとCache Inputというのがありますが、ユーザーは操作できません。)

 左のペインから、右のペインにパラメーターの型をドラッグ&ドロップすることで、そのパラメーターをノードに設定することが出来ます。
 ここでは、Float Vector 3を右のペインに設定してみます。そして、Name: translate、Label: Translateとします。ちなみに、Range(入力可能な範囲)を設定することもできます。

画像11

 右下のAcceptボタンをクリックしてウィンドウを閉じます。Nullノードにパラメーターフィールドが作成されました。

画像12

 では次に作成したTransformのラベル上で右クリック > Copy Parameterを選択します。これでTransformのxyz全てのパラメーター(の参照)をコピーできます。

画像13

 これをSphereノードとBoxノードのCenterに参照コピーします。Centerラベルの上で「Paste Relative References」を行うとxyz全てにペーストできます。正しく設定されるとこのようになります。

画像14

 このままだと、SphereとBoxが重なったままなので、少し距離を取ります。Centerラベルをクリックしてエクスプレッション表記にしてください。

画像15

 SphereのCenter Xをクリックしてエクスプレッションの後に「-1」と付け加えます。

画像17

 同様にBoxの方は「+1」してみます。

画像17

画像18

 さて、これでやっとコントローラーが出来ました。Nullノードを選択してTranslateの値を変更してみると、SphereとBoxが同時に動きます。

 このようにParameter Interfaceパラメーター参照を組み合わせると制御用のコントローラーを作ったりすることが出来ます。
 今回はとても簡単なノードの組み合わせでしたが、実際の制作では大量のノードを組み合わせることになります。そうした時に、調整用のパラメーターがどこにあるのか探すだけで一苦労です。もしそれが他の人が作成したノード群だったとしたら? 見つけるのは無理かもしれません。うっかり変更してはいけないパラメーターを変更してしまって、元に戻すのが難しくなるかもしれません。

 そうしたケースで、必要なパラメーターだけをコントローラーに持たせておけば見つけやすいですし、安心してパラメーターの変更が出来ます

もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!