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

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

Add SOP のポリゴン生成機能を示す図

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

概要 📖 – ポイント間をつないでポリゴンを生成

Add SOPは、ポイントを直接定義または DAT/パターン経由で結び、ポリゴンを構築する SOPです。Group メソッドと Pattern メソッドの 2 系統で接続規則を選べ、Polygons Table DAT 経由の一括投入にも対応するため、プロシージャルなジオメトリ構築の起点として使えます。

主な用途 🎯

  • 手動入力したポイント同士をパターン文字列で結んでポリゴンを生成
  • Table DAT 経由のポイントデータを SOP に変換 (大量ジオメトリの一括投入)
  • 既存ジオメトリのポイントを再利用して新しいポリゴンを引き直す (Delete Geometry, Keep Points)
  • Group メソッドで既存ポイント群を一定間隔ごとに分割してポリゴン化
  • 三角・四角ポリゴンの試作やプロシージャル形状の起点として利用

データフロー 🔄

入力 (オプション): 既存ジオメトリ SOP / Points Table DAT

ポイント取り込み (Position / Weight / Named Attributes)

Method (Group または Pattern) でポリゴン接続を決定

出力: ポイントとポリゴンを持つ SOP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Points Page 📁

Points DAT 取り込み関連パラメータ 📥

Points DAT .pointdat 📊
– ポイントデータを格納した Table DAT へのパス
– デフォルトでは無名カラムの先頭 4 列が x / y / z / w として解釈される
– Named Attributes をオンにすると P(0) / N(0) / Cd(0) / uv(0) 等の名前付き属性を列名で指定可能

Named Attributes .namedattribs 🏷️
– Points DAT で名前付きカラム経由の属性定義を有効化
N(0) / N(1) / N(2) を供給するときは Polygons Page の Compute Normals をオフにすること

Delete Geometry, Keep Points .keep 🗑️
– 入力ジオメトリの既存ポリゴンを破棄し、ポイントのみを残す
– この SOP で新たに生成したポリゴンと入力のポイントを組み合わせて使うときに有効

個別ポイント追加関連パラメータ ➕

Add Points .addpts
– オンにすると下記の Point シーケンス経由で個別ポイントを追加できる

Point .point 🔢
– 追加するポイントのシーケンス (各エントリで Position / Weight を指定)

Position .point0pos 📍
– 各ポイントの X / Y / Z 座標 (定数または Python 式で指定)
– 例: op('grid1').points[5].x のように他 OP のポイント座標を参照可能

Weight .point0weight ⚖️
– ポイントのスプラインウェイト (後段で NURBS / Bezier プリミティブに使われる場合に形状へ影響)
– ポリゴンやメタボールには影響しない


Polygons Page 📁

Method .method 🎛️

入力ポイントからポリゴンを生成する方式の切替

項目 内部名 説明
By Group .group Group / Add / N パラメータでサブグループ単位にポイントを結んでポリゴン化
By Pattern .pattern Polygons Table DAT または Polygon シーケンスのパターン文字列でポイント番号を直接指定して結ぶ

Group メソッド関連パラメータ 🗂️

Group .group 🎯
– 接続対象とするポイントのサブセットを指定するパターン文字列
– Pattern Matching に従う (*0-15 等)

N .inc 🔢
– Groups of N Points モード時に何点ごとにポリゴンを切り出すかの増分

Closed .closedall 🔒
– Group メソッドで生成されるポリゴンを閉じるかどうか
– オンで閉ポリゴン、オフで開ポリゴン (ライン)

Add .add

Group メソッドでサブグループをポリゴン化する単位

項目 内部名 説明
All Points .all Group で絞ったすべてのポイントを 1 つのポリゴンに結ぶ
Groups of N Points .group N パラメータで指定した個数ごとにポイントを区切ってポリゴンを連続生成

Pattern メソッド関連パラメータ 🧩

Polygons Table .polydat 📊
– ポリゴン定義を格納した Table DAT へのパス
– 1 列目にポイント番号列、2 列目に閉じ判定 (1 = 閉 / 0 = 開) を記述

Polygon .poly 🔢
– 追加するポリゴンのシーケンス (各エントリで Pattern / Closed を指定)

Pattern .poly0pattern 🧩
– ポリゴンを構成するポイント番号の接続リスト
– 形式: {from}-{to}[:{every}][,{of}]
– 例: 1 2 3 4 / 1 3-15 16 8 / 0-15:2 / !4 / * (全ポイント) / 9-0 (逆順)

Closed .poly0closed 🔒
– 個別ポリゴンを閉じるかどうか
– オンで閉ポリゴン


Post Page 📁

後処理関連パラメータ 🧹

Remove Unused Points .remove 🗑️
– ポリゴンに参加していないポイントを削除し、接続済みポイントのみを残す

Compute Normals .normals 🧭
– ジオメトリ全体の法線を再計算する
– Points DAT で N(0) / N(1) / N(2) を供給している場合はオフにして上書きを防ぐ


実践アイデア 💡

Example 1: 4 点を結んで四角ポリゴンを作る基本パターン 🟢

Add SOP (Add Points=ON, 4 ポイント定義, Method=By Pattern, Pattern=0 1 2 3, Closed=ON) → Geometry COMP → Render TOP

