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

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

Sync Out CHOP のマルチマシン同期機能を示す図

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

概要 📖 – マルチマシン同期信号の送信

Sync Out CHOPは、複数マシン間のクックを揃えるためにネットワーク経由で同期信号を送信し、クライアントの応答状況を監視する CHOPです。Sync In CHOP と組み合わせてマルチマシン構成のフレーム同期を実現し、タイムアウトの蓄積でクライアントの一時無視・恒久バンを行います。

主な用途 🎯

  • 複数マシン間のフレーム同期信号送信(ジェネロック相当のソフトウェア同期)
  • プロジェクションマッピング・LEDウォール等のマルチノード演出での同時刻表示
  • Sync In CHOP との対で構成するマスター/クライアント同期トポロジ
  • クライアントの応答タイムアウト監視(消失検知・無視・恒久バン)
  • ライブパフォーマンスでのマルチマシン Render Farm 構成の同期基盤

データフロー 🔄

入力: マスター側のクックタイミング

マルチキャストアドレスへ同期パケット送信

各クライアントの Sync In CHOP が受信して整合

応答監視・タイムアウト集計

出力: 同期確立状態

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Sync Out Page 📋

Active .active 🔌

同期動作の有効/無効を切り替えるトグル:

  • Active トグル: オン時に CHOP が同期信号送信を開始し、クライアントとの同期を試みる

Multicast Address .multicastaddress 📡

通信用マルチキャストアドレス:

  • Multicast Address: 通信に使用する IP アドレス(デフォルト 224.0.0.1

Network Port .port 🔢

ネットワークポート番号:

  • Network Port: マルチキャストアドレスに紐づくポート番号

Local Address .localaddress 🖥️

送信元 NIC の指定:

  • Local Address: 送信元として使用する IP アドレス。複数 NIC を搭載するマシンで使用 NIC を指定したい場合に有用

Local Port Mode .localportmode ⚙️

ローカルポートを自動選択するか手動指定するかのモード

項目 内部名 説明
Automatic .automatic ローカルポートを自動的に選択
Manual .manual Local Port パラメータで明示的に指定したポートを使用

Local Port .localport 🔌

Manual モード時の使用ポート:

  • Local Port: Local Port ModeManual のときに使用するポート番号

Timeout (msec) .timeout ⏲️

同期信号の最大待機時間:

  • Timeout (msec): 他の Sync In CHOP からの同期信号を待つ最大時間。ミリ秒単位で指定

Client Timeouts (Consecutive) .clienttimeouts 🔁

連続タイムアウトの一時無視閾値:

  • Client Timeouts (Consecutive): クライアントが連続して何回タイムアウトしたら以降のタイムアウトを発生させずに無視するかの最大回数。再び時間内に応答するか、CHOP をリセットするまで無視状態が続く

Ban Clients .banclients 🚫

恒久バンの有効化:

  • Ban Clients トグル: クライアントの恒久バンを有効化する

Total Timeouts .banclienttimeouts 📊

恒久バン移行までの累計タイムアウト:

  • Total Timeouts: クライアントを恒久的に無視するまでの累計タイムアウト回数。バン状態を解除するにはリセットが必要

Clear Stats .clearstats 🧹

統計とバンリストのリセット:

  • Clear Stats ボタン: バンリストおよび Info 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 Sync Out CHOP → マルチキャストネットワーク → 各 Slave Sync In CHOP → Movie File In TOP のフレーム同期
  1. マスターマシンに Sync Out CHOP を配置し Active をオンに設定
  2. Multicast Address と Network Port をスレーブと共通の値に揃える
  3. 各スレーブマシンに Sync In CHOP を配置し同じアドレス/ポートで接続
  4. 全マシンで Movie File In TOP のフレームが同一タイミングで進行することを確認

Example 2: LED ウォール演出のフレーム同期 💡

Sync Out CHOP (Master) → スイッチングハブ → 複数 Slave Sync In CHOP → Render TOP
  1. 演出マシンを 1 台のマスターと複数のレンダーノードで構成
  2. マスター側で Sync Out CHOP の Active をオンにして同期信号送信を開始
  3. Local Address でマスター側 NIC を明示し、有線 LAN 経由でマルチキャスト送信
  4. 各レンダーノードが同じフレームを出力し、LED 全面で乱れのない演出が成立

Example 3: 応答しないクライアントの自動バン 🚫

Sync Out CHOP (Ban Clients オン) → クライアント切断検知 → Info CHOP でバン状態取得 → ログ出力
  1. Ban Clients をオンにし Total Timeouts を任意の値(例: 60)に設定
  2. Client Timeouts (Consecutive) を 10 程度に設定して一時無視も併用
  3. ネットワーク障害でクライアントが連続タイムアウトすると自動的に無視/バン状態へ移行
  4. Info CHOP で各クライアントの累計タイムアウトを監視し、Clear Stats ボタンで状態をリセット

関連オペレータ 🔗

類似機能OP 🔍

  • Sync In CHOP — Sync Out CHOP と対で機能する受信側、クライアントマシンに配置
  • OSC Out CHOP — 汎用 OSC プロトコルでチャンネル値を送信、同期用途では時刻整合が課題

組み合わせ推奨OP 🔄

  • Sync In CHOP — クライアント側の対 OP、同じマルチキャストアドレス/ポートで接続
  • Info CHOP — Sync Out の各クライアント応答状況・累計タイムアウトを取得
  • Timer CHOP — マスター側のタイミング基準として同期送信と組み合わせる
  • Trigger CHOP — 同期確立を契機にクライアント側でイベント発火

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Sync Out CHOP は Info 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: クライアントが同期しない / Sync In が受信できない
✅ Solution:

  • Multicast Address と Network Port がマスター・クライアントで一致しているか確認
  • OS のファイアウォール / アンチウイルスでマルチキャスト UDP がブロックされていないか確認
  • 複数 NIC を持つマシンでは Local Address で送信元 NIC を明示的に指定する

❌ Problem: クライアントが頻繁にタイムアウトする
✅ Solution:

  • Timeout (msec) を実ネットワーク遅延に対して十分大きい値に設定
  • 前段に Filter CHOP を挟むのではなく、ネットワーク自体(スイッチ・ケーブル・NIC ドライバ)を再点検
  • Client Timeouts (Consecutive) を上げて一時的なジッタによる無視を抑える

❌ Problem: 意図しないクライアントが恒久バンされた
✅ Solution:

  • Ban Clients をオフにして恒久バン機能を無効化し動作を切り分ける
  • Total Timeouts の値を高めに設定し、短期障害でバンに到達しないよう余裕を持たせる
  • Clear Stats ボタンでバンリストと累計タイムアウトをリセットしてから再運用

❌ Problem: 複数アプリ間でポートが競合する
✅ Solution:

  • Local Port Mode を Manual に切り替え、未使用のポートを明示的に割り当て
  • Network Port をデフォルト以外の値(例: 10001 以上)に変更して衝突回避
  • 同じマシンで複数 TouchDesigner インスタンスを起動する場合は Local Port を個別に設定

参考資料 📚

その他 🔗

公式リソース 📖

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