概要
短い式で true / false を1つ作るノードです。compare + 論理演算のノードを
並べる代わりに、flag || x > 0.5 のような複合条件を1本の式で書けます。
結果は switch / gate の条件へ。
使い方のポイント
compare1個で済む単純比較はそのまま compare、条件が2つ以上絡んだら こちらに1本化するとグラフが読みやすいtime/frameが使えるので「特定のフレーム範囲だけ true」のような 時間条件も式1本で書ける(例:frame % 4 == 0)list_filterの predicate を単体で試す確認台としても使える(同じ式文法)
関連ノード
compare/value_match— 単純な判定はノードでswitch/gate— Bool の使い先expression_float/expression_vec2— 同じ式エンジンの他型版list_filter— リスト版の条件式
まず大事なこと
- ここで使う
x,y,vec,flagは、変数パネルで作る変数とは別物です - これは Expression ノード自身の入力ピン名 です
x,y,vec_x,vec_y,flagは Inspector から直接入力もできます- 変数パネルの変数を使いたい時は、
Variable Refなどで取り出して各入力ピンへつなぎます - 入力ピンに値がつながっている時は、入力ピンの値が Inspector の値より優先されます
- 未接続の入力は次の値として扱われます
x,y=0vec=[vec_x, vec_y]flag=false
使えるもの
- 変数:
x,y,vec,vx,vy,flag,time,frame,total_frames - 演算:
+ - * / %,== != < <= > >=,&& || ! - 関数:
min,max,clamp,abs,floor,ceil,round,sign,sin,cos,tan,sqrt,pow,lerp,vec2,x,y,length,if
よく使う式
x < 0.5flag || x > 0.5length(vec) >= 4
具体例
例1: 閾値判定
xを0.25expression = x < 0.5
value = true
例2: 複合条件
flagをfalsexを0.8expression = flag || x > 0.5
value = true
どういう時に使うか
Switchや filter 条件へ入れる Bool を、軽い式だけで作りたい時ListFilterの predicate を先に単体確認したい時
注意
&&/||は結果が決まった時点で右辺を評価しません。if(条件, A, B)も 選ばれた側だけを評価するため、未選択側のエラーは結果に影響しません。- 数値規則は Math ノードと共通です。
clampの上下限は逆なら入れ替え、sign(0) = 0、%は非負のユークリッド剰余です。0除算・0による剰余・ 負数のsqrtはエラーになります。 - bool 以外の値でも評価できますが、最終的には true / false に変換されます
- 複雑な状態機械を書く用途には向きません
- 式を入力中は、途中の不完全な文字列でもその場で評価されるので、一時的にエラー表示が出ることがあります