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

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

Attribute POP の属性編集機能を示す図

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

概要 📖 – 属性の作成・リネーム・複製・削除

Attribute POPは、POP の point / vertex / primitive 属性を新規作成・リネーム・複製・削除し、属性スキーマを編集する POPです。Create / Matrix / Rename / Duplicate / Delete の 5 ページにより、POP ネットワーク内の属性スキーマを 1 オペレータで完結して再構成できます。

主な用途 🎯

  • 新規属性 (N / Cd / Tex / カスタム) の生成
  • 属性のリネーム(標準名規約への揃え)
  • 既存属性の複製(一時バックアップ・分岐処理用)
  • Point / Vertex / Primitive 属性の削除による下流の軽量化
  • マトリクス属性 (Transform Matrix 等) の構築

データフロー 🔄

入力: POP (任意属性)

Attribute POP(Create / Matrix / Rename / Duplicate / Delete の各ページで属性編集)

出力: 編集済みの属性セットを持つ POP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Create Page 📋

対象クラスとグループ 🎯

Attribute Class .attrclass 🎛️
– 操作対象とする属性のクラスを選択 (point / vertex / primitive)
– 属性の所属クラスによってメモリ配置・転送量が変わる

Group .group 🔖
– 入力にグループがある場合、特定グループのみに操作対象を絞り込む
– 空欄なら全体を対象

Notification if Attribute Exists .notificationifexists ⚠️

新規属性名が既存と衝突した場合の通知レベル

項目 内部名 説明
Ignore .ignore 衝突しても通知しない
Warning .warning 衝突時に警告を表示
Error .error 衝突時にエラーで停止

上書き・カラー前処理 🎨

Override if Attribute Exists .overrideifexists
– 同名の入力属性が存在する場合、新しく作成した属性で上書き
– オフ時は既存属性を保持

Pre-Multiply RGB by Alpha .premultcolor
– RGB 値にアルファ値を乗算(プリマルチプライ)して保持
– 合成系(Composite TOP 等)と一致した色補正が必要な場合に有効

新規属性 (Sequential Block) ✨

Sequential Parameter Blocks による複数属性の一括定義(インデックス N=0,1,2… が増えるたびに以下のセットがリピートされる)

New Attribute .attr 📈
– 新規属性 Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに以下のパラメータ群が複製される

Name .attr0name 🏷️
– 新規属性のプリセット名を選択 (Custom / N / Color / Tex / PointScale / LineWidth)
– Custom 選択時は attr0customname でカスタム名を指定

Custom Name .attr0customname 🆕
– Name = Custom 選択時の任意属性名
– 命名規約はネットワーク内で一意になるよう揃える

Type .attr0type 🔢
– 属性のデータ型を選択 (float / double / int / uint / dir / dbl dir)
– dir 系は方向ベクトル用(正規化前提)

Number of Components .attr0numcomps 📊
– 属性のコンポーネント数 (1 / 2 / 3 / 4)
– 色なら 4 (RGBA)、位置なら 3 (XYZ) 等

Array .attr0isarray
– 属性を配列として扱う(1 ポイントに複数値を持たせる)
– 例: ポイントごとに 5 個の float3 を持つ場合は Array = On + Array Size = 5

Array Size .attr0arraysize 🔢
– Array オン時の要素数
– サイズが大きすぎると VRAM 圧迫

Value .attr0value 🎯
– 初期値を attr0value0 / attr0value1 / attr0value2 / attr0value3 で指定
– コンポーネント数に応じて使うフィールドが決まる


Matrix Page 📋

マトリクス属性 🔢

行列形式の属性(Transform Matrix 等)を Sequential Block で複数定義

Matrix Attribute .matattr 📈
– マトリクス属性 Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに以下のパラメータ群が複製される

Matrix Name .matattr0name 🏷️
– マトリクス属性の名前
– インスタンシングで Transform Matrix を渡す場合は規約名 (例: instanceTransform) を使う

Rows / Columns .matattr0numrows 📐
– 行列の行数・列数 (2 / 3 / 4)
– 4×4 にすると Transform Matrix として扱える

Array .matattr0isarray
– マトリクスを配列として扱う
– Array Size matattr0arraysize で配列要素数を指定

Qualifier .matattr0qualifier 🏷️
– 属性の意味タグ (None / Transform Matrix)
transformMatrix を選ぶとインスタンシング時にレンダラが Transform として認識する


Rename Page 📋

属性リネーム 🔤

Sequential Block で複数属性のリネームを一括定義

Rename Attribute .ren 📈
– リネーム Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに From / To のペアが複製される

From Attribute .ren0from 📤
– リネーム前の属性名
– 入力 POP に存在する属性名を指定

To Attribute .ren0to 📥
– 新しい属性名
– 規約名 (P / N / Cd / Tex 等) に揃えると下流オペレータが認識しやすい


Duplicate Page 📋

属性複製 📑

既存属性を別名でコピーする Sequential Block

Duplicate Attribute .dup 📈
– 属性複製 Sequential Parameter Blocks の開始マーカー
– 値を増やすたびに対象名 / 新規名のペアが複製される

