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

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

Lookup Attribute POP の属性引き当て機能を示す図

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

概要 📖 – 属性カーブで値引き当て

Lookup Attribute POPは、第1入力ジオメトリの属性値をインデックスとし、第2入力カーブの属性値を引き当てて新しい属性として書き戻すPOPです。インデックスは正規化 (0–1) かポイント番号で指定でき、補間・サイクル・範囲外処理も細かく制御できます。

主な用途 🎯

  • 第2入力カーブの属性値を任意属性で引き当てて新属性に書き戻し
  • UV・ポイント番号・スカラ属性をインデックスに変換したグラデーション色付け
  • Curve POPで作った色・形のテーブルをジオメトリ属性へ転写
  • 正規化インデックス (0–1) と Point Index を使い分けた精密マッピング
  • シーケンシャルブロックで複数属性を同時に引き当てて一括書き込み

データフロー 🔄

入力1: ジオメトリ (インデックス属性付き) + 入力2: ルックアップカーブ (属性付き)

入力1の属性値をインデックスとして入力2の属性をサンプリング

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

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Lookup Attribute Page 📋

Attribute Class .attrclass 🎛️

解析対象とする属性クラスを選択するメニューパラメータ

項目 内部名 説明
Point .point ポイント属性 (P / N / Cd 等) を対象に動作
Vertex .vertex 頂点属性 (UV / 頂点ノーマル 等) を対象に動作
Primitive .primitive プリミティブ属性 (面ごとの属性) を対象に動作

対象範囲設定 🎯

Group .group 🎯
Group (グループ) — 入力にグループが存在する場合、指定したグループ名に属する要素のみを対象に絞り込みます
– 空欄なら全要素が対象になります

インデックス属性 🔢

Lookup Index Attribute(s) .lookupindexattr 🔢
Lookup Index Attribute(s) (インデックス属性) — 第2入力カーブのサンプルを引き当てる際にインデックスとして使う属性名 (複数指定可)
– 例: Tex を指定するとUV属性の値をインデックスとして使用、P を指定すれば位置属性をそのままインデックスに転用

Lookup Index Units .indexunit 📐

インデックス値の単位 (正規化値かポイント番号か) を選択

項目 内部名 説明
Normalized (0-1) .normalized 0–1 の正規化値として解釈 (0=カーブの最初のポイント、1=最後のポイント)
Point Index .pointindex ポイント番号 (0 〜 ポイント数-1 の整数) として解釈

範囲外と補間 🔁

Cyclic Index .cyclic 🔄
Cyclic Index (循環インデックス) — オンにするとインデックスが末尾から先頭に巻き戻り、カーブ全域を周期的にマッピングします
– 周期的グラデーションやループアニメに使用

Interpolate .interpolate 🌊
Interpolate (補間) — オンの場合、カーブのサンプル間を線形補間して滑らかに引き当て
– オフの場合は最も近いサンプル値をそのまま使用 (階段状)

インデックスのリレンジ 📏

From Low .indexfromlow ⬇️
From Low (入力低位) — インデックス属性値のリレンジ前の最小値

From High .indexfromhigh ⬆️
From High (入力高位) — インデックス属性値のリレンジ前の最大値

To Low .indextolow 🔽
To Low (出力低位) — リレンジ後インデックスの最小値

To High .indextohigh 🔼
To High (出力高位) — リレンジ後インデックスの最大値
– 4つの値で属性値をカーブ上の任意区間にマッピング可能

Extend Left and Right .extendleft ↔️

インデックスがカーブの範囲外を指したときの振る舞いを選択

項目 内部名 説明
Hold .hold 端のサンプル値を保持して返す
Slope .slope 端の傾きで外挿
Cycle .cycle 範囲外でカーブ全体を繰り返し循環
Mirror .mirror 範囲外でカーブを折り返し反転
Extend Left and Right .extendleft 左端・右端を別々の方式で延長 (両側設定用)
Extend Right .extendright 右端 (最大サンプル方向) の延長方式を個別指定

Lookup 設定ブロック .lookup 📦

Lookupブロックの開始 (1つ以上の引き当て設定をシーケンシャルに追加可能)

Lookup .lookup 📦
Lookup (引き当て設定) — 複数の引き当てをシーケンシャルブロックとして追加できるパラメータ群の起点
– 1つの POP で複数の属性を同時に引き当てて別々の出力属性に書き分け可能

Value Attributes 🎯

Value Attributes .lookup0valueattr 🎯
Value Attributes (値属性) — 第2入力カーブから引き当てる属性の名前を指定 (例: Cd でカラー属性を引き当て)
– ここで指定した属性のサンプル値が出力属性に書き込まれます

値のリレンジ 🔧

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.i012 .Color.i012 カラー属性の特定成分インデックス指定 (0/1/2 = R/G/B)
Tex .Tex テクスチャ座標属性 Tex
PointScale .PointScale ポイントスケール属性 (ポイントサイズ制御)
LineWidth .LineWidth ライン幅属性
Color.rgb .Color.rgb カラー属性のRGB部分のみ (3成分)

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でカーブ色を焼く 🎨

入力 POP (UV付き) + Curve POP (色付き) → Lookup Attribute POP (lookupindexattr=Tex, indexunit=normalized, valueattr=Cd, outputattr=Color) → Render TOP