Add SOP 単体で 4 つのポイントを手動定義し、Pattern メソッドで連番接続して閉じた四角ポリゴンを生成する最小構成。プロシージャル形状の試作起点として使えます。

  1. Add SOP を配置し、Add Points をオンに切り替え
  2. Point シーケンスで 4 ポイント追加し Position に四角形の 4 隅座標を設定
  3. Polygons Page で MethodBy Pattern に設定
  4. Polygon シーケンスを 1 個追加し Pattern0 1 2 3Closed をオン
  5. Geometry COMP に接続し Render TOP で四角ポリゴンが描画されることを確認

Example 2: Table DAT 経由で大量ポイントを一括投入してメッシュ化 📊

Table DAT (ポイント座標 + 接続リスト) → Add SOP (Points DAT, Polygons Table) → Geometry COMP

外部 CSV 等から読み込んだポイント座標と接続定義を Table DAT 経由で Add SOP に流し込み、データ駆動でメッシュを構築するパイプライン。プロシージャルにジオメトリを生成する用途に向きます。

  1. ポイント座標を格納した Table DAT を用意 (1 列目から x/y/z/w、もしくは Named Attributes 形式)
  2. ポリゴン接続を格納した別の Table DAT を用意 (1 列目にポイント番号、2 列目に閉じ判定)
  3. Add SOP の Points DAT に座標 DAT のパスを設定
  4. MethodBy PatternPolygons Table に接続 DAT のパスを設定
  5. Geometry COMP に接続し、DAT を編集するだけでメッシュが更新されることを確認

Example 3: 既存ジオメトリのポイントを再利用してポリゴンを引き直す ♻️

Grid SOP → Add SOP (Delete Geometry/Keep Points=ON, Method=By Group, Add=Groups of N Points, N=4) → Geometry COMP

Grid SOP のポイント群だけを残してポリゴンを破棄し、Add SOP の Group メソッドで N=4 ごとに新しいポリゴンを発行して再メッシュ化する例。既存ジオメトリの位相を組み替える用途で使えます。

  1. Grid SOP を配置しポイント数を確保 (例: 5×5 = 25 ポイント)
  2. Add SOP を後段に接続し Delete Geometry, Keep Points をオン
  3. MethodBy GroupAddGroups of N Points に設定
  4. N = 4 を指定して 4 点ごとに四角ポリゴンを発行
  5. Closed をオンにして閉ポリゴン化

関連オペレータ 🔗

類似機能OP 🔍

  • Point SOP — ポイント属性 (位置・法線・色) の編集に特化した SOP
  • Line SOP — シンプルな直線ポリゴン生成に特化

組み合わせ推奨OP 🔄

  • Merge SOP — Add SOP の出力を他ジオメトリと統合
  • Copy SOP — Add SOP で作った基本形状をテンプレートに沿って複製
  • Transform SOP — Add SOP で生成したポリゴンの後段で位置・回転・スケールを補正
  • Geometry COMP — Add SOP の出力をレンダリングパイプラインに投入

前処理・後処理SOP 🎯


Info CHOP情報 📊

Add SOP は Info CHOP による詳細情報取得に対応しています。

ジオメトリ統計 📐

  • num_points: この SOP に含まれるポイント数
  • num_prims: この SOP に含まれるプリミティブ数
  • num_particles: この SOP に含まれるパーティクル数

GPU 転送タイミング 🎮

  • last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)
  • last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: 直近のクック所要時間 (ミリ秒)
  • cook_frame: このオペレータが最後にクックされたフレーム番号
  • warnings: このオペレータの警告数
  • errors: このオペレータのエラー数

クック統計 ⏱️

  • total_cooks: total_cooks — プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: cook_time — 直近のクック所要時間 (ミリ秒)
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: ポイントは生成されたがポリゴンが表示されない
✅ Solution:

  • MethodBy Pattern のときは Polygon シーケンスまたは Polygons Table でポイント番号を指定しているか確認
  • MethodBy Group のときは Group パターンにマッチするポイントが存在するか確認
  • Add Points をオンにしただけではポリゴンは作られない — Polygons Page 側で接続を定義する必要がある

❌ Problem: Points DAT に書いた座標が反映されない
✅ Solution:

  • Table DAT の 1 行目がヘッダー扱いになっていないか確認 (Named Attributes オフ時は無名カラム前提)
  • Named Attributes をオンにしたら P(0) / P(1) / P(2) のカラム名で記述されているか確認
  • DAT のパスが正しく解決されているか、別 COMP 配下なら相対パス記述を見直す

❌ Problem: 法線がおかしい / 表面が真っ黒になる
✅ Solution:

  • Points DAT で N(0) / N(1) / N(2) を供給している場合は Polygons Page の Compute Normals をオフにして上書き競合を回避
  • 下流に Point SOP を置いて法線を明示計算する
  • ポリゴンの巻き順 (winding order) が反転していないか Pattern の順序を反転して確認

❌ Problem: Groups of N Points モードでポリゴン数が想定と合わない
✅ Solution:

  • N パラメータの値と、入力ポイント総数の関係を確認 (端数ポイントは無視される)
  • Group パターンで対象ポイントが意図どおり絞れているか確認
  • Closed のオン/オフで開ポリゴン (ライン) と閉ポリゴンの見え方が変わる点に注意

参考資料 📚

その他 🔗

公式リソース 📖

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