Duplicate Attribute .dup0name 🔁
– 複製元の属性名
– 入力 POP に存在する属性名を指定

New Attribute Name .dup0new 🆕
– 複製後の新しい属性名
– 後段で破壊的処理をかける前のバックアップとして使うことが多い


Delete Page 📋

属性削除 🗑️

クラス別の削除対象属性名パターンを指定

Delete Point Attributes .deletepoint 🔹
– 削除する point 属性名のパターン (空白区切り、ワイルドカード対応)
* ですべて、Cd* で Cd で始まる属性を削除

Delete Vertex Attributes .deletevert 🔸
– 削除する vertex 属性名のパターン
– 同じくワイルドカード対応

Delete Primitive Attributes .deleteprim 🔺
– 削除する primitive 属性名のパターン
– 同じくワイルドカード対応


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) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

Parameter Color Space .parmcolorspace 🎨

色パラメータの色空間を解釈・Working Color Space に変換する方式

項目 内部名 説明
sRGB .srgb 標準 sRGB ガンマ
sRGB – Linear .srgblinear リニア化された sRGB
Rec.601 (NTSC) .rec601 NTSC SD ビデオ用色空間
Rec.709 .rec709 HD ビデオ用色空間
Rec.2020 .rec2020 UHD / 4K HDR ビデオ用色空間
DCI-P3 .dcip3 デジタルシネマ用色空間
DCI-P3 (D60) .dcip3d60 D60 白色点の DCI-P3
Display-P3 (D65) .displayp3 Apple Display P3 (D65 白色点)
ACES2065-1 .aces2065 ACES 標準 (AP0 プライマリ)
ACEScg .acescg ACES CG 用 (AP1 プライマリ)
Passthrough .passthrough 色空間変換せず値をそのまま使用

Parameter Reference White .parmreferencewhite

色パラメータの基準白色点 (Reference White) の扱い

項目 内部名 説明
Default For Color Space .default 選択した色空間のデフォルト基準白を使用
Use Parent Panel .useparent 親パネルの基準白設定を継承
Standard (SDR) .sdr SDR (標準ダイナミックレンジ) 基準白
High (HDR) .hdr HDR (ハイダイナミックレンジ) 基準白
UI .ui UI 設定値を使用

実践アイデア 💡

Example 1: カスタム色属性の付与 🎨

入力 POP → Attribute POP (Create: Cd, vec4) → Render TOP → Render TOP

入力ジオメトリにポイント単位の RGBA 色属性を付与し、Render TOP のシェーダで色情報を直接参照する例。Override if Attribute Exists で既存属性の上書きも制御できる。

  1. Attribute POP の Create Page で Attribute Class = point を指定
  2. attr0name = Color、attr0numcomps = 4 で RGBA を生成
  3. attr0value0..3 で初期色を設定し、後段の Render TOP に渡す

Example 2: Transform Matrix 属性によるインスタンシング 🧮

入力 POP → Attribute POP (Matrix: 4x4 transformMatrix) → Geometry COMP (Instancing) → Render TOP

ポイントごとに 4×4 行列を付与してインスタンシング描画する例。Qualifier を Transform Matrix に設定するとレンダラが Transform として認識する。

  1. Matrix Page で matattr0name = instanceTransform、Rows / Columns = 4 を指定
  2. matattr0qualifier = Transform Matrix に設定
  3. Geometry COMP の Instancing で当該行列属性を参照

関連オペレータ 🔗

類似機能OP 🔍

  • Copy POP — Template Attributes 経由で属性を組み合わせる類似機能を持つ
  • Blend POP — Attribute Scope ベースの属性合成

組み合わせ推奨OP 🔄

  • Render TOP — 属性付き POP を Geometry COMP 経由で描画
  • Geometry COMP — instanceTransform 等の Matrix 属性を読み取ってインスタンシング
  • CHOP to POP — CHOP チャンネル値を属性として注入し、Attribute POP で命名整形

前処理・後処理POP 🎯


Info POP情報 📊

Attribute POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

属性情報 🧬

  • num_point_attribs: 出力 POP の point 属性数
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_points: 出力ポイント数
  • num_prims: 出力プリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間(ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 新規属性が下流で見つからない
✅ Solution:

  • Attribute Class が下流オペレータの期待クラスと一致しているか確認 (point / vertex / primitive)
  • Common Page の Delete Input Attributes でパターンに含まれて削除されていないか確認
  • Override if Attribute Exists をオンにして既存属性との衝突を解消

❌ Problem: Transform Matrix 属性でインスタンシングが効かない
✅ Solution:

  • Matrix Page で matattr0qualifier = Transform Matrix を選択
  • Rows / Columns を 4 にして 4×4 行列にする
  • Geometry COMP の Instancing 設定でこの属性名を正しく指定

❌ Problem: 属性数が増えてパフォーマンスが落ちる
✅ Solution:

  • Delete Page で不要なクラスの属性をパターン削除
  • Common Page の Delete Input Attributes で必須属性のみに絞る (例: P N Cd)
  • Array Size を必要最小限に抑えて VRAM 圧迫を防ぐ

参考資料 📚

公式リソース 📖

コミュニティ 💬

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