
概要 📖 – ネットワーク同期信号の受信
Sync In CHOPは、Sync Out CHOP から送られるネットワーク同期信号を受信し、複数マシン間のフレーム同期を実現する CHOPです。マルチキャスト IP アドレスとポートを介して、複数の TouchDesigner インスタンスをフレーム単位で揃えます。
主な用途 🎯
- 複数マシン間でのフレーム同期受信(マルチプロジェクション・ビデオウォール)
- ライブパフォーマンスでの複数 TouchDesigner インスタンス同期
- Sync Out CHOP からマルチキャストで送られる同期信号の受信
- ネットワークレンダリングでの描画タイミング合わせ
- 分散システムでのジェネラティブアートのフレーム揃え
データフロー 🔄
入力: Sync Out CHOP(別マシン)
↓
マルチキャストネットワーク
↓
Sync In CHOP(受信)
↓
出力: 同期トリガー信号
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Sync In Page 📋
同期設定パラメータ 📁
Active .active ✅
– CHOP が現在 Sync Out CHOP との同期を試行しているかどうかを切り替える
– オフにすると同期処理を停止し、受信を一時的に無効化
Multicast Address .multicastaddress 🌐
– 通信に使う IP アドレス(デフォルト: 224.0.0.1)
– 同一ネットワーク内で送信側 Sync Out CHOP と一致させる必要あり
Network Port .port 🔌
– アドレスに紐づくネットワークポート番号
– 送信側 Sync Out CHOP と同じポートを指定
Timeout (msec) .timeout ⏱️
– 他の Sync In CHOP からの同期信号を待つ最大時間(ミリ秒)
– タイムアウト経過後は同期を諦めて次フレームへ進む
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: マルチプロジェクションのフレーム同期 🎬
Master TD (Sync Out CHOP) → マルチキャスト → Slave TD × N (Sync In CHOP) → Movie File In TOP
- マスター TD インスタンスで Sync Out CHOP を配置しマルチキャスト送信
- スレーブ TD インスタンス各々に Sync In CHOP を配置し同じ Multicast Address・Port を指定
- Active をオンにして同期接続を確立
- 複数プロジェクタの再生フレームが揃い、シームレスな大画面表示が実現
Example 2: ライブパフォーマンスでの複数マシン連動 🎤
Performance Master → Sync Out → Sync In CHOP → Trigger CHOP → 映像エフェクト
- メインオペレータマシンから同期信号をマルチキャスト送出
- 各演者マシンの Sync In CHOP で受信
- 後段の Trigger CHOP でフレーム揃ったエフェクト発火
- 全マシンで映像演出のキックタイミングが完全一致
Example 3: ネットワークレンダリング描画タイミング合わせ 🖥️
Render Master → Sync Out → Sync In CHOP × N → Render TOP
- レンダーマスターから描画タイミング信号を送出
- 各レンダーノードの Sync In CHOP で受信
- Timeout (msec) を調整してネットワーク遅延を吸収
- 分散レンダリングでもフレーム単位で同期した画像が得られる
関連オペレータ 🔗
類似機能OP 🔍
- Sync Out CHOP — 対となる送信側 CHOP、Sync In はこれと組で使用
- OSC In CHOP — ネットワーク経由で OSC メッセージを受信
組み合わせ推奨OP 🔄
- Trigger CHOP — 同期信号を受けてエンベロープを起動
- Timer CHOP — 同期タイミングを起点にタイマー駆動
- CHOP Execute DAT — 受信した同期信号で Python コールバックを発火
- Constant CHOP
前処理・後処理CHOP 🎯
- 前処理: Sync Out CHOP、OSC In CHOP
- 後処理: Trigger CHOP、Timer CHOP、Hold CHOP
Info CHOP情報 📊
Sync 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:
- 送信側 Sync Out CHOP と Multicast Address・Network Port が一致しているか確認
- Active がオンになっているか確認
- ファイアウォール / ルータでマルチキャストパケットがブロックされていないか確認
❌ Problem: 同期遅延でフレーム落ちが発生する
✅ Solution:
- Timeout (msec) の値を大きくしてネットワーク遅延を吸収
- 送受信マシンを同一サブネットに配置してマルチキャスト到達遅延を最小化
- 後段に Trigger CHOP を入れてタイミングを再整形
❌ Problem: 複数の Sync In CHOP が信号を取り合う
✅ Solution:
- 用途ごとに Multicast Address を分けて衝突回避(例: 224.0.0.1 / 224.0.0.2)
- 同一アドレスでも Network Port を変えて受信系統を分離
- Scope パラメータで受信するチャンネルを絞り込み
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

