
概要 📖 – 行・列で構成されるテーブルデータの保持と編集
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 (テーブル形式)
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 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: CSV ファイルを状態管理テーブルとして読み込み 📊
Table DAT (File + Sync to File) → DAT to CHOP → Math CHOP
- Table DAT の
Fileパラメータにstates.csvを指定 Sync to Fileを On にしてディスクと双方向同期を確立- 後段の DAT to CHOP で数値列を CHOP チャンネル化
- Math CHOP で値域を 0〜1 に正規化して制御信号化
Example 2: Fill by Row で式を使った動的テーブル生成 🧮
Table DAT (Fill by Row) → DAT to CHOP
- Fill Type を
Fill by Rowに設定 - Columns を必要な列数に、Names に
x y z等の列名を設定 - Cell Expression に
me.subRow * 0.1等の式を入れて行ごとに値生成 - 後段の DAT to CHOP で各列をチャンネルとして取り出す
Example 3: パラメータ Export 用の対応表を保持 🎯
CHOP → Export (DAT Table by Name) → Table DAT → 対象 OP パラメータ
- Table DAT に 1 列目 channel 名 / 2 列目
path:parameter形式の対応表を作成 - Export 元 CHOP の
Export MethodをDAT Table by Nameに設定 Export Tableパラメータでこの Table DAT を指定- 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 によって行・列のインデックスがずれることに注意


