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

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

Scan CHOP の波形生成機能を示す図

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

概要 📖 – SOP/TOP/CHOP からオシロスコープ・レーザー用制御波形を生成

Scan CHOPは、SOP/TOP/CHOP の幾何・画像・波形をオシロスコープやレーザー投影機用の X/Y(/RGB) 制御波形に変換する CHOPです。出力は可聴帯域内のサンプルとして生成でき、Audio Device Out CHOP を介してオシロスコープやレーザー投影機の X/Y 偏向入力を駆動できます。

※ 注意: Scan CHOP は公式ドキュメントで DEPRECATED(非推奨)と明示されており、新規プロジェクトでは Laser CHOP の使用が推奨されています。

主な用途 🎯

  • SOP のジオメトリ頂点を X/Y 制御信号に変換してオシロスコープ・レーザー描画
  • TOP のラスター画像を画素位置の X/Y と輝度時間で走査し光線として再現
  • CHOP の波形を時間軸でスキャンして任意のグラフを画面に描画
  • 音声出力経由のレーザー / オシロ駆動(X/Y/RGB チャンネルを Audio Device Out CHOP に渡す)
  • blanking 制御による複数オブジェクト描画(ジオメトリ間・走査間の暗転挿入)

データフロー 🔄

入力: SOP / TOP / CHOP

Source OP メニュー選択

ソース別ページ(解像度・順序・トリガ等)

X/Y 振幅スケール・回転・ランダム化

任意で RGB 出力 + blanking

出力: X,Y,(R,G,B) 制御チャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Scan Page 📡

Source OP .source 🎯

どのオペレータファミリを走査対象とするかを決定するメニュー

項目 内部名 説明
TOP .top ラスター画像を走査し、各画素の位置を X/Y 振幅に変換
SOP .sop ジオメトリの各頂点位置を X/Y 振幅に変換
CHOP .chop 波形の各グラフを水平・垂直オフセットに変換

サンプリングと振幅 🎚️

Sample Rate .rate ⏲️
– 1 秒あたりのサンプル数(出力サンプルレート)
– 可聴帯域でレーザー / オシロ駆動する場合は音声デバイスのレートと整合させる

Swap Output .swap 🔄
– X と Y チャンネル出力を入れ替え
– オシロ・レーザー側の偏向極性が逆のときに使用

X Scale .xscale ↔️
– X 軸の振幅をスケーリング

Y Scale .yscale ↕️
– Y 軸の振幅をスケーリング

Rotate .rotate 🔁
– 出力 X,Y 値を度数指定で回転
– レーザー投影面の向きを補正する用途

Randomize Samples .randomize 🎲
– 全サンプルをランダム順で出力
– オシロスコープ上でファジーでカオティックな画像を生成

カラー出力 🎨

Output Color .color 🟢
– オンにすると r,g,b チャンネルが追加生成
– レーザー投影の RGB モジュレーションや blanking 制御に必須

Red Scale .redscale 🔴
– R チャンネルの出力振幅をスケーリング

Green Scale .greenscale 🟢
– G チャンネルの出力振幅をスケーリング

Blue Scale .bluescale 🔵
– B チャンネルの出力振幅をスケーリング

Blanking Count .blankingcount
– SOP 入力: ジオメトリプリミティブ間に挿入する黒(オフ)位置数
– TOP 入力: フルラスター走査間に挿入する黒(オフ)位置数
– Color 出力が有効になっている必要あり


TOP Page 🖼️

TOP ソース指定 📍

ラスター画像から制御信号への変換設定。輝度は各サンプルがスコープ上に「描画」される時間で表現されます。

TOP .top 🖼️
– 走査対象となる TOP ノードへのパス

Width .width ↔️
– 画像を再サンプリングする列数

Height .height ↕️
– 画像を再サンプリングする行数

Level .level 💡
– 各画素が持てる明度レベル数

Auto Reduce .limit 📉
– 出力フレームレートを一定に保つよう行数・列数を動的に自動低減

Layered .layered 📚
– オン: 画素を明度順で出力
– オフ: 各行を左から右の順で出力

Interleave .interleave 🔀

ちらつきを最小化するため行の出力順序を制御するメニュー

項目 内部名 説明
Sweep .sweep 上から下へ順番に行を出力
Even Odd .evenodd 偶数行 → 奇数行の 2 パスで出力
Max .max 完全インターリーブ方式で行を出力(最大ちらつき抑制)

SOP Page 🔺

SOP ソース指定 📍

SOP の各頂点がフレームバッファ・ステレオ音声サンプルとなり、X が X チャンネル、Y が Y チャンネルに置かれます。出力にはエイリアスのない鋭利なベクトルのみが含まれます。

SOP .sop 🔺
– 走査対象となる SOP ノードへのパス

Vertex Order .vertexorder 🧭
– 点をジオメトリ定義順ではなく、各ポリゴンの頂点順で出力

Limit Step Size .limitstep 🛑
– 長い x,y ジャンプを複数の小ステップに分割

Step Size .stepsize 📐
– Limit Step Size 有効時に許容する 1 ステップ当たりの x,y 変化量

Vertex Repeat .vertexrepeat 🔂
– 各プリミティブの頂点を複数回繰り返して出力(輝度ブースト用途)

Camera .camera 🎥
– このカメラから 2D 平面へジオメトリを投影
– 未指定時はジオメトリの元 X,Y 成分のみが使用される


CHOP Page 🎚️

CHOP ソース指定とトリガ 📍

波形を各グラフの水平・垂直オフセットに変換し元の CHOP 波形を再現します。タイムスライスではなく長さを持つ CHOP(Trail CHOP やアニメ済み Wave CHOP 等)を使用してください。

