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

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

Table DAT の行列テーブル保持機能を示す図

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

概要 📖 – 行・列で構成されるテーブルデータの保持と編集

Table DATは、行と列で構成されるテーブル形式のデータを保持・編集・ファイル同期する DATです。CSV / TSV / .dat ファイルの読み書きから状態管理テーブル、Export 対応表まで、テーブルデータを扱うあらゆる用途で基幹となります。

主な用途 🎯

  • CSV / TSV / .dat ファイルのロードとテーブル保持
  • 状態管理テーブルとして行・列構造で値を一括管理
  • パラメータ Export 用の対応表 (channel ↔ parameter) を保持
  • Sync to File でディスク上ファイルとリアルタイム双方向同期
  • Fill by Row / Fill by Column で式を使った大量行・列の動的生成

データフロー 🔄

入力: 直接編集 / ファイル (CSV/TSV/.dat) / Fill 式

テーブル保持 (行 × 列セル)

出力: テキスト DAT (テーブル形式)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Table Page 📋

編集とファイル入出力 📝

Edit.. .edit ✏️
– クリックでテキストエディタを開き、テーブル内容を直接編集
– 行・列の追加・削除・セル値の書き換えに利用

File .file 📂
– 読み込むファイルのパスとファイル名を指定
– 対応形式: カンマ区切り (.csv) / タブ区切り (.tsv) / TouchDesigner DAT ファイル (.dat)
– その他のテキスト形式 (.txt / .py / .glsl 等) はタブ区切りとして扱われる

Sync to File .syncfile 🔁
– On 時、プロジェクト起動時にディスク上のファイルを DAT に読み込み、以降は双方向同期
– DAT 側の編集はファイルに即書き戻され、ファイル側の変更も DAT に反映される
– ファイルが存在しない場合は DAT の最初の更新時に作成される

Load on Start .loadonstart 🔄
– On 時、プロジェクト起動時にディスクからファイルを 1 回だけ読み込む
Sync to File と異なり、起動後はファイル監視を行わない

Write on Toe Save .write 💾
– On 時、.toe プロジェクト保存時に DAT の内容をファイルに書き出す

Remove Blank Lines .removeblank 🧹
– On 時、ファイル読み込み時に空行を空の行に変換せず除去する

Default Read Encoding .defaultreadencoding 🔤

ファイル読み込み時の文字エンコーディングを指定するメニュー

項目 内部名 説明
Auto Detect .manual エンコーディングを自動判定
UTF8 .utf8 UTF-8 として読み込み
UTF16-LE .utf16le UTF-16 Little Endian として読み込み
UTF16-BE .utf16be UTF-16 Big Endian として読み込み
CP1252 .cp1252 Windows-1252 として読み込み

Fill Page 📁

Fill Type .fill 🎛️

テーブルの行・列をどのように生成・充填するかを決定するメニュー

項目 内部名 説明
Manual .manual ユーザが手動で行・列を追加 (デフォルト)
Set Size .setsize Rows / Columns パラメータでサイズだけ設定 (セルは未充填)
Set Size and Contents .setsizeandcontents Rows / Columns でサイズ設定 + Cell Expression で全セルを式評価
Fill by Column .fillbycol Rows で行数を決め、Names / Cell Expression で列ごとに内容を定義
Fill by Row .fillbyrow Columns で列数を決め、Names / Cell Expression で行ごとに内容を定義

サイズと内容の式 📐

Rows .rows 🔢
– テーブルの行数を指定 (該当する Fill Type で有効)

Columns .cols 🔢
– テーブルの列数を指定 (該当する Fill Type で有効)

Cell Expression .cellexpr 🧮
Set Size and Contents モードで各セルに適用される式
– 式内で me.subRow / me.subCol を参照すると行・列インデックスが取得できる

Include Names .includenames 🏷️
– On 時、テーブル先頭に名前用の行 or 列を追加
Fill by Row / Fill by Column で指定した名前で充填される

Fills .fills 🔁
Fill by Row / Fill by Column モードでの fill 情報のシーケンス
– 各 fill エントリは Names / Cell Expression のペアで構成される

