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

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

Lookup DAT のテーブル検索機能を示す図

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

概要 📖 – 表から値を検索する

Lookup DATは、2 つの DAT を組み合わせ、Index 入力の各値を Lookup テーブル上で検索して対応する行や列を取得する DATです。Index パラメータで 行 / 列 × 数値インデックス / 値マッチ の 4 通りから解釈方法を選び、Value Location で検索対象の行や列を 名前 または インデックス で指定できます。

主な用途 🎯

  • Table DAT 上の参照表から、入力された index 値 に対応する行や列を取り出す動的ルックアップ
  • 翻訳辞書状態 → 色 / パラメータ対応表 を実行時に解決し、データ駆動で挙動を切り替える
  • CHOP to DAT 経由でテーブル化したセンサー値・状態名を Lookup DAT に通し、別テーブルの該当行を取得
  • 列名行名Value Location で指定し、テーブル構造が変わっても安定したキー参照を実現
  • File In DATWeb Client DAT で取り込んだ CSV 設定を、後段で値検索可能な参照表として扱う

データフロー 🔄

入力 1: インデックス入力 DAT (引きたい index 値の集合)

入力 2: Lookup DAT (参照テーブル本体)

Index パラメータで解釈方法を選択 (Row Indices / Col Indices / Row Values / Col Values)

Value Values モード時は Value Location + Value Name / Value Index で検索行・列を特定

Include Header で先頭行/列を含めるか決定

出力: マッチした行/列を並べた DAT

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Lookup Page 📋

Index .index 🔍

Index 入力の値をどう解釈するかを決定するメニューパラメータ

項目 内部名 説明
Row Indices .rowindices Index 入力の値を Lookup DAT の行番号 (0 始まり) として扱い、対応する行を抜き出す
Col Indices .colindices Index 入力の値を Lookup DAT の列番号 (0 始まり) として扱い、対応する列を抜き出す
Row Values .rowvalues Index 入力の値をセル値として扱い、Lookup DAT の特定列 (デフォルトは 1 列目) で一致検索し、ヒットした行を出力。検索対象列は Value Location で変更可能
Col Values .colvalues Index 入力の値をセル値として扱い、Lookup DAT の特定行 (デフォルトは 1 行目) で一致検索し、ヒットした列を出力。検索対象行は Value Location で変更可能

Value Location .valueloction 🎯

Row Values / Col Values モードで検索対象の行・列をどう指定するか

項目 内部名 説明
Name .name 検索対象の行 / 列を名前で指定。Value Name パラメータに行名 / 列名を入れる
Index .index 検索対象の行 / 列を数値インデックス (0 始まり)で指定。Value Index パラメータに番号を入れる

Value Name .valuename 🔤

Value LocationName のときに参照される行 / 列名:

  • Value Name 文字列: Value LocationName のとき、Lookup DAT 上で値検索を行う行 / 列の名前を指定する文字列

Value Index .valueindex 🔢

Value LocationIndex のときに参照される行 / 列番号:

  • Value Index 番号: Value LocationIndex のとき、Lookup DAT 上で値検索を行う行 / 列の数値インデックス (0 始まり)

Include Header .includeheader

先頭行 / 列をヘッダーとして出力に含めるトグル:

  • Include Header トグル: オンにすると、Lookup DAT の先頭行 (または先頭列) をヘッダーとして出力 DAT にも含める。列名・行名つきのテーブルを後段で扱いたい場合に有効化

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: 状態名から RGB カラー値を引く設定テーブル 🎨

Text DAT (state name) → Lookup DAT (Row Values, valuename="state") → Table DAT (rgb cols) → DAT to CHOP

アプリの現在状態名 (例: idle / active / error) を Index 入力に、状態 → RGB 対応を持つ Table DAT を Lookup 入力に接続し、状態が変わるたびに対応する RGB 行を取り出して照明や UI 色に流す用途。Value LocationName にし Value Namestate 列を指定すれば、テーブルの列順が変わっても安定して引ける。

  1. RGB 設定表を Table DAT に用意 (列: state / r / g / b)
  2. 現在の状態名を保持する Text DAT を別途用意し、Lookup DAT の 1 番目 (Index) 入力に接続
  3. RGB 設定表を Lookup DAT の 2 番目 (Lookup) 入力に接続
  4. indexRow ValuesvalueloctionNamevaluenamestate に設定
  5. 出力された 1 行を DAT to CHOP で CHOP 化し、後段の色制御に流用

Example 2: CHOP のセンサー値を範囲ラベルに変換 (バンディング) 📊

Serial CHOP → Math CHOP (bin index) → CHOP to DAT → Lookup DAT (Row Indices) → Table DAT (label rows)

センサー値をバンディングしたいときの典型パターン。Math CHOP で 0 / 1 / 2 等の bin インデックスに離散化し、CHOP to DAT でテーブル化、Lookup DAT を Row Indices モードにしてラベル表の対応行 (例: low / mid / high) を取り出す。閾値ロジックを Math 1 個に集約でき、ラベル定義もテーブル 1 つで一元管理できる。

  1. センサー CHOP の値を Math CHOP の Pre-Add / Multiply で 0 〜 N-1 の整数 bin に離散化
  2. CHOP to DAT で 1 行 1 列のインデックステーブル化
  3. ラベル定義 Table DAT (各行に label 列) を別途用意し、Lookup DAT の 2 番目入力に接続
  4. indexRow Indices に設定し、bin 番号から対応ラベル行を取り出す
  5. 後段で Select DAT 等を使い label 列のみ抽出して表示や送信に活用

Example 3: CSV 翻訳辞書を実行時にルックアップ 🌐

