10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Oculus Quest コントローラーの入力をUE4 Blueprint で受け取る

Last updated at Posted at 2019-08-25

#はじめに
Oculus公式ページにある Mapping Oculus Controller Input to Blueprint Events をもとにした内容です。公式ページには書かれていないサムスティック、トリガー、グリップの浮動小数点値の取得についての内容を追記しています

ボタン押したかどうかだけではなく「ボタンに触れているかどうか」「指がボタンからどれぐらい離れているか」など色々な情報が取れます。公式ページでも難しい英語ではないので分かるんだけど、(日本語のページができていました!!)似たような名前で多くの機能があり混乱しかけたのでまとめました。

左コントローラーの例で書いていますが右コントローラーも(L)(左)が(R)(右)になるだけでほぼ同じです。

#確認した環境
UnrealEngine 4.22.3 VRテンプレートのMotionControllerMapを使用
Oculus Quest付属のコントローラー

@shienaさんの記事を参考に ManifestRequirementsAdditions.txt を所定にフォルダに置くという対応をしています。
Oculus Quest Build 7.0アップデート後に自作アプリがおかしくなった時の対策

#サムスティック タッチ、プレス、サムアップアクション
サムスティックの「押し込み」「触れているか」「指がどれぐらい離れているか」を取得できます。

名前 説明
MotionController (L) Thumbstick 左コントローラのサムスティックのPressedおよびReleasedイベント。
image.png
Oculus Touch (L) Thumbstick CapTouch 左コントローラーのサムスティック静電容量式タッチイベント。 Axis Valueは、ユーザーがサムスティックに触れている場合は1を返し、そうでない場合は0を返します。
image.png
Oculus Touch (L) Thumb Up CapTouch 左コントローラーのサムスティック静電容量式タッチイベント。 Axis Valueは、ユーザーの親指がサムスティックからどれだけ離れているかを表す0.0から1.0の浮動小数点値を返します。0.0は可能な限り近く、1.0は測定可能範囲より離れています。
image.png

#サムスティック 上下左右 プレス、リリースアクション
サムスティックの「上下左右に倒す」アクションを取得できます。これでとれるのはデジタル値です

名前 説明
MotionController (L) Thumbstick Up 左側のコントローラーのサムスティック上のPressedおよびReleasedイベント。
image.png
MotionController (L) Thumbstick Down 左側のコントローラーのサムスティック下のPressedおよびReleasedイベント。
image.png
MotionController (L) Thumbstick Left 左側のコントローラーのサムスティック左のPressedおよびReleasedイベント。
image.png
MotionController (L) Thumbstick Right 左側のコントローラーのサムスティック右のPressedおよびReleasedイベント。
image.png

サムスティックの倒し具合を-1.0から+1.0の浮動小数点値で取得できます。(公式ページには書かれていませんでした)

名前 説明
MotionController (L) Thumbstick X サムスティックの左右(X軸)の倒し具合を-1.0から+1.0の浮動小数点値で取得。
image.png
MotionController (L) Thumbstick Y サムスティックの上下(Y軸)の倒し具合を-1.0から+1.0の浮動小数点値で取得。
image.png

#トリガー タッチ、プレス、リリース、およびポインティングフィンガーアクション
トリガーの「押す(引く?)」「触れているか」「指がどれぐらい離れているか」を取得できます。

名前 説明
MotionController (L) Trigger 左コントローラーのトリガーの、PressedおよびReleasedイベント。
image.png
Oculus Touch (L) Trigger CapTouch 左コントローラーのトリガーの静電容量式タッチイベント。 Axis Valueは、ユーザーがトリガーに触れている場合は1を返し、そうでない場合は0を返します。
image.png
Oculus Touch (L) Pointing CapTouch 左コントローラーのトリガーの静電容量式タッチイベント。Axis Valueは、ユーザーの指がトリガーからどれだけ離れているかを表す0.0から1.0の浮動小数点値を返します。0.0は可能な限り近く、1.0は測定可能範囲より離れています。
image.png

トリガーの引き具合を0.0から1.0の浮動小数点値でとれます。(公式ページには書かれていませんでした)

名前 説明
MotionController (L) Trigger Axis 左コントローラーのトリガーの引き具合を0.0から1.0の浮動小数点値で返します。
image.png

#グリップ プレス、リリースアクション
グリップボタンを「押す」アクションを取得できます。

名前 説明
MotionController (L) Grip1 左コントローラのグリップのPressedおよびReleasedイベント。
image.png

グリップの押し具合を0.0から1.0の浮動小数点値でとれます。(公式ページには書かれていませんでした)

名前 説明
MotionController (L) Grip1 Axis 左コントローラーのグリップの押し具合を0.0から1.0の浮動小数点値で返します。
!image.png

#X, A, Y, Bボタン プレス、リリースアクション
X, A, Y, Bボタンを「押す」「触れているか」を取得できます。

名前 説明
MotionController (L) FaceButton1 左コントローラーのXボタンのPressedおよびReleasedイベント。
image.png
Oculus Touch (L) X Button CapTouch 左コントローラーのXボタン静電容量式タッチイベント。 Axis Valueは、ユーザーがXボタンに触れている場合は1を返し、そうでない場合は0を返します。
image.png
MotionController (L) FaceButton2 左側のコントローラーのYボタンのPressedおよびReleasedイベント。
image.png
Oculus Touch (L) Y Button CapTouch 左コントローラーのYボタン静電容量式タッチイベント。 Axis Valueは、ユーザーがYボタンにタッチしている場合は1を返し、そうでない場合は0を返します。
image.png

#参考リンク
Mapping Oculus Controller Input to Blueprint Events
Oculus Quest Build 7.0アップデート後に自作アプリがおかしくなった時の対策

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?