Expressions-01

エクスプレッションとその確認方法に関していくつか紹介。

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 件のコメント:

コメントを投稿