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

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

File In DAT のファイル読み込み機能を示す図

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

概要 📖 – ディスク上のテキスト / テーブルファイルを DAT に読み込む

File In DATは、ディスク上の .txt / .dat 等のテキスト・テーブルファイルを TouchDesigner の DAT として読み込む DATです。File パラメータで指定したパスの内容をそのまま保持し、Convert Text to Table をオンにするとタブ区切り文字でセルに分割されます。Refresh パルスでディスクからの再読み込みを任意のタイミングで起動できます。

主な用途 🎯

  • CSV / TSV / プレーンテキストファイルをディスクから DAT に読み込み
  • 外部スクリプト・設定ファイルを Python / GLSL ソースとして取り込み
  • タブ区切りテーブルデータを Convert Text to Table で行列形式に展開
  • ファイル更新の動的リロードを Refresh パルスで実行 (オーサリング中の hot-reload)
  • 外部ツールが書き出したログ / 結果ファイルを TouchDesigner プロジェクトに取り込み

データフロー 🔄

ファイルシステム上のテキスト / テーブルファイル

File 指定のパスを読み込み

Convert Text to Table 設定に応じてプレーンテキストまたは行列テーブルとして展開

下流 DAT へチェイン (Convert DAT / Evaluate DAT / DAT to CHOP 等)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

File In Page 📋

ファイルパス指定 📁

File .file 📄
– 読み込み対象ファイルのファイルシステム上のパスとファイル名
.txt 等のテキストファイルは通常のテキストとして読み込み
.dat 等のテーブル形式ファイルはタブ区切りテーブルとして読み込み可能
– 相対パスは .toe ファイルの位置を基点として解決される

形式変換設定 .converttable 🔁

Convert Text to Table .converttable 📊
– DAT の内容を通常のテキストから tab 区切りテーブル形式に変換するトグル
– On にすると <tab> 文字を列区切りとして解釈し、改行を行区切りとしてテーブルに展開
– Off ではプレーンテキスト 1 文字列として保持され、行 / 列のセル単位アクセスは不可

リロード制御 🔄

Refresh .refresh ♻️
– このパラメータが On に切り替わったタイミングでファイルを再読み込み
– トグル運用 (Off → On) で 1 回のリロードを起動する用途で使用
– 連続的にディスクを監視するわけではなく、明示的な状態変化が必要

Refresh Pulse .refreshpulse
– パルスでファイルをディスクから即座に再読み込み
– Python からは op('filein1').par.refreshpulse.pulse() で起動可能
– 外部エディタでファイルを編集した直後の hot-reload に最も便利


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 連携 📊

ローカル CSV ファイル → File In DAT (Convert Text to Table=On) → Table DAT → DAT to CHOP

外部ツール (Excel / スプレッドシート / Python スクリプト) が書き出した CSV を File In DAT に読み込み、Convert Text to Table をオンにして行列テーブル化し、下流の Table DAT / DAT to CHOP で数値チャンネルに変換する基本フロー。設定ファイルを再生成するたびに Refresh Pulse でホットリロードできる。

  1. File In DAT を配置し File に CSV ファイルへの絶対 / 相対パスを設定
  2. Convert Text to Table を On に切り替え、タブ区切りまたはカンマを Convert DAT 経由でタブに変換
  3. 下流に Table DAT を接続して列ヘッダー付きテーブルとして整形
  4. DAT to CHOP で必要な列を CHOP チャンネル化し制御パラメータへ供給
  5. CSV が更新されたら Refresh Pulse を発火して即時反映

Example 2: GLSL/Pythonの外部編集ワークフロー 📝

外部エディタ (VSCode 等) → File In DAT (Refresh Pulse) → GLSL TOP / Execute DAT

シェーダ (.glsl) や Python スクリプト (.py) を VSCode 等の外部エディタで編集し、保存のたびに File In DAT から TouchDesigner 側に即時取り込む構成。Convert Text to Table は Off のままプレーンテキストとして保持し、下流の GLSL TOP / Execute DAT がソースコードとして利用する。

  1. File In DAT を配置し Fileshaders/main.glsl 等のソースファイルパスを設定
  2. Convert Text to Table を Off に保ちプレーンテキストとして DAT に保持
  3. 外部エディタでファイルを編集して保存
  4. TouchDesigner 側で Refresh Pulse を発火 (または Execute DAT で startup 時に自動 pulse)
  5. GLSL TOP / Execute DAT の参照先 DAT として File In DAT を指定し、最新ソースが下流に伝播

