
概要 📖 – チャンネルの選択・抽出・リネーム
Select CHOPは、チャンネルを名前パターンやパス指定で抽出・リネームし、必要なものだけを下流に流す CHOPです。ワイヤ接続を介さずにパス指定でチャンネルを取得でき、Rename パターンでまとめて改名、Filter by Digits で末尾数字によるフィルタまで 1 オペレータで完結します。
主な用途 🎯
- 他の OP からチャンネルを直接接続せずに参照(パスベースのチャンネル取得)
- 名前パターン(
chan[1-5],*x等)による特定チャンネルの抽出 - チャンネル名の一括リネーム(Rename from / Rename to パターン)
- 末尾の数字でフィルタしたチャンネルの選別(
tx1,ty1,tz1等) - 同名チャンネルの衝突回避(Automatic Prefix による親 OP 名プレフィックス付与)
データフロー 🔄
入力: 接続 CHOP / パス指定 CHOP
↓
Channel Names によるパターンフィルタ
↓
Filter by Digits による数字末尾フィルタ
↓
Rename from / Rename to によるリネーム
↓
Align による複数入力のタイミング統合
↓
出力: 抽出済みチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Select Page 🎯
ソース指定 🔗
CHOP .chop 📥
– チャンネルのソースとなる CHOP のパス(直接接続されていない場合に使用)
– ワイヤ接続を介さずに任意の CHOP からチャンネルを取得できる
Channel Names .channames 🏷️
– 残すチャンネル名(名前パターン使用可、例: chan[1-5] *x /project1/geo1:t[xyz])
– 指定順がそのまま出力チャンネルの順序になる
– 同じチャンネルを複数回指定すると、出力にも複数回含まれる
リネームパターン 🔁
Rename from .renamefrom 🔤
– リネーム対象のチャンネルパターン
– パターンマッチング記法を使用(詳細は公式 Pattern Matching 参照)
Rename to .renameto 🔁
– 置換後の名前パターン(デフォルトはリネームしない)
– 例: Channel Names c[1-10:2] ambient / Rename From c* ambient / Rename To b[1-5] amb で c1 c3 c5 c7 c9 ambient が b1 b2 b3 b4 b5 amb にリネームされる
Filter by Digits .filterbydigits 🔢
チャンネル名の末尾数字によるフィルタ機能
Filter by Digits .filterbydigits 🔢
– オン: 名前末尾の数字でチャンネルを絞り込む(例: tx1, ty1, tz1, rotate1 等を一括選択)
– 下記 Digits / Strip Digits パラメータが有効化される
Digits .digits 🔟
– 'Filter by Digits' で抽出対象とする末尾数字を指定
Strip Digits .stripdigits ✂️
– オン: 抽出後のチャンネル名から末尾数字を取り除いて出力
– オフ: 元の名前のまま出力
Align .align 📏
複数入力 CHOP の開始・終了タイミングが異なるときの揃え方
| 項目 | 内部名 | 説明 |
|---|---|---|
| Automatic | .auto |
Time Slice があれば trim、無ければ Extend Min/Max |
| Extend to Min/Max | .none |
最早 start と最遅 end まで Extend 条件で拡張 |
| Stretch to Min/Max | .stretch |
最早 start と最遅 end まで全チャンネルを引き伸ばし |
| Shift to Minimum | .start |
全チャンネルを最早 start に揃えて拡張 |
| Shift to Maximum | .end |
全チャンネルを最遅 end に揃えて拡張 |
| Shift to First Interval | .shift1 |
最初の CHOP の範囲に shift してサンプリング |
| Trim to First Interval | .trim1 |
最初の CHOP の範囲に trim |
| Stretch to First Interval | .stretch1 |
最初の CHOP の範囲に伸縮 |
| Trim to Smallest Interval | .trim |
最小範囲に trim |
| Stretch to Smallest Interval | .squash |
最小範囲に伸縮 |
Automatic Prefix .autoprefix 🏷️
同名チャンネルの衝突回避設定:
- Automatic Prefix: オン時、複数の入力で同名チャンネルがあったとき親 OP 名をプレフィックスとして付与し衝突を回避(例:
/wave1/chan1と/wave2/chan1がそれぞれwave1:chan1/wave2:chan1になる) - オフ時の挙動: オフのままだと TouchDesigner が自動で
chan1,chan2のように連番リネームを行う
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: ワイヤ接続せずに別 OP のチャンネルを参照 🔌
Constant CHOP (`/project1/values`) → Select CHOP (CHOP=`/project1/values`, Channel Names=`*`) → 下流処理
- 他の階層にある Constant CHOP のパスを Select CHOP の CHOP パラメータに記入
- Channel Names を
*または特定パターンにして必要なチャンネルを取得 - ネットワーク上で長いワイヤを引かずに別階層の値を参照できる
- リファクタリングで OP の位置を変えてもパス更新だけで対応可能
Example 2: tx / ty / tz だけを抜き出して座標処理 📐
全パラメータ CHOP → Select CHOP (Channel Names=`t[xyz]`) → Math CHOP
- 多数のパラメータを持つ CHOP から、平行移動の 3 チャンネル
tx ty tzのみを抽出 - Channel Names に
t[xyz]パターンを指定 - Select CHOP の出力を Math CHOP に渡してベクトル長 (Combine Channels: Length) を計算
- オブジェクトの原点からの距離をリアルタイム取得
Example 3: Filter by Digits で同番号のチャンネルを一括取得 🔢
多数のセンサー CHOP → Select CHOP (Filter by Digits=on, Digits=1) → 番号 1 系統の値のみ
tx1 ty1 tz1 tx2 ty2 tz2 ...のように番号付きで命名された多数のチャンネルを入力- Filter by Digits をオンにし、Digits を
1に設定 - 末尾が
1のチャンネルのみが残る(tx1 ty1 tz1等) - Strip Digits をオンにすれば
tx ty tzとして下流の汎用処理に渡せる
関連オペレータ 🔗
類似機能OP 🔍
- Rename CHOP — リネームに特化(Select の Rename from / Rename to 部分のみを単独で扱う)
- Delete CHOP — 残すチャンネルではなく削除するチャンネルをパターン指定する逆向きの選択
- Reorder CHOP — チャンネルの並び替えに特化(Select でも Channel Names の順序で並べ替えられるが、Reorder は専用機能)
組み合わせ推奨OP 🔄
- Math CHOP — Select で抽出したサブセットに四則演算・Range 変換を適用
- Merge CHOP — 複数の Select 出力を 1 本にまとめる
- Filter CHOP — Select で抽出したチャンネルに時間方向のスムージングを適用
- Null CHOP — Select 出力の参照点として後段の参照を安定化
- Constant CHOP — パス指定で Constant の値を Select で取得して下流に流す
前処理・後処理CHOP 🎯
- 前処理: Constant CHOP、Merge CHOP、OSC In CHOP、Audio Device In CHOP
- 後処理: Math CHOP、Filter CHOP、Null CHOP、Rename CHOP
Info CHOP情報 📊
Select 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: Channel Names で指定したチャンネルが出力されない
✅ Solution:
- ソース CHOP に該当チャンネルが存在するか確認(CHOP ビューワで実物を見る)
- パターンマッチング記法を再確認(
*はワイルドカード、[1-5]は範囲、?は 1 文字) - CHOP パラメータでパス指定している場合、パスが正しいか / 階層が変わっていないか確認
❌ Problem: 複数入力で同名チャンネルが衝突して片方しか出ない
✅ Solution:
- Automatic Prefix をオンにして親 OP 名を自動プレフィックス(
wave1:chan1/wave2:chan1) - Rename from / Rename to で明示的に異なる名前に変換する
- 前段で Rename CHOP を挟んで衝突前にユニーク化する
❌ Problem: Rename パターンが期待通りに動作しない
✅ Solution:
- Rename from と Rename to のパターンが対応しているか確認(範囲数の不一致は不明動作になる)
- 公式ドキュメントの Pattern Replacement ルールを確認(
c[1-10:2]ならc1 c3 c5 c7 c9、これに対しb[1-5]でb1〜b5にマップされる) - 複雑なリネームは専用の Rename CHOP で段階的に処理する方が安全
❌ Problem: Filter by Digits で意図したチャンネルが残らない
✅ Solution:
- Digits パラメータが対象の末尾数字と一致しているか確認(
tx10の末尾は0ではなく10として認識される点に注意) - Strip Digits をオンにすると下流での名前衝突が起きるので、オフのまま渡してから別 Select でリネームする運用も検討
- 末尾数字以外でフィルタしたい場合は Channel Names のパターン指定を使う
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