Names .fills0names 🔤
– 1 つ以上の列名 / 行名を空白区切りで指定
– 式の場合は Python リスト形式も可 (例: ['heading1', 'heading2'])
– 連番ブロックの起点パラメータ

Cell Expression (per fill) .fills0expr 🧮
Fill by Row / Fill by Column モードで各セルに適用される式
– 式内で me.subRow / me.subCol 参照可


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: CSV ファイルを状態管理テーブルとして読み込み 📊

Table DAT (File + Sync to File) → DAT to CHOP → Math CHOP
  1. Table DAT の File パラメータに states.csv を指定
  2. Sync to File を On にしてディスクと双方向同期を確立
  3. 後段の DAT to CHOP で数値列を CHOP チャンネル化
  4. Math CHOP で値域を 0〜1 に正規化して制御信号化

Example 2: Fill by Row で式を使った動的テーブル生成 🧮

Table DAT (Fill by Row) → DAT to CHOP
  1. Fill Type を Fill by Row に設定
  2. Columns を必要な列数に、Names に x y z 等の列名を設定
  3. Cell Expression に me.subRow * 0.1 等の式を入れて行ごとに値生成
  4. 後段の DAT to CHOP で各列をチャンネルとして取り出す

Example 3: パラメータ Export 用の対応表を保持 🎯

CHOP → Export (DAT Table by Name) → Table DAT → 対象 OP パラメータ
  1. Table DAT に 1 列目 channel 名 / 2 列目 path:parameter 形式の対応表を作成
  2. Export 元 CHOP の Export MethodDAT Table by Name に設定
  3. Export Table パラメータでこの Table DAT を指定
  4. CHOP のチャンネル値が対応表に従って対象 OP のパラメータに反映される

関連オペレータ 🔗

類似機能OP 🔍

  • Text DAT — テーブル形式ではない生テキストの保持
  • Convert DAT — テキスト ↔ テーブル形式変換の専門 DAT

組み合わせ推奨OP 🔄

  • DAT to CHOP — Table DAT のセル値を CHOP チャンネル化
  • CHOP to DAT — CHOP チャンネルを Table DAT に書き出す
  • Select DAT — テーブルから特定の行・列だけ抽出
  • Evaluate DAT — テーブル内の各セル式を評価して新テーブル生成
  • Math CHOP — DAT to CHOP 後の値の正規化

前処理・後処理DAT 🎯


Info DAT情報 📊

Table DAT は Info DAT による詳細情報取得に対応しています。

DAT 固有情報 📄

  • num_rows: テーブルの行数
  • num_cols: テーブルの列数
  • type: DAT の型 (table / text)
  • is_table: テーブル形式の場合 1、テキスト形式の場合 0

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間(ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

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

よくある問題と解決策 🔧

❌ Problem: ファイルを指定したのに内容が読み込まれない
✅ Solution:

  • Load on Start または Sync to File のどちらかを On にする (どちらも Off の場合、ファイルは読まれない)
  • ファイルパスが絶対パス / プロジェクト相対パスとして正しく解決できるか確認
  • Default Read Encoding がファイル実エンコーディングと一致しているか確認 (UTF8 ファイルを CP1252 で読むと文字化け)

❌ Problem: 数値として扱いたいセルが文字列扱いになる
✅ Solution:

  • 後段で DAT to CHOP を使い、Output 形態を指定してチャンネル化
  • セル値に余分な空白・カンマ・引用符が含まれていないか Edit.. で確認
  • Python から float(op('table1')[r,c].val) でキャストして使用

❌ Problem: Sync to File を On にしたらファイル側の変更が反映されない
✅ Solution:

  • ファイルが他のアプリケーション (Excel 等) で排他ロックされていないか確認
  • ファイル監視は OS イベント依存。ネットワークドライブ上では検知漏れが起きることがある
  • Load on Start + 手動 Reload パルスへ運用を切り替える

❌ Problem: Fill by Row / Fill by Column で値が想定通りに入らない
✅ Solution:

  • Names パラメータの空白区切り / Python リスト記法を確認 (例: ['x','y','z'])
  • Cell Expression 内で me.subRow / me.subCol を正しく参照しているか確認
  • Include Names の On/Off によって行・列のインデックスがずれることに注意

参考資料 📚

公式リソース 📖

コミュニティ 💬

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