
概要 📖 – ポイント間をつないでポリゴンを生成
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
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 メソッドで連番接続して閉じた四角ポリゴンを生成する最小構成。プロシージャル形状の試作起点として使えます。
- Add SOP を配置し、
Add Pointsをオンに切り替え Pointシーケンスで 4 ポイント追加しPositionに四角形の 4 隅座標を設定- Polygons Page で
MethodをBy Patternに設定 Polygonシーケンスを 1 個追加しPatternを0 1 2 3、Closedをオン- Geometry COMP に接続し Render TOP で四角ポリゴンが描画されることを確認
Example 2: Table DAT 経由で大量ポイントを一括投入してメッシュ化 📊
Table DAT (ポイント座標 + 接続リスト) → Add SOP (Points DAT, Polygons Table) → Geometry COMP
外部 CSV 等から読み込んだポイント座標と接続定義を Table DAT 経由で Add SOP に流し込み、データ駆動でメッシュを構築するパイプライン。プロシージャルにジオメトリを生成する用途に向きます。
- ポイント座標を格納した Table DAT を用意 (1 列目から x/y/z/w、もしくは Named Attributes 形式)
- ポリゴン接続を格納した別の Table DAT を用意 (1 列目にポイント番号、2 列目に閉じ判定)
- Add SOP の
Points DATに座標 DAT のパスを設定 MethodをBy Pattern、Polygons Tableに接続 DAT のパスを設定- 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 ごとに新しいポリゴンを発行して再メッシュ化する例。既存ジオメトリの位相を組み替える用途で使えます。
- Grid SOP を配置しポイント数を確保 (例: 5×5 = 25 ポイント)
- Add SOP を後段に接続し
Delete Geometry, Keep Pointsをオン MethodをBy Group、AddをGroups of N Pointsに設定N= 4 を指定して 4 点ごとに四角ポリゴンを発行Closedをオンにして閉ポリゴン化
関連オペレータ 🔗
類似機能OP 🔍
組み合わせ推奨OP 🔄
- Merge SOP — Add SOP の出力を他ジオメトリと統合
- Copy SOP — Add SOP で作った基本形状をテンプレートに沿って複製
- Transform SOP — Add SOP で生成したポリゴンの後段で位置・回転・スケールを補正
- Geometry COMP — Add SOP の出力をレンダリングパイプラインに投入
前処理・後処理SOP 🎯
- 前処理: Grid SOP、Sphere SOP、Point SOP
- 後処理: Transform SOP、Merge SOP、Convert 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:
MethodがBy PatternのときはPolygonシーケンスまたはPolygons Tableでポイント番号を指定しているか確認MethodがBy 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のオン/オフで開ポリゴン (ライン) と閉ポリゴンの見え方が変わる点に注意
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Add SOP
- TouchDesigner公式ドキュメント – Point SOP
- TouchDesigner公式ドキュメント – Pattern Matching

