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

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

SOP to DAT のジオメトリ→テーブル変換機能を示す図

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

概要 📖 – ジオメトリの点・面情報をテーブル化

SOP to DATは、入力した SOP のジオメトリから点・頂点・プリミティブのデータを読み出し、テーブル形式の DAT として出力する DATです。Extract で点・頂点・面・全体のいずれを取り出すかを選び、Attributes で位置や色などの属性を指定すると、ジオメトリの中身を行と列の表として一覧できます。

主な用途 🎯

  • 点や頂点の位置を表形式で取り出してデバッグ・確認する
  • カスタム属性を抽出し、Table DAT で値を一覧表示する
  • プリミティブ情報を読み出し、頂点の並びや閉じ判定を確認する
  • File Out DAT と組み合わせて頂点座標を .csv として書き出す
  • グループで対象を絞り込み、必要な点・面だけをテーブル化する

データフロー 🔄

入力: SOP (parameter で指定)

Extract で取り出す対象を選択 (点 / 頂点 / 面 / 全体)

Group で範囲を絞り込み

Attributes で抽出する属性を指定

出力: DAT (テーブル)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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 ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

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 で値の中身を目視デバッグできます。

  1. Sphere SOP などの形状を配置してジオメトリを用意
  2. SOP to DAT を後段に置き、sop パラメータで対象の SOP を参照
  3. Extract を Points、Attributes に位置属性 P を指定
  4. 後段の 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 として書き出すと、表計算ソフトや外部スクリプトから座標値を読み込めます。

  1. 保存したいジオメトリ SOP を入力に用意
  2. SOP to DAT の Extract を Points、Attributes に P を指定
  3. 出力されたテーブルを後段の File Out DAT に接続
  4. File Out DAT で .csv または .tsv として保存

Example 3: 面の構成情報を取り出して確認 📐

Grid SOP → SOP to DAT (Extract=Primitives, Attributes=vertices) → Table DAT

プリミティブ (面) が、どの点番号の組み合わせで構成されているかを表で確認する用途。Extract を Primitives に、Attributes に vertices を指定すると、各面を構成する点番号の並びがテーブル化され、ジオメトリのトポロジ (つながり方) を把握できます。

  1. Grid SOP などの面を持つジオメトリを配置
  2. SOP to DAT の Extract を Primitives に設定
  3. Attributes に vertices (構成点番号) を指定
  4. 後段の Table DAT で各面の点番号の並びを確認

Example 4: グループで点を絞り込み 🎯

Group SOP → SOP to DAT (Extract=Points, Group=指定) → Table DAT

ジオメトリ全体ではなく、特定のグループに属する点だけをテーブル化したい場合の用途。前段の Group SOP で名前付きグループを作っておき、SOP to DAT の Group パラメータにそのグループ名を指定すると、対象を絞り込んだ表が得られます。

  1. Group SOP で対象の点に名前付きグループを作成
  2. SOP to DAT の Extract を Points に設定
  3. Group パラメータに前段で作ったグループ名を入力
  4. 後段の 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 で出力を固定し、不要な再計算を抑制

参考資料 📚

その他 🔗

公式リソース 📖

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