ジオメトリのUV属性 (Tex) を 0–1 正規化インデックスとしてカラフルな Curve POP に引き当て、各ポイント位置に対応したカラーを Color 属性として焼き付ける基本フロー。テクスチャを使わずにグラデーション色付けを実現します。

  1. 入力 POP (例: Grid POP) でジオメトリを生成しUV属性 Tex を持たせる
  2. Curve POP でカラー属性 (Cd) をグラデーション状に設定したルックアップカーブを用意
  3. Lookup Attribute POP の第1入力にジオメトリ、第2入力にカーブを接続
  4. Lookup Index Attribute(s)TexLookup Index UnitsNormalized (0-1) に設定
  5. Value AttributesCdOutput Attribute ScopeColor に指定
  6. 下流 Render TOP に渡せばポイントごとにカーブのグラデーションカラーが反映

Example 2: 高さで属性マッピング 🏔️

入力 POP (地形ジオメトリ) + Curve POP (高度カラーランプ) → Lookup Attribute POP (lookupindexattr=P, indexfromlow/high=地形範囲, valueattr=Cd, outputattr=Color) → Render

地形ジオメトリの位置属性 P の Y 成分 (高さ) を入力範囲リレンジでインデックス化し、Curve POP に作った高度カラーランプ (海=青→山=白) を引き当てて地形に色付けする実用例。等高線図のような地形可視化が属性レベルで作れます。

  1. Grid POP / Noise POP で起伏のある地形ジオメトリを生成
  2. Curve POP で高度カラーランプ (青→緑→茶→白) を作成
  3. Lookup Attribute POP の第1入力に地形、第2入力にカーブを接続
  4. Lookup Index Attribute(s)P に、From Low / From High を地形の Y 範囲に合わせて設定
  5. Value AttributesCdOutput Attribute ScopeColor に指定
  6. Render TOP でジオメトリを描画、高度ごとに色分けされた地形が完成

Example 3: ポイント番号で形状制御 📐

入力 POP + Curve POP (PointScale 属性付き) → Lookup Attribute POP (lookupindexattr=ptnum, indexunit=pointindex, valueattr=PointScale, outputattr=PointScale) → Render

ポイント番号 (ptnum) を Point Index インデックスとして Curve POP に引き当て、ポイントごとに異なるサイズスケールを PointScale 属性に書き込む形状制御の作例。Curve POP の形状をそのまま全ジオメトリのサイズ分布として転写できます。

  1. Grid POP / Line POP 等でジオメトリを生成
  2. Curve POP で PointScale 属性を波打たせたカーブを作成
  3. Lookup Attribute POP の第1入力にジオメトリ、第2入力にカーブを接続
  4. Lookup Index Attribute(s)ptnumLookup Index UnitsPoint Index
  5. Cyclic Index をオンにしてポイント数がカーブサンプル数を超えても循環マッピング
  6. Value AttributesOutput Attribute Scope を共に PointScale に設定し描画

関連オペレータ 🔗

類似機能OP 🔍

  • Lookup Channel POP — 第2入力がCHOPの引き当て (チャンネルをテーブルとして属性に転写)
  • Lookup Texture POP — 第2入力がTOP (テクスチャ) の引き当て
  • Lookup CHOP — CHOP family の同名引き当てオペレータ (チャンネル to チャンネル)

組み合わせ推奨OP 🔄

  • Curve POP — 第2入力としてルックアップカーブそのものを供給
  • Math POP — 引き当て前後の属性を正規化・スケーリングして 0–1 範囲に整える
  • Attribute POP — 引き当て用のインデックス属性を事前に作成・整備
  • Analyze POP — 引き当て元属性の最大・最小を取得して From Low/High に流す
  • Transform POP — 引き当てで書き込んだ P 属性を下流で位置調整

前処理・後処理POP 🎯


Info POP情報 📊

Lookup Attribute 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:

  • Value Attributes に指定した属性名が第2入力カーブに実在するか確認 (大文字小文字を含めて完全一致)
  • Lookup Index Attribute(s) が第1入力ジオメトリに存在する属性名か確認
  • Output Attribute Scope が空欄になっていないか、属性名が下流で参照されているか確認

❌ Problem: インデックスが範囲外になり値がおかしい
✅ Solution:

  • Lookup Index UnitsNormalized (0-1)Point Index のどちらに合うか、インデックス属性の値域に応じて再選択
  • From Low / From High でインデックス属性の実際の値域を入力レンジに設定し直す
  • Extend Left and RightHold / Cycle / Mirror から状況に合わせ選択
  • 前段の Analyze POP でインデックス属性の最大・最小を取得し範囲を確認

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

  • Interpolate をオンにしてカーブのサンプル間を線形補間
  • 第2入力 Curve POP のポイント数が少なすぎないか確認、必要なら Curve POP 側で密度を上げる
  • Lookup Index UnitsNormalized (0-1) にしてジオメトリ密度とカーブポイント数の不一致を解消

❌ Problem: 属性クラスが噛み合わずエラーになる
✅ Solution:

  • Attribute Class をインデックス属性が定義されているクラス (Point / Vertex / Primitive) に合わせて再選択
  • 第2入力カーブの値属性も対応するクラスに存在するか確認 (Point 属性同士で揃えるのが基本)
  • 前段の Attribute POP でクラス間の属性コピーを行ってから接続

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました