概要
R/G/B/A をピクセルごとに式で計算する自由枠ノードです(Substance Designer の Pixel Processor 相当)。専用ノードが無い画像処理——独自ブレンド、数式模様、 チャンネル操作——を式4本で自作できます。 式から小数と同じ式文法を、画像のピクセルごとに評価します。
使い方のポイント
- 「こういうフィルタが無い」と思ったらまずここ: 2枚の画像を
r2等で 参照できるので、既存のblendモードに無い合成も式で書ける - 座標
u/v(0〜1)とtimeでプロシージャル模様のアニメーションが作れる (例:sin((u + time) * pi * 8) > 0で流れる縞) - まず
expr_r: u, expr_g: vのデバッググラデで座標系を確認してから 本命の式を書くと迷わない - 専用ノードで済むもの(明るさ調整・2値化など)は専用ノードの方が速く読みやすい
関連ノード
expression_float— 同じ式文法の数値版(式の練習台)blend— 定番の合成はこちらcoordinates— 座標マップだけ欲しい場合channel_split/channel_merge— チャンネル操作の専用ノード
使える変数
| 変数 | 意味 |
|---|---|
x, y |
ピクセル座標(0〜幅-1 / 0〜高さ-1) |
u, v |
正規化座標(0〜1) |
w, h |
画像の幅・高さ |
r, g, b, a |
画像Aの現在ピクセルの色(未接続なら0) |
r2, g2, b2, a2 |
画像Bの現在ピクセルの色 |
time, frame, total_frames |
アニメーション時間情報 |
関数・演算子は式ノード共通です(四則演算、比較、&&/||、sin/cos/abs/min/max/floor など)。
使用例
- UVグラデーション: 画像入力なしで
expr_r: u,expr_g: v,expr_b: 0,expr_a: 1→ 不透明なデバッグ用グラデーション - チャンネル入替:
expr_r: b,expr_b: r→ 赤と青の交換 - 2画像の比較合成:
expr_r: max(r, r2)などで独自ブレンドを組む - プロシージャル模様:
expr_r: sin(x * 0.5) * 0.5 + 0.5→ 縞模様 - しきい値マスク:
expr_a: (r + g + b) / 3 > 0.5→ 明るい所だけ不透明
注意
- 画像Bが画像Aより小さい場合、Bの範囲外ではBの最終列・最終行を繰り返して
r2/g2/b2/a2を評価します。 &&/||は結果が決まった時点で右辺を評価せず、if(条件, A, B)も 選ばれた側だけを評価します。clampの上下限は逆なら入れ替え、sign(0) = 0、%は非負の ユークリッド剰余です。0除算・0による剰余・負数のsqrtはエラーになります。- 式はピクセルごとに評価されるため、大きな画像では時間がかかります(ドット絵サイズ推奨)
- 式が不正な場合はエラーになります。まず単純な式で確認してください