0

個々のマウス デバイスを選択的に制御できる Windows 用の複数マウス入力ツールを開発したいと考えています。また、クリック イベントが無効になっているデバイスの MouseMove イベントを追跡し、ポインターを表示したいと考えています。

私が知っている最も近い既存のソリューション (Win7 用) はTeamPlayerですが、コントロールを個々のマウスに制限する (またはカーソル画像をカスタマイズする) 機能がなく、代わりに左クリックでコントロールを自由に転送します。DeviceID でデバイスを手動で無効にしようとしましたが、再度有効にすると、TeamPlayer はそれらを認識しません。さらに、私のマウス デバイスの多くは同じ DeviceID を持っています。

私は Microsoft の MultiPoint SDK を検討しており、MultiPoint TUIO (MultiPoint SDK 用のマルチタッチ TUIO フレームワーク シミュレーター) と Mindstorm の Unity3D-TUIO を使用して、Unity3D でインタラクティブなマルチマウス ゲームを既に開発しています。

MultiPoint TUIO は MultiPoint オーバーレイ ウィンドウを使用し、TUIO メッセージを基になるターゲット ウィンドウに送信します。ただし、非 MultiPoint ウィンドウでポインターを制御するこの種のアプローチ (つまり、 MultipointMouseEventsのルーティング) には問題があります。たとえば、クリック イベントは MultiPoint ウィンドウからフォーカスを奪い、すべての入力デバイスに制御を戻します。

誰でもより良いアプローチを提案できますか?

アップデート

Unity での MultiPoint の使用に関しては、MultiPoint TUIO を適応させるのはやり過ぎであることがわかりましたが、同じアプローチを使用しました。

UDP サーバーと MultiPoint に登録された透明なウィンドウを実装するアプリケーションを (WPF で) 作成しました。このウィンドウは、Unity ウィンドウを正確にオーバーレイするように位置とサイズを調整します。[注: Unity Player 設定で「バックグラウンドで実行」を有効にする必要があります。]

次に、MultiPoint マウスの位置とイベントを、静的メンバーの状態を追跡UdpClientする というクラスの Unity のレシーバーにストリーミングしました。MultiPointInput次に、たとえば、特定のマウス位置にMultiPointInput.mousePosition(mouseID)( と同様にInput.mousePosition) でアクセスします。

私は教室で 15 ~ 20 個のワイヤレス マウスを使用して成功しました。SDK は非常に安定していますが、数台以上のワイヤレス マウスを使用すると、ハードウェアに潜む問題があります (さまざまな範囲と干渉)。

4

2 に答える 2

1

複数のマウス入力から入力を検出する方法を探していましたが、簡単に実行できる便利なものが見つかりませんでした。私はこの Multipoint SDK に出くわし続けましたが、それは長い間死んでいるようでした。

また、生の入力データをキャプチャするための提案も見つけました

おそらく非常に低いレベルでキーボードデバイスを個別に管理しますが、そのようなものを実装する方法がわかりません。そのようなことを試しましたか?他の人がそれを進めるべき理由/すべきではない理由について、何かフィードバックをいただけますか?

また、TUIO を使用したソリューションの管理のしやすさについて詳しく教えていただけますか? 私は現在、複数のマウスの個別の移動入力が必要なユニティ ゲームでそれを理解しようとしています。

更新: SDG Toolkit を使用しました: http://grouplab.cpsc.ucalgary.ca/cookbook/index.php/Toolkits/SDGToolkit で複数のマウス入力を読み取ったところ、成功したことが証明されました。私はしばらくそれをいじる必要がありましたが、最終的に機能するようになり、彼らが提供する最も単純なサンプルアプリに基づいてアプリケーションを作成しました. 基本的に、ソケット サーバー/クライアント プロジェクトをこの SDG アプリと組み合わせました。サーバーは Unity ゲームで、クライアントはアプリで、マウスを動かすたびにデータを送信します。

面白いことに、私が試した他のどのコンピューターでも動作しませんでした。実際に何をしたのか、自分のコンピューターで動作させるために何をしたのかわかりません。サーバー/クライアントが機能しない理由について、私は多くのことをテストしました。基本的に、2007 年の (そして事実上死んでいる) ライブラリを取り上げて、それが間違いのないものであると偽ったのは私の間違いでした。

とにかく、もし誰かがこの SDG を試してみて、それが彼らのために働くかどうかを確認したいなら、それは素晴らしいことです. このライブラリは、直感的でシンプルかつ効率的です。唯一の問題は、奇妙な理由で機能しないことです。

于 2013-04-06T13:14:59.753 に答える