
概要 📖 – 点の追加と属性の作成
Point POPは、位置属性つきの点を追加し、カラーや法線などの任意属性を新規作成するジオメトリ生成系 POPです。位置属性 (P) と点プリミティブの生成を個別にオン・オフでき、シーケンシャルブロックで好きなだけ新規属性を定義できます。型・成分数まで細かく指定できるため、パーティクルやインスタンス描画の素材となる最小ジオメトリを柔軟に組み立てられます。
主な用途 🎯
- 位置属性 (P) を持つ点をジオメトリに追加
- 点プリミティブ (Point Primitive) の生成
- カラー・法線・テクスチャ座標など任意属性の新規作成
- カスタム属性の型・成分数を指定した自由なデータ定義
- パーティクルやインスタンス描画用の最小ジオメトリ構築
データフロー 🔄
入力: POP (任意ジオメトリ、または空)
↓
Point POP(点・位置属性・新規属性を追加)
↓
出力: 属性つきの点ジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Setup Page 📋
点と位置属性の生成 ✅
Create P Attribute .createp 📍
– Create P Attribute (位置属性の作成) — 点の位置を表す P 属性を追加するか否かのトグル
– オンにすると Points Page の Position から各点の座標を設定可能になる
Create Point Primitives .createpointprim 🔘
– Create Point Primitives (点プリミティブの作成) — 点プリミティブ (Point Primitive) を生成するか否かのトグル
– オンにするとレンダリングや後段処理で点を独立したプリミティブとして扱える
新規属性ブロック .attr ✨
新しい属性を 1 ブロック単位で定義するシーケンシャルパラメータブロック
New Attribute .attr ✨
– New Attribute (新規属性) — 新しい属性を 1 ブロック単位で作成するシーケンシャルパラメータブロックの起点
– ブロック数を増減することで複数の属性をまとめて定義できる
Name .attr0name 🏷️
Name (属性名) — 定番属性を選ぶか、Custom でカスタム属性を作成するかを選択するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Custom | .custom |
カスタム属性。下の Custom Name で任意の名前を指定 |
| N | .n |
法線 (Normal) 属性。面やライティングの向きを表す |
| Color | .color |
カラー属性。点ごとの RGBA 色を保持 |
| Tex | .tex |
テクスチャ座標 (UV) 属性。テクスチャマッピングに使用 |
| PointScale | .pointscale |
ポイントスケール属性。インスタンス描画時の点サイズ |
| LineWidth | .linewidth |
ライン幅属性。ラインプリミティブの太さ |
Custom Name .attr0customname 📝
Custom Name .attr0customname 📝
– Custom Name (カスタム名) — 新規カスタム属性の名前を指定する
– Name メニューで Custom を選んだ場合に有効になる
Type .attr0type 🧮
Type (型) — 新規属性のデータ型を決定するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| float | .float |
32-bit 単精度浮動小数 |
| double | .double |
64-bit 倍精度浮動小数 |
| int | .int |
32-bit 符号付き整数 |
| uint | .uint |
32-bit 符号なし整数 |
| dir | .dir |
方向ベクトル (float 単精度) |
| dbl dir | .ddir |
方向ベクトル (double 倍精度) |
Number of Components .attr0numcomps 📊
Number of Components (成分数) — 新規属性の成分数を選択するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| 1 | .1 |
スカラー (1 成分)。単一値の属性に使用 |
| 2 | .2 |
2D ベクトル (例: UV 座標) |
| 3 | .3 |
3D ベクトル (例: 位置 / 法線) |
| 4 | .4 |
4D ベクトル (例: RGBA / 四元数) |
Points Page 📍
点ブロック .pt 🔘
追加する点を 1 ブロック単位で定義するシーケンシャルパラメータブロック
Point .pt 🔘
– Point (点ブロック) — 追加する点を 1 ブロック単位で管理するシーケンシャルパラメータブロックの起点
– ブロック数を増やすことで複数の点を直接指定して生成できる
Position .pt0pos 📐
Position .pt0pos 📐
– Position (位置) — 各点の座標を X / Y / Z の 3 成分 (pt0posx / pt0posy / pt0posz) で指定
– Create P Attribute がオンのとき、ここで指定した座標が P 属性として書き込まれる
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: 単一の点を座標指定で生成 📍
Point POP (createp オン, pt0pos = 任意座標) → Render TOP
入力なしの状態から Point POP だけで 1 つの点を任意座標に配置する最小例。Create P Attribute をオンにし、Points Page の Position に座標を入力すると、位置属性つきの点が 1 つ生成される。インスタンス描画やパーティクル発生源のアンカーとして使える。
- Point POP の
Create P Attributeをオンにする - Points Page の
Positionに座標 (例: 0, 1, 0) を入力 Create Point Primitivesをオンにして点プリミティブを生成- 出力を Render TOP に渡して点を描画
Example 2: 点群にカラー属性を追加 🎨
Grid POP → Point POP (New Attribute: Color, float, 4 成分) → Math POP (色を設定) → Render TOP
Grid POP などで生成した点群に、Point POP の新規属性ブロックを使って Color 属性を追加する例。Name メニューで Color を選ぶと RGBA カラー属性のスキーマが用意され、後段の Math POP やシェーダで点ごとに色を設定できるようになる。
- 前段の Grid POP を Point POP の入力に接続
New Attributeブロックを 1 つ追加Nameメニューで Color を選択Type= float、Number of Components= 4 を指定- 後段の Math POP で各点の Color 値を計算してマテリアルに渡す
Example 3: カスタム属性を定義 🧬
Point Generator POP → Point POP (Custom Name: scale, float, 1 成分) → Copy POP
インスタンス描画の素材として、点ごとに独立したスケール値を持たせたいケース。Point POP の Name メニューで Custom を選び、Custom Name に任意名 (例: scale) を入力、Type と Number of Components を指定すると、後段のインスタンス処理から参照できるカスタム属性を新規作成できる。
- 前段の Point Generator POP を Point POP の入力に接続
New Attributeブロックを追加しName= Custom を選択Custom Nameにscaleを入力Type= float、Number of Components= 1 を指定- 後段で
scale属性を読み、Copy POP のインスタンスサイズ制御に利用
関連オペレータ 🔗
類似機能OP 🔍
- Attribute POP — 既存属性の作成・リネーム・削除を扱う。Point POP は点そのものの追加も担う点が異なる
- Point Generator POP — 指定数の点を一括生成する。Point POP は座標を直接指定して点を足す用途
組み合わせ推奨OP 🔄
- Math POP — Point POP で作成した新規属性に算術演算で値を書き込む
- Copy POP — Point POP の点と属性をインスタンス描画のテンプレートとして複製
- Merge POP — Point POP で追加した点を既存ジオメトリと統合
前処理・後処理POP 🎯
Info POP情報 📊
Point 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: エラー数
ポイント・属性情報 🧬
num_points: Point POP が出力するポイント数 (追加した点を含む)num_point_attribs: 出力 POP のポイント属性数 (新規作成した属性を含む)num_vertex_attribs: 出力 POP の頂点属性数num_prim_attribs: 出力 POP のプリミティブ属性数num_prims: 出力プリミティブ数 (点プリミティブを含む)
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 点が表示されない / レンダリングされない
✅ Solution:
Create P Attributeがオンになっているか確認 (位置属性 P がないと描画位置が定まらない)Create Point Primitivesをオンにして点をプリミティブとして生成- 後段の Render TOP で点サイズ・点描画が有効か確認
❌ Problem: 新規作成した属性が下流で見つからない
✅ Solution:
NameまたはCustom Nameの属性名が下流で参照している名前と一致しているか確認TypeとNumber of Componentsが後段の期待する型・成分数と揃っているか確認- Common Page の
Delete Input Attributesパターンで誤って削除されていないか確認
❌ Problem: カスタム属性の値が初期化されない
✅ Solution:
Nameメニューで Custom を選択しCustom Nameを入力したか確認- 属性作成後に Math POP 等で明示的に値を書き込む
Number of Componentsが値設定側の成分数と一致しているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Point POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎

