
概要 📖 – 複数入力を 1 つに連結
Merge POPは、複数の POP 入力のポイントまたはプリミティブを連結して 1 つのジオメトリにまとめる POPです。Group パラメータで連結対象を絞り込み、Unique Group Name で入力ごとに別のグループ名を指定する柔軟な運用にも適します。
主な用途 🎯
- 複数 POP 入力のポイントまたはプリミティブを 1 つのジオメトリに連結
- Group パラメータで入力ごとに連結対象の要素を限定
- Unique Group Name で入力ごとに異なるグループ名を指定するシーケンシャル運用
- Entity (Points / Primitives) の選択で連結対象クラスを切替
- パーティクル流・ジオメトリブランチを 1 ノードで束ねる統合点
データフロー 🔄
入力: 複数 POP (各々のポイント / プリミティブ)
↓
Entity でクラス選択 + Group で対象要素を限定 (任意)
↓
連結
↓
出力: 統合されたジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Merge Page 🔗
Unique Group Name .uniquegroupname 🔀
Unique Group Name .uniquegroupname 🔀
– Unique Group Name (入力ごと別グループ指定) — 各入力ブロックに対して別々の Entity / Group 名を指定するかを切替えるトグル
– オフ時は全入力で共通の Entity / Group 設定を使用、オン時は入力ごとに Entity と Group をシーケンシャルブロック内で個別に設定
Entity .groupentity 🎛️
Unique Group Name がオフのときに全入力で共通利用する Group の対象クラスを選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Primitives | .primitive |
プリミティブ (面) を単位とするグループを対象に連結 |
| Points | .point |
ポイント (頂点) を単位とするグループを対象に連結 |
Group .group 👥
Group .group 👥
– Group (共有グループ名) — 全入力で共通利用するグループ名。Unique Group Name がオフのときに有効
– 各入力 POP に同名のグループが定義されているとき、そのグループに含まれる要素のみが連結対象になる
– 空欄時は入力全体 (グループ指定なし) が連結対象となる
Sequential Input Blocks .input 🧩
連結対象とする入力 POP を 1 ブロックずつ管理するシーケンシャルパラメータブロック
Input .input 🧩
– Input (入力ブロック) — POP 入力を 1 ブロック単位で管理するシーケンシャルパラメータブロックの起点
– ブロック数を増減することで複数 POP を順序付きで束ねる
In POP(s) .input0pop 🔌
– In POP(s) (入力 POP パス) — 現在のシーケンスブロックに対応する入力 POP のパスを指定
– ワイヤー接続またはパターンマッチング (例 geo*) で複数 POP を 1 ブロックにまとめて指定可能
Entity .input0groupentity 🎛️
– Entity (ブロック別グループ対象クラス) — 現在のシーケンスブロック内の Group が指すグループの要素クラス
– Unique Group Name がオンのときに有効化、選択肢は共有モードと同様 (primitive / point)
Group .input0group 👥
– Group (ブロック別グループ名) — 現在のシーケンスブロックで連結対象とするグループ名
– Unique Group Name がオンのときに有効化、空欄時はそのブロックの入力全体が連結対象
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: 2 入力を 1 つに連結 🔗
Box POP + Sphere POP → Merge POP (Entity = point) → Transform POP
Box POP と Sphere POP で個別に生成した 2 つのジオメトリを Merge POP で連結し、後段の Transform POP でまとめて姿勢制御する基本フロー。Entity を point に設定し、Group を空欄のままにすることで各入力の全ポイント・全プリミティブが順序通りに 1 つの出力ジオメトリへ結合されます。
- Box POP を Merge POP の input0 ブロックに接続
- Sphere POP を Merge POP の input1 ブロックに接続
- Entity を
pointに設定 (全ポイントを対象) - Group は空欄のままにして入力全体を連結対象とする
- 出力を Transform POP に渡してまとめて姿勢制御
Example 2: グループ指定で部分連結 👥
Grid POP (group=top_row) + Circle POP (group=top_row) → Merge POP (Entity = point, Group = top_row) → Render TOP 相当の下流
前段の Group POP で各入力に top_row という同名グループを定義しておき、Merge POP の Group パラメータに top_row を指定することで、両入力のうち当該グループに含まれるポイントだけを連結するパターン。グループ外のポイントは出力から除外され、構造のサブセットだけを下流に渡せます。
- 各入力 POP の前段に Group POP を入れて
top_rowグループを定義 - Grid POP と Circle POP の出力を Merge POP の input0 / input1 に接続
- Entity を
pointに設定 - Group に
top_rowを指定し、両入力の同名グループに含まれるポイントのみを連結対象に - 出力を下流の POP に渡してサブセットを後段処理
Example 3: 入力別グループで連結 🧩
Particle POP (group=alive) + Curve POP (group=path) → Merge POP (Unique Group Name=on, input0 group=alive, input1 group=path) → Convert POP
Particle POP が生成する生存パーティクルの alive グループと、Curve POP が生成するパスの path グループを、それぞれの入力ブロック内で独立して指定して 1 つのジオメトリに連結する運用フロー。Unique Group Name をオンにすることでブロックごとに別のグループ名と Entity を設定し、異なる構造の入力を 1 ノードで束ねます。
- Particle POP を input0 ブロックに接続し、前段で
aliveグループを定義 - Curve POP を input1 ブロックに接続し、前段で
pathグループを定義 - Unique Group Name をオンに切替
- input0 ブロック内の Entity を
point、Group をaliveに設定 - input1 ブロック内の Entity を
point、Group をpathに設定 - 出力を Convert POP に渡してトポロジを整える
関連オペレータ 🔗
類似機能OP 🔍
- Switch POP — シーケンシャル入力から 1 つを選択して出力する POP。Merge と同じ multi-input アーキテクチャを共有
- Blend POP — 複数 POP 入力をブレンド比率で混合する POP。連結ではなく重み付き合成
- Math Mix POP — シーケンシャル入力ブロック構造を共有し、入力間の Blend / Mix を主目的とする POP
- Math Combine POP — 複数 POP 入力の属性を二項・三項演算で結合する POP。連結ではなく演算合成
- Attribute Combine POP — 複数 POP 入力から名前パターンで属性を選別・統合する POP。Merge は要素そのものを連結、Attribute Combine は属性スキーマを統合
組み合わせ推奨OP 🔄
- Group POP — 前段で各入力にグループを定義し、Merge POP の Group / Unique Group Name で連結対象を指定
- Transform POP — 連結前または連結後に各入力の座標系を揃える / 連結後ジオメトリを一括変換
- Convert POP — 連結後の混在トポロジを整えるために後段で型変換を適用
- Attribute POP — 前段で属性スキーマを揃えてから Merge で連結することで属性欠落を回避
前処理・後処理POP 🎯
Info POP情報 📊
Merge 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 汎用情報 📊
num_points: 連結後の出力ジオメトリの総ポイント数 (各入力ポイント数の合計)num_prims: 連結後の出力ジオメトリの総プリミティブ数 (各入力プリミティブ数の合計)num_point_attribs: 連結後の出力ジオメトリのポイント属性数num_vertex_attribs: 連結後の出力ジオメトリの頂点属性数num_prim_attribs: 連結後の出力ジオメトリのプリミティブ属性数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Group を指定したのに連結対象が変わらない
✅ Solution:
- Entity (
primitive/point) が、各入力 POP に定義されたグループの要素クラスと一致しているか確認 - 前段の Group POP で全入力に同名のグループが定義されているか確認 (定義漏れの入力は全体が連結対象になる)
- Unique Group Name がオフのときは Group パラメータの値が全入力共通で参照される点に注意
❌ Problem: 属性が出力から欠落する
✅ Solution:
- Common Page の
Delete Input Attributesパターンが必要な属性を破棄していないかを確認 - 前段で Attribute POP を入れて全入力の属性スキーマを揃え、欠落入力に既定値を補う
- 属性スキーマが大きく異なる場合は前段で Convert POP を使ってトポロジ・属性を統一
❌ Problem: Unique Group Name をオンにしてもブロック別 Entity / Group が効かない
✅ Solution:
- シーケンシャル入力ブロック内の Entity / Group (
input0groupentity/input0group) を編集しているか確認 (共有モード側のgroupentity/groupではない) - 各入力 POP に該当グループ名が前段で定義されているか確認 (未定義時はそのブロック全体が連結対象)
- ブロック数 (Input シーケンス) が実際の入力ワイヤー数と一致しているか確認
❌ Problem: 出力サイズが想定より大きく GPU メモリを圧迫
✅ Solution:
- Common Page の
Delete Input Attributesパターンで不要属性を破棄してメモリ・帯域を削減 - Group / Unique Group Name で連結対象を必要なグループのみに限定して出力点数を抑制
- Free Extra GPU Memory パルスで未使用 GPU メモリを解放
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Merge POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- 属性 (Attribute) の基礎
- Group POP (グループ定義の姉妹 POP)

