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

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

Switch DAT の入力切り替え機能を示す図

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

概要 📖 – 入力を番号で切り替え

Switch DATは、複数つないだ入力 DAT のうち番号で指定した 1 つだけを出力に通す DATです。選ぶ番号は最初の入力が0から始まり、Indexに数値や式を入れて切り替えます。負の番号を使うと末尾から数えた入力を選べ、番号が範囲外になったときの折り返し方も選べます。

主な用途 🎯

  • 複数つないだ入力 DAT のうち1 つだけを番号で選んで下流に流す
  • 数値や式で番号を切り替え、表示するテーブルを動的に変える
  • 状態やモードに応じて参照するデータを切り替える分岐の起点にする
  • 番号が範囲外になったときの振る舞いを選んで安全に折り返す
  • 負の番号を使って末尾から数えた入力を選ぶ

データフロー 🔄

入力: 複数の DAT (input0, input1, …)

番号の決定 (Index に数値や式を入力)

範囲外の処理 (Extend: Clamp / Loop / ZigZag)

出力: 選ばれた 1 つの入力テーブル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Switch Page 📋

入力の選択番号 .index 🔢

通す入力を番号で指定するパラメータ

Index .index 🔢
Index (選択番号) — どの入力を出力に通すかを番号で指定します。最初の入力が0、次が1と続きます。
– 数値だけでなく式も書けるため、ほかのオペレータの値と連動させて切り替える番号を動的に変えられます。

範囲外の処理 .extend 🔄

Extend (範囲外の処理) — 選択番号が入力の数を超えたときの折り返し方を決めるメニューパラメータ。負の番号も使えます。

項目 内部名 説明
Clamp .clamp 範囲外の番号を最小・最大の有効な番号に丸める (端で止める)
Loop .loop 範囲を超えたら先頭に戻って繰り返す (循環)
ZigZag .zigzag 端まで来たら向きを反転して折り返す (往復)

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: 番号でテーブルを切り替え 🔀

Table DAT (×3) → Switch DAT (Index で選択) → DAT to CHOP

内容の異なる複数の Table DAT を Switch DAT に並べてつなぎ、Index の数値を変えるだけで下流に流すテーブルを切り替える基本フロー。表示中のデータをワンタッチで差し替えたいときに使う。

  1. Table DAT を 3 つ用意し、それぞれ別の内容を入れる
  2. Switch DAT を後段に配置し、3 つの Table DAT を入力につなぐ
  3. Index0 / 1 / 2 と変えて出力が切り替わることを確認
  4. 後段の DAT to CHOP 等に渡して数値として利用

Example 2: 式で参照データを分岐 🧮

Select DAT (×2) → Switch DAT (Index に式) → Web Server DAT

Switch DAT の Index に式を書いて、ほかのオペレータの状態に応じて参照するデータを自動で切り替える用途。モードや状態フラグの値を式で参照すれば、配線を変えずに分岐の出力先を動的に決められる。

  1. 切り替えたいデータ源 (例: Select DAT など) を複数 Switch DAT につなぐ
  2. Index に状態を表す値を返す式を記述 (例: op('state')['mode',1])
  3. 状態が変わると自動で出力テーブルが切り替わることを確認
  4. 後段の Web Server DAT 等で配信

Example 3: 番号を循環させて巡回 🔄

Table DAT (×4) → Switch DAT (Extend=Loop) → Out DAT

Count CHOP などで増え続けるカウンタ値を Switch DAT の Index に渡し、Extend を Loop にしておくことで、入力数を超えても先頭に戻りながら順番にテーブルを巡回表示する用途。スライドショー的な切り替えに向く。

  1. 巡回させたい Table DAT を複数 Switch DAT につなぐ
  2. ExtendLoop に設定し、範囲外でも先頭へ戻るようにする
  3. 増え続けるカウンタ値を Index に式で渡す
  4. 入力数を超えても先頭から繰り返し巡回することを確認

Example 4: 末尾から数えて選択 🎯

DAT (×3) → Switch DAT (Index=-1, Extend=Clamp) → Null DAT

Switch DAT の Index に負の番号を入れて、末尾から数えた入力を選ぶ用途。最後につないだ入力を常に出したいときに Index を -1 にしておくと、入力の本数が変わっても末尾を選び続けられる。

  1. 複数の DAT を Switch DAT につなぐ
  2. Index-1 を入力して末尾の入力を選択
  3. ExtendClamp にして範囲外を端で止める
  4. 後段の Null DAT で出力を固定して下流へ渡す

関連オペレータ 🔗

類似機能OP 🔍

  • Select DAT — 入力線をつながず DAT パラメータでパス参照して 1 つの DAT を取り込む。番号ではなくパスで選ぶ対の用途

組み合わせ推奨OP 🔄

  • Table DAT — Switch DAT の代表的な入力源。複数並べて番号で切り替える
  • Merge DAT — 複数テーブルを 1 つに結合する。切り替えではなく合成したいときの対比
  • Null DAT — 切り替え後の出力を固定点として下流に渡し、参照先を安定させる
  • Out DAT — 選ばれたテーブルをコンポーネントの出力として外へ出す

前処理・後処理DAT 🎯


Info CHOP情報 📊

Switch 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: Index を変えても出力が切り替わらない
✅ Solution:

  • 選びたい入力が Switch DAT の入力線に正しくつながっているか確認 (つないでいない番号は選べません)
  • Index が最初の入力 0 から数える点を確認 (1 番目の入力は 0)
  • Index に式を入れている場合は、式が想定した整数を返しているか Index 欄の表示値で確認

❌ Problem: 範囲外の番号を入れたとき意図しない入力が出る
✅ Solution:

  • ExtendClamp / Loop / ZigZag のどれになっているか確認
  • 端で止めたいだけなら Clamp、巡回したいなら Loop、往復したいなら ZigZag を選ぶ
  • 想定外の折り返しが起きる場合は Index の値が入力数の範囲に収まっているか見直す

❌ Problem: 負の番号 (-1 など) を入れても末尾が選ばれない
✅ Solution:

  • Switch DAT は負の番号で末尾から数えられるので、Index-1 を入れて末尾を選ぶ
  • 入力の本数が想定どおりか確認 (入力が 1 つだけだと負の番号でも同じ入力が出ます)
  • ExtendClamp にして、極端に小さい負の値でも端で止まるようにする

参考資料 📚

その他 🔗

公式リソース 📖

関連記事 🔗

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