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

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

Mouse In CHOP の入力取得イメージ

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

概要 📖 – マウス座標とボタン状態を 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 チャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

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)
  1. Mouse In CHOP の Output Coordinates を Normalized Aspect に設定
  2. Math CHOP の From Range / To Range で画面座標をワールド座標へ変換
  3. tx, ty チャンネルを Geometry COMP の Translate に Export
  4. マウスの動きに追従する 3D オブジェクトが完成

Example 2: クリックでイベントをトリガー 🖱️

Mouse In CHOP (lbutton) → Trigger CHOP → Animation COMP
  1. Mouse In CHOP の Left Button チャンネルを取得
  2. Trigger CHOP の入力に lbutton を接続し、立ち上がりエッジでトリガー
  3. Trigger 出力をアニメーション COMP の起動信号に利用
  4. クリック 1 回ごとにアニメーションが 1 度再生される

Example 3: ホイールでズームを制御 🔍

Mouse In CHOP (wheel) → Math CHOP (Multiply) → Camera COMP (tz)
  1. Mouse In CHOP の Wheel Increment を 0.1 に調整
  2. wheel チャンネルを Math CHOP に接続し、Multiply で感度を調整
  3. 出力を Camera COMP の Translate Z に Export
  4. マウスホイールでスムーズなズームインアウトを実現

関連オペレータ 🔗

類似機能OP 🔍

  • Keyboard In CHOP — キーボード入力をチャンネルとして取得する入力デバイス系 CHOP
  • Joystick CHOP — ゲームパッドの軸とボタン状態をチャンネル化

組み合わせ推奨OP 🔄

  • Math CHOP — マウス座標を任意のレンジへ変換
  • Filter CHOP — マウス移動の細かい揺れをスムージング
  • Trigger CHOP — クリックの立ち上がりエッジでイベント発火
  • Logic CHOP — 複数ボタンの組合せ判定 (AND / OR)
  • Lag CHOP — マウスの追従に遅延付きスムージングを適用

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Mouse In 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: マウスが 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 パラメータに対象パネルのパスを正確に記入する
  • 対象パネルがフォーカスを持っているか (アクティブか) を確認
  • 空欄の場合は全画面イベントを受け取るので、限定したいときは必ず指定

参考資料 📚

その他 🔗

公式リソース 📖

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