
概要 📖 – マウス座標とボタン状態を CHOP チャンネルで取得
Mouse In CHOPは、マウスの座標・ボタン状態・ホイール回転量を CHOP チャンネルとしてリアルタイム取得する CHOPです。Output Coordinates で座標系を Normalized / Aspect / Absolute から選択でき、Panels 指定で特定パネル限定のイベントだけを拾うことも可能です。
主な用途 🎯
- マウスのX / Y 座標をリアルタイムでチャンネル化
- 左・中・右ボタンの押下状態を 0/1 のチャンネルとして取得
- ホイール回転量を蓄積チャンネルとして取得
- マルチモニター環境で現在のモニター番号をチャンネル化
- パネル限定のマウスイベントをインタラクション制御に利用
データフロー 🔄
入力: OS マウスイベント
↓
Active 設定で取込制御
↓
Output Coordinates で座標系変換 (Normalized / Aspect / Absolute)
↓
各チャンネル名・値設定
↓
出力: posx / posy / lbutton / rbutton / mbutton / wheel / monitor チャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Control Page 🎛️
Active .active 🔌
マウス入力の取込モード
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
クックせず、マウス値は更新されない |
| On | .on |
毎フレームクックしてマウス移動を出力 |
| While Playing | .play |
タイムラインが順方向再生中のときのみマウスイベントを取得 |
Output Coordinates .output 🧭
Position X / Position Y チャンネルが返す座標系の選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Normalized | .normal |
モニターあたり 2 ユニットに正規化。プライマリモニターは中央 (0,0) で -1〜1 |
| Normalized Aspect | .aspect |
Normalized と同じ規則だが、アスペクト比に合わせて調整される |
| Absolute | .absolute |
ピクセル単位の生スクリーン座標。原点 (0,0) はプライマリモニターの左下 |
チャンネル名・値設定 🔤
Position X .posxname ↔️
– 水平方向のマウス移動を返すチャンネル名
– デフォルトのチャンネル名を変更したい場合に編集
Position Y .posyname ↕️
– 垂直方向のマウス移動を返すチャンネル名
– デフォルトのチャンネル名を変更したい場合に編集
Left Button .lbuttonname 🖱️
– 左ボタンの押下状態 (0 / 1) を返すチャンネル名
– クリック検出やドラッグ判定の起点に利用
Right Button .rbuttonname 🖱️
– 右ボタンの押下状態 (0 / 1) を返すチャンネル名
– コンテキストメニュー的なトリガーに利用
Middle Button .mbuttonname 🖱️
– 中ボタンの押下状態 (0 / 1) を返すチャンネル名
– ホイールクリックを検出する用途に使用
Wheel .wheel 🎡
– ホイール回転量の累積値を返すチャンネル
– ユーザー方向と逆方向で値が増加、手前に回すと減少
Wheel Increment .wheelinc ➕
– ホイール 1 ノッチあたりの加減算値
– Wheel チャンネルの感度調整に使用
Monitor .monitor 🖥️
– マウスカーソルが現在乗っているモニター番号を返すチャンネル
– マルチモニター環境で出力先を切り替える判定に使用
Panels .panels 🪟
– マウスイベントを受け付けるパネルの指定
– 指定パネルがフォーカスを持つときのみイベントが発火
Channel Page 📁
Sample Rate .rate ⚡
出力チャンネルのサンプルレート設定:
- Sample Rate: 出力チャンネルのサンプルレートを samples per second で指定 (デフォルトはタイムラインレート)
Extend Left .left ⬅️
チャンネル範囲外(範囲開始より前)の値の取り扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
チャンネルの現在値を保持 |
| Slope | .slope |
チャンネル開始前のスロープを延長 |
| Cycle | .cycle |
チャンネルを繰り返しループ |
| Mirror | .mirror |
1 サイクルごとにミラーしてループ |
| Default Value | .default |
Default Value パラメータの定数値を使用 |
Extend Right .right ➡️
チャンネル範囲外(範囲終了より後)の値の取り扱い
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
チャンネルの現在値を保持 |
| Slope | .slope |
チャンネル終了後のスロープを延長 |
| Cycle | .cycle |
チャンネルを繰り返しループ |
| Mirror | .mirror |
1 サイクルごとにミラーしてループ |
| Default Value | .default |
Default Value パラメータの定数値を使用 |
Default Value .defval 🔢
Default Value 拡張モードでの定数値:
- Default Value: Extend Left / Extend Right を
Default Valueに設定したとき範囲外で出力される定数値
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: マウス位置でオブジェクトを動かす 🎯
Mouse In CHOP → Math CHOP (Range mapping) → Geometry COMP (tx, ty)
- Mouse In CHOP の Output Coordinates を
Normalized Aspectに設定 - Math CHOP の From Range / To Range で画面座標をワールド座標へ変換
- tx, ty チャンネルを Geometry COMP の Translate に Export
- マウスの動きに追従する 3D オブジェクトが完成
Example 2: クリックでイベントをトリガー 🖱️
Mouse In CHOP (lbutton) → Trigger CHOP → Animation COMP
- Mouse In CHOP の Left Button チャンネルを取得
- Trigger CHOP の入力に lbutton を接続し、立ち上がりエッジでトリガー
- Trigger 出力をアニメーション COMP の起動信号に利用
- クリック 1 回ごとにアニメーションが 1 度再生される
Example 3: ホイールでズームを制御 🔍
Mouse In CHOP (wheel) → Math CHOP (Multiply) → Camera COMP (tz)
- Mouse In CHOP の Wheel Increment を
0.1に調整 - wheel チャンネルを Math CHOP に接続し、Multiply で感度を調整
- 出力を Camera COMP の Translate Z に Export
- マウスホイールでスムーズなズームインアウトを実現
関連オペレータ 🔗
類似機能OP 🔍
- Keyboard In CHOP — キーボード入力をチャンネルとして取得する入力デバイス系 CHOP
- Joystick CHOP — ゲームパッドの軸とボタン状態をチャンネル化
組み合わせ推奨OP 🔄
- Math CHOP — マウス座標を任意のレンジへ変換
- Filter CHOP — マウス移動の細かい揺れをスムージング
- Trigger CHOP — クリックの立ち上がりエッジでイベント発火
- Logic CHOP — 複数ボタンの組合せ判定 (AND / OR)
- Lag CHOP — マウスの追従に遅延付きスムージングを適用
前処理・後処理CHOP 🎯
- 前処理: Constant CHOP、Keyboard In CHOP、Timer CHOP
- 後処理: Math CHOP、Filter CHOP、Logic CHOP、Trigger CHOP、Lag CHOP
Info CHOP情報 📊
Mouse 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: マウスが Off / While Playing 設定で値が更新されない
✅ Solution:
- Active パラメータが
Onになっているか確認 While Playingの場合、タイムラインが順方向再生中かを確認- 再生停止中もマウスを取得したい用途では
Onを使用
❌ Problem: Position X / Y の値域が想定と違う
✅ Solution:
- Output Coordinates の選択を確認 (
Normalizedは -1〜1、Absoluteはピクセル) - マルチモニター環境では Normalized でも -1〜1 を超える値が出るため Math CHOP でクランプ
- アスペクト比を維持したい場合は
Normalized Aspectを選択
❌ Problem: マウスの細かいブレでオブジェクトが揺れる
✅ Solution:
- 後段に Filter CHOP を入れてスムージング
- Lag CHOP で遅延付き追従に切り替え
- Sample Rate を下げてフレームレート同期にする
❌ Problem: Panels 指定したのに反応しない / 全パネルで反応する
✅ Solution:
- Panels パラメータに対象パネルのパスを正確に記入する
- 対象パネルがフォーカスを持っているか (アクティブか) を確認
- 空欄の場合は全画面イベントを受け取るので、限定したいときは必ず指定
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

