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

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

Connectivity POP のプリミティブ接続機能を示す図

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

概要 📖 – ポイント群からプリミティブを生成する接続定義

Connectivity POPは、入力ポイント群を線・三角形・四角形などのプリミティブに接続してレンダラブルなジオメトリを生成する POPです。接続方式 9 種類 + 次元インデックス指定により、グリッド・パーティクル・パスなど多様な入力からポリゴンサーフェスやワイヤーフレームを構成できます。

主な用途 🎯

  • ポイント群を線・三角形・四角形等のプリミティブに接続してレンダラブルな形状に変換
  • Grid POP / 行列状ポイント配列からポリゴンサーフェスやワイヤーフレーム生成
  • パーティクル / Noise POP の出力ポイントを Line Strip で軌跡として可視化
  • 2 次元グリッドポイントを Zig Zag / Spiral 走査で動的曲線・らせん化
  • 属性のみを残すために None 接続でポイントクラウド状態を保持しながら処理を続行

データフロー 🔄

入力: ポイント属性付きジオメトリ (接続情報なし or 既存)

接続タイプ + 次元インデックス選択

出力: 指定プリミティブで接続されたジオメトリ

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Connectivity Page 📋

Connectivity .surftype 🔗

ポイントを接続して生成するプリミティブの種類を決定するメニューパラメータ

項目 内部名 説明
None .none プリミティブを生成せずポイントのみ保持 (属性のみ残したい場合)
Point Primitives .points 各ポイントを単独のポイントプリミティブとして出力
Lines .lines 隣接ポイントを 2 点ずつ独立した線分プリミティブで接続
Line Strips .linestrips ポイントを連続した 1 本のラインストリップで接続 (パスや軌跡の可視化に有効)
Zig Zag per Plane .zigzagperplane 2 次元配列で行ごとに方向を反転させたジグザグライン接続 (蛇行パスを生成)
Spiral per Plane .spiralperplane 2 次元配列を外周から中心へ向かう螺旋順に接続
Triangles .triangles ポイントを 3 点ずつグループ化して独立した三角形プリミティブを生成
Alternating Triangles .alttriangles 2 次元グリッドを交互向きの三角形で接続 (連続トライアングルストリップ相当)
Quadrilaterals .quads ポイントを 4 点ずつグループ化して四角形プリミティブを生成 (グリッドのポリゴンサーフェス化)

次元インデックス 📐

(First) Dimension Index .firstdim 1️⃣
– 接続に使用する次元のインデックスを選択 (0 始まり)
– 2 次元を要求する接続モード (Zig Zag / Spiral / Alternating Triangles / Quadrilaterals 等) では第 1 次元として扱われる

Second Dimension Index .seconddim 2️⃣
– 第 2 次元のインデックス指定 (2 次元接続モードでのみ有効)
firstdim と組み合わせて 2D グリッドの行・列を指定

次元のクローズ (ループ化) 🔁

(First) Dimension Closed .firstdimclosed 🔁
– 第 1 次元方向の接続をループさせ、終端と先頭を繋ぐ
– Line Strip でリング、Quadrilaterals で筒状サーフェス等の閉じた形状を生成

Second Dimension Closed .seconddimclosed 🔂
– 第 2 次元方向もループさせ、両次元ともクローズすればトーラス相当の閉曲面を生成
– 2 次元接続モードでのみ有効

ポイント順の再構成 🔄

Reorder Points by Prim/ Vertex Order .reorderpoints 🔄
– 出力のポイント順をプリミティブ・頂点参照順に再構成
– 後段でインデックス順アクセスする処理 (例: Lookup Attribute POP / シェーダの SSBO 参照) と整合させたい場合に使用


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: Grid POP をサーフェス化する 🟦

Grid POP → Connectivity POP (Connectivity=quads, firstdim=0, seconddim=1) → Render TOP

Grid POP が出力する 2 次元ポイント配列を Connectivity POP の Quadrilaterals モードで四角形プリミティブに接続し、Render TOP でマテリアル付きでレンダリングして可視サーフェスに変換する基本フロー。

  1. Grid POP を配置し縦横の分割数を設定
  2. Connectivity POP の Connectivity を quads に設定
  3. First Dimension Index を 0、Second Dimension Index を 1 に指定
  4. Render TOP を接続してマテリアルを割当て
  5. 四角形のグリッドサーフェスが表示されることを確認

