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

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

Attribute Convert POP の属性クラス変換機能を示す図

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

概要 📖 – 属性をポイント・頂点・プリミティブ間で変換

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 に変換された属性を持つジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 で各プリミティブを構成するポイントへコピーし、ポイントベースで色を参照するシェーダや下流処理で扱えるようにする典型的な属性クラス変換パターン。

  1. プリミティブに Cd 属性を持つ POP を Attribute Convert POP の input0 に接続
  2. Convert Operation を primtopoint に設定
  3. Input Attributes に Cd を指定して色属性のみ変換対象に絞り込み
  4. Delete Original をオフにしてプリミティブ Cd も保持 (両クラスで利用可能に)
  5. 出力を 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 等) に流し込む属性整理フロー。

  1. 頂点 UV 属性を持つ POP を Attribute Convert POP に接続
  2. Convert Operation を verttopoint に設定
  3. Input Attributes に uv を指定
  4. New Attribute Name に uv_point を入力して元 UV と並存させる
  5. Delete Original をオフにして頂点 UV も保持
  6. 出力を 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 で通知させて処理を継続する安全運用のパターン。

  1. ポイント Cd を持つ POP を Attribute Convert POP に接続
  2. Convert Operation を pointtovert に設定
  3. Input Attributes に Cd を指定
  4. Notification if Attribute Exists を warning に設定し衝突を通知のみで継続
  5. Override if Attribute Exists を必要に応じてオン/オフで切替
  6. 出力を 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 🎯


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 POPMath POP を使い属性値を平均化・正規化してから変換
  • Convert POP でジオメトリ表現を変えて共有ポイントの構造自体を解消

❌ Problem: 元属性も新属性も両方残ってしまい属性スキーマが膨らむ
✅ Solution:

  • Delete Original をオンにして変換元属性を出力から削除
  • Common Page の Delete Input Attributes パターンで残したい属性名のみ明示指定
  • 下流に 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をコピーしました