CG 日記

modoでファイルパスを切り替える方法


アクションごとのシミュレーションや放射照度キャッシュの保存先を変えたり、レンダリング画像の保存先をフレーム数で変更したりしたい場合があります。modoではファイルパスは文字列タイプのチャンネルとして扱われていて、文字列ノードを使用する事でリグを構築することができます。

上記の画像はアセンブリとして再利用できるようにするためロケータに文字列タイプのユーザーチャンネルを追加し、ファイルパスとファイル名を入力用のチャンネルにしていいます。※
StringComposeノードでファイルパスとファイル名を結合し、結合した文字列をStringSwitchノードで切り替えています。

StringComposeはパターンに$[s:1]$[s:2]のように入力することで、「C:\Temp\」と「Cut1.LXI」のような文字列を「C:\Temp\Cut1.LXI」のように結合する事ができます。入力チャンネルには複数のチャンネルを接続することができます。
$[s:1]は文字列チャンネルの1接続目、$[s:2]は文字列チャンネルの2接続目を意味しています。パターンで整数入力する場合は$[i:1]、浮動小数点数入力の場合は$[f:3]のように入力します。詳細はマニュアル参照。

StringSwitchは入力された複数の文字列を、切り替えチャンネルの値で切り替えることができるノードです。例えば切り替えの値が2の場合は、2個目に接続されたチャンネルの文字列を出力します。
StringSwitchの出力を任意の文字列チャンネルに接続して使用しますが、レンダー出力のファイル名チャンネルのように、出力先の文字列行が(Empty)と表示されているようなチャンネルの場合は、あらかじめ仮のファイルパスを設定しておく必要があります。

文字列タイプのチャンネルはプロシージャルモデリングのSelect By Selection SetやSelect By Polygon Tagでも使用されているので、StringSwitchを使うと表現の幅が広がりそうです。

※modoのアセンブリはノードのチャンネルを直接公開すると、アセットロード時に公開チャンネルが消えたりすることがあります。パーティクル関連のノードは直接入力しても値を無視することがあるため、ロケーターのユーザーチャンネルを経由するとバグっぽい動作につまずかずにすむのでお勧めです。

コメントを残す

*