Example 3: ログ監視+Folder DATの組合せ 🪵

Folder DAT (ディレクトリ列挙) → Script DAT (最新ファイル選択) → File In DAT (Refresh Pulse) → Text TOP 表示

Folder DAT で監視対象ディレクトリを列挙し、Script DAT で最新タイムスタンプのログファイルを選択、そのパスを File In DAT の File パラメータに動的に書き込む構成。外部プロセスが書き出すログを TouchDesigner UI 上でほぼリアルタイムに確認できる。

  1. Folder DAT を配置し監視対象ディレクトリを Folder パラメータに設定
  2. Script DAT で Folder DAT の行から最新のログファイル名を抽出
  3. Script DAT 内で op('filein1').par.file = latest_path として File In DAT の File を更新
  4. Script DAT の callback 内で op('filein1').par.refreshpulse.pulse() を呼び出して即時リロード
  5. 下流に Text TOP を接続してログ内容を画面の隅にオーバーレイ表示

関連オペレータ 🔗

類似機能OP 🔍

  • TODO

組み合わせ推奨OP 🔄

  • Convert DAT — File In で読み込んだテキストの区切り文字変換や case 変換などの後処理
  • Table DAT — Convert Text to Table 後の行列テーブルを整形 / 行追加して保持
  • Evaluate DAT — 読み込んだセル値を式評価して動的に書き換え
  • DAT to CHOP — テーブル化した数値列を CHOP チャンネルとして下流の制御系に流す
  • Folder DAT — ディレクトリ列挙で得たファイル名を File In の File パラメータに動的に流し込む
  • File Out DAT — File In と対をなす書き込み側 DAT、ラウンドトリップで永続化
  • Execute DAT — startup / state change で File In に Refresh Pulse を自動発火

前処理・後処理DAT 🎯


Info DAT情報 📊

File In DAT は Info DAT による詳細情報取得に対応しています (num_rows / num_cols / total_cooks / cook_time / cook_frame / warnings / errors 等の共通 DAT Info チャンネルを参照可能)。

DAT 固有情報 📋

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

汎用オペレータ情報 🔄

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

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

よくある問題と解決策 🔧

❌ Problem: ファイル内容が DAT に表示されない / 空のままになる
✅ Solution:

  • File パラメータのパスが正しく解決されているかを textport で op('filein1').par.file.eval() で確認
  • 相対パスを使う場合は .toe の保存場所からの相対パスとして解釈されるため、未保存プロジェクトでは絶対パスを使用
  • Refresh Pulse を 1 回発火してディスクからの再読み込みを明示的にトリガー
  • 対象ファイルに OS / 別アプリの書き込みロックがかかっていないか確認

❌ Problem: CSV / タブ区切りファイルが 1 セルに固まる
✅ Solution:

  • Convert Text to Table が On になっているかを確認
  • 区切り文字がカンマ (CSV) の場合は Convert DAT でカンマをタブに変換してから File In に通すか、File In 直下の Convert DAT で区切りを変換
  • 改行コードが CRLF / LF 混在で行が崩れていないか元ファイルを確認

❌ Problem: ファイルを編集しても TouchDesigner 側に反映されない
✅ Solution:

  • 外部エディタでの保存後に Refresh Pulse を明示的に発火
  • Execute DAT 等で定期的に自動 Refresh Pulse を発火する仕組みを追加
  • Refresh トグルを Off → On に切り替える運用に変えてリロードを起動
  • OS / アンチウイルスソフトがファイルアクセスをブロックしていないかを別アプリで開いて確認

❌ Problem: 大きなファイルでプロジェクトのクックが重くなる
✅ Solution:

  • File In の出力を Select DAT で必要な行 / 列だけ抜き出して下流に流す
  • 頻繁に Refresh Pulse を発火しすぎていないか確認し、必要なタイミングのみに絞る
  • Info DAT で cook_time を観測し、ボトルネックが File In 自身か後段かを定量確認
  • 巨大ファイルは事前に外部スクリプトで分割し、必要な部分だけを File In で読み込む構成に変更

参考資料 📚

その他 🔗

公式リソース 📖

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