
概要 📖 – ジオメトリ属性の削除とリネームによる属性管理
Attribute SOPは、ジオメトリのポイント・頂点・プリミティブ・ディテール属性を手動で削除・リネームできる SOPです。削除はパターンマッチング (* / Cd Alpha / a* / ^Cd) に対応し、リネームは From Attribute / To Attribute ペアのシーケンスで複数同時に指定できます。
主な用途 🎯
- 不要な属性 (Cd / Alpha / uv / N 等) を削除してジオメトリの属性名前空間を整理
- 属性をリネームして下流 SOP の期待する名前に合わせる (例:
uv→texCoord) - Alembic / FBX 等の外部取り込みジオメトリから流入した属性を整理・命名規約に揃える
- パターン文字列 (
*/a*/^Cd) による一括削除で複数属性を一度に処理 - Point / Vertex / Primitive / Detail の 4 種類の属性カテゴリを個別に管理
データフロー 🔄
入力: 属性を持つジオメトリ SOP
↓
Point / Vertex / Primitive / Detail Page (各カテゴリで Delete Attributes / Rename Sequence を設定)
↓
出力: 属性名前空間が整理されたジオメトリ SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Point Page 📍
Point 属性の削除 🗑️
Delete Attributes .ptdel ❌
– 削除する point 属性をスペース区切りで列挙する文字列フィールド
– 右側のドロップダウンメニューから入力ジオメトリに存在する属性を選択することも可能
– パターン文字列が利用可能:
*— 全属性を削除Cd—Cd属性のみ削除Cd Alpha—CdとAlpha両方を削除a*—aで始まる全属性を削除^Cd—Cd以外の全属性を削除
Point 属性のリネーム 🔤
Point Rename .pt 🔁
– Point 属性のリネーム指定をシーケンス (複数エントリ) で管理
– 1 つのリネーム指定は From Attribute と To Attribute のペアで構成される
From Attribute .pt0from 📥
– リネーム対象の元属性名を指定する文字列フィールド
– 右側のドロップダウンメニューから入力ジオメトリに存在する属性を選択可能
To Attribute .pt0to 📤
– リネーム後の新しい属性名を指定する文字列フィールド
Vertex Page 🔺
Vertex 属性の削除 🗑️
Delete Attributes .vertdel ❌
– 削除する vertex 属性をスペース区切りで列挙する文字列フィールド (例: uv N)
– パターン文字列は Point Page の ptdel と同じ書式 (* / ^Cd 等) が使用可能
– 主に頂点ごとに保持される uv / N (vertex normals) 等の整理に使う
Vertex 属性のリネーム 🔤
Vertex Rename .vert 🔁
– Vertex 属性のリネーム指定をシーケンスで管理
– Point Rename と同じく From Attribute / To Attribute ペアで構成
From Attribute .vert0from 📥
– リネーム対象の元 vertex 属性名
To Attribute .vert0to 📤
– リネーム後の新しい vertex 属性名
Primitive Page 🔷
Primitive 属性の削除 🗑️
Delete Attributes .primdel ❌
– 削除する primitive 属性をスペース区切りで列挙する文字列フィールド (例: Cd creaseweight)
– Point / Vertex Page と同じパターン書式 (* / a* / ^Cd) に対応
– 全タイプのジオメトリを受け付ける (ポリゴン / NURBS / メタボール 等)
Primitive 属性のリネーム 🔤
Prim Rename .prim 🔁
– Primitive 属性のリネーム指定をシーケンスで管理
From Attribute .prim0from 📥
– リネーム対象の元 primitive 属性名
To Attribute .prim0to 📤
– リネーム後の新しい primitive 属性名
Detail Page 📋
Detail 属性の削除 🗑️
Delete Attributes .attrdel ❌
– 削除する detail (geometry 全体に 1 つだけ存在する) 属性をスペース区切りで列挙
– パターン書式は Point Page と同様
– pCaptPath / pCaptData はここで管理される (削除時の triad 保持に注意)
Detail 属性のリネーム 🔤
Detail Rename .attr 🔁
– Detail 属性のリネーム指定をシーケンスで管理
From Attribute .attr0from 📥
– リネーム対象の元 detail 属性名
To Attribute .attr0to 📤
– リネーム後の新しい detail 属性名
実践アイデア 💡
Example 1: Alembic 取り込みジオメトリの不要属性削除 🧹
Alembic SOP → Attribute SOP (ptdel=Cd Alpha) → Geometry COMP → Render TOP
外部 DCC ツール (Maya / Houdini 等) から Alembic 経由で取り込んだジオメトリには不要な頂点カラー (Cd) やアルファ (Alpha) が残りがちです。Attribute SOP の Point Page でまとめて削除し、レンダリング用にスリムな属性構成へ整えます。
- Alembic SOP で
.abcファイルを読込 - Attribute SOP を接続し Point Page の
Delete AttributesにCd Alphaと入力 - 下流の Geometry COMP / Render TOP で属性が消えていることを確認
- 必要に応じて Vertex Page / Primitive Page でも余分な属性を削除
Example 2: UV 属性のリネームによる MAT 互換性確保 🏷️
入力 SOP → Attribute SOP (vert: uv → texCoord) → MAT (texCoord 期待) → Render TOP
下流の MAT (シェーダ) が texCoord という名前で UV 属性を参照する設計になっている場合、Attribute SOP の Vertex Page で uv を texCoord にリネームすれば、ジオメトリ側を作り直さずに名前空間を揃えられます。
- ジオメトリ SOP に Attribute SOP を接続
- Vertex Page の
Vertex Renameシーケンスに 1 エントリ追加 From Attributeにuv、To AttributeにtexCoordを入力- 下流の MAT で
texCoordを参照させ、テクスチャがマップされることを確認
Example 3: Capture/Deform 属性の安全な保持 🦴
Capture SOP → Attribute SOP (^pCapt pCaptPath pCaptData を保持) → Deform SOP → Geometry COMP
Capture SOP で生成された pCapt / pCaptPath / pCaptData のキャプチャ属性 triad を維持したまま、その他の不要属性だけを除去する例。triad を 1 つでも欠かすと Deform SOP がエラーを返すため、ネガティブパターン (^...) で除外指定するのが安全です。
- Capture SOP 後段に Attribute SOP を配置
- Point Page の
Delete Attributesに^pCaptと入力 (pCapt以外を全削除) - Detail Page の
Delete Attributesに^pCaptPath ^pCaptDataと入力 - Deform SOP を後段に置き、エラーなく変形が反映されることを確認
関連オペレータ 🔗
類似機能OP 🔍
- Attribute Create SOP — 属性の新規作成・値設定 (本 SOP の対概念)
組み合わせ推奨OP 🔄
- Capture SOP — pCapt / pCaptPath / pCaptData 属性 triad を生成
- Deform SOP — Capture 属性に基づいてジオメトリを変形 (triad 必須)
- Alembic SOP — 外部から取り込んだ属性を Attribute SOP で整理する前段
- Sort SOP — リネーム後の属性順序を整える後段処理
前処理・後処理SOP 🎯
- 前処理: Alembic SOP、In SOP、Capture SOP
- 後処理: Deform SOP、Copy SOP、Sort SOP、Merge SOP
Info CHOP情報 📊
Attribute SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Delete Attributes に名前を入れても属性が消えない
✅ Solution:
- 属性が想定したカテゴリ (Point / Vertex / Primitive / Detail) に存在するか Info DAT 等で確認 (例:
uvは通常 Vertex 属性、Point Page で消そうとしても効かない) - 属性名のスペル・大文字小文字を正確に入力 (
Cdとcdは別属性扱い) - 右側のドロップダウンメニューから選択し直してパターン解釈ミスを避ける
❌ Problem: Capture / Deform 後段でエラーが出る
✅ Solution:
pCapt(Point) /pCaptPath(Detail) /pCaptData(Detail) の 3 属性は必ず全て保持するか全て削除する (triad 依存)- 他属性を消したいときはネガティブパターン (
^pCapt等) を使い、triad だけ確実に残す - 後段に Deform SOP を置く前に Attribute SOP の出力を Info DAT で確認
❌ Problem: Rename が反映されない / シーケンスのエントリ追加方法がわからない
✅ Solution:
Point Rename/Vertex Rename等の右にある+ボタンでシーケンスエントリを追加From Attributeに元の属性名、To Attributeに新しい属性名を両方とも記入 (片方空だと無効)- リネーム対象の属性がそのページのカテゴリに本当に存在するか Info DAT で確認
❌ Problem: パターン文字列が期待通り動作しない
✅ Solution:
*は全属性、a*はaで始まる属性、^CdはCd以外、というルールを確認- 複数パターンはスペース区切りで列挙 (例:
Cd Alpha N) - 右側ドロップダウンから個別選択する方が確実なケースもある
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Attribute SOP
- TouchDesigner公式ドキュメント – Attribute Create SOP
- TouchDesigner公式ドキュメント – Capture SOP

