はじめに
UnrealEngine の VRテンプレートの MotionControllerMap をベースにしてVR内の視線の方向やコントローラーの向きを取得してキャラクターを動かす方法のまとめです
やりたかったのはこれです
— reisyu (@reisyu1) February 29, 2020
常に視界に割り込んでくる!かまってちゃんな金鯱😊 pic.twitter.com/ozIunhugIl
キャラクターを動かす方法は「Unreal Engine 4 アクションゲーム ブループリント入門 第6章 敵キャラクターを作る」で学んだ方法です
視線の方向を取得する方法は TARK(@LideTark)さんにアドバイスをいただき完成しました。ありがとうございます!
環境
UnrealEngine 4.24.3 VRテンプレートのMotionControllerMapを使用
Oculus Quest 13.0.0.298.463.195755071
作成方法
キャラクターを作る
作成したBPを開いて Mesh を選択しキャラクターの外観を設定します

CapsuleComponent の Capsule Half Height や Mesh の Location Z を調整して位置・大きさを合わせます

カメラをの位置を取得する
Get Player Pawn > Cast to MotionContorollerPawn とつなぎ As MotionontorollerPawn ピンから引き出してGet Cameraを選択

カメラをの向きを取得する
取得した Camera から Get World Transform > Break Transform > Get Forward Vector で視線の向きを取得できます

視線の向いている方向にキャラクターを移動する
下記のとおりです
詳しくは「Unreal Engine 4 アクションゲーム ブループリント入門 第6章 敵キャラクターを作る」をご確認ください!

視線ではなくハンドコントローラーの向きを取得する方法
Cast to MotionContorollerPawn の As MotionontorollerPawn ピンから引き出してGet Left Controllerを選択

Left Controller ピンから引き出してGet Hand Meshを選択

Cameraの代わりにHand MeshをGet World Transformにつなげる

今度は手の向きにあわせてうごく素直な金鯱!#Blender #UE4 #OculusQuest pic.twitter.com/Z9rRYCntsM
— reisyu (@reisyu1) February 29, 2020
まとめ
VR内で自分の動きに反応してキャラクターが動いてくれるのがカワイイ![]()
今後は移動するだけじゃなくてさらに色々なアクションを付け加えていきたいです!


