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

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

Select CHOP のチャンネル選択機能を示す図

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

概要 📖 – チャンネルの選択・抽出・リネーム

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 による複数入力のタイミング統合

出力: 抽出済みチャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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] ambc1 c3 c5 c7 c9 ambientb1 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=`*`) → 下流処理
  1. 他の階層にある Constant CHOP のパスを Select CHOP の CHOP パラメータに記入
  2. Channel Names を * または特定パターンにして必要なチャンネルを取得
  3. ネットワーク上で長いワイヤを引かずに別階層の値を参照できる
  4. リファクタリングで OP の位置を変えてもパス更新だけで対応可能

Example 2: tx / ty / tz だけを抜き出して座標処理 📐

全パラメータ CHOP → Select CHOP (Channel Names=`t[xyz]`) → Math CHOP
  1. 多数のパラメータを持つ CHOP から、平行移動の 3 チャンネル tx ty tz のみを抽出
  2. Channel Names に t[xyz] パターンを指定
  3. Select CHOP の出力を Math CHOP に渡してベクトル長 (Combine Channels: Length) を計算
  4. オブジェクトの原点からの距離をリアルタイム取得

Example 3: Filter by Digits で同番号のチャンネルを一括取得 🔢

多数のセンサー CHOP → Select CHOP (Filter by Digits=on, Digits=1) → 番号 1 系統の値のみ
  1. tx1 ty1 tz1 tx2 ty2 tz2 ... のように番号付きで命名された多数のチャンネルを入力
  2. Filter by Digits をオンにし、Digits を 1 に設定
  3. 末尾が 1 のチャンネルのみが残る(tx1 ty1 tz1 等)
  4. 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 🎯


Info CHOP情報 📊

Select CHOPは Info CHOP による詳細情報取得に対応しています。

CHOP固有情報 🎚️

  • start: CHOPインターバルの開始(サンプル単位)
  • length: CHOPのサンプル数
  • sample_rate: フレーム毎秒のサンプルレート
  • num_channels: CHOPのチャンネル数
  • time_slice: タイムスライス有効時は1、無効時は0
  • export_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 のパターン指定を使う

参考資料 📚

その他 🔗

公式リソース 📖

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