LoginSignup
1
2

More than 3 years have passed since last update.

[UE4]VRでWidgetから物を出してみる

Posted at

WordPress版

(UE4:4.24.1 Oculus RiftとTouch使ってます。)

[UE4]Widget Interactionコンポーネントを使ってVRで触れるUIを制作してみる!

こちらのブログを読んでみて、ふとWidget Interactionから物を出してみることはできないか、と思って作ってみました。

VRWidgetTest ゲームプレビュー Standalone (64-ビット_PCD3D_SM5) 2020-01-24 22-52-14_Moment.jpg

動画はこちらから

作り方

WidgetからのSpawnに関してこちらのブログを参考にしました。

UE4:Widgetからドラッグアンドドロップでアクターをスポーンさせる

まずWidgetとそれを追加したActorを作ります。上のブログとほぼ同じ作りなので細かい説明は割愛。

名前:WidgetInteraction

名前:BP_WidgetInteraction

これとWidget Interactionを「BP_MotionController」に追加します。両方とも「Hidden In Game」をTrueにしておいてください。Widget Interactionは「Enable Hit Testing」をfalseにしておいてください。

Widget Interactionは「Show Debug」をTrueにしておくと良いかも

これらを表示させるための関数を作ります。

その後に「プロジェクト設定」→「インプット」からアクションインプットに「VisiblePauseMenu」を追加し、適当なボタンを割り当てます。ここではTouchのY,Bボタンを割り当てました。

「MotionControllerPawn」に移り、以下の様にBPを組みます。

こんな感じにWidgetを出すことができます。

次にSpawnする用のActorを作っていきます。名前は「BP_SM」としました。ここも上記のブログとほぼ同じ作りなので細かいことは割愛。

「BP_MotionController」に戻り、「BP_SM」をAttachするためのSphereCollisionを追加します。大きさは小さめで、コリジョンプリセットを「NoCollision」にするのを忘れずに。

イベントグラフを開き、以下のようにBPを組みます。ここも上記のブログとほぼ同じなので割愛。

WidgetをPressするための関数も作っていきます。列挙型「PressReleaseEnum」を作り、以下の様にします。

「BP_MotionController」に戻り、以下の様に関数を組みます。

次にWidgetをPressした時に「BP_SM」をSpawnさせるようにします。「プロジェクト設定」→「インプット」からActionInputに「PauseMenuPress」を追加します。ここでは「Oculus Touch (R) Trigger」を割り当ててます。

「MotionControllerPawn」を開き、以下のようにBPを組みます。ここで関数も作っていますが、これはWidgetで処理を組む時に使います。

Widgetを開き、変数「AttachLocation」(Vector、インスタント編集可能をTrueにする)を作った後、ButtonがPressされた時のBPを組みます。

Widgetを追加したActorを開き、以下のようにBPを組みます。

これで完成です。

1
2
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
1
2