まず何に使う?
- 条件によって値を切り替えたい時
Compareの結果を受けて分岐したい時- 2つの色、2つの数値、2つのパスなどを選び分けたい時
概要
条件(Bool)で、すでに評価された2つの値のどちらを下流へ渡すか選ぶノードです。
数値・色・画像・パスなど、value_type で選んだ型なら何でも切り替えられます。
ただしプログラムの遅延評価if文ではなく、未選択側の上流処理を省略する機能はありません。
使い方のポイント
- 基本形:
compare.result → switch.condition(condition を📌入力ピン化)。 しきい値をまたぐと出力が切り替わる - 画像の切り替えに使うと「2状態のアニメーション」が最小構成で作れる:
motion(点滅) → compare → switch<Image>で2枚の絵が交互に出る - 3択以上は
value_select(インデックスで選ぶ)の方が素直。switch の 多段ネストは読みにくくなる value_typeを正しく選ぶこと。Anyは型チェックが効かなくなるので最終手段
関連ノード
compare— 条件の作成元value_select— N択のインデックス選択版gate— 「選ぶ」ではなく「止める」expression_bool— 複合条件から Bool を作る
注意
conditionは入力ピン化できます。Compareの結果をそのままつなぐ使い方が定番です。- 両側に上流ノードを接続した場合、グラフ評価では両方の上流処理が通常どおり実行され、
Switchは届いた値から片方を選びます。重い処理や副作用、エラーを未選択側だからと 省略できる「本当のif文」ではありません。 - 実際に選ばれた側だけが必要です。使われない側は未接続でも問題ありません。
- 選ばれた側が未接続でも、
Switch自体は警告を出さず空出力になります。必要なら下流ノード側で未接続として警告されます。 value_typeを変えると、true_value/false_value/valueの型も一緒に変わります。- 通常は
true_valueとfalse_valueに同じ型を流してください。 Anyは上級者向けです。接続自体は通っても、実際に選ばれた値の型が下流ノードの期待と合わないと、評価時に警告やノードエラーが出ます。
使用例
Compareの結果で0と1を切り替える- フラグ値を作れます
Compareの結果で 2 色を切り替える- 状態に応じた色分けができます
- 2 本の
Pathを切り替える- モードによって違う形を使いたい時に便利です
Switch<Float>の出力をMath Opに渡す- 分岐後の値をそのまま次段へ流せます
Switch<Any>でデバッグ用に値を差し替える- 下流が
Anyを受けられる構成でのみ使うのが安全です
- 下流が