ノード一覧に戻る

式からピクセル

expression_pixel

R/G/B/Aを式で計算してピクセルを作ります。座標・入力色・時間が変数として使えます

確認済み
解説あり

入力ポート

名前説明
画像A
a
Image
任意の画像です。各ピクセルの色を r, g, b, a で参照できます
画像B
b
Image
任意の2枚目の画像です。r2, g2, b2, a2 で参照できます。画像Aより小さい場合は右端または下端のピクセルを反復します

出力ポート

名前説明
画像
output
Image
式で計算した画像です

パラメータ

名前既定値範囲説明・選択肢
R
expr_r
Text
r

Rチャンネルの式です(0〜1)

G
expr_g
Text
g

Gチャンネルの式です(0〜1)

B
expr_b
Text
b

Bチャンネルの式です(0〜1)

A
expr_a
Text
a

Aチャンネルの式です(0〜1)

width
Int
641–1024

画像A未接続時のキャンバス幅です

高さ
height
Int
641–1024

画像A未接続時のキャンバス高さです

概要

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 など)。

使用例

  1. UVグラデーション: 画像入力なしで expr_r: u, expr_g: v, expr_b: 0, expr_a: 1 → 不透明なデバッグ用グラデーション
  2. チャンネル入替: expr_r: b, expr_b: r → 赤と青の交換
  3. 2画像の比較合成: expr_r: max(r, r2) などで独自ブレンドを組む
  4. プロシージャル模様: expr_r: sin(x * 0.5) * 0.5 + 0.5 → 縞模様
  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 はエラーになります。
  • 式はピクセルごとに評価されるため、大きな画像では時間がかかります(ドット絵サイズ推奨)
  • 式が不正な場合はエラーになります。まず単純な式で確認してください
ノード一覧に戻る
式からピクセル — PixPipeline ノード解説