ノード一覧に戻る

トーンカーブ

tone_curve

ペイントツールのトーンカーブと同じように、制御点カーブで階調を補正します

確認済み
解説あり

入力ポート

名前説明
画像
input
Image
必須
補正する画像です

出力ポート

名前説明
画像
output
Image
補正後の画像です

パラメータ

名前既定値範囲説明・選択肢
対象チャンネル
channel
Enum
RGB

カーブを適用するチャンネルです

  • RGB(全体)RGB
    R・G・Bにまとめてカーブを適用します。通常の明暗・コントラスト補正です
  • Red
    赤チャンネルだけに適用します
  • Green
    緑チャンネルだけに適用します
  • Blue
    青チャンネルだけに適用します
  • アルファAlpha
    透明度だけに適用します。フェードの調整などに使えます
カーブ制御点
curve_points
CustomData
{"version":1,"points":[{"t":0,"value":0},{"t":1,"value":1}]}

インスペクタのカーブエディタで編集する制御点です。破損時はLinearプリセットで初期状態へ戻せます

概要

ペイントツールでおなじみの「トーンカーブ」です。明暗の対応関係を自由な曲線で 描き換えることで、コントラスト・ガンマ・フェードを1ノードで細かく制御できます。 brightness 系で足りない「暗部だけ持ち上げたい」ような非線形の補正はこれの出番です。

ノードを選択すると、インスペクタにカーブエディタが表示されます。 ダブルクリックで制御点を追加、右クリックで削除、ドラッグで移動できます。

使い方のポイント

  • 定番のSカーブ(暗部を下げ・明部を上げ)でコントラスト強調。ドット絵の「眠い」下地が 締まる
  • gradient_map の前に置くと効果的: カーブで明暗の分布を整えてから色を割り当てると、 各色の面積バランスを制御できる
  • channel = Alpha はフェードアニメーションの質感調整に便利(線形フェード→ イーズの効いたフェード)
  • 制御点は少なめ(3〜4点)が扱いやすい。多すぎると波打って階調が反転しやすい

よくある失敗

  • 何も変化しない: 既定のカーブ((0,0)-(1,1)の直線)はパススルー。制御点を 追加・移動して初めて効果が出る
  • 階調が反転して不自然: カーブが途中で下がっている(右下がり区間)。意図がなければ 制御点を整理して単調増加に戻す
  • カーブデータ破損のエラーが出る: 壊れたJSONや制御点が2個未満のデータを、 無言で直線カーブとして処理することはありません。インスペクタのカーブエディタで Linear プリセットを選ぶと、既定の直線へ安全に戻せます。
  • ドット絵の色数が増えた: カーブは連続的な変換なので中間色が生まれる。 パレット厳守の素材では後段に palette_quantize を置くか、palette_adjust_* 系で パレット側を調整する

技術詳細

  • カーブはインスペクタのエディタと同じ Catmull-Rom 補間で評価されるため、プレビューと結果が一致します
  • 内部では 256 段の LUT に変換して適用します
  • 未編集のデフォルト((0,0)-(1,1) の2点)は入力を完全にパススルーします
  • 読み取れない制御点データはノードエラーになり、元データを勝手に上書きしません。 Linear プリセットを選ぶと、有効な既定値へ明示的に置き換えられます。
  • Levels(レベル補正)が値域の切り詰め、Tone Curve は形の自由な階調カーブという住み分けです

使用例

  1. コントラスト強調: 暗部を下げ明部を上げるSカーブを作る(点を4つ置く)
  2. フェード調整: channel: Alpha にして、透明度の変化カーブを整える
  3. 色かぶり補正: channel: Red などチャンネル単位でカーブを調整する

関連ノード

  • levels — 値域の切り詰め(白点・黒点)だけならこちらが簡単
  • auto_levels — 自動でレンジを広げたい場合
  • brightness — 単純な明るさ・コントラストの上下
  • gradient_map — カーブで整えた明暗に色を割り当てる定番の次段
ノード一覧に戻る
トーンカーブ — PixPipeline ノード解説