ノード一覧に戻る

式から小数

expression_float

短い式を評価して小数を出力します

確認済み
解説あり

入力ポート

名前説明
X
x
Number
数値変数 x です
Y
y
Number
数値変数 y です
Z
z
Number
数値変数 z です
W
w
Number
数値変数 w です
Vec
vec
Vec2
必要なら使える Vec2 変数です
フラグ
flag
Bool
必要なら使える Bool 変数です

出力ポート

名前説明
value
Float
式を評価した結果の小数です

パラメータ

名前既定値範囲説明・選択肢
X
x
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う x の値です

Y
y
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う y の値です

Z
z
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う z の値です

W
w
Float
0-10000–10000 / step 0.01

入力ピンが未接続の時に使う w の値です

Vec X
vec_x
Float
0-10000–10000 / step 0.01

vec 入力ピンが未接続の時に使う X 成分です

Vec Y
vec_y
Float
0-10000–10000 / step 0.01

vec 入力ピンが未接続の時に使う Y 成分です

フラグ
flag
Bool
false

flag 入力ピンが未接続の時に使う真偽値です

expression
Text
x

使える変数: x, y, z, w, vec, vx, vy, flag, time, frame, total_frames 記述例: - x + y * 2 - sin(time * pi * 2) - if(flag, x, y) 入力ピンがつながっている時は、Inspector の値より入力ピンが優先されます。

概要

短い数式をテキストで書いて数値を1つ出すノードです。math_opmath_func を 何個もつなぐ計算を、floor(x*4)/4 のように1ノードにまとめられます。 数値配線が増えてグラフが読みにくくなってきた時の整理役です。

使い方のポイント

  • ノード3個以上の数値計算は式1本の方が見通しがよい。逆に単純な1演算は math_op の方がグラフ上で意図が見える
  • time / frame が式の中で直接使えるので、time_source をつながずに 時間駆動の値が書ける(例: sin(time * pi * 2) で1周期のサイン波)
  • if(条件, a, b)compare + switch の数値版が式1本で済む
  • ピクセルスナップの定番: floor(x * 段数) / 段数

関連ノード

  • math_op / math_func — ノードで組む場合の同等品
  • list_map — 同じ式エンジンでリストの各要素を変換
  • compare / switch — Bool を他の型に波及させたい場合
  • float_input — 変数の供給元

まず大事なこと

  • ここで使う x, y, z, w, vec, flag は、変数パネルで作る変数とは別物です
  • これは Expression ノード自身の入力ピン名 です
  • x, y, z, w, vec_x, vec_y, flag は Inspector から直接入力もできます
  • 変数パネルで作った変数を使いたい時は、その変数を Variable Ref などで取り出して各入力ピンへつなぎます
  • 入力ピンに値がつながっている時は、入力ピンの値が Inspector の値より優先されます
  • 未接続の入力は次の値として扱われます
    • x, y, z, w = 0
    • vec = [vec_x, vec_y]
    • flag = false

使えるもの

  • 変数: x, y, z, w, 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 + y * 2
  • sin(time * pi * 2)
  • if(flag, x, y)
  • length(vec) * 0.5

具体例

例1: 単純な加算

  • x0.5
  • y2
  • expression = x + y * 2
value = 4.5

例2: 入力をつながない場合

  • 入力を何もつながない
  • expression = x + 1

この時は x = 0 として扱われます。

value = 1

例3: time を使う

  • expression = sin(time * pi * 2)

time が 0.0 → 1.0 と変わると、1周期ぶんのサイン波になります。

どういう時に使うか

  • 数値ノードを何個も並べるほどではない軽い式を書きたい時
  • ListMap に入れる前に、式の内容を単体で確認したい時

注意

  • && / || は結果が決まった時点で右辺を評価しません。if(条件, A, B) も 選ばれた側だけを評価します。
  • clamp の上下限は逆なら入れ替え、sign(0) = 0%0 以上 |右辺| 未満のユークリッド剰余です。0除算・0による剰余・負数の sqrt は Math ノードと同じくエラーになります。
  • 長いロジックや副作用付き処理を書く用途ではありません
  • v1 は 軽い escape hatch 用です
  • 式を入力中は、途中の不完全な文字列でもその場で評価されるので、一時的にエラー表示が出ることがあります
ノード一覧に戻る
式から小数 — PixPipeline ノード解説