On this page |
概要
ファイル名のパラメータにエクスプレッションを挿入しておけば、ファイルの入出力時にHoudiniがそのエクスプレッションを評価します。よく使われるエクスプレッションは、$F
で、レンダリング出力ファイルに設定しておけば、ファイル名にフレーム番号が付けられるので、お互いにファイルを上書きすることはありません。
例えば、mine$F.pic
は、ファイル名がmine1.pic
、mine2.pic
、mine3.pic
などのように評価されます。
前後の文字から変数名を"保護"する必要があれば、${F}
のような形式を使うことができます。例えば、フレーム番号の後にF
という文字が必要なとき、frame$FF.pic
と記述してはいけません。なぜなら、$FF
は変数名だからです。このケースでは、frame${F}F.pic
と記述すれば、frame1F.pic
、frame2F.pic
などのように評価されます。
役に立つ変数
|
現在のフレーム番号。 |
|
現在の浮動小数点フレーム番号。この値は、Houdiniがモーションブラーのサブフレームモーションを計算している時に再生します。 |
|
入出力ファイルカウンターの数。この値はフレーム番号とはまったく関係なくて、複数のファイルを処理するときに、Houdiniがこれまでに読み込んだ/書き込んだ/レンダリングしたフレームの数です。 例えば、フレーム番号10から15までをレンダリングすると、$Nは、1、2、3、4、5のように変わっていきます。 |
|
現在の時間。 |
|
現在のシミュレーションタイムステップの数。ダイナミクスシミュレーションでファイルを保存するときは |
|
現在のシミュレーション時間。 |
|
現在のノード名。 |
fields をレンダリングする時、フレーム5.0と5.5の整数のフレーム番号($F
)は5になります。そのため、固有のファイル名を使うなら、$N
または$FF
を使います。$FF
を使うデメリットには、 $FF
が31.99999のように2進数の小数点変換で算術誤差が発生する可能性があることです。$N
を使うデメリットは、それがフレーム番号と関係なくて、レンダリングするフレーム数を数えるだけなので、フレーム1から10までレンダリングしてから、続けてフレーム11から20までレンダリングするバッチがあるとすると、 2回目のバッチが最初のバッチを上書きしてしまうことです。
頭のゼロ
フレーム番号の前に頭のゼロを生成するには、$F
の後に0以外の桁数を記述します。これにより桁数の多いフレーム番号が生成されます。例えば、mine$F3.pic
では、ファイル名がmine001.pic
、mine002.pic
、mine003.pic
、…などになります。
以下のpadzero
エクスプレッション関数を使うこともできます。
高度なエクスプレッション
単純な変数の置き換えよりも高度なことをするためには、バッククォート(\
`)でエクスプレッション全体を囲みます。
例えば、ファイル名をフレーム番号に合わせて増やしていきたいけれど、ある数だけ番号をオフセットしたいときがあります。その場合、バッククォートの内側でファイル名に組み込みエクスプレッションを使うことができます。
MyImage`$F+12`.pic.
これはファイルに現行フレーム番号に12を足して番号をつけています。これによって、ファイル名がMyImage13.pic
、MyImage14.pic
、MyImage15.pic
、…となります。
バッククォート内側でpadzeroのようなエクスプレッション関数を使うことができます。
frame`padzero(5, $F)`.pic
これは、ファイル名が、frame00001.pic
、frame00002.pic
、frame00003.pic
などになります。
役立つ情報
-
画像を解像度別のディレクトリに保存するには、
Pics${W}x${H}/$F.pic
のようなパスを使います。 -
ファイル名に現在のオペレータの名前を含める(例えば、ファイル名にライトの名前を含めたい場合)には、
$OS
を使います。例えば、$OS_$F.pic
では、ファイル名がlight1_1.pic
、light1_2.pic
、light1_3.pic
、…などになります。 -
名前とフレーム番号を区別するのにハイフン(例えば、
frame-$F.pic
)を使わないでください。MPlayではそのようなファイル名(frame-1.pic
、frame-2.pic
、frame-3.pic
など)は マイナスのフレーム番号 (-1、-2、-3、…)を含んでいるものとみなします。 -
ファイル名にスペースを使うことを避けてください。たいていのOSではスペースはサポートされていますが、多くのソフトウェア・パッケージ(Houdini含む)では、ファイル名にスペースをサポートしていない時があるのでトラブルがたくさん発生する可能性があります。スペースの代わりにキャメルケース(複数単語をスペースなしで綴り、単語の頭文字を大文字、他は小文字)を使うか、アンダースコア(
_
)を使ってください。