このノードは、 Select Input パラメータで、出力する入力を指定します。入力の番号は0から始まります。 このパラメータをエクスプレッションで制御したり、アニメーションさせることができます。
例えば、$F - 1
エクスプレッションを使えば、フレーム1では1番目の入力に、フレーム2では2番目の入力などに切り替えることができます。
最初の4フレームでは1番目の入力を、それ以降のフレームでは2番目の入力を使用するには、($F >= 5)
エクスプレッションを使います
(>=
などのブール演算子は、Falseで0
、Trueで1
を返すので、そのSwitchノードはエクスプレッションがFalseの時に入力0を、Trueの時に入力1を選択します)。
Tip
失敗してエラーを返す可能性のあるノードをバイパスするためにSwitchノードをよく使用します。 これをする方法は、 Select Input パラメータに以下のエクスプレッションを使います:
if (strmatch("*Error:*", run("opinfo " + opfullpath("../" + opinput(".", 1)))), 0, 1)
このエクスプレッションを使えば、Switchノードは、エラーがなければ 2番目の 入力を使用し、エラーがあれば 1番目 の入力に切り替えることができます。
このエクスプレションは、2番目の入力(opinput(".", 1)
。入力番号は0から始まるので、1
は2番目の入力を参照します)のオペレータ情報文字列(runエクスプレッション関数を使って、opinfo HScriptコマンドをコールします)を取得します。
strmatchがエラー文字列を見つければ、if関数は0を返します(1番目の入力を使用)。そうでないなら1を返します(2番目の入力を使用)。
エラーではなく警告を出すSOPを取り扱う時は、以下のエクスプレッションを使います。例えば、Object MergeノードがSwitchノードの2番目の入力に接続されていて、そのノードがジオメトリを読み込んでいない時は警告を出します:
if (strmatch("*Warning:*", run("opinfo " + opfullpath("../" + opinput(".", 1)))), 0, 1)
パラメータ
Select Input
出力する入力番号(0から始まります)。このパラメータをエクスプレッションで制御したり、アニメーションさせることができます。