Unreal Engine xR

Unreal Engine 4.24以降でVRコントローラーの入力イベントをブループリントから拾う方法。

コトの発端

Unreal Engine 4.26を使用してVRコンテンツの開発を行っていた。

そしたら、下記の画像の通り「MotionController (R) Trigger」のようなMotionController入力を受け取るキーがなくなっていた。このままでは、OculusやVive、Valve IndexのようなVR HMDのコントローラの入力が受け取れない。。。

ただただ、トリガーが引かれたときのイベントを拾いたい。。。

どうやらアンリアルエンジン Ver.4.24から 「MotionController (R) Trigger」 は非推奨となったらしい。

https://docs.unrealengine.com/4.26/ja/SharingAndReleasing/XRDevelopment/VR/DevelopVR/MotionControllerKeyDeprecation/

MotionControllerのイベントが丸ごと消滅したみたいだね。代わりの方法で実装してみる。

環境

エンジン:Unreal Engine 4.26.2

検証したVR環境:Oculus Quest 2 (SteamVRで実行)

OS:Windows 10 Pro

VRコントローラのトリガー入力イベントを拾うまで

アクションシステムの設定

Unreal Engine 4.24以降では、コントローラの入力はすべてアクションシステムを経由する必要がある。

「編集」→「プロジェクト設定」を開く

左側のナビゲーションから「インプット」をクリックし、「バインディング」にある「アクションマッピング」右側の+マークをクリックする。下記の図では、右コントローラのトリガーを拾うアクションマッピングが登録されている状態なので、左コントローラの設定を行っていく。

左コントローラのトリガーを引いたときに発生するイベントの名前を設定する。ここでは、すでに登録している名前の規則に従い「MotionControllerTriggerL」とした。

次に登録した「MotionControllerTriggerL」を発生させるコントローラーと、そのボタンを追加していく。なるべく多くのコントローラーに対応させたいため、「トリガー」または「Trigger」で検索し、それらしいものを登録していく。

(私の環境では検索欄に日本語入力が受付られなかったので「トリガー」はコピペで入力した。)

入力したイベント名の右側の+マークをクリックして複数のコントローラーを登録する。

コントローラー入力イベントの受け取り

登録したアクションはPawnクラスのブループリントエディタのイベントグラフとかから呼び出せる。

アクションに登録されたキーが押された場合にPressedイベントが発生するから後は適当なノードにつないだらいいんじゃないかな。

いつもの

記事の正確性については無保証です。

  • この記事を書いた人
あっきー

あっきー

とある企業の研究者。研究分野以外に手を出しすぎて毎日が慌ただしい。 研究者の肩書きが正しいかどうかは万年の謎。 得意ジャンルはデータベースとセキュリティーですが、AIやIoT、アプリ開発など、手広く活動しています。

-Unreal Engine, xR
-, ,

Translate »