
概要 📖 – 複数入力のブレンド
Cross CHOPは、Cross パラメータ値に応じて複数の入力 CHOP を線形にブレンド(クロスフェード)する CHOPです。Cross 値が整数のときはその入力をそのまま、実数のときは隣接 2 入力を比率に応じて補間します。
主な用途 🎯
- 複数入力 CHOP 間の線形ブレンド(クロスフェード)
- シーン切替・パラメータプリセット間の滑らかな遷移
- オーディオやセンサー値のミックス制御(A/B 入力の比率調整)
- アニメーション間のモーフィング(複数モーションのブレンド)
- 値の段階的補間による状態遷移制御(インデックスを実数で指定)
データフロー 🔄
入力: 複数の CHOP(input1, input2, input3, ...)
↓
Cross パラメータ値で隣接 2 入力を線形補間
↓
出力: ブレンドされた単一 CHOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Cross Page 📋
Cross .cross 🎚️
入力 CHOP 間のブレンド比率を制御するパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Cross | .cross |
入力のブレンドを制御するパラメータ。値 0 で input1、1 で input2、2 で input3 と整数値で各入力を選択し、中間の実数値(例: 0.75 なら input1 を 25%・input2 を 75%)で隣接 2 入力を線形補間してブレンドする。 |
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: シーン間のクロスフェード 🎬
Constant CHOP (scene A params) + Constant CHOP (scene B params) → Cross CHOP → 各種パラメータへ Export
2 つのシーンプリセットを Constant CHOP で用意し、Cross CHOP の Cross パラメータを 0 → 1 にアニメーションさせて滑らかにシーン遷移させる。
- シーン A の各種パラメータ値を Constant CHOP で定義
- シーン B の対応パラメータ値を別の Constant CHOP で定義
- 両者を Cross CHOP の input1 / input2 に接続
- Cross 値を 0 → 1 にアニメーションさせて A から B へ滑らかにブレンド
- 出力をシーン制御パラメータに Export して全体が同期遷移する
Example 2: 3 入力のモーフィング制御 🎮
Animation COMP × 3 → Cross CHOP → Geometry COMP
Cross 値を 0〜2 の連続値で操作することで、3 つのアニメーションプリセットを連続的にブレンドし、ジョイスティックや MIDI フェーダーで状態遷移を表現する。
- 3 種類のモーション(待機・歩行・走行 等)を Animation COMP で用意
- Cross CHOP の input1 / input2 / input3 に接続
- Cross 値を 0〜2 の範囲で操作(0 で待機、1 で歩行、2 で走行)
- 中間値(例: 0.5)で待機と歩行を 50:50 でブレンド
- 出力を Geometry COMP のリグに渡して滑らかな状態遷移を実現
Example 3: オーディオ A/B ミックス 🎵
Audio File In CHOP × 2 → Cross CHOP → Audio Device Out CHOP
DJ スタイルの A/B クロスフェードを 1 つの Cross CHOP で実装し、フェーダー UI から Cross パラメータを直接操作してリアルタイムミックスする。
- 2 つの音源を Audio File In CHOP で読み込み
- Cross CHOP の input1 / input2 に接続
- UI のスライダー値を Cross パラメータにバインド(0〜1)
- Cross = 0 で input1 のみ、1 で input2 のみ、0.5 で 50:50 ミックス
- 出力を Audio Device Out CHOP で再生
関連オペレータ 🔗
類似機能OP 🔍
- Switch CHOP — 整数インデックスで離散的に入力切替(Cross と異なりブレンドはしない)
- Blend CHOP — ウェイトチャンネルで複数入力を加重平均(Cross は 1 値で隣接 2 入力のみ補間)
- Math CHOP — Combine CHOPs で複数入力を四則演算で結合(クロスフェード用途には不向き)
組み合わせ推奨OP 🔄
- Constant CHOP — ブレンド対象のプリセット値を供給
- LFO CHOP — Cross パラメータを周期的に変動させて自動クロスフェード
- Filter CHOP — Cross 値を smoothing して急峻な遷移を抑制
- Switch CHOP — Cross と組み合わせてブレンド or 切替を選択
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Cross 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: Cross 値を整数にしてもチャンネル値が完全に一致しない
✅ Solution:
- 入力 CHOP のサンプル数・レートが揃っていない場合、Sample Rate Match によるリサンプルが発生して値が変わることがある
- 前段に Resample CHOP を入れて全入力を同一レートに揃える
- Sample Rate Match を「Error If Rates Differ」にしてレート不一致を明示的に検出
❌ Problem: Cross 値の遷移が急で出力にポップノイズが出る
✅ Solution:
- Cross パラメータの直接操作ではなく、後段に Filter CHOP を入れて出力を smoothing
- Cross 値自体を Filter / Lag CHOP 経由でアニメーションさせて遷移をなだらかにする
- オーディオ用途では Time Slice をオンにしてサンプルレベルでの補間を確実にする
❌ Problem: 3 入力以上で想定外のチャンネルがブレンドされる
✅ Solution:
- Cross 値は隣接 2 入力のみブレンドする仕様(例: 1.5 なら input2 と input3 を 50:50)
- input の接続順を確認し、ブレンドしたい 2 入力が連番になるよう接続を整理
- 離散的に切替えたい場合は Switch CHOP に置き換える
❌ Problem: チャンネル数が入力間で異なるとき出力が想定外
✅ Solution:
- 入力間でチャンネル数が一致していないと、欠落チャンネルは 0 として補間される
- 前段で全入力のチャンネル数・名前を統一する(Rename / Reorder CHOP 等)
- Match by 設定がある CHOP(Math CHOP 等)と異なり、Cross CHOP は番号順固定でブレンド
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