File In DAT (dict CSV) → Lookup DAT (Col Values, valuename="ja") ← Text DAT (key word) → Table DAT

en,ja,zh の 3 列を持つ翻訳辞書 CSV を File In DAT で読み込み、Lookup DAT の Lookup 入力に接続。引きたいキー (例: hello) を持つ Text DAT を Index 入力にし、indexRow Values に、Value LocationNameValue Nameen にして、英単語をキーに翻訳行を取り出すフロー。辞書を CSV ファイルとして外部に出すので、再起動なしに辞書編集ができる。

  1. 翻訳辞書 CSV を準備 (1 行目: en,ja,zh)
  2. File In DAT で CSV を読み込み、Convert DAT で Table 化
  3. 引きたい単語を持つ Text DAT (例: 1 セルに hello) を Lookup DAT の 1 番目入力に
  4. Convert 後の辞書 Table を Lookup DAT の 2 番目入力に接続
  5. indexRow ValuesvalueloctionNamevaluenameen に設定し、英単語キーで辞書を引く
  6. 出力された 1 行から日本語列 (ja) のセルを Table DAT 経由で参照

Example 4: OSC アドレスから handler 設定を引くディスパッチ表 📡

OSC In DAT → Select DAT (address col) → Lookup DAT (Row Values, valuename="address") → Handler Config Table

OSC 経由で送られてくるメッセージのアドレス (例: /scene/next) を Index 入力にし、アドレス → ハンドラ設定 (パラメータ / 値域 / 遷移時間 等) を持つ設定テーブルを Lookup 入力にして、メッセージごとに必要な設定行を引き当てるディスパッチパターン。アドレスとハンドラの対応を Table DAT 1 つに集約できるため、新規 OSC アドレス対応は CSV に 1 行追加するだけで完結する。

  1. OSC In DAT で受信した行から Select DAT でアドレス列のみ抽出
  2. アドレス → 設定の対応 Table (列: address / target / value 等) を別途用意
  3. 抽出アドレスを Lookup DAT の 1 番目入力、設定 Table を 2 番目入力に接続
  4. indexRow ValuesvalueloctionNamevaluenameaddress に設定
  5. 出力された設定行を DAT Execute / Parameter Execute 等のスクリプトで実行し、対応するパラメータを更新

関連オペレータ 🔗

類似機能OP 🔍

  • Select DAT — 行 / 列を名前・パターン・範囲で抽出する DAT。Lookup が index 入力との対応で動的に引くのに対し、Select は固定のセレクタで静的に切り出す
  • Substitute DAT — セル値の文字列置換 DAT。1:1 の文字列マッピングは Substitute、行・列単位の構造マッピングは Lookup と用途を分けると整理しやすい

組み合わせ推奨OP 🔄

  • Table DAT — Lookup の 2 番目入力 (参照表) の代表的なホスト。CSV 設定や辞書をここに保持する
  • File In DAT — 外部 CSV / TSV を読み込み、Convert DAT 経由で Lookup の参照表として供給
  • Convert DAT — テキスト CSV を Table に変換してから Lookup に流す前段処理
  • CHOP to DAT — CHOP のインデックス値・状態値を DAT 化し、Lookup の Index 入力として渡す
  • DAT to CHOP — Lookup で取り出した行を CHOP 化し、後段のパラメータ制御や TOP に流用
  • Select DAT — Lookup 出力から必要な列だけを取り出す後段整形
  • OSC In DAT — 受信した OSC アドレスを Lookup の Index 入力にしてハンドラディスパッチ

前処理・後処理DAT 🎯


Info CHOP情報 📊

Lookup DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols で出力テーブルの行数・列数を、total_cooks / cook_time / cpu_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: Row Values モードで一致するはずの値がヒットしない
✅ Solution:

  • Value LocationName のとき、Value Name に指定した列名が Lookup DAT の先頭行に存在するか確認 (Include Header 設定とずれていないか)
  • Index 入力側のセル値に余分な空白・改行が混じっていないか確認。前段に Substitute DAT を挟んで空白を除去
  • 値検索は大小文字を区別するため、必要なら Index と Lookup の双方を小文字化してから接続

❌ Problem: Row Indices モードで意図しない行が返ってくる
✅ Solution:

  • Include Header がオンだと出力先頭にヘッダー行が含まれ、見かけ上のインデックスがずれて見えることがある。ヘッダーを含めない場合はオフに
  • Index 入力の値が0 始まりであることを確認。1 始まりで設計しているなら前段 Math CHOP 等で -1 オフセットを入れる
  • 範囲外のインデックスは行が返らない / 空セルになる挙動なので、上限を Limit CHOP 等でクランプ

❌ Problem: Value Location を Name にしているのに名前で引けない
✅ Solution:

  • Lookup DAT の先頭行 (または先頭列) がヘッダーとして機能している必要がある。データのみで構成された Table の場合、先頭行を一度ヘッダー化しておく
  • valuename パラメータの値と Lookup 側の名前列ラベルの完全一致を再確認 (前後空白・全角半角差・ケース差に注意)
  • Value LocationIndex に切り替えて、まず数値インデックスで意図した位置のセルが引けるか分離して確認

❌ Problem: Lookup DAT が頻繁にクックされて重い
✅ Solution:

  • Index 入力側の Text / Table DAT が毎フレーム書き換わっていないか、前段の Convert DAT / CHOP to DAT のクック頻度を確認
  • 参照表側 (Lookup 入力) が大きすぎる場合、用途に応じて Select DAT で必要な行・列のみに事前絞り込み
  • Info CHOP の cook_time / cpu_time を監視し、参照表サイズと相関しているか切り分け

参考資料 📚

その他 🔗

公式リソース 📖

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