
概要 📖 – 色空間を業界標準で変換
OpenColorIO TOPは、OpenColorIO の設定ファイルをもとに、入力テクスチャを色空間変換・ファイル変換・CDL カラコレ・ディスプレイ変換で業界標準の色管理に通す TOPです。Setup Page で読み込んだ設定ファイル (config) に定義された色空間・ビュー・ディスプレイを参照し、Color Space / File / CDL / Output の 4 種類の変換を任意に組み合わせて適用します。映像制作・VFX で標準化された OpenColorIO の色管理を TouchDesigner のリアルタイム環境にそのまま持ち込めます。
主な用途 🎯
- OpenColorIO の設定ファイル (config) を読み込み、業界標準の色管理パイプラインを TouchDesigner に取り込む
- 入力色空間から出力色空間への変換 (例: Linear sRGB → ACEScg) を 1 つの TOP で実行
- 外部の変換ファイル (.spi1d / .spi3d 等の LUT) を適用して既製のカラールックを再現
- CDL (Color Decision List) で Slope / Offset / Power / Saturation を調整しカラーグレーディング
- ディスプレイ変換でモニターや出力デバイスに合わせた最終的な見た目に色を整える
データフロー 🔄
入力: テクスチャ (色空間あり)
↓
Setup Page (設定ファイル読込)
↓
Color Space Transform Page (入力色空間 → 出力色空間)
↓
File Transform Page (LUT ファイル適用)
↓
CDL Transform Page (Slope / Offset / Power / Saturation)
↓
Output Page (ディスプレイ変換)
↓
出力: 色変換済テクスチャ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Setup Page 📁
設定ファイル .config 📄
変換情報をまとめた設定ファイルの指定:
- Configuration File:
Configuration File(設定ファイル) — 色空間・変換・ビュー・ディスプレイの定義をまとめた config ファイルのパス。これが OpenColorIO TOP の全変換の基点になる
設定再読込 .reloadconfig 🔁
設定ファイルの手動再読込:
- Reload Config:
Reload Config(設定の再読込) — 設定ファイルを手動で再読み込みするパルスボタン。config を外部で書き換えた際に使用
Color Space Transform Page 🎨
変換を使用 .usecolorspacetransform ✅
色空間変換のオン/オフ:
- Use Transform:
Use Transform(この変換を使用) — 色空間変換のオン/オフトグル。オフにすると下記の Input / Output 設定は無視される
入力色空間 .incolorspace ⬅️
入力画像の色空間:
- Input:
Input(入力色空間) — 入ってくる画像の色空間。設定ファイルに定義された色空間名から選ぶ
出力色空間 .outcolorspace ➡️
出力したい色空間:
- Output:
Output(出力色空間) — 変換後の色空間。入力色空間からこの色空間へ画像が変換される
File Transform Page 📂
変換を使用 .usefiletransform ✅
ファイル変換のオン/オフ:
- Use Transform:
Use Transform(この変換を使用) — ファイル変換 (LUT 適用) のオン/オフトグル
ファイル元 .filesource 📑
読み込む変換ファイルの指定:
- File Source:
File Source(変換ファイル元) — 適用する LUT ファイル (.spi1d / .spi3d 等) のパス。ファイルが期待する色空間に画像が揃っていないと正しく変換されない
補間方法 .interpolation 🎚️
Interpolation (補間方法) — ファイル (LUT) の値を補間する方法を選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest | .nearest |
最近傍補間。最も高速だが階調が粗くなりやすい |
| Linear | .linear |
線形補間。速度と品質のバランス型 |
| Tetrahedral | .tetrahedral |
四面体補間。3D LUT で色のにじみを抑える高品質補間 |
| Best | .best |
最良補間。最も高品質だが処理コストは高い |
変換方向 .filedirection 🔀
Direction (変換方向) — 変換の方向を指定します。変換を逆にしたい場合は Inverse を選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Forward | .forward |
順方向。ファイルに定義された通りに変換を適用 |
| Inverse | .inverse |
逆方向。変換を反転して元に戻す向きに適用 |
CDL Transform Page 🌈
CDL モード .cdlmode 🎛️
CDL Mode (CDL モード) — Color Decision List。画像へのこの変換の効果を、パラメータ値で手動指定するか、カラーコレクションファイル (.cc) を使うかを選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
CDL 変換を無効化 |
| Values | .values |
下記の Slope / Offset / Power / Saturation を手動値で指定 |
| Color Correction File | .ccfile |
カラーコレクションファイル (.cc) から補正情報を読み込む |
Slope .slope 📈
Slope (スロープ・ゲイン) — ゲイン (傾き) を調整します。X / Y / Z (RGB に対応) ごとに指定できます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .slopex |
X (赤チャンネル相当) のゲイン |
| Y | .slopey |
Y (緑チャンネル相当) のゲイン |
| Z | .slopez |
Z (青チャンネル相当) のゲイン |
Offset .offset ↔️
Offset (オフセット) — オフセット (加算量) を調整します。X / Y / Z (RGB に対応) ごとに指定できます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .offsetx |
X (赤チャンネル相当) のオフセット |
| Y | .offsety |
Y (緑チャンネル相当) のオフセット |
| Z | .offsetz |
Z (青チャンネル相当) のオフセット |
Power .power 📐
Power (パワー・ガンマ) — ガンマ (べき乗) を調整します。X / Y / Z (RGB に対応) ごとに指定できます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| X | .powerx |
X (赤チャンネル相当) のガンマ |
| Y | .powery |
Y (緑チャンネル相当) のガンマ |
| Z | .powerz |
Z (青チャンネル相当) のガンマ |
Saturation .saturation 🎨
彩度の調整:
- Saturation:
Saturation(彩度) — 画像全体の彩度を調整する単一値。1.0 で変化なし、0 で完全グレースケール
変換方向 .cdldirection 🔀
Direction (変換方向) — CDL 変換の方向を指定します。変換を逆にしたい場合は Inverse を選びます。
| 項目 | 内部名 | 説明 |
|---|---|---|
| Forward | .forward |
順方向。CDL 補正をそのまま適用 |
| Inverse | .inverse |
逆方向。CDL 補正を反転して適用 |
補正ファイル .ccfile 📄
カラーコレクションファイル (.cc) の指定:
- Color Correction File:
Color Correction File(カラーコレクションファイル) — .cc ファイルから Slope / Offset / Power / Saturation を一括読込。CDL Mode が Color Correction File の時に有効
Output Page 📤
出力を使用 .useoutput ✅
ディスプレイ変換のオン/オフ:
- Use Output:
Use Output(ディスプレイ変換を使用) — ディスプレイ変換のオン/オフトグル
Gain .gain 🔆
ディスプレイ変換前の露出調整:
- Gain:
Gain(ゲイン・露出) — ディスプレイ変換の前段で適用する露出量。明るさの前調整に使う
Display .display 🖥️
表示デバイスの色空間:
- Display:
Display(ディスプレイ) — 画像を表示するデバイスの色空間。設定ファイルに定義された display 名から選ぶ
View .view 👁️
適用するビュー変換:
- View:
View(ビュー) — 画像に適用するビュー (見え方) の変換。Display と組み合わせて最終的な見た目が決まる
入力色空間 .colorspace ⬅️
ディスプレイ変換の入力色空間:
- Input Color Space:
Input Color Space(入力色空間) — ディスプレイ変換に渡す画像の元の色空間
Gamma .gamma 📈
ディスプレイ変換後のガンマ補正:
- Gamma:
Gamma(ガンマ) — ディスプレイ変換の後段で適用するガンマ補正。最終的な中間トーンの明るさを微調整
Common Page 🔧
Output Resolution .outputresolution 🖼️
出力解像度の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の解像度をそのまま継承 |
| Eighth | .eighth |
入力解像度の 1/8 |
| Quarter | .quarter |
入力解像度の 1/4 |
| Half | .half |
入力解像度の 1/2 |
| 2X | .2x |
入力解像度の 2 倍 |
| 4X | .4x |
入力解像度の 4 倍 |
| 8X | .8x |
入力解像度の 8 倍 |
| Fit Resolution | .fit |
指定解像度に縦横比を保持して収める |
| Limit Resolution | .limit |
指定解像度を上限としてクランプ |
| Custom Resolution | .custom |
Resolution パラメータで任意指定 |
Resolution .resolution 📐
カスタム解像度の幅・高さ指定 (Output Resolution = Custom 等の時のみ有効):
- Resolution W: 出力幅 (ピクセル単位)。
Output ResolutionがCustom Resolution/Fit Resolution/Limit Resolutionの時に有効 - Resolution H: 出力高 (ピクセル単位)。同上
Resolution Menu .resmenu 📋
よく使う解像度プリセットのドロップダウン:
- Resolution Menu: NTSC / PAL / HDTV 720 / HDTV 1080 / 4K UHD 等のプリセットから選択すると
Resolution W/Resolution Hが自動セットされる
Use Global Res Multiplier .resmult 🔢
プロジェクト全体の解像度倍率の適用:
- Use Global Res Multiplier: Project Settings の Global Resolution Multiplier をこの TOP に適用するかどうか。プロトタイプを低解像度で動かしつつ最終出力で一括フル解像度化する運用に便利
Output Aspect .outputaspect 📏
出力アスペクト比の決定方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のアスペクトを継承 |
| Resolution | .resolution |
解像度から自動導出 (推奨デフォルト) |
| Custom Aspect | .custom |
Aspect1 / Aspect2 で手動指定 |
Aspect .aspect 📐
カスタムアスペクト比の指定 (Output Aspect = Custom Aspect の時のみ有効):
- Aspect1: 横方向アスペクト値 (
Output Aspect= Custom Aspect の時のみ有効) - Aspect2: 縦方向アスペクト値 (同上)
Input Smoothness .inputfiltertype 🎚️
入力テクスチャのサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセルアート向け、ジャギーが残る) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小時のモアレ抑制、わずかにコスト高) |
Fill Viewer .fillmode 🖥️
ビューア内でのテクスチャの収め方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP の Fill Viewer 設定を継承 |
| Fill | .fill |
ビューアいっぱいに引き伸ばす (アスペクト無視) |
| Fit Horizontal | .width |
横幅に合わせて収める (上下に余白) |
| Fit Vertical | .height |
縦幅に合わせて収める (左右に余白) |
| Fit Best | .best |
アスペクト保持で内側に収まる最大サイズ |
| Fit Outside | .outside |
アスペクト保持で外側まで覆う最小サイズ (はみ出しあり) |
| Native Resolution | .nativeres |
テクスチャのネイティブ解像度のまま等倍表示 |
Viewer Smoothness .filtertype 🎛️
ビューア表示時のサンプリング方式
| 項目 | 内部名 | 説明 |
|---|---|---|
| Nearest Pixel | .nearest |
最近傍ピクセルサンプリング (ピクセル単位での確認向け) |
| Interpolate Pixels | .linear |
バイリニア補間 (滑らか、デフォルト) |
| Mipmap Pixels | .mipmap |
ミップマップ補間 (縮小ビュー時のモアレ抑制) |
Passes .npasses 🔁
オペレータの反復実行回数:
- Passes: TOP の処理を何パス繰り返すかの整数値。前回パスの結果が次回パスの入力になる。基本は 1 のまま
Channel Mask .chanmask 🎨
処理対象のチャンネルマスク (R/G/B/A 個別トグル):
- Channel Mask:
R/G/B/A各チャンネルのオン/オフトグル。オフのチャンネルは TOP の処理を受けず入力値がそのまま通過
Pixel Format .format 🎨
出力テクスチャのピクセルフォーマット (ビット深度・チャンネル構成)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Input | .useinput |
入力 TOP のフォーマットを継承 |
| 8-bit fixed (RGBA) | .rgba8fixed |
標準 8 ビット固定小数 RGBA (デフォルト、軽量) |
| sRGB 8-bit fixed (RGBA) | .srgba8fixed |
sRGB ガンマ補正済 8 ビット RGBA |
| 16-bit float (RGBA) | .rgba16float |
16 ビット浮動小数 RGBA (HDR・中間処理向け) |
| 32-bit float (RGBA) | .rgba32float |
32 ビット浮動小数 RGBA (最高精度、メモリ大) |
| 10-bit RGB with 2-bit Alpha | .rgb10a2fixed |
10-10-10-2 ビット固定小数 (バンディング抑制) |
| 16-bit fixed (RGBA) | .rgba16fixed |
16 ビット固定小数 RGBA |
| 11-bit float (RGB) | .rgb11float |
11-11-10 ビット浮動小数 RGB (アルファなし、HDR 軽量) |
| 16-bit float (RGB) | .rgb16float |
16 ビット浮動小数 RGB (アルファなし) |
| 32-bit float (RGB) | .rgb32float |
32 ビット浮動小数 RGB (アルファなし) |
| 8-bit fixed (Mono) | .mono8fixed |
8 ビット固定小数モノクロ |
| 16-bit fixed (Mono) | .mono16fixed |
16 ビット固定小数モノクロ |
| 16-bit float (Mono) | .mono16float |
16 ビット浮動小数モノクロ |
| 32-bit float (Mono) | .mono32float |
32 ビット浮動小数モノクロ |
| 8-bit fixed (RG) | .rg8fixed |
8 ビット固定小数 R+G 2 チャンネル |
| 16-bit fixed (RG) | .rg16fixed |
16 ビット固定小数 R+G |
| 16-bit float (RG) | .rg16float |
16 ビット浮動小数 R+G |
| 32-bit float (RG) | .rg32float |
32 ビット浮動小数 R+G |
| 8-bit fixed (A) | .a8fixed |
8 ビット固定小数アルファ単体 |
| 16-bit fixed (A) | .a16fixed |
16 ビット固定小数アルファ単体 |
| 16-bit float (A) | .a16float |
16 ビット浮動小数アルファ単体 |
| 32-bit float (A) | .a32float |
32 ビット浮動小数アルファ単体 |
| 8-bit fixed (Mono+Alpha) | .monoalpha8fixed |
8 ビット固定小数モノクロ+アルファ |
| 16-bit fixed (Mono+Alpha) | .monoalpha16fixed |
16 ビット固定小数モノクロ+アルファ |
| 16-bit float (Mono+Alpha) | .monoalpha16float |
16 ビット浮動小数モノクロ+アルファ |
| 32-bit float (Mono+Alpha) | .monoalpha32float |
32 ビット浮動小数モノクロ+アルファ |
実践アイデア 💡
Example 1: ACES 色空間で変換 🎬
Movie File In TOP → OpenColorIO TOP (Color Space Transform) → Out TOP
撮影素材を ACES などの業界標準ワークフローに乗せたい時、OpenColorIO TOP の Color Space Transform Page で入力色空間と出力色空間を指定し、シーン参照リニアな作業空間へ統一する基本フロー。設定ファイルに定義された色空間名を選ぶだけで、VFX 現場と同じ色管理を TouchDesigner に持ち込める。
- Movie File In TOP で素材動画/画像を読み込む
- OpenColorIO TOP を後段に接続し、Setup Page の Configuration File で ACES などの config ファイルを指定
- Color Space Transform Page で Use Transform をオンにする
- Input に素材の色空間 (例:
Utility - sRGB - Texture)、Output に作業色空間 (例:ACEScg) を設定 - Out TOP で後段へ出力、もしくは合成チェーンに渡す
Example 2: LUT ファイルで色付け 🎨
Movie File In TOP → OpenColorIO TOP (File Transform) → Null TOP
既製のカラールック (.spi1d / .spi3d 等の LUT) を映像に適用したい時、File Transform Page で変換ファイルを読み込み、補間方法を選ぶだけで一貫したカラーグレードを再現できる。LUT は特定の色空間を前提とするため、適用前に入力画像が正しい色空間にあることが重要。
- Movie File In TOP で対象映像を読み込む
- OpenColorIO TOP の File Transform Page で Use Transform をオンにする
- File Source に LUT ファイル (.spi3d 等) のパスを指定
- Interpolation を
TetrahedralやBestにして 3D LUT のにじみを抑える - Null TOP を後段に置いて参照ポイントを固定し、下流のチェーンに渡す
Example 3: CDL でカラコレ 🌈
Movie File In TOP → OpenColorIO TOP (CDL Transform) → Composite TOP
ショットごとの色味を Slope / Offset / Power / Saturation で手早く整えたい時、CDL Transform Page を Values モードにして RGB ごとのゲイン・オフセット・ガンマと全体彩度を調整する。CDL は映像業界で標準化されたカラーコレクション記法なので、外部ツールと値を共有しやすいのも利点。
- Movie File In TOP で素材を読み込む
- OpenColorIO TOP の CDL Transform Page で CDL Mode を
Valuesに設定 - Slope (ゲイン) / Offset (オフセット) / Power (ガンマ) を X/Y/Z (RGB) ごとに調整
- Saturation で全体の彩度を整える
- Composite TOP で背景レイヤと合成して仕上げる
関連オペレータ 🔗
類似機能OP 🔍
- Level TOP — RGB ごとの明度・コントラスト・ガンマを直接補正する汎用レベル補正 TOP (色管理基盤は不要な時)
- Lookup TOP — 任意のルックアップテクスチャで階調変換 (LUT を自前のグラデーションで作りたい時)
- HSV Adjust TOP — HSV 色空間で色相・彩度・明度を編集 (色空間管理ではなく直感的な色調整が目的の時)
- Math TOP — ピクセル値に算術演算を適用 (より低レベルな数値変換)
組み合わせ推奨OP 🔄
- Movie File In TOP — 撮影素材や動画の読み込み元として上流に配置
- Composite TOP — 色変換済の素材を背景や他レイヤと合成
- Channel Mix TOP — 色変換後に RGB チャンネル間の重み付けを再配分
- Null TOP — 色管理チェーンの出力に置いて参照ポイントを固定
- Out TOP — 色変換結果を最終出力として書き出し
前処理・後処理TOP 🎯
Info CHOP情報 📊
OpenColorIO TOPは Info CHOP による詳細情報取得に対応しています。出力テクスチャの resolution_w / resolution_h / aspectx / aspecty / depth / num_components / gpu_mem_used 等の標準 TOP メタチャンネルを取得します。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 色変換しても見た目が変わらない
✅ Solution:
- 各ページの
Use Transform/Use Outputがオンになっているか確認 (オフだとそのページの設定は無視される) - Setup Page の
Configuration Fileが正しく読み込めているか確認。読込後に config を編集した場合はReload Configを押す - Color Space Transform Page の
InputとOutputが同じ色空間になっていないか確認 (同一だと変換が発生しない)
❌ Problem: LUT 適用後の色がおかしくなる
✅ Solution:
- File Transform は色空間を内部で扱わないため、適用前に画像が LUT の期待する色空間に揃っているか確認。前段に Color Space Transform を入れて色空間を合わせる
DirectionがInverseになっていないか確認 (意図せず逆変換していると色が崩れる)InterpolationをTetrahedralやBestに上げて 3D LUT のにじみ・バンディングを抑える
❌ Problem: 設定ファイルや色空間名が見つからない
✅ Solution:
Configuration Fileのパスが正しいか確認。アプリのインストールフォルダ/Samples/OpenColorIOにサンプル config が同梱されている- Input / Output / Display / View に指定する名前は config に定義された色空間名と一致する必要がある。スペルや大文字小文字を確認
- config を更新したら
Reload Configを押して選択肢を再読み込みする
❌ Problem: バンディングや量子化ノイズが目立つ
✅ Solution:
- Common Page の
Pixel Formatを 16-bit float 以上に上げて階調の量子化を抑える - CDL の Power (ガンマ) を強くかけすぎると暗部の段差が出やすい。1 段ずつ確認しながら調整
- 前段で色空間をリニアな作業空間に統一してから変換すると、暗部の精度を保ちやすい
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

