このノードは、 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 パラメータに以下のPythonエクスプレッションを使います:
1 if hou.pwd().inputs()[1].geometry() else 0
このエクスプレッションを使えば、Switchノードは、エラーがなければ 2番目の 入力を使用し、エラーがあれば 1番目 の入力に切り替えます。
これは、2番目の入力(インデックスが1
)がジオメトリのクックに成功するかどうかテストした後にそのインデックスを返します。
しかし、上記のエクスプレッションは、そのジオメトリが空っぽかどうかチェックしていません。 例えば、Object Mergeは、指定されたノードパスを見つけることができなかった場合、警告を出し、代わりに空っぽのジオメトリを出力します。 このエクスプレッションを以下のように拡張させることで、空っぽかどうかを考慮することができます:
geo = hou.pwd().inputs()[1].geometry() 1 if geo and geo.point(0) else 0
パラメータ ¶
Select Input
出力する入力番号(0から始まります)。このパラメータをエクスプレッションで制御したり、アニメーションさせることができます。