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

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

Indices DAT が Start / End / Level からきれいに丸めた数値系列をテーブル化する図

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

概要 📖 – グラフ軸ラベル用の数値系列を自動生成

Indices DATは、Start と End の範囲をきれいに丸めた間隔で分割し、グラフ軸ラベルに適した数値系列をテーブルとして出力する DATです。Level パラメータ (Coarse / Medium / Fine) で系列の粒度を切り替えられ、Origin で起点となる最初の値を指定できます。生成された数値は DAT to CHOP 等で下流に渡してグラフ描画やスケール表示に利用できます。

主な用途 🎯

  • グラフ・チャートの軸ラベル生成として、横軸・縦軸に並べる切りの良い数値系列をテーブルで取得
  • 可視化 UI の目盛 (tick) 値計算として、Start / End / Level から「人間が読みやすい丸めた値」を自動算出
  • データレンジに応じたスケール表記の自動更新として、入力データの最小・最大に追従して目盛ラベルを動的生成
  • 計測ダッシュボードでの軸目盛供給として、CHOP / TOP / Container COMP の UI に渡す数値列の元データとして利用
  • サンプル点・離散値系列の用意として、Level (Coarse / Medium / Fine) で粒度を切り替えながら系列を生成

データフロー 🔄

入力: Start / End / Level / Origin の各パラメータ

Indices DAT が範囲を丸めた間隔で分割

出力: 単一カラムに数値系列が並んだ DAT テーブル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Indices Page 📋

Start .start 🔢

数値系列の開始 (下端) 値:

  • Start 値: start 生成する数値範囲の開始値。範囲の下端を定義します

End .end 🔢

数値系列の終了 (上端) 値:

  • End 値: end 生成する数値範囲の終了値。範囲の上端を定義します

Level .level 📏

範囲をどの粒度で分割するかを決めるメニューパラメータ

項目 内部名 説明
Coarse .coarse 粗い粒度 (内部値 0) で範囲を分割。少ない目盛で大まかな系列を生成
Medium .medium 中程度の粒度 (内部値 1) で範囲を分割。バランスの取れた標準的な目盛
Fine .fine 細かい粒度 (内部値 2) で範囲を分割。多くの目盛を持つ細密な系列を生成

Origin .origin 🎯

系列の起点となる最初の値:

  • Origin 値: origin 系列の最初の数値 (起点)。Start と組み合わせて生成される系列のオフセットを制御

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: ライブ計測ダッシュボードの横軸ラベル生成 📊

Min/Max CHOP → Indices DAT (Start/End 参照) → DAT to CHOP → Text TOP (軸ラベル描画)

Audio Spectrum CHOP やセンサー CHOP の min/max 値を Indices DAT の Start / End にバインドし、データレンジに追従して人間が読みやすい目盛ラベルを自動生成、Text TOP でグラフ画像の横軸に重ねて表示する基本フロー。

  1. 計測したい CHOP の min/max を Analyze CHOP で抽出
  2. Indices DAT の Start / End パラメータに Analyze 結果を参照式で接続
  3. Level を Medium に設定して標準的な粒度の目盛系列を生成
  4. DAT to CHOP で系列を CHOP 化し、Text TOP のフォーマット文字列に流し込む
  5. 計測値が変化しても目盛が自動的に丸まった値で更新される

Example 2: プロット粒度を動的に切替 🔄

Slider COMP → Indices DAT (Level 切替) → DAT to CHOP → Geometry COMP (Grid 描画)

Slider COMP の値で Indices DAT の Level パラメータを Coarse / Medium / Fine の 3 段階で切り替え、生成される系列の粒度に合わせてグリッド線の本数をリアルタイムで変更するインタラクティブ可視化。

  1. Container COMP に Slider COMP を 1 つ配置
  2. Slider の値 (0/1/2) を Indices DAT の Level に Export
  3. Indices DAT の出力テーブルを DAT to CHOP で取得
  4. Geometry COMP の Grid 描画に系列を渡し、本数を動的に変動させる

Example 3: 時系列プロットの時刻軸生成 🕒

Timer CHOP → Indices DAT (時間範囲) → Text TOP (時刻ラベル) → Composite TOP

Timer CHOP で計測した経過時間レンジを Indices DAT に渡し、グラフの時刻軸に並べる丸めた時刻ラベル (例: 0s / 5s / 10s / 15s …) を自動生成して、ライブプロット画面の下部に時刻軸として合成表示する例。

  • Timer CHOP の length と elapsed を Start / End に接続
  • Level を Coarse にして主要な時刻ポイントのみ表示
  • Origin を 0 にして系列を時刻 0 から開始
  • 出力ラベルを Text TOP で文字列化し Composite TOP でプロット画像と重畳

関連オペレータ 🔗

類似機能OP 🔍

  • Constant CHOP — 固定値の系列を生成する CHOP 版 (DAT ではなく CHOP 経路)
  • Pattern CHOP — 連続値・パターン値の系列を生成する CHOP

組み合わせ推奨OP 🔄

  • DAT to CHOP — Indices DAT の数値系列を CHOP チャンネル化して下流に流す
  • Text TOP — 生成された目盛値を軸ラベルとしてレンダリング
  • Evaluate DAT — 出力テーブルの各セル値を式で加工 (単位付与・フォーマット等)
  • Convert DAT — 数値テーブルを CSV / TSV / JSON など別形式に変換
  • Analyze CHOP — 入力データの min/max を抽出して Indices DAT の Start / End に渡す

前処理・後処理DAT 🎯


Info CHOP情報 📊

Indices DAT は Info CHOP による詳細情報取得に対応しています。num_rows で生成された系列の要素数、num_cols でカラム数、total_cooks / cook_time で実行統計を参照できます。

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:

  • StartEnd の大小関係を確認 (End が Start より大きい必要あり)
  • Level パラメータの設定 (Coarse / Medium / Fine) を切り替えて粒度を変えてみる
  • Origin が範囲外に設定されていないか確認

❌ Problem: 目盛の数が多すぎる / 少なすぎる
✅ Solution:

  • Level を Coarse にすると目盛数が減り、Fine にすると増える
  • Start / End の範囲を狭めることで自動的に目盛数が変化
  • 下流で Select DAT や Evaluate DAT で必要な行だけ抽出

❌ Problem: 出力された数値が想定の小数点表記でない
✅ Solution:

  • Indices DAT は丸めた値を返すため、表示用には Evaluate DATformat() を適用
  • 整数のみ欲しい場合は Evaluate DAT で int() でキャスト
  • 単位付き表記が必要なら Substitute DAT で suffix を付与

❌ Problem: 下流の CHOP に系列が反映されない
✅ Solution:

  • DAT to CHOP の Convert パラメータが「Column to Channel」になっているか確認
  • Indices DAT が cook されているか右クリック → Recook で更新
  • Start / End の参照元 CHOP が値を持っているかドット表示で確認

参考資料 📚

その他 🔗

公式リソース 📖

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