エクスプレッションとその確認方法に関していくつか紹介。
1: チャネルエクスプレッション
例えば、 Torus を一つ作成し、Translate Y に
($F - 1) / 10
等とする。
タイムスライダで、フレームを1, 2, 3, ... とあげて行けば、TY の値は、
0.1, 0.2, 0.3, ... と増加していく。
この値を実際にパラメータビューでみるには、Translateというラベルを左クリックする。
そうすると、実際の値とエクスプレッションがトグル表示できる。
ちなみに上記のキャプチャでは次のように設定している。
TX | 2* sin(($F -1) *5) |
TY | ($FF-1)/20 |
TZ | 2* cos(($F -1) *5) |
2: 文字列変数を使ったエクスプレッション
Render->Create Render Node->Mantra-PBRとすると、
Houdini 14からは Output Picture の値が、
$HIP/render/$HIPNAME.$OS.$F4.exr
となっている。
ここで、
$HIP | 現在のシーンファイルを開いたディレクトリ、または最後の保存先ディレクトリ ("C:/Users/ktaki/Desktop/HoudiniFiles/pyro")。 |
$HIPNAME | 拡張子を除いたシーンファイル名 ("test_expression")。 |
$OS | このノード名 (mantra1) |
$F4 | 4桁のフレーム番号。3桁で表示したいのであれば $F3、桁揃無なら $F。 |
ファイル名に関連した変数の詳細はこちら。
ちなみにH13までは、$HIPNAME には拡張子が含まれていて、この場合 test_expression.hip となった。
- H13 で拡張子を含めたくないのであれば、$HIPNAME:r とする。
- H14 以降で拡張子を含めたシーンファイル名を取りたいのであれば、$HIPFILE を使う。
また、Houdini 13 まではここの Output Picture の値は、
ipであった。
ip は Mplay の略で、Houdini 14であっても Output Picture を ip に設定し、(カメラ /obj/cam1 とライトをシーンに追加後) mantra1 の Render ボタンをクリックすれば、画像を書き出す替わりに Mplayに書き出される。
ip としたあとに、元のデフォルト値に戻すには、ラベルまたは入力フィールド上で RMB-> Revert to Default または Ctrl+MMB クリックすれば、元の値
$HIP/render/$HIPNAME.$OS.$F4.exr
に戻る。
ただ、TYのようにラベルを左クリックしても、上記のエクスプレッションが展開されるわけではない。
同様のことをするには、ラベル上で MMB クリックするか、RMB -> Expression -> Expand String Value とする。こうすると、私の場合、
C:/Users/ktaki/Desktop/HoudiniFiles/pyro/render/test_expression.mantra1.0001.exr
となる。
3: hscript の返り値
例えば、多少強引だが、後々アセットを作りマテリアルもその中に一緒にしたいので、このTorus1のマテリアルへのパスが、
../shopnet1/mantrasurface
だったとして、これを絶対パスとして展開したい場合には、
`opfullpath("../shopnet1/mantrasurface")`
opfullpathという関数を使った上で、バックティック(`)で囲う。
これにも MMB クリックが有効。
/obj/shopnet1/mantrasurface
と表示される。
もう一度 MMB クリックすればエクスプレッション表示に戻る。
4: $変数の切れ目
$HIPNAME.$OS.$F4.exr
の"." (ピリオド) を"_" (アンダースコア) で置き換え、
$HIPNAME_$OS_$F4.exr とすると、最初の変数は HIPNAME ではなく HIPNAME_、二つ目は OS_ と認識される。
勿論、$HIPNAME_ も $OS_ も (別途定義しない限り) 存在しないので、Null 文字列となる。入力時に赤くなるので怪しいとわかるはず。MMBクリックすれば確認可能。
二つ以上の変数を "_" でつなぎたい場合には、
$HIP/render/${HIPNAME}_${OS}_$F4.exr
とそれぞれの変数を{}で囲う。
これで
<省略>/test_expression_mantra1_0001.exr
と正しく認識されるようになる。
4: $変数の追加
例えば、タイムラインで1から20フレーム目に、image.[1001-1020].jpg といったフレーム番号の画像を読み込みたい場合、
image.`$F+1000`.jpgというようにして読み込むことが可能。
0 件のコメント:
コメントを投稿