ノード一覧に戻る

条件切り替え

switch

評価済みの2つの値から条件に合う側を選びます。処理を遅延するif文ではなく、値の選択ノードです

確認済み
解説あり

入力ポート

名前説明
true のとき
true_value
Any
条件が true の時に使う値です
false のとき
false_value
Any
条件が false の時に使う値です

出力ポート

名前説明
value
Any
選ばれた値です

パラメータ

名前既定値範囲説明・選択肢
切り替える型
value_type
Enum
Float

この Switch が切り替える値の型を選びます。Any は上級者向けです。

  • 数値(汎用)Number
    Float と Int の両方を扱える数値を切り替えます
  • 小数Float
    小数値を切り替えます
  • 整数Int
    整数値を切り替えます
  • ON/OFFBool
    ON/OFF を切り替えます
  • Color
    色を切り替えます
  • 文字Text
    文字を切り替えます
  • 画像Image
    画像を切り替えます
  • パスPath
    パスを切り替えます
  • ピクセル線PixelLine
    ピクセル線を切り替えます
  • Vec2Vec2
    2Dベクトルを切り替えます
  • Vec3Vec3
    3Dベクトルを切り替えます
  • OKLCH補正OklchAdjust
    OKLCH基準の明るさ・鮮やかさ・色相・透明度の補正セットを切り替えます
  • パレットPalette
    パレットを切り替えます
  • リストList
    リストを切り替えます
  • マップMap
    マップを切り替えます
  • IsoItemIsoItem
    IsoItem を切り替えます
  • IsoSceneIsoScene
    IsoScene を切り替えます
  • IsoWorldIsoWorld
    IsoWorld を切り替えます
  • Any(上級者向け)Any
    上級者向けです。どの型でも通せますが、選ばれた値の型が下流ノードの期待と合わないと実行時エラーになります。
切り替え条件
condition
Bool
false

true なら「true のとき」、false なら「false のとき」を使います

まず何に使う?

  • 条件によって値を切り替えたい時
  • 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_valuefalse_value に同じ型を流してください。
  • Any は上級者向けです。接続自体は通っても、実際に選ばれた値の型が下流ノードの期待と合わないと、評価時に警告やノードエラーが出ます。

使用例

  1. Compare の結果で 01 を切り替える
    • フラグ値を作れます
  2. Compare の結果で 2 色を切り替える
    • 状態に応じた色分けができます
  3. 2 本の Path を切り替える
    • モードによって違う形を使いたい時に便利です
  4. Switch<Float> の出力を Math Op に渡す
    • 分岐後の値をそのまま次段へ流せます
  5. Switch<Any> でデバッグ用に値を差し替える
    • 下流が Any を受けられる構成でのみ使うのが安全です
ノード一覧に戻る
条件切り替え — PixPipeline ノード解説