Example 2: パーティクル軌跡の Line Strip 可視化 🛤️

Particle POP → Connectivity POP (Connectivity=linestrips) → Render TOP

時間方向に蓄積されたパーティクルポイント列を Connectivity POP の Line Strips モードで 1 本の連続線に接続し、パーティクルの軌跡・パスをワイヤーフレームとしてレンダリングする用途。

  1. Particle POP や Trail 系で時系列ポイント列を生成
  2. Connectivity POP の Connectivity を linestrips に設定
  3. (必要に応じ) First Dimension Closed をオンにしてループパスに変換
  4. Render TOP で軌跡が連続線として描画されることを確認

Example 3: トーラス状の閉曲面生成 🍩

Grid POP → Connectivity POP (Connectivity=quads, firstdimclosed=on, seconddimclosed=on) → Transform POP → Render TOP

2 次元グリッドの両次元をクローズして両端を繋ぎ、Quadrilaterals 接続で位相的にトーラス状の閉曲面を生成、Transform POP で UV 座標を球面・トロイダルに変形して可視化する応用フロー。

  1. Grid POP で十分な分割数の 2 次元ポイント配列を生成
  2. Connectivity POP の Connectivity を quads に設定
  3. First Dimension Closed と Second Dimension Closed を両方オンに設定
  4. Transform POP / Math POP でポイント位置をトーラス座標系に変換
  5. Render TOP で継ぎ目のない閉曲面が表示されることを確認

関連オペレータ 🔗

類似機能OP 🔍

  • Convert POP — プリミティブタイプの変換 (Polygon → Mesh 等)。Connectivity が「接続を作る」のに対し Convert は「既存接続のタイプ変換」

組み合わせ推奨OP 🔄

  • Grid POP — 2 次元ポイント配列の生成元、Connectivity の典型的な前段入力
  • Transform POP — 接続後のジオメトリ全体を移動・回転・スケールして配置調整
  • Attribute POP — 接続前後で N (法線) 等の属性を生成・編集
  • POP to SOP — Connectivity で構成したプリミティブを SOP ワークフローに渡す

前処理・後処理POP 🎯


Info POP情報 📊

Connectivity 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 汎用情報 (Info CHOP 経由) 📊

  • num_points: 出力ジオメトリのポイント数
  • num_prims: Connectivity が生成したプリミティブ数
  • num_point_attribs: 出力ジオメトリのポイント属性数
  • num_vertex_attribs: 出力ジオメトリの頂点属性数
  • num_prim_attribs: 出力ジオメトリのプリミティブ属性数
  • gpu_memory_used: この POP が使用している GPU メモリ量

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

よくある問題と解決策 🔧

❌ Problem: プリミティブが生成されない / 出力にポイントしか見えない
✅ Solution:

  • Connectivity が nonepoints になっていないか確認 (どちらもプリミティブ非生成)
  • 入力ポイント数が選択した接続モードに必要な数を満たしているか確認 (Triangles なら 3 の倍数、Quadrilaterals なら 4 の倍数)
  • 下流の Render TOP が正しくプリミティブを描画できる設定か確認

❌ Problem: 2 次元接続モードで意図しない方向に繋がる
✅ Solution:

  • First Dimension Index と Second Dimension Index の組み合わせが入力ジオメトリの行・列定義と一致しているか確認
  • 上流 Grid POP / Noise POP の出力次元の並びを Info CHOP で num_points 等から確認
  • Reorder Points by Prim/ Vertex Order をオンにしてポイント順を再構成し下流処理と整合

❌ Problem: 閉曲面 (ループ) が継ぎ目で破綻する
✅ Solution:

  • First Dimension Closed / Second Dimension Closed が必要な次元すべてオンか確認
  • 入力ポイントの始端と終端の座標が一致または近接しているか確認 (大きく離れていると見た目に継ぎ目が出る)
  • 接続後に Attribute POP で法線 (N) を再計算し継ぎ目のシェーディング不連続を解消

❌ Problem: パフォーマンスが重い / プリミティブ数が爆発する
✅ Solution:

  • 前段で Grid POP の分割数を下げて入力ポイント数を削減
  • Common Page の Delete Input Attributes で不要属性を破棄してメモリ・帯域を節約
  • 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をコピーしました