
概要 📖 – CHOPを表として属性に転写
Lookup Channel POPは、ジオメトリ要素ごとに属性値をインデックスとしてCHOPサンプルを引き当て、その結果を新しい属性として書き戻すPOPです。インデックスは正規化 (0–1) かサンプル番号で指定でき、補間・サイクル・範囲外処理も細かく制御できます。
主な用途 🎯
- CHOPチャンネルを参照テーブルとして属性に焼き込む
- ポイント番号・UV・カラー等の属性を入力としたCHOP値の引き当て
- 正規化インデックス (0–1) を使った滑らかなグラデーション色付け
- 下流レンダリング前に属性アニメーションを事前計算しキャッシュ
- CHOPの波形・LFO・解析結果をジオメトリ要素ごとの属性に反映
データフロー 🔄
入力: ジオメトリ (インデックス用属性付き) + CHOP (参照テーブル)
↓
属性値をインデックスとしてCHOPサンプルを引き当て
↓
出力: 引き当て結果を新しい属性として持つジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Lookup Page 📋
Attribute Class .attrclass 🎛️
解析対象とする属性クラスを選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Point | .point |
ポイント属性 (P / N / Cd 等) を対象に動作 |
| Vertex | .vertex |
頂点属性 (UV / 頂点ノーマル 等) を対象に動作 |
| Primitive | .primitive |
プリミティブ属性 (面ごとの属性) を対象に動作 |
対象範囲設定 🎯
Group .group 🎯
– Group (グループ) — 入力にグループが存在する場合、指定したグループ名に属する要素のみを対象に絞り込みます
– 空欄なら全要素が対象になります
参照CHOP指定 📡
CHOP .chop 📡
– CHOP (参照CHOP) — 引き当てに使うCHOPのOPパスを指定します
– このCHOPのサンプル値が引き当て結果として属性に書き込まれます
インデックス属性 🔤
Lookup Index Attribute(s) .lookupindexattr 🔢
– Lookup Index Attribute(s) (インデックス属性) — CHOPサンプルを引き当てる際にインデックスとして使う属性名 (複数指定可)
– 例: P を指定するとP属性の値をインデックスとして使用
Lookup Index Units .indexunit 📐
インデックス値の単位 (正規化値かサンプル番号か) を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Normalized (0-1) | .normalized |
0–1 の正規化値として解釈 (0=最初のサンプル、1=最後のサンプル) |
| Sample Index | .sampleindex |
サンプル番号 (整数) として解釈 |
範囲外と補間 🔁
Cyclic Index .cyclic 🔄
– Cyclic Index (循環インデックス) — オンにするとインデックスが末尾から先頭に巻き戻り、CHOP全体を周期的にマッピングします
– アニメーションや周期的グラデーションに使用
Interpolate .interpolate 🌊
– Interpolate (補間) — オンの場合、サンプル間を線形補間して滑らかに引き当て
– オフの場合は最も近いサンプル値をそのまま使用 (階段状)
Extend Left and Right .extendleft ↔️
インデックスがCHOPの範囲外を指したときの振る舞いを選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
端のサンプル値を保持して返す |
| Slope | .slope |
端の傾きで外挿 |
| Cycle | .cycle |
範囲外でCHOP全体を繰り返し循環 |
| Mirror | .mirror |
範囲外でCHOPを折り返し反転 |
| Extend Left and Right | .extendleft |
左端・右端を別々の方式で延長 (両側設定用) |
| Extend Right | .extendright |
右端 (最大サンプル方向) の延長方式を個別指定 |
Lookup 設定ブロック .lookup 📦
Lookupブロックの開始 (1つ以上の引き当て設定をシーケンシャルに追加可能)
Lookup .lookup 📦
– Lookup (引き当て設定) — 複数の引き当てをシーケンシャルブロックとして追加できるパラメータ群の起点
– 1つの POP で複数チャンネルから複数属性への引き当てを同時に処理可能
引き当て元と範囲 🔧
Channel Scope .lookup0chanscope 🎯
– Channel Scope (チャンネル範囲) — 引き当てに使うCHOPチャンネル名のパターン (例: r g b)
– パターンに合致したチャンネルの値が出力属性に書き込まれます
From Low .lookup0fromlow ⬇️
– From Low (入力低位) — 引き当て結果のリレンジ前の最小値
From High .lookup0fromhigh ⬆️
– From High (入力高位) — 引き当て結果のリレンジ前の最大値
To Low .lookup0tolow 🔽
– To Low (出力低位) — 出力範囲の最小値
To High .lookup0tohigh 🔼
– To High (出力高位) — 出力範囲の最大値
– From Low/High と To Low/High で線形リマップが行われます
Output Attribute Scope .lookup0outputattrscope 🎨
出力属性の名前を選択 (代表的な組み込み属性から選択可)
| 項目 | 内部名 | 説明 |
|---|---|---|
| P | .P |
ポイント位置属性 P (3成分) |
| N | .N |
ノーマル属性 N (3成分) |
| Color | .Color |
カラー属性 Color (4成分 RGBA) |
| Color.rgb | .Color.rgb |
カラー属性のRGB部分のみ (3成分) |
| Tex | .Tex |
テクスチャ座標属性 Tex |
| PointScale | .PointScale |
ポイントスケール属性 (ポイントサイズ制御) |
| LineWidth | .LineWidth |
ライン幅属性 |
属性型の手動上書き 🛠️
Override Automatic Attribute .lookup0overrideautoattr 🔧
– Override Automatic Attribute (自動属性の上書き) — 入力とパラメータから自動推定される出力属性のデータ型・成分数を手動指定するスイッチ
– オンにすると下記の Attribute Type / Components / Default Value が有効になります
Attribute Type .lookup0attrtype 📐
出力属性のデータ型を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
単精度浮動小数点 (一般用途のデフォルト) |
| double | .double |
倍精度浮動小数点 (高精度が必要なとき) |
| int | .int |
符号付き整数 |
| uint | .uint |
符号なし整数 |
| dir | .dir |
方向ベクトル (単精度3成分) |
| dbl dir | .ddir |
方向ベクトル (倍精度3成分) |
Components .lookup0attrnumcomps 🔢
出力属性の成分数を選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラ (1成分) |
| 2 | .2 |
2成分ベクトル |
| 3 | .3 |
3成分ベクトル (位置・カラーRGB等) |
| 4 | .4 |
4成分ベクトル (カラーRGBA等) |
既定値 💡
Default Value .lookup0attrdefaultval 💡
– Default Value (既定値) — 引き当てが計算できなかった場合に出力属性の各成分に書き込む既定値
– 成分数に応じて最大4つまで個別指定可能
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: UVでCHOPグラデを焼く 🎨
入力 POP → Lookup Channel POP (CHOP=Gradient CHOP, lookupindexattr=Tex, indexunit=normalized, outputattr=Color) → Render TOP
ジオメトリのUV属性 (Tex) を 0–1 正規化インデックスとしてグラデーションCHOPに引き当て、各ポイント位置に対応したカラーを Color 属性として焼き付ける基本フロー。Render TOP へ流せばテクスチャ不要のグラデーションカラーリングが実現します。
- 入力 POP (例: Grid POP) でジオメトリを生成しUV属性 Tex を持たせる
- Constant CHOP / Noise CHOP 等でRGB 3チャンネルのグラデーションCHOPを用意
- Lookup Channel POP の
CHOPに上記グラデーションCHOPのパスを指定 Lookup Index Attribute(s)をTex、Lookup Index Unitsをnormalizedに設定Output Attribute ScopeをColorに指定、Channel Scopeをr g bに- 下流 Render TOP に渡せばポイントごとにグラデーションカラーが反映
Example 2: ポイント番号でアニメ駆動 ⏱️
入力 POP → Lookup Channel POP (lookupindexattr=ptnum, indexunit=sampleindex, cyclic=on, interpolate=on, outputattr=P) → Render
ポイント番号 (ptnum) をサンプル番号インデックスとして時系列CHOPに引き当て、ポイントごとに異なるタイミングで位置を動かす波打ちアニメーションの作例。Cyclic Index と Interpolate をオンにすると滑らかにループする動きが得られます。
- Grid POP / Line POP 等でジオメトリを生成
- LFO CHOP / Wave CHOP で時間軸の波形CHOP (3チャンネル: tx ty tz) を作成
- Lookup Channel POP に接続、
Lookup Index Attribute(s)をptnumに Lookup Index Unitsをsampleindex、Cyclic IndexとInterpolateをオンChannel Scopeをtx ty tz、Output Attribute ScopeをP- ポイントごとにずれたタイミングで位置が変化する波打ちアニメーションが完成
Example 3: FFTを属性スケールに反映 🔊
Audio Device In CHOP → Audio Spectrum CHOP → Lookup Channel POP (lookupindexattr=ptnum, outputattr=PointScale) → Render
オーディオスペクトラム解析の周波数ビン列をCHOPとして用意し、ポイント番号をインデックスとして引き当てて PointScale 属性に書き込む音響ビジュアル例。各ポイントが対応周波数の振幅に応じたサイズで描画されます。
- Audio Device In CHOP でリアルタイム音声を取得
- Audio Spectrum CHOP でFFT解析し周波数ビンチャンネルに変換
- ポイント数と同じビン数になるよう Resample CHOP でサンプル数を調整
- Lookup Channel POP の
CHOPに上記スペクトラムを指定 lookupindexattrをptnum、indexunitをsampleindex、Output Attribute ScopeをPointScale- Render TOP でポイントを描画、周波数振幅に応じたサイズの可視化が完成
関連オペレータ 🔗
類似機能OP 🔍
- Lookup Attribute POP — 属性同士の引き当て (CHOPではなく属性を参照テーブルとして使用)
- Lookup Texture POP — TOP (テクスチャ) を参照テーブルとして属性に引き当て
- Lookup CHOP — CHOP family の同名引き当てオペレータ (チャンネル to チャンネル)
組み合わせ推奨OP 🔄
- Math POP — 引き当て前後の属性を正規化・スケーリングして 0–1 範囲に整える
- Attribute POP — 引き当て用のインデックス属性を事前に作成・整備
- Analyze POP — 引き当て元属性の最大・最小を取得して From Low/High に流す
- Transform POP — 引き当てで書き込んだ P 属性を下流で位置調整
前処理・後処理POP 🎯
- 前処理: Attribute POP、Math POP、Group POP、Analyze POP
- 後処理: Math POP、Transform POP、Lookup Attribute POP、Limit POP
Info POP情報 📊
Lookup Channel POP は Info CHOP 経由でジオメトリの統計情報を取得できます。
POP固有情報 ✨
num_verts: POP に含まれる頂点 (vertex) 数num_points: POP に含まれるポイント数num_prims: POP に含まれるプリミティブ数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)cook_start_time: 最後のクック開始時刻 (ミリ秒)cook_end_time: 最後のクック終了時刻 (ミリ秒)cooked_this_frame: 現フレームでクックされたか (0 / 1)warnings: 警告数errors: エラー数
POP 汎用情報 📊
num_points: 出力ジオメトリのポイント数num_point_attribs: 出力ジオメトリのポイント属性数 (引き当てで追加された属性も含む)num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 引き当て結果が真っ黒・空になる
✅ Solution:
CHOPパラメータに指定したCHOPのOPパスが正しいか確認 (相対パスのスコープに注意)Channel Scopeパターンが参照CHOPのチャンネル名にマッチしているか確認Output Attribute Scopeが空欄になっていないか、属性名が下流で参照されているか確認
❌ Problem: インデックスが範囲外になり期待値が出ない
✅ Solution:
Lookup Index Unitsがnormalizedとsampleindexのどちらに合うか、インデックス属性の値域に応じて再選択Extend Left and RightをHold/Cycle/Mirrorから状況に合わせ選択- 前段の Analyze POP でインデックス属性の最大値を取得し範囲を確認
❌ Problem: 値がカクカク・階段状になる
✅ Solution:
Interpolateをオンにしてサンプル間を線形補間- 参照CHOPのサンプル数が少なすぎないか確認、必要なら上流で Resample CHOP で密度を上げる
Lookup Index Unitsをnormalizedにしてジオメトリ密度とCHOPサンプル数の不一致を解消
❌ Problem: 出力属性の成分数や型が想定と違う
✅ Solution:
Override Automatic AttributeをオンにしてAttribute TypeとComponentsを明示指定Channel Scopeで指定したチャンネル数とComponents設定が一致しているか確認Default Valueを設定して引き当て不能時の値を制御
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Lookup Channel POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- TouchDesigner公式ドキュメント – Lookup Attribute POP

