(UE4:4.24.1 Oculus RiftとTouch使ってます。)
[UE4]Widget Interactionコンポーネントを使ってVRで触れるUIを制作してみる!
こちらのブログを読んでみて、ふとWidget Interactionから物を出してみることはできないか、と思って作ってみました。
作り方
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を組みます。
これで完成です。