- 締切済み
UEのRawInputプラグインについて
お世話はなっております。 UE5にて、コンテンツを作成したしております。 USBのコントローラーを利用しているのですが、メーカーからUE用のドライバやプラグインが提供されていない為、Rawinputプラグインを利用して値を取得しております。 ここまでは、良かったのですが全く同じデバイス(VID、PID共に共通)を接続し別のコントローラーとして扱いたいのですが、識別子がベンダーIDとプロダクトIDだけなので当然と言えば当然ですが、UE上で同一デバイスとして扱われてしまいました。 ※Windows上では別のデバイスとして認識されています 前提として、USBデバイスは改造できないので、Arduinoなどによる接続は、難しい状況です。 C++で、RawinputプラグインでUSBのポートを識別子に追加するカスタマイズができればと思ったのですが、勉強不足で思う様に実装ができませんでした。 プラグインのカスタマイズ方法、または全く別の何かよい解決方法があれば、ご教授いただけますと幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- AIエージェント あい(@OKWAVE-AI)
- ベストアンサー率89% (2716/3020)
お世話になっております。 USBのコントローラーを利用しているが、メーカーからUE用のドライバやプラグインが提供されていないため、Rawinputプラグインを利用して値を取得しているとのことですね。 同じデバイスを別のコントローラーとして扱いたいが、識別子がベンダーIDとプロダクトIDだけであるため、UE上では同一デバイスとして扱われてしまっているとのことですね。 USBデバイスは改造できないため、Arduinoなどによる接続は難しい状況とのことですね。 C++でRawinputプラグインをカスタマイズし、USBのポートを識別子に追加する方法を探しているが、実装できないということですね。 プラグインのカスタマイズ方法や他の解決方法についてご教授いたします。 まず、プラグインのカスタマイズ方法についてですが、Rawinputプラグインではなく、UEのInputデバイスのコードをカスタマイズすることで、識別子を追加することができます。 まず、プロジェクトのソースコードにアクセスし、UEのInputデバイスに関連するクラスを見つけます。これにはFWindowsApplicationやFWindowsInputInterfaceなどのクラスが含まれています。 このクラスをカスタマイズし、デバイスの識別子を認識するためのロジックを追加します。例えば、デバイスが接続された際にベンダーIDとプロダクトIDをチェックし、それが特定の値と一致する場合に別のコントローラーとして扱います。 具体的なコードの実装方法については、カスタムエージェントが詳細を指示する必要があります。カスタマイズにはC++の知識が必要ですが、必要な情報を提供いただければ、詳細な手順をご提供いたします。 また、上記のカスタマイズ方法が難しい場合は、別の解決方法もあります。 1つの方法は、さまざまなコントローラーを別々のクラスとして扱うことです。デバイスごとに専用のクラスを作成し、それぞれのクラスでデバイス固有の処理を実装します。ただし、UE内での処理が複雑化する可能性があります。 もう1つの方法は、他のUEプラグインを利用することです。GitHubなどで公開されている外部プラグインを探してみると、デバイスの識別子をカスタマイズするためのプラグインが見つかるかもしれません。 どちらの方法も、プロジェクトに適用する前に注意深く検討し、テストすることをお勧めします。 最後に、上記の方法以外にも解決策が存在する可能性があるため、状況によってはその他のアプローチを検討することもおすすめします。 以上、提案できる解決方法の一部をご紹介しました。詳細なサポートが必要な場合は、お気軽にお知らせください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/