
概要 📖 – 属性をポイント・頂点・プリミティブ間で変換
Attribute Convert POPは、POP 属性をポイント・頂点・プリミティブのいずれかの属性クラスから別の属性クラスへコピー変換する POPです。例えばプリミティブ属性をそのプリミティブを構成する各ポイントへコピーするといった変換が可能で、ポイントが複数プリミティブや頂点で共有される曖昧なケースでは POP が 1 つの値を選択し警告は出ません。
主な用途 🎯
- POP 属性をポイント・頂点・プリミティブ間 (Attribute Class) で相互変換
- 変換時に新しい属性名 (New Attribute Name) を指定して元属性と並存可能
- 変換後に元属性を保持/削除する Delete Original トグルで属性スキーマを整理
- 属性名衝突時の通知レベル (Ignore / Warning / Error) を Notification if Attribute Exists で制御
- 既存属性を上書きするか否か (Override if Attribute Exists) で安全に変換を運用
データフロー 🔄
入力: ポイント・頂点・プリミティブ属性を持つ POP
↓
Convert Operation で変換方向選択 + Input Attributes で対象属性指定 + 衝突解決
↓
出力: 異なる Attribute Class に変換された属性を持つジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Attribute Convert Page 📋
Convert Operation .convertop 🔄
属性をどの Attribute Class からどの Attribute Class へ変換するかを決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
変換を行わず、入力をそのまま通過させる |
| Point to Vertex | .pointtovert |
ポイント属性を頂点属性として複製変換 |
| Vertex to Point | .verttopoint |
頂点属性をポイント属性へ集約変換 (共有ポイントは 1 値を選択) |
| Point to Primitive | .pointtoprim |
ポイント属性をプリミティブ属性へ集約変換 |
| Primitive to Point | .primtopoint |
プリミティブ属性をそのプリミティブを構成するポイントへコピー (共有ポイントは 1 値を選択) |
| Vertex to Primitive | .verttoprim |
頂点属性をプリミティブ属性へ集約変換 |
| Primitive to Vertex | .primtovert |
プリミティブ属性をその構成頂点へコピー変換 |
Input Attributes .inputattrs 🔤
Input Attributes .inputattrs 🔤
– 変換対象とする入力属性の名前パターンを指定するパラメータ
– ワイルドカード (例 *) やスペース区切りで複数属性 (例 P N Cd) を一括指定可能
New Attribute Name .newattrs 🏷️
New Attribute Name .newattrs 🏷️
– 変換後に新しく作られる属性の名前を指定する文字列パラメータ
– 空または元属性と同名のままにすると Delete Original / Override if Attribute Exists の挙動に従って既存属性と並存・置換される
Delete Original .deleteorig 🗑️
Delete Original .deleteorig 🗑️
– 変換元として選択した入力属性を出力から削除するトグルパラメータ
– オンにすると元の Attribute Class から属性が消え、変換後のクラスのみに残る
Notification if Attribute Exists .notificationifexists ⚠️
変換先に同名属性が既に存在する場合の通知方法を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Ignore | .ignore |
既存属性との衝突をユーザーに通知せず処理を続行 |
| Warning | .warning |
ノードに Warning を表示して処理を続行 |
| Error | .error |
ノードに Error を表示して処理を停止 |
Override if Attribute Exists .overrideifexists 🔁
Override if Attribute Exists .overrideifexists 🔁
– 変換先に同名属性が存在する場合に、この POP が生成する新属性で入力属性を上書きするかを決定するトグルパラメータ
– オンで上書き、オフで既存属性を保持
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: プリミティブ色をポイントへコピーしてシェーダで参照 🎨
SOP to POP (Cd on primitives) → Attribute Convert POP (Convert Operation=primtopoint, Input Attributes=Cd) → Render TOP
プリミティブ単位で持っている色属性 Cd を、Attribute Convert POP で各プリミティブを構成するポイントへコピーし、ポイントベースで色を参照するシェーダや下流処理で扱えるようにする典型的な属性クラス変換パターン。
- プリミティブに Cd 属性を持つ POP を Attribute Convert POP の input0 に接続
- Convert Operation を
primtopointに設定 - Input Attributes に
Cdを指定して色属性のみ変換対象に絞り込み - Delete Original をオフにしてプリミティブ Cd も保持 (両クラスで利用可能に)
- 出力を Render TOP に渡してポイント Cd をシェーダで参照
Example 2: 頂点 UV をポイントへ集約してテクスチャマッピング簡素化 🗺️
POP with vertex UV → Attribute Convert POP (Convert Operation=verttopoint, Input Attributes=uv, New Attribute Name=uv_point) → Lookup Texture POP
頂点単位で持つ UV 属性をポイント属性へ集約変換し、新しい属性名 uv_point で並存させて、ポイントベースで UV を扱う下流処理 (Lookup Texture POP 等) に流し込む属性整理フロー。
- 頂点 UV 属性を持つ POP を Attribute Convert POP に接続
- Convert Operation を
verttopointに設定 - Input Attributes に
uvを指定 - New Attribute Name に
uv_pointを入力して元 UV と並存させる - Delete Original をオフにして頂点 UV も保持
- 出力を Lookup Texture POP に渡しポイント UV でテクスチャ参照
Example 3: ポイント属性を頂点へ複製して頂点シェーディング制御 🎯
POP with point Cd → Attribute Convert POP (Convert Operation=pointtovert, Notification if Attribute Exists=warning) → GLSL POP
ポイント単位の色属性 Cd を頂点属性として複製変換し、頂点ごとに独立した色制御をシェーダで行えるようにする。既存頂点属性との衝突は Warning で通知させて処理を継続する安全運用のパターン。
- ポイント Cd を持つ POP を Attribute Convert POP に接続
- Convert Operation を
pointtovertに設定 - Input Attributes に
Cdを指定 - Notification if Attribute Exists を
warningに設定し衝突を通知のみで継続 - Override if Attribute Exists を必要に応じてオン/オフで切替
- 出力を GLSL POP に渡し頂点 Cd をシェーダで使用
関連オペレータ 🔗
類似機能OP 🔍
- Attribute POP — 属性そのものの作成・編集・削除を担当する POP。Attribute Convert と組み合わせて属性スキーマを整える
- Attribute Combine POP — 複数 POP 入力から属性を選別統合する POP。変換ではなく統合が主目的
- Lookup Attribute POP — 属性値を参照テーブルとして他属性に流し込む POP。クラス変換ではないが属性操作系統
- Convert POP — ジオメトリ表現形式 (ポリゴン / カーブ等) を変換する POP。属性クラスではなく Primitive 種別を変換
組み合わせ推奨OP 🔄
- Attribute POP — 前段で属性を作成・編集してから Attribute Convert でクラス変換する標準フロー
- Lookup Attribute POP — 変換後の属性を参照テーブルとして他属性へ流し込む
- GLSL POP — 変換後の属性をカスタムシェーダで処理
前処理・後処理POP 🎯
- 前処理: Attribute POP、Attribute Combine POP、Convert POP、Transform POP
- 後処理: Lookup Attribute POP、Math POP、Merge POP
Info POP情報 📊
Attribute Convert 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 汎用情報 (Info CHOP 経由) 📊
num_points: 出力ジオメトリのポイント数num_point_attribs: 出力ジオメトリのポイント属性数 (変換結果が反映される)num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数num_prims: 出力ジオメトリのプリミティブ数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 変換後の属性が出力に現れない
✅ Solution:
- Convert Operation が
None以外の正しい変換方向に設定されているか確認 - Input Attributes のパターンが対象属性にマッチしているか確認 (デフォルト
*は全属性) - Common Page の Delete Input Attributes パターンで変換後の属性が破棄されていないか確認
❌ Problem: 変換先で属性名が衝突しエラーになる
✅ Solution:
- Notification if Attribute Exists を
warningまたはignoreに切替えて処理を続行 - New Attribute Name で変換後の属性に別名を指定して衝突回避
- Override if Attribute Exists の設定を確認 (オンで上書き / オフで既存保持)
❌ Problem: 共有ポイントで意図しない値が選択される
✅ Solution:
- 公式仕様上、複数プリミティブや頂点で共有されるポイントでは POP が 1 つの値を自動選択し警告は出ない仕様であることを理解する
- 前段で Attribute POP や Math POP を使い属性値を平均化・正規化してから変換
- Convert POP でジオメトリ表現を変えて共有ポイントの構造自体を解消
❌ Problem: 元属性も新属性も両方残ってしまい属性スキーマが膨らむ
✅ Solution:
- Delete Original をオンにして変換元属性を出力から削除
- Common Page の Delete Input Attributes パターンで残したい属性名のみ明示指定
- 下流に Attribute POP を置き、不要属性を削除して整理
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Attribute Convert POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- Attribute POP (属性スキーマ操作)

