Back to Node List

Procedural Palette

procedural_palette

Builds a palette from base colors, variables, and OKLCH-derived slots.

Draft
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Output Ports

NameTypeDescription
パレット
palette
Palette
レシピから計算された実際のパレットです。
レシピ
recipe
ProceduralPaletteRecipe
今後のレシピ編集・合成ノードで使うためのプロシージャルパレット定義です。

Parameters

NameTypeDefaultRangeDescription / Options
レシピデータ
recipe_data
CustomData
{"version":1,"variables":[{"id":"shadow_l_1","name":"Shadow L 1","comment":"影色を少し暗くします。","kind":"oklch_l","paramId":"variable_1","value":-12.0,"min":-50.0,"max":50.0,"step":0.1,"distribution":null},{"id":"shadow_l_2","name":"Shadow L 2","comment":"さらに暗い影色を作ります。","kind":"oklch_l","paramId":"variable_2","value":-24.0,"min":-50.0,"max":50.0,"step":0.1,"distribution":null}],"slots":[{"kind":"empty","index":0,"name":"Empty"},{"kind":"manual","index":1,"name":"Base Red","color":[0.9,0.18,0.28,1.0],"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":[]},{"kind":"oklchAdjust","index":2,"name":"Red Shadow 1","source":1,"lightness":0.0,"chroma":0.0,"hue":0.0,"alpha":0.0,"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":["shadow_l_1"]},{"kind":"oklchAdjust","index":3,"name":"Red Shadow 2","source":1,"lightness":0.0,"chroma":0.0,"hue":0.0,"alpha":0.0,"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":["shadow_l_2"]},{"kind":"manual","index":4,"name":"Base Blue","color":[0.2,0.38,0.95,1.0],"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":[]},{"kind":"oklchAdjust","index":5,"name":"Blue Shadow 1","source":4,"lightness":0.0,"chroma":0.0,"hue":0.0,"alpha":0.0,"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":["shadow_l_1"]},{"kind":"oklchAdjust","index":6,"name":"Blue Shadow 2","source":4,"lightness":0.0,"chroma":0.0,"hue":0.0,"alpha":0.0,"lightness_expression":"","chroma_expression":"","hue_expression":"","alpha_expression":"","variable_links":["shadow_l_2"]}],"slotOrder":[]}

プロシージャルパレットの変数とスロット定義です。

変数 1
variable_1
Float
-12-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 2
variable_2
Float
-24-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 3
variable_3
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 4
variable_4
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 5
variable_5
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 6
variable_6
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 7
variable_7
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

変数 8
variable_8
Float
0-100–100 / step 0.01

レシピ式で使う変数です。入力ピン化すると、影色量などを外部から動かせます。

エディタ幅
_editor_width
Int
840520–1800

プロシージャルパレット編集画面の幅です。

エディタ高さ
_editor_height
Int
620360–1400

プロシージャルパレット編集画面の高さです。

  • type_id: procedural_palette
  • category: Palette/Create
  • editor: ProceduralPaletteEditor

目的

ベース色と変数から、連動して変わるパレットを作るノードです。

たとえば「赤の基本色」「赤の影1」「赤の影2」「青の基本色」「青の影1」「青の影2」のような色セットを、影色用の変数でまとめて調整できます。

このノードが出す主出力は通常の Palette です。そのため、IndexedImage RenderIndexedImage Apply Palette など、既存のパレット入力にそのまま接続できます。画像側の処理を特別に変える必要はありません。

レシピの考え方

レシピは大きく2つで構成されます。

要素 役割
変数 複数のスロットから参照できる数値。例: shadow_l_1 = -12
スロット パレットの各番号。手動色または派生色として定義

スロットには以下の種類があります。

種類 説明
手動色 その番号に直接色を入れる
OKLCH派生 別の番号の色を元にして、OKLCH基準で L / C / H / A をずらす

式には以下を使えます。

書き方 意味
-12 そのまま数値として使う
$shadow_l_1 shadow_l_1 変数を参照
var:shadow_l_1 同上

OKLCH派生の L はパーセントポイントです。-12 なら、元色より OKLCH の明るさを 12 ポイント下げます。

使い方

  1. Procedural Palette を追加する
  2. エディタを開く
  3. ベース色を 手動色 として作る
  4. 影色やハイライト色を OKLCH派生 として作る
  5. L$shadow_l_1 のような変数を入れる
  6. palette 出力を IndexedImage Render などへ接続する
  7. 変数スライダーを動かし、接続先の画像の色変化を確認する

変数パラメータ

このノードは variable_1 から variable_8 までの Float パラメータを持ちます。

専用エディタ内の変数は、このパラメータに紐づけられます。パラメータを入力ピン化すれば、波形ノードや数値ノードから影の強さなどを動的に操作できます。

v1 の制限

  • レシピの外部入力はまだありません。
  • 専用レシピ型は出力のみです。
  • 派生方式は OKLCH 補正から開始しています。
  • グラフ型の高度な式エディタではなく、まずは専用エディタ上の変数とスロット編集で運用します。

この構成にしておくことで、後から「レシピ合成」「スロット範囲生成」「色相環から自動生成」などを追加しても、既存の Palette 適用ノードを変更せずに拡張できます。

Back to Node List
Procedural Palette — PixPipeline Node Reference