| 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のように変わっていきます。 |
|
現在の時間。 |
|
現在のシミュレーションタイムステップの数。ダイナミクスシミュレーションでファイルを保存するときは |
|
現在のシミュレーション時間。 |
|
現在のノード名。 |
|
現在のシーンファイルのベース名。 |
小数点フレームをレンダリングする場合、フレーム5.0と5.5のどちらの整数フレーム番号($F)も5になります。
固有のファイル名を使うなら、代わりに$Nまたは$FFを使います。
$FFを使うデメリットは、$FFが31.99999のように2進数の小数点変換で算術誤差が発生する可能性があることです。
$Nを使うデメリットは、それがフレーム番号と無関係であることです。
もし$Nを使ってフレーム1から10までレンダリングしてから、次にフレーム11から20までレンダリングするような場合には特に注意してください。
その場合だと 2回目のバッチが1回目のバッチを上書きしてしまいます 。
頭のゼロ ¶
安定した小数点フレームのファイル名 ¶
小数点フレーム番号でファイルを書き出す時に、そのファイル名を生成する最適な方法は以下のとおりです:
-
精度問題を回避するために
$Tに基づいてフレーム番号を生成します(プレイバックのグローバル変数の注記を参照してください)。 -
pythonexprsを介してPythonの書式化関数を借用します。
例:
$HIP/geo/$HIPNAME.$OS.`pythonexprs("'%.2f'%"+($T*$FPS+1))`.bgeo.scこのエクスプレッションの%.2fの部分は、フレーム番号を小数点以下2桁で書式化します。
高度なエクスプレッション ¶
単純な変数の置き換えよりも高度なことをするためには、バッククォート(\`)でエクスプレッション全体を囲みます。
例えば、ファイル名をフレーム番号に合わせて増やしていきたいけれど、ある数だけ番号をオフセットしたいときがあります。その場合、バッククォートの内側でファイル名に組み込みエクスプレッションを使うことができます。
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含む)では、ファイル名にスペースをサポートしていない時があるのでトラブルがたくさん発生する可能性があります。スペースの代わりにキャメルケース(複数単語をスペースなしで綴り、単語の頭文字を大文字、他は小文字)を使うか、アンダースコア(
_)を使ってください。