
概要 📖 – レーザー機器への点群送信
Laser Device CHOPは、入力された点群(x, y, r, g, b, i)を EtherDream / Helios / ShowNET のレーザー機器へ送信する CHOPです。X/Y 座標と RGB 色のスケーリング、キューサイズ調整、ネットワークアドレス指定までを 1 オペレータで完結します。
主な用途 🎯
- EtherDream / Helios / ShowNET 各種レーザー機器への点群データ送信
- ライブパフォーマンス・インスタレーションでのレーザー描画制御
- X / Y 座標と RGB 色のスケーリング・キャリブレーション
- レーザー機器のキューサイズ調整によるレイテンシと安定性の最適化
- ネットワーク経由(EtherDream)または USB 直結(Helios / ShowNET)でのデバイス管理
データフロー 🔄
入力: x, y, r, g, b, i チャンネル
↓
スケーリング (X/Y/Red/Green/Blue/Intensity Scale)
↓
デバイス選択 (EtherDream / Helios / ShowNET)
↓
キューバッファ (Queue Time)
↓
出力: ネットワーク or USB 経由でレーザー機器へ送信
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Laser Device Page 🔦
Active .active 🟢
デバイス接続と点群送信の有効化
| 項目 | 内部名 | 説明 |
|---|---|---|
| Active | .active |
オンにすると指定したデバイスに接続し点群を送信開始する。オフで接続停止。 |
Type .type 🎛️
送信先のレーザー機器タイプを指定するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| EtherDream | .etherdream |
EtherDream デバイスへ送信。ネットワーク経由のため IP / port 指定が必要。 |
| Helios | .helios |
Helios デバイスへ送信。選択時に Device メニューが接続中のデバイスで自動的に埋まる。Scan で再スキャン可能。 |
| ShowNET | .shownet |
ShowNET デバイスへ送信。選択時にネットワーク上の ShowNET デバイスで Device メニューが自動更新される。 |
Device .device 🔌
Helios / ShowNET 用デバイス選択メニュー:
- Device メニュー: Helios / ShowNET 選択時、検出済みデバイス名から送信先を選択
Scan .scan 🔍
Helios デバイスの再スキャン:
- Scan ボタン: Helios デバイスを再スキャン。スキャン時にアクティブな Helios 接続があると、スキャン処理によってクローズされる点に注意
Network Address .netaddress 🌐
EtherDream 送信先 IP:
- Network Address: EtherDream デバイスにパケットを送信する IP アドレス。EtherDream IP は EtherDream DAT でネットワーク上のデバイスをポーリングして取得可能
Network Port .port 🔢
EtherDream 送信ポート:
- Network Port: EtherDream パケットの送信先ポート番号
Local Address .localaddress 🏠
送信元 IP アドレス指定:
- Local Address: 送信元 IP アドレス。複数の NIC (Network Interface Card) を持つシステムで、どのインターフェースを使うかを選択する場合に使用
Queue Time .queuetime ⏳
| 項目 | 内部名 | 説明 |
|---|---|---|
| Queue Time | .queuetime |
Helios / EtherDream の点バッファのキューサイズと、それを排出するのに必要な時間を決定する。送信点数を減らすときは、この値を小さくすると有用な場合が多い。 |
Queue Units .queueunits 📐
Queue Time の単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| I | .samples |
サンプル単位 |
| F | .frames |
フレーム単位 |
| S | .seconds |
秒単位 |
X / Y Scale .xyscale 📏
入力 x / y 座標値のスケーリング係数
X Scale .xscale ↔️
– 入力 x 値に乗算するスケーリング係数
– 描画範囲をレーザー機器の有効範囲に合わせる用途
Y Scale .yscale ↕️
– 入力 y 値に乗算するスケーリング係数
– 縦方向の描画範囲を調整
Color / Intensity Scale .colorscale 🎨
RGB 各チャンネルと Intensity のスケーリング係数
Red Scale .redscale 🔴
– 入力 r 値に乗算するスケーリング係数
– 赤チャンネルの輝度を調整
Green Scale .greenscale 🟢
– 入力 g 値に乗算するスケーリング係数
– 緑チャンネルの輝度を調整
Blue Scale .bluescale 🔵
– 入力 b 値に乗算するスケーリング係数
– 青チャンネルの輝度を調整
Intensity Scale .intensityscale 💡
– 入力 intensity (i) 値に乗算するスケーリング係数
– 全体輝度のキャリブレーション
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: EtherDream への基本的な点群送信 💡
Pattern CHOP (x, y, r, g, b) → Laser Device CHOP (Type=EtherDream) → EtherDream 機器
- Pattern CHOP 等で x, y チャンネルと r, g, b 色チャンネルを生成
- Laser Device CHOP の Type を EtherDream に設定
- Network Address に EtherDream 機器の IP を入力 (EtherDream DAT で IP を確認可能)
- Active をオンにして点群送信を開始
Example 2: Helios USB デバイスへの送信 🔌
図形生成 CHOP → Laser Device CHOP (Type=Helios) → USB 接続の Helios 機器
- Helios 機器を USB で接続
- Laser Device CHOP の Type を Helios に変更
- Device メニューから接続済み機器を選択 (新規接続時は Scan で再スキャン)
- X/Y Scale で描画範囲を機器の有効範囲に合わせ Active オン
Example 3: 色キャリブレーションと輝度調整 🎨
Constant CHOP → Laser Device CHOP (Red/Green/Blue/Intensity Scale) → レーザー機器
- RGB 各チャンネルを持つ CHOP を入力
- Red Scale / Green Scale / Blue Scale で機器ごとの色バランスを補正
- Intensity Scale で全体輝度を会場環境に合わせて調整
- 白色描画時に R, G, B が均等に発光することを確認
関連オペレータ 🔗
類似機能OP 🔍
- DMX Out CHOP — DMX 機器(照明・モーター)への送信。レーザー以外の舞台機器制御で類似用途
- Serial CHOP — シリアル通信経由でデバイス制御。レーザー以外の汎用デバイス送信
組み合わせ推奨OP 🔄
- EtherDream DAT — ネットワーク上の EtherDream デバイスをポーリングして IP を取得
- Pattern CHOP — サイン波・ランプ波で x, y 描画パターンを生成して送信
- Math CHOP — x, y 座標のレンジ変換とスケーリング前段で活用
- SOP to CHOP — 3D ジオメトリの頂点を CHOP に変換してレーザー描画に渡す
- Filter CHOP — 送信点群のスムージング、急峻な動きによるレーザー機器の負荷軽減
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Laser Device 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: EtherDream デバイスに接続できない
✅ Solution:
- Network Address が EtherDream 機器の正しい IP になっているか確認 (EtherDream DAT でポーリングして取得)
- PC が複数 NIC を持つ場合、Local Address で送信元 NIC を明示指定する
- Network Port が機器側の受信ポートと一致しているか確認
❌ Problem: Helios デバイスが Device メニューに出てこない
✅ Solution:
- Helios 機器を USB で再接続し、Scan ボタンをパルスして再スキャンする
- スキャン時にアクティブな Helios 接続があるとクローズされるので、Active をオフにしてからスキャン
- OS 側でドライバが認識されているかデバイスマネージャーで確認
❌ Problem: 送信点が遅延する / カクつく
✅ Solution:
- Queue Time の値が大きすぎる場合、バッファ消費に時間がかかりレイテンシ増加。点数を減らすときは小さい値が推奨
- Queue Units を S (秒) / F (フレーム) / I (サンプル) で適切な単位に切り替えて調整
- 前段に Filter CHOP を入れて急峻な動きをスムージング
❌ Problem: 色が想定通りに出ない / 機器ごとに発色が違う
✅ Solution:
- Red Scale / Green Scale / Blue Scale で機器ごとの色バランスを補正
- Intensity Scale で全体輝度を会場環境に合わせる
- 入力 r, g, b 値が 0-1 の範囲に収まっているか前段の Math CHOP で確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