CHOP .chop 🎚️
– 走査対象となる CHOP ノードへのパス
– タイムスライスではなく一定の長さを持つ波形 CHOP を指定

Trigger .trigger
– 出力グラフがこの値を超えた箇所から開始
– オシロスコープのトリガースイープと同様に「静止」波形を実現

Trigger Value .triggerval 🎯
– トリガを開始する閾値

Trim .trim ✂️
– スキャン対象とする CHOP の長さを制限

Trim Value .trimval 📏
– スキャンする CHOP の長さ

Trim Units .trimunits 📐
– このパラメータで使用する単位を Samples / Frames / Seconds から選択


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: SOP ジオメトリをオシロスコープに描画 📺

入力 SOP → Scan CHOP (Source=SOP) → Audio Device Out CHOP → オシロスコープ X/Y 入力

ジオメトリの頂点を音声帯域の X/Y 制御信号に変換し、オシロスコープの偏向入力に流してベクター描画を行う基本パターン。

  1. 描画したい形状の SOP(Circle SOP / Text SOP 等)を用意
  2. Scan CHOP の Source OP を SOP に設定し、SOP パスを指定
  3. Sample Rate を音声デバイスの出力レート(48000 等)と整合させる
  4. X Scale / Y Scale で振幅をオシロスコープのレンジに合わせる
  5. 出力を Audio Device Out CHOP に接続しオシロスコープの X/Y 偏向入力へ

Example 2: TOP 画像をレーザー投影機で再現 🔆

Movie File In TOP → Scan CHOP (Source=TOP, Output Color=on) → Audio Device Out CHOP → レーザー DAC

ラスター画像を走査し RGB チャンネル付きで出力することで、レーザー投影機が再現可能な制御波形を生成する。

  1. 画像 / 動画ソースを Movie File In TOP で読み込む
  2. Scan CHOP の Source OP を TOP に設定し、Width / Height で再サンプル解像度を指定
  3. Output Color をオンにし、Red Scale / Green Scale / Blue Scale で各チャンネル振幅を調整
  4. Interleave を Even Odd または Max にしてちらつきを軽減
  5. Blanking Count で走査間の暗転を挿入し、出力をレーザー DAC に渡す

Example 3: CHOP 波形のオシロ静止表示 🌊

Wave CHOP → Scan CHOP (Source=CHOP, Trigger ON) → Audio Device Out CHOP

アニメーション付き Wave CHOP の波形を Scan CHOP で走査し、トリガー機能で波形を画面上に静止表示する。

  1. Wave CHOP または Trail CHOP で長さを持つ波形を生成(タイムスライスは無効化)
  2. Scan CHOP の Source OP を CHOP に設定し、CHOP パスを指定
  3. Trigger をオンにし Trigger Value で開始閾値を設定
  4. Trim を有効にして表示したい区間の長さを Trim Value / Trim Units で指定
  5. 出力をオシロスコープに送り、トリガースイープ波形として観測

関連オペレータ 🔗

類似機能OP 🔍

  • Laser CHOP — Scan CHOP の後継、レーザー投影向けに機能拡張された推奨オペレータ
  • EtherDream CHOP — EtherDream レーザー DAC へ直接データを送出
  • Helios DAC CHOP — Helios レーザー DAC 向けの専用出力 CHOP

組み合わせ推奨OP 🔄

  • Audio Device Out CHOP — Scan 出力を音声デバイス経由でオシロ / レーザーへ送出
  • Trail CHOP — CHOP ソース用に長さを持つ波形バッファを生成
  • Wave CHOP — 走査対象となる波形ソース
  • Limit SOP — Scan CHOP 出力を SOP として可視化(公式 docs 推奨)
  • Math CHOP — Scan 出力の振幅・オフセット補正

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Scan 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: Scan CHOP は非推奨(DEPRECATED)と公式ドキュメントに記載されている
✅ Solution:

  • 新規プロジェクトでは Laser CHOP の使用が公式に推奨されている
  • Laser CHOP はレーザー投影向けの blanking / カラー制御がより洗練されており Scan CHOP の上位互換
  • 既存プロジェクトでの動作維持目的のみ Scan CHOP の継続使用を検討する

❌ Problem: オシロスコープに何も表示されない / 振幅が小さすぎる
✅ Solution:

  • X Scale / Y Scale を上げて偏向入力レンジに合わせる(典型値は -1〜+1 や -10V〜+10V)
  • Sample Rate が Audio Device Out CHOP のデバイスレートと整合しているか確認
  • Source OP が正しいファミリ(SOP / TOP / CHOP)に設定されているか確認
  • Output が CHOP Viewer 経由で実際に出力されているか CHOP Viewer をオンにして確認

❌ Problem: ちらつきが激しい・画像が崩れる
✅ Solution:

  • TOP ソース時は Interleave を Sweep から Even Odd または Max に切替
  • Sample Rate を上げて 1 秒あたりの走査回数を増やす
  • Width / Height を下げてサンプル総数を減らし、リフレッシュ間隔を短縮
  • Auto Reduce をオンにして動的に解像度を低減

❌ Problem: レーザー投影で複数オブジェクト間にビーム軌跡が見える
✅ Solution:

  • Output Color をオンにし、Blanking Count を増やしてジオメトリ間 / 走査間に暗転位置を挿入
  • 前段で別の SOP で分割し、明示的にプリミティブを区切る
  • Randomize Samples をオフにして連続走査順序を保つ(ランダム順では blanking が機能しにくい)

参考資料 📚

その他 🔗

公式リソース 📖

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