
概要 📖 – ファイルからチャンネルデータを読み込み
File In CHOPは、外部ファイルや URL からチャンネルデータを読み込んで CHOP として出力するオペレータです。サンプルレートの上書きやリサンプル、チャンネル名のリネーム、範囲外の延長条件を 1 オペレータで完結します。
主な用途 🎯
- 外部ファイル(.chan / .clip / .bclip / .csv / .aiff / .wav 等)からのチャンネルデータ読み込み
- 事前収録したモーションキャプチャ・センサーログの再生
- 音声波形ファイルを CHOP チャンネルとして取り込み
- URL 経由でリモートホスト上のチャンネルファイルをロード
- サンプルレート不一致時のリサンプル・上書き制御
データフロー 🔄
入力: ファイルパス or URL
↓
ファイルパース
↓
サンプルレート調整(No Change / Override / Resample)
↓
チャンネル名解決(In File / New / Filename)
↓
範囲外延長(Extend Left / Right)
↓
出力: チャンネルデータ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
File In Page 📋
Channel File .file 📂
読み込むファイルのパス指定:
- Channel File パス: 読み込むファイルのパスまたは URL(
http://プレフィックスでリモート指定可)
Name Options .nameoption 🏷️
ロードしたチャンネルの命名方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Names In File | .infile |
ファイルに保存されているチャンネル名をそのまま使用 |
| Use New Names | .new |
Name パラメータで指定した名前を使用 |
| Use Filename | .filename |
ファイル名をチャンネル名として使用 |
Name .name 🔤
Use New Names 時のチャンネル名:
- Name パターン:
Name OptionsがUse New Namesのとき、チャンネルに付ける名前パターン
Rate Options .rateoption ⚡
ロードしたチャンネルのサンプルレートをどう扱うか
| 項目 | 内部名 | 説明 |
|---|---|---|
| No Change | .nochange |
ファイルに記録されたサンプルレートをそのまま使用 |
| Override | .override |
Sample Rate パラメータの値で上書き(リサンプルはしない) |
| Resample | .resample |
Sample Rate パラメータの値にリサンプリング(メモリ節約に有効) |
Sample Rate .rate 📊
Override / Resample 時のサンプルレート:
- Sample Rate 値: Rate Options が
OverrideまたはResampleのとき適用する 1 秒あたりのサンプル数
Extend Left .left ◀️
チャンネル開始時刻より前を参照したときの延長条件
| 項目 | 内部名 | 説明 |
|---|---|---|
| No Change | .asis |
チャンネルをそのまま(範囲外を延長しない) |
| Hold | .hold |
範囲端の値を保持して延長 |
| Slope | .slope |
範囲端の傾きを使って延長 |
| Cycle | .cycle |
チャンネルを繰り返し再生 |
| Mirror | .mirror |
1 サイクル毎に反転して繰り返し再生 |
| Default Value | .default |
Default Value パラメータの定数値で埋める |
Extend Right .right ▶️
チャンネル終了時刻より後を参照したときの延長条件
| 項目 | 内部名 | 説明 |
|---|---|---|
| No Change | .asis |
チャンネルをそのまま(範囲外を延長しない) |
| Hold | .hold |
範囲端の値を保持して延長 |
| Slope | .slope |
範囲端の傾きを使って延長 |
| Cycle | .cycle |
チャンネルを繰り返し再生 |
| Mirror | .mirror |
1 サイクル毎に反転して繰り返し再生 |
| Default Value | .default |
Default Value パラメータの定数値で埋める |
Default Value .defval 🎯
Default Value 延長モード時の埋め込み値:
- Default Value 値:
Extend Left/Extend RightがDefault Valueのとき、範囲外に埋める定数値
Rename from / Rename to .rename 🔁
ロード後のチャンネル名をパターンで一括リネーム
Rename from .renamefrom 🔤
– リネーム対象のチャンネル名パターン
– パターンマッチング記法(* や [1-10])が使用可能
Rename to .renameto 🔁
– 置換後のチャンネル名パターン
– デフォルトはリネームなし(空欄で素通り)
Value Override .overrid ✏️
特定チャンネルの値を別の定数値で上書きする
Value Override Pattern .overridpattern 🎯
– 値を上書きするチャンネルのパターン
– 空欄なら上書きを適用しない
Override Value .overridevalue 🔢
– パターンにマッチしたチャンネルへ適用する定数値
– センサーが故障したチャンネルを 0 で固定する等の用途
Refresh .refresh 🔄
ファイル変更を CHOP に反映するためのリロード制御
Refresh .refresh ♻️
– オンの間ファイルをリロードし続ける
– ファイルが書き換わったときに自動再読込したい場合に使用
Refresh Pulse .refreshpulse ⚡
– パルス起動でその瞬間に 1 度だけディスクから再読込
– 手動トリガーや DAT スクリプトからの呼び出しに使用
Common Page 🔧
Time Slice .timeslice ⏱️
Time Slice モードの強制設定:
- オン: チャンネルを「タイムスライス」モードに強制
- タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間
Scope .scope 🎯
影響を受けるチャンネルの絞り込み:
- Scope 文字列: 影響を受けるチャンネルを指定する文字列
- パターンマッチング:
*や[1-10]等のパターンが使用可能
Sample Rate Match .srselect ⚡
複数の入力 CHOP のサンプルレートが異なる場合の処理方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Resample At First Input’s Rate | .first |
最初の入力のレートで他をリサンプル |
| Resample At Maximum Rate | .max |
最高サンプルレートでリサンプル |
| Resample At Minimum Rate | .min |
最低サンプルレートでリサンプル |
| Error If Rates Differ | .err |
レート不一致でエラー |
Export Method .exportmethod 📤
CHOP チャンネルをパラメータに接続する方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| DAT Table by Index | .datindex |
DAT テーブルのインデックスでチャンネルとパラメータを対応付け |
| DAT Table by Name | .datname |
DAT テーブルの行名でチャンネルとパラメータを対応付け |
| Channel Name is Path:Parameter | .autoname |
チャンネル名を `path:parameter` 形式で記述し直接対応付け |
Export Root .autoexportroot 🌳
Channel Name is Path:Parameter モード時のパス基点:
- Export Root パス:
autonameモードでチャンネル名のパス部分を相対化する基点 OP のパス
Export Table .exporttable 📋
DAT Table エクスポート方式での参照 DAT:
- Export Table DAT:
datindex/datnameモード時に参照する DAT のパス
Rename from .commonrenamefrom 🔤
リネーム対象チャンネルのパターン:
- Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列
Rename to .commonrenameto 🔁
リネーム後の置換パターン:
- Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)
実践アイデア 💡
Example 1: 事前収録したモーションキャプチャの再生 🎭
File In CHOP (.bclip) → Math CHOP (Range 変換) → Geometry COMP の Transform
- File In CHOP の Channel File に
.bclipファイルパスを指定 - Name Options を
Use Names In Fileにして元のチャンネル名を保持 - Math CHOP で必要に応じてレンジを変換し Geometry の Transform に Export
- 本番ライブ前に収録したモーションを忠実に再生できる
Example 2: 音声ファイルの波形を CHOP として取り込み 🎵
File In CHOP (.wav) → Audio Spectrum CHOP → Visualizer
- File In CHOP の Channel File に
.wavファイルを指定 - Rate Options を
No Changeにしてファイル本来のサンプルレートを維持 - 後段の Audio Spectrum CHOP で周波数帯域を抽出
- オーディオビジュアライザの入力素材として活用
Example 3: CSV ログから時系列センサーデータを再生 📊
File In CHOP (.csv) → Filter CHOP → Visualization
- Channel File に時系列センサーログ
.csvを指定 - Rate Options を
Resampleにしてプロジェクトの共通レートに合わせる - Extend Right を
Holdにしてループ終端の値を保持 - 実機がない開発環境でもセンサー駆動のシミュレーションが可能
Example 4: URL 経由でリモートのチャンネルファイルをロード 🌐
File In CHOP (http://...) → Refresh Pulse → 制御信号
- Channel File に
http://server/data.chan形式の URL を指定 - Refresh Pulse をクリックして任意タイミングで再ダウンロード
- Override Value Pattern で欠損チャンネルを定数で補完
- リモートで生成された制御データを TouchDesigner 側に取り込む
関連オペレータ 🔗
類似機能OP 🔍
- Audio File In CHOP — 音声ファイル専用のローダー、再生位置の制御や音声特化機能を持つ
- Constant CHOP — ファイルではなく定数値を直接指定するシンプルな入力源
組み合わせ推奨OP 🔄
- Math CHOP — ロード後の値域変換やオフセット調整
- Filter CHOP — ファイル由来のノイズや段差を平滑化
- Resample CHOP — Rate Options に頼らず明示的にリサンプリング
- Trim CHOP — 再生範囲の切り出し・ループ区間の指定
- Analyze CHOP — ロードしたチャンネルの統計値(最大・平均・ピーク)を抽出
前処理・後処理CHOP 🎯
Info CHOP情報 📊
File In CHOPは Info CHOP による詳細情報取得に対応しています。
CHOP固有情報 🎚️
start: CHOPインターバルの開始(サンプル単位)length: CHOPのサンプル数sample_rate: フレーム毎秒のサンプルレートnum_channels: CHOPのチャンネル数time_slice: タイムスライス有効時は1、無効時は0export_sernum: Export接続の更新回数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ファイルがロードされず空のチャンネルになる
✅ Solution:
- Channel File パスが絶対パスかプロジェクト相対で正しく指定されているか確認
- URL 指定時は
http://プレフィックスが必要、https://非対応の場合あり - Refresh Pulse をクリックして強制的に再読込してみる
❌ Problem: サンプルレートがプロジェクトと合わずタイミングがズレる
✅ Solution:
- Rate Options を
Resampleにしてプロジェクトのレートに揃える - メモリを節約したい場合は
Resample、原音保持ならNo Changeを選択 - 後段で Resample CHOP を使って明示的に揃える方法もある
❌ Problem: 再生位置が範囲外でデフォルト値や 0 が出てしまう
✅ Solution:
- Extend Left / Extend Right が
No Changeのままだと範囲外で値が出ない - ループ再生したい場合は
Cycle、最終値保持ならHoldを選択 - Default Value モード時は Default Value パラメータの値が埋め込まれる点に注意
❌ Problem: チャンネル名がファイル内のものと違う
✅ Solution:
- Name Options が
Use New NamesやUse Filenameになっていないか確認 - ファイル内の名前を保持したい場合は
Use Names In Fileを選択 - Rename from / Rename to で意図しないリネームが適用されていないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

