string expand_udim(float u, float v, string path, ...)
入力パスから特殊変換文字を走査して、UDIMまたはUVTILEのどちらかのスタイルのファイル名展開を実行します。
これはtexprintfに似ていますが、次の2点で大きく異なります:
-
可変print引数がありません。UDIM/UVTILE展開のみが実行されます。
-
UDIM/UVTILE展開が実行されていた場合は、この関数は、そのテクスチャが存在していてアクセス可能かどうかをチェックします。
u
, v
UDIMタイル仕様に変換するテクスチャ座標。
path
ファイルパス。そのパス内の特殊文字シーケンスは、指定したUV座標に基づいたUDIM指定子に展開されます。特殊変換シーケンスが以下の通りです:
|
UDIM座標系で、 |
|
UVTILEスタイルのu-coordinate ( |
|
UVTILEスタイルのv-coordinate ( |
|
|
テクスチャ識別用の“d”変換指定子は、フィールド修飾子を使って修正することができます。
例えば、%(U)02d
または%(V)04d
です。
"checkfile",
int
=1
通常では、この関数は、展開されたパスが存在しているかどうか、それが読み込み可能なのかどうかをチェックします。
"checkfile", 0
のペアを渡すと、この関数は、このチェックを行ないません。
Returns
UDIMコントロールシーケンスを置き換えたパス。
展開されたファイルパスが存在しない、または、読み込むことができない場合、この関数は、checkfile
可変長引数を無効にしない限り、空っぽの文字列を返します。
Examples ¶
-
expand_udim(3.1, 4.15, "map_<UDIM>.rat")
- “map_1044.rat”を返します。 -
expand_udim(3.1, 4.15, "map_%(U)02d_%(V)02d.rat")
- “map_04_05.rat”を返します。 -
expand_udim(3.14, 11.5, "map_u%(U)d_v%(V)d.rat")
- “map_u4_v12.rat”を返します。 -
expand_udim(3.14, 11.5, "missing_file<UDIM>.rat")
- ファイルが見つからなかった場合に“”を返します。 -
expand_udim(3.14, 11.5, "missing_file<UDIM>.rat", "checkfile", 0)
- “checkfile”が無効な場合に“missing_file1044.rat”を返します。 -
expand_udim(3.14, 11.5, "/path/file.rat")
- ファイルが存在しようとしなかろうと、UDIM/UVTILE展開がない時に、“/path/file.rat”を返します。
// sprintf()は、%(UDIM)dのフォーマットシーケンスをそのままにします。 string map = sprintf("%s/%s_%(UDIM)d.rat", texture_path, texture_base); // <UDIM>を展開し、マップが存在しなければ空っぽの文字列を返します。 map = expand_udim(u, v, map); if (map != "") Cf = texture(map, u, v);
See also | |
string |
|
texture | |
udim | |
utility |