
概要 📖 – ジオメトリの点・面情報をテーブル化
SOP to DATは、入力した SOP のジオメトリから点・頂点・プリミティブのデータを読み出し、テーブル形式の DAT として出力する DATです。Extract で点・頂点・面・全体のいずれを取り出すかを選び、Attributes で位置や色などの属性を指定すると、ジオメトリの中身を行と列の表として一覧できます。
主な用途 🎯
- 点や頂点の位置を表形式で取り出してデバッグ・確認する
- カスタム属性を抽出し、Table DAT で値を一覧表示する
- プリミティブ情報を読み出し、頂点の並びや閉じ判定を確認する
- File Out DAT と組み合わせて頂点座標を
.csvとして書き出す - グループで対象を絞り込み、必要な点・面だけをテーブル化する
データフロー 🔄
入力: SOP (parameter で指定)
↓
Extract で取り出す対象を選択 (点 / 頂点 / 面 / 全体)
↓
Group で範囲を絞り込み
↓
Attributes で抽出する属性を指定
↓
出力: DAT (テーブル)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
SOP to Page 📋
ソース指定 .source 🔌
データを読み取る元のジオメトリと範囲を指定する
SOP .sop 🔌SOP (読み取り元のジオメトリ) — データを取り出す対象の SOP をパス参照で指定します
ここで指定したジオメトリの点・頂点・プリミティブが、後段でテーブルに変換される基点になります
Group .group 🎯Group (抽出グループ) — 取り出す対象を点グループまたはプリミティブグループで絞り込みます
空欄のままにすると、すべての点・面が抽出対象になります
抽出対象の選択 .extract 📐
ジオメトリから取り出すデータの種類を選ぶメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Points | .points |
点 (Point) のデータを取得します |
| Vertices | .vertices |
頂点 (Vertex) のデータを取得します |
| Primitives | .primitives |
プリミティブ (面) のデータを取得します |
| Detail | .detail |
ジオメトリ全体に対する 1 件分のデータ (Detail) を取得します |
属性の指定 .attrib 🏷️
テーブルに書き出す属性を指定する
Attributes .attrib 🏷️Attributes (抽出する属性) — テーブルに書き出す属性名を指定します
点の属性には位置を表す P や重みを表す Pw などがあり、プリミティブには構成する点番号一覧の vertices や閉じ判定の close があります
インデックス列 (点番号またはプリミティブ番号) は常に出力されます
Copy Vertex UV to Points .uvforpts 🔁Copy Vertex UV to Points (頂点 UV を点へコピー) — 頂点が持つ UV 座標を、対応する点の UV としてコピーします
Common Page 🔧
Language .language 📝
DAT が動作するスクリプト言語の決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT のスクリプト言語を使用 |
| Node | .node |
この DAT 自身のスクリプト言語を使用 |
Edit/View Extension .extension 📄
外部エディタに公開するファイル拡張子の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| dat | .dat |
汎用的なファイル拡張子 dat を使用 |
| From Language | .language |
DAT のスクリプト言語に応じた拡張子を自動選択 |
| Custom Extension | .custom |
Custom Extension で指定したカスタム拡張子を使用 |
Custom Extension .customext 🔤
Edit/View Extension が Custom Extension のときに適用される拡張子:
- Custom Extension 文字列:
Edit/View Extensionがcustomのときに使用される任意のファイル拡張子
Word Wrap .wordwrap 🔁
ノード表示でのワードラップ (折り返し) の有効化
| 項目 | 内部名 | 説明 |
|---|---|---|
| Input | .input |
入力 DAT の Word Wrap 設定を継承 |
| On | .on |
Word Wrap を有効化 (長い行を折り返して表示) |
| Off | .off |
Word Wrap を無効化 (長い行は横スクロール) |
実践アイデア 💡
Example 1: 点の座標を表で確認 👀
Sphere SOP → SOP to DAT (Extract=Points, Attributes=P) → Table DAT
ジオメトリの各点がどんな座標を持っているのかを、テーブル形式で一覧表示して確認する基本フロー。Extract を Points に、Attributes に位置を表す P を指定すると、点番号ごとに XYZ 座標が並んだ表が得られ、後段の Table DAT で値の中身を目視デバッグできます。
- Sphere SOP などの形状を配置してジオメトリを用意
- SOP to DAT を後段に置き、
sopパラメータで対象の SOP を参照 - Extract を
Points、Attributes に位置属性Pを指定 - 後段の Table DAT に接続して各点の XYZ 座標を一覧表示
Example 2: 頂点座標を書き出し 💾
Grid SOP → SOP to DAT (Extract=Points, Attributes=P) → File Out DAT
ジオメトリの点座標を外部ファイルとして保存し、別ツールでの解析やバックアップに使う用途。SOP to DAT で点の位置をテーブル化したあと、File Out DAT 経由で CSV / TSV として書き出すと、表計算ソフトや外部スクリプトから座標値を読み込めます。
- 保存したいジオメトリ SOP を入力に用意
- SOP to DAT の Extract を
Points、Attributes にPを指定 - 出力されたテーブルを後段の File Out DAT に接続
- File Out DAT で
.csvまたは.tsvとして保存
Example 3: 面の構成情報を取り出して確認 📐
Grid SOP → SOP to DAT (Extract=Primitives, Attributes=vertices) → Table DAT
プリミティブ (面) が、どの点番号の組み合わせで構成されているかを表で確認する用途。Extract を Primitives に、Attributes に vertices を指定すると、各面を構成する点番号の並びがテーブル化され、ジオメトリのトポロジ (つながり方) を把握できます。
- Grid SOP などの面を持つジオメトリを配置
- SOP to DAT の Extract を
Primitivesに設定 - Attributes に
vertices(構成点番号) を指定 - 後段の Table DAT で各面の点番号の並びを確認
Example 4: グループで点を絞り込み 🎯
Group SOP → SOP to DAT (Extract=Points, Group=指定) → Table DAT
ジオメトリ全体ではなく、特定のグループに属する点だけをテーブル化したい場合の用途。前段の Group SOP で名前付きグループを作っておき、SOP to DAT の Group パラメータにそのグループ名を指定すると、対象を絞り込んだ表が得られます。
- Group SOP で対象の点に名前付きグループを作成
- SOP to DAT の Extract を
Pointsに設定 - Group パラメータに前段で作ったグループ名を入力
- 後段の Table DAT でグループ内の点だけが並んだ表を確認
関連オペレータ 🔗
類似機能OP 🔍
- SOP to CHOP — 同じジオメトリ読み出しを DAT ではなく CHOP チャンネルへ展開
組み合わせ推奨OP 🔄
- Table DAT — SOP to DAT の代表的な表示先・保存先
- File Out DAT — テーブル化したジオメトリ情報をディスクへ書き出し
- Convert DAT — 出力テーブルを JSON / CSV 等のテキスト形式へ変換
- Select DAT — 出力テーブルから必要な行・列だけを抜き出す後処理
前処理・後処理DAT 🎯
Info CHOP情報 📊
SOP to DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols でテーブル規模を、total_cooks / cook_time / cook_frame / cook_abs_frame で実行統計を参照でき、後段 DAT の再評価タイミング判定や負荷監視に利用できます。
DAT 固有情報 📋
num_rows: DAT の行数num_cols: DAT の列数type: DAT の型 (table / text)is_table: テーブル形式の場合 1、テキスト形式の場合 0
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: テーブルに想定した属性の列が出ない
✅ Solution:
- Attributes に取り出したい属性名 (位置なら
P等) が正しく入力されているか確認 - 元のジオメトリにその属性が存在するか、前段の SOP で属性が付与されているかを確認
- Extract が点・頂点・面のどれを対象にしているかと、属性の所属 (点属性 / 頂点属性 等) が一致しているか確認
❌ Problem: 行数が想定と合わない / 余計な点や面が含まれる
✅ Solution:
- Group パラメータで対象を絞り込み、必要な点・面だけを抽出
- 前段の Group SOP でグループを作成してから Group に指定
- Extract が
Points/Primitives/Detailのどれになっているかを確認 (対象が変われば行数も変わる)
❌ Problem: UV 座標が点側に出てこない
✅ Solution:
Copy Vertex UV to Pointsをオンにして頂点 UV を点 UV へコピー- 元のジオメトリで UV が頂点属性として保持されているか確認
- Extract を
Verticesにして頂点単位で UV を直接読み出す方法も検討
❌ Problem: 点数が多いジオメトリで動作が重い
✅ Solution:
- Group で必要な範囲だけに絞り込み、抽出する点・面の数を削減
- Attributes を必要な属性だけに限定して列数を減らす
- 後段で値が変わらない場合は Null DAT で出力を固定し、不要な再計算を抑制
参考資料 📚
その他 🔗
- TouchDesigner Wiki — DAT 概要
- TouchDesigner Wiki — Category:DATs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – SOP to DAT
- SOP to CHOP(同じジオメトリ読み出しの CHOP 版)
- Table DAT(出力テーブルの表示・保存先)
- Convert DAT(テキスト形式への変換)

