
概要 📖 – 属性の作成・リネーム・複製・削除
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
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 で既存属性の上書きも制御できる。
- Attribute POP の Create Page で
Attribute Class= point を指定 attr0name= Color、attr0numcomps= 4 で RGBA を生成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 として認識する。
- Matrix Page で
matattr0name= instanceTransform、Rows / Columns = 4 を指定 matattr0qualifier= Transform Matrix に設定- Geometry COMP の Instancing で当該行列属性を参照
関連オペレータ 🔗
類似機能OP 🔍
組み合わせ推奨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 圧迫を防ぐ


