
概要 📖 – POPの属性を取り込む
Select POPは、ネットワーク内の別の POP を名前で参照し、その点・プリミティブ・頂点の属性を取り込んで出力する POPです。POP パラメータで参照先のオペレータを指定し、Point / Primitive / Vertex の各 Attribute Scope で取り込みたい属性をパターン指定します。接続線を引かずに離れたブランチの属性データを引き込めるため、分岐したネットワークを再合流させる場面で役立ちます。
主な用途 🎯
- 別ブランチで計算した点属性 (P / N / Cd 等) を現在のジオメトリに取り込んで再合流
- ポイント・プリミティブ・頂点の各レベルで取り込む属性をパターン指定して選別
- GLSL POP / Math POP で生成した色や法線データを下流ネットワークへ受け渡し
- 接続線を引かずにネットワーク内の任意 POP を名前参照して属性を引き込む
- 処理を分岐させた複数ブランチの属性を 1 つのジオメトリにまとめて統合
データフロー 🔄
入力: 属性を受け取るジオメトリ (input1)
↓
Select POP (参照先 POP を指定 + 取り込む属性スコープを設定)
↓
出力: 参照先の属性が取り込まれたジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Select Page 📋
参照先 POP 🔗
POP .pop 🔗
– POP (参照先オペレータ) — 属性を取り込む元となる POP へのパス参照
– 同一ネットワーク内の任意の POP を名前で指定でき、接続線を引かずにその属性を引き込める
– 分岐させた別ブランチの計算結果を現在のジオメトリへ再合流させる用途に有効
属性スコープ指定 🎯
Point Attribute Scope .pointattrscope 🔵
– Point Attribute Scope (点属性スコープ) — 参照先 POP から取り込む点属性をパターンで指定
– * ですべての点属性を対象とし、P N Cd のように空白区切りで特定の属性名だけを選別できる
– 位置 (P)・法線 (N)・色 (Cd) など、点ごとに持つデータを取り込み対象とする
Primitive Attribute Scope .primattrscope 🔺
– Primitive Attribute Scope (プリミティブ属性スコープ) — 取り込むプリミティブ属性をパターンで指定
– * ですべて、特定名の空白区切りで選別。三角形・面など面プリミティブ単位で持つデータが対象
Vertex Attribute Scope .vertattrscope 🔻
– Vertex Attribute Scope (頂点属性スコープ) — 取り込む頂点属性をパターンで指定
– * ですべて、特定名の空白区切りで選別。UV など頂点単位で持つデータが対象
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: 別ブランチの色データを再合流 🎨
Grid POP (input1) → Select POP (POP 参照 = noise_branch / Point Attribute Scope = Cd) → Render TOP
Grid POP のジオメトリを基準ブランチとし、別ブランチで GLSL POP や Math POP を使って計算した色属性 (Cd) を Select POP で取り込む。Point Attribute Scope を Cd に絞ることで、参照先の色データだけを現在のジオメトリへ再合流させ、位置や法線は元のまま保てる。分岐させた計算結果を 1 つのジオメトリにまとめたい場面で有効。
- Grid POP を配置し、これを Select POP の input1 に接続 (属性を受け取る側のジオメトリ)
- 別ブランチで色を計算する POP (GLSL POP / Math POP 等) を用意し名前を付ける
- Select POP の
POPパラメータに、その色計算ブランチのパスを指定 Point Attribute ScopeをCdに設定し、色属性だけを取り込む- Render TOP に流し、元のジオメトリに色が再合流していることを確認
Example 2: 線を引かず属性を取込 🔗
Sphere POP (input1) → Select POP (POP 参照 = 離れた POP / Attribute Scope = *) → Convert POP
ネットワーク上で離れた位置にある POP を、接続線を引かずに Select POP の名前参照で引き込む。Point / Primitive / Vertex の各 Attribute Scope を * に設定すると参照先のすべての属性を取り込めるため、複雑に分岐したネットワークを線で繋がずに整理したい場合に役立つ。配線が混み合うのを避けつつデータを共有できる。
- 属性を受け取る側のジオメトリ (Sphere POP 等) を Select POP の input1 に接続
- ネットワーク内の離れた場所にある参照したい POP の名前を確認
- Select POP の
POPパラメータにその名前を指定 (接続線は不要) Point Attribute Scope/Primitive Attribute Scope/Vertex Attribute Scopeをいずれも*に設定し全属性を取り込む- 後段の Convert POP / Info DAT で取り込んだ属性が反映されているか確認
Example 3: 特定の属性だけ選んで統合 🎯
Box POP (input1) → Select POP (POP 参照 = normal_branch / Point Attribute Scope = N) → GLSL POP
Box POP のジオメトリに対し、別ブランチで再計算した法線 (N) だけを Select POP で取り込む。Point Attribute Scope を N に絞ることで、色や位置はそのまま維持しながら法線データだけを差し替えられる。空白区切りで複数属性 (N Cd 等) を同時指定すれば、必要な属性だけを選んで統合できる。
- Box POP を Select POP の input1 に接続
- 別ブランチで法線を再計算する POP を用意し名前を付ける
- Select POP の
POPパラメータにその法線ブランチを指定 Point Attribute ScopeをNに設定 (複数欲しい場合はN Cdのように空白区切り)- 後段の GLSL POP / Render TOP で、取り込んだ法線が陰影に反映されているか確認
関連オペレータ 🔗
類似機能OP 🔍
- Cache Select POP — Cache POP に蓄積された時系列スナップショットから単一フレームを取り出す参照系 POP (Select は属性、Cache Select はフレームの取り出し)
- Import Select POP — 外部ファイルインポート結果から選択的にデータを取り出す参照系 POP
- GLSL Select POP — GLSL シェーダで参照先 POP の属性を選択的に読み出す GPU 版の選択系 POP
組み合わせ推奨OP 🔄
- Math POP — 別ブランチで Math POP が再計算した属性を Select で取り込んで再合流させる
- GLSL POP — GLSL POP が生成した色・法線などの属性を Select で下流へ受け渡す
- Merge POP — ジオメトリ自体の結合は Merge、属性だけの取り込みは Select と役割を分担して併用
- Attribute Combine POP — 取り込んだ属性同士を後段で合成・演算するときに併用
前処理・後処理POP 🎯
Info POP情報 📊
Select POPは Info CHOP / Info DAT による詳細情報取得に対応しています。
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: エラー数
出力ポイント・属性情報 🧬
num_points: 出力ジオメトリのポイント数 (取り込み元の属性を反映した結果)num_point_attribs: 出力 POP の point 属性数 (取り込んだ点属性を含む)num_vertex_attribs: 出力 POP の vertex 属性数 (取り込んだ頂点属性を含む)num_prim_attribs: 出力 POP の primitive 属性数 (取り込んだプリミティブ属性を含む)num_prims: 出力プリミティブ数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 参照先 POP を指定しても属性が取り込まれない
✅ Solution:
POPパラメータに正しいパスが入っているか、参照先 POP が同一ネットワーク内に存在するかを確認Point Attribute Scope/Primitive Attribute Scope/Vertex Attribute Scopeが空でないか、取り込みたい属性名 (例:Cd) または*が入っているかを確認- 参照先 POP に実際にその属性が存在するかを後段の Info DAT で確認 (存在しない属性名は取り込めない)
❌ Problem: 意図しない属性まで取り込まれて下流が重い
✅ Solution:
- 各 Attribute Scope を
*ではなく必要な属性名 (例:P N) に絞り込んで取り込み対象を限定 - 後段または
Delete Input Attributesで不要な属性を切り落として分岐ブランチを軽量化 - 前段に Attribute Combine POP を入れ、取り込む前に属性を整理
❌ Problem: 取り込んだ色や法線が表示に反映されない
✅ Solution:
- 取り込んだ属性名が下流の Render TOP / レンダリング側が期待する名前 (
Cd/N等) と一致しているかを確認 Point Attribute Scopeで取り込んだレベル (点 / プリミティブ / 頂点) が、表示側が参照するレベルと合っているかを確認Bypassがオンになっていないか (オンだと input1 がそのまま素通りし取り込みが無効化される) を確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Select POP
- Cache Select POP – 時系列キャッシュから単一フレームを取り出す参照系 POP
- Attribute – TouchDesigner 属性概念ページ

