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

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

Merge POP の複数入力連結機能を示す図

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

概要 📖 – 複数入力を 1 つに連結

Merge POPは、複数の POP 入力のポイントまたはプリミティブを連結して 1 つのジオメトリにまとめる POPです。Group パラメータで連結対象を絞り込み、Unique Group Name で入力ごとに別のグループ名を指定する柔軟な運用にも適します。

主な用途 🎯

  • 複数 POP 入力のポイントまたはプリミティブを 1 つのジオメトリに連結
  • Group パラメータで入力ごとに連結対象の要素を限定
  • Unique Group Name で入力ごとに異なるグループ名を指定するシーケンシャル運用
  • Entity (Points / Primitives) の選択で連結対象クラスを切替
  • パーティクル流・ジオメトリブランチを 1 ノードで束ねる統合点

データフロー 🔄

入力: 複数 POP (各々のポイント / プリミティブ)

Entity でクラス選択 + Group で対象要素を限定 (任意)

連結

出力: 統合されたジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 つの出力ジオメトリへ結合されます。

  1. Box POP を Merge POP の input0 ブロックに接続
  2. Sphere POP を Merge POP の input1 ブロックに接続
  3. Entity を point に設定 (全ポイントを対象)
  4. Group は空欄のままにして入力全体を連結対象とする
  5. 出力を 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 を指定することで、両入力のうち当該グループに含まれるポイントだけを連結するパターン。グループ外のポイントは出力から除外され、構造のサブセットだけを下流に渡せます。

  1. 各入力 POP の前段に Group POP を入れて top_row グループを定義
  2. Grid POP と Circle POP の出力を Merge POP の input0 / input1 に接続
  3. Entity を point に設定
  4. Group に top_row を指定し、両入力の同名グループに含まれるポイントのみを連結対象に
  5. 出力を下流の 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 ノードで束ねます。

  1. Particle POP を input0 ブロックに接続し、前段で alive グループを定義
  2. Curve POP を input1 ブロックに接続し、前段で path グループを定義
  3. Unique Group Name をオンに切替
  4. input0 ブロック内の Entity を point、Group を alive に設定
  5. input1 ブロック内の Entity を point、Group を path に設定
  6. 出力を 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 メモリを解放

参考資料 📚

その他 🔗

公式リソース 📖

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