Lookup Channel POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Lookup Channel POP の CHOP 参照機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – CHOPを表として属性に転写

Lookup Channel POPは、ジオメトリ要素ごとに属性値をインデックスとしてCHOPサンプルを引き当て、その結果を新しい属性として書き戻すPOPです。インデックスは正規化 (0–1) かサンプル番号で指定でき、補間・サイクル・範囲外処理も細かく制御できます。

主な用途 🎯

  • CHOPチャンネルを参照テーブルとして属性に焼き込む
  • ポイント番号・UV・カラー等の属性を入力としたCHOP値の引き当て
  • 正規化インデックス (0–1) を使った滑らかなグラデーション色付け
  • 下流レンダリング前に属性アニメーションを事前計算しキャッシュ
  • CHOPの波形・LFO・解析結果をジオメトリ要素ごとの属性に反映

データフロー 🔄

入力: ジオメトリ (インデックス用属性付き) + CHOP (参照テーブル)

属性値をインデックスとしてCHOPサンプルを引き当て

出力: 引き当て結果を新しい属性として持つジオメトリ

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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 へ流せばテクスチャ不要のグラデーションカラーリングが実現します。

  1. 入力 POP (例: Grid POP) でジオメトリを生成しUV属性 Tex を持たせる
  2. Constant CHOP / Noise CHOP 等でRGB 3チャンネルのグラデーションCHOPを用意
  3. Lookup Channel POP の CHOP に上記グラデーションCHOPのパスを指定
  4. Lookup Index Attribute(s)TexLookup Index Unitsnormalized に設定
  5. Output Attribute ScopeColor に指定、Channel Scoper g b
  6. 下流 Render TOP に渡せばポイントごとにグラデーションカラーが反映

Example 2: ポイント番号でアニメ駆動 ⏱️

入力 POP → Lookup Channel POP (lookupindexattr=ptnum, indexunit=sampleindex, cyclic=on, interpolate=on, outputattr=P) → Render

ポイント番号 (ptnum) をサンプル番号インデックスとして時系列CHOPに引き当て、ポイントごとに異なるタイミングで位置を動かす波打ちアニメーションの作例。Cyclic Index と Interpolate をオンにすると滑らかにループする動きが得られます。

  1. Grid POP / Line POP 等でジオメトリを生成
  2. LFO CHOP / Wave CHOP で時間軸の波形CHOP (3チャンネル: tx ty tz) を作成
  3. Lookup Channel POP に接続、Lookup Index Attribute(s)ptnum
  4. Lookup Index UnitssampleindexCyclic IndexInterpolate をオン
  5. Channel Scopetx ty tzOutput Attribute ScopeP
  6. ポイントごとにずれたタイミングで位置が変化する波打ちアニメーションが完成

Example 3: FFTを属性スケールに反映 🔊

Audio Device In CHOP → Audio Spectrum CHOP → Lookup Channel POP (lookupindexattr=ptnum, outputattr=PointScale) → Render

オーディオスペクトラム解析の周波数ビン列をCHOPとして用意し、ポイント番号をインデックスとして引き当てて PointScale 属性に書き込む音響ビジュアル例。各ポイントが対応周波数の振幅に応じたサイズで描画されます。

  1. Audio Device In CHOP でリアルタイム音声を取得
  2. Audio Spectrum CHOP でFFT解析し周波数ビンチャンネルに変換
  3. ポイント数と同じビン数になるよう Resample CHOP でサンプル数を調整
  4. Lookup Channel POP の CHOP に上記スペクトラムを指定
  5. lookupindexattrptnumindexunitsampleindexOutput Attribute ScopePointScale
  6. 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 🎯


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 Unitsnormalizedsampleindex のどちらに合うか、インデックス属性の値域に応じて再選択
  • Extend Left and RightHold / Cycle / Mirror から状況に合わせ選択
  • 前段の Analyze POP でインデックス属性の最大値を取得し範囲を確認

❌ Problem: 値がカクカク・階段状になる
✅ Solution:

  • Interpolate をオンにしてサンプル間を線形補間
  • 参照CHOPのサンプル数が少なすぎないか確認、必要なら上流で Resample CHOP で密度を上げる
  • Lookup Index Unitsnormalized にしてジオメトリ密度とCHOPサンプル数の不一致を解消

❌ Problem: 出力属性の成分数や型が想定と違う
✅ Solution:

  • Override Automatic Attribute をオンにして Attribute TypeComponents を明示指定
  • Channel Scope で指定したチャンネル数と Components 設定が一致しているか確認
  • Default Value を設定して引き当て不能時の値を制御

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました