絶対に挫折しないHoudini入門 6 - パラメーター
パラメーター
Houdiniのノードにはたくさんのパラメータがありますが、それらは一貫して共通の機能を持っています。パラメーターエディタのヘルプはこちらです。
この記事では、Houdiniを使う上で特に重要な/よく使う機能についていくつかピックアップして説明します。
数値の変更
トランスフォームなど数値のパラメーターフィールドの上でマウスの中ボタンをクリックすると下の様なUIが表示されます。中ボタンを押したまま、変更したい単位の上でマウスを左右にドラッグすると、その分だけ数値を変更することが出来ます。
キーフレーム
キーフレームはフィールドをAlt+クリックすることで設定できます。解除するにはCtrl+クリックです。
パラメーター参照
パラメーターは他のパラメーターを参照することが出来ます。フィールドを右クリック>Copy Parameterを押すとそのパラメーターをコピーすることが出来ます。
コピーしたパラメーターは別のパラメーターフィールドにペーストすることが出来ます。参照を設定したい場合は、ペーストしたいフィールド上で右クリック > Paste Relative Referencesを選択します。
TransformノードのScale Xに、Translate Xへの参照を設定した例です。Translate Xの値を変えると、Scale Xも同様に変わります。
エクスプレッション表示の切り替え
パラメーターフィールドには単純な数値や文字列だけではなく、スクリプトを記述できます。エクスプレッションについての詳細は別の記事で説明します。
実はキーフレームやパラメーター参照はエクスプレッションの一つです。Houdiniがあなたの代わりにエクスプレッションを書いてくれています。
エクスプレッションが設定されるとフィールドが緑色など他の色になります。これはエクスプレッションが書かれているということを示しています。
緑色になっているフィールドのラベルをクリックすると、エクスプレッションとその結果を交互に表示できます。キーフレームが設定されているパラメータのラベルをクリックすると以下の様なエクスプレッションが書かれていることが分かります。
パラメーター参照はこのようになっています。
緑色になっているフィールドは直接数値を変更できない場合があるので、そういう時はどのようなエクスプレッションが書かれているのか確認します。
Parameter Interface
パラメーターは自分で作成したり、削除したりすることもできます。ここではNullノードを使って複数のジオメトリを動かすコントローラーを作ってみます。
まず、NullノードとSphereノード、Boxノードを配置します。SphereノードとBoxノードは一緒に表示させるためにMergeノードでまとめておきます。(SphereとBoxは重なっているのでBoxが見えていません。)
Nullノードを選択して、歯車アイコン > Edit Parameter Interfaceを選択します。
このようなウィンドウが表示されます。
このウィンドウでは、左ペインに使用できるパラメーターの型(FloatやVectorなど)がリストアップされています。右のペインは現在のノードが持っているパラメータ―リストです。Nullノードは何も持っていません。(Copy InputとCache Inputというのがありますが、ユーザーは操作できません。)
左のペインから、右のペインにパラメーターの型をドラッグ&ドロップすることで、そのパラメーターをノードに設定することが出来ます。
ここでは、Float Vector 3を右のペインに設定してみます。そして、Name: translate、Label: Translateとします。ちなみに、Range(入力可能な範囲)を設定することもできます。
右下のAcceptボタンをクリックしてウィンドウを閉じます。Nullノードにパラメーターフィールドが作成されました。
では次に作成したTransformのラベル上で右クリック > Copy Parameterを選択します。これでTransformのxyz全てのパラメーター(の参照)をコピーできます。
これをSphereノードとBoxノードのCenterに参照コピーします。Centerラベルの上で「Paste Relative References」を行うとxyz全てにペーストできます。正しく設定されるとこのようになります。
このままだと、SphereとBoxが重なったままなので、少し距離を取ります。Centerラベルをクリックしてエクスプレッション表記にしてください。
SphereのCenter Xをクリックしてエクスプレッションの後に「-1」と付け加えます。
同様にBoxの方は「+1」してみます。
さて、これでやっとコントローラーが出来ました。Nullノードを選択してTranslateの値を変更してみると、SphereとBoxが同時に動きます。
このようにParameter Interfaceとパラメーター参照を組み合わせると制御用のコントローラーを作ったりすることが出来ます。
今回はとても簡単なノードの組み合わせでしたが、実際の制作では大量のノードを組み合わせることになります。そうした時に、調整用のパラメーターがどこにあるのか探すだけで一苦労です。もしそれが他の人が作成したノード群だったとしたら? 見つけるのは無理かもしれません。うっかり変更してはいけないパラメーターを変更してしまって、元に戻すのが難しくなるかもしれません。
そうしたケースで、必要なパラメーターだけをコントローラーに持たせておけば見つけやすいですし、安心してパラメーターの変更が出来ます。
もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!