てんちょーの技術日誌

自分がつまづいたこととかメモ

【UE4】Widget Interaction Componentを使ってみた

はじめに

2016/08/07現在ではまだUE4.13 preview 1ですが、 新たに追加されたWidget Interaction Componentが思ったより便利な気がしたので 簡単に使い方を書いておこうかと思います。

手順

公式ドキュメントが追加されたので、そちらを確認するとなんか違ったので修正しておきます。

docs.unrealengine.com

こちらによるとWidgetInteractionComponent自体がrayを飛ばしています。

これにヒットしてるWidgetに対して、Actionを送るといったイメージです。

なので、普通はPlayer(今回はコントローラの手)に追加するそうです。

DebugLineはこんな感じにでます。

f:id:shop_0761:20161027145216p:plain

ヒット時

f:id:shop_0761:20161027145228p:plain

設定

f:id:shop_0761:20161027145252p:plain

InteractionDistanceがLineTraceのLengthだと思います。

でPlayer側にこんな感じでイベントを作ればおっけー

f:id:shop_0761:20161027145511p:plain

基本は3DWidgetを作る流れと同じなので、こちらでも見てください。

docs.unrealengine.com

一応今回はこんな感じで作ってます。

Widget

f:id:shop_0761:20160807112220p:plain

WidgetのEvent f:id:shop_0761:20160807112230p:plain

3DWidgetのActor

こいつにWidgetInteractionComponentを追加します。

InteractionDistanceとか設定できます。

f:id:shop_0761:20160807112243p:plain

LineTraceでWidgetを拾う

f:id:shop_0761:20160807112337p:plain

今回はMotionControllerのShoulderボタンを使いました。

一応押してる間にHitした対象がなくなったら困るので、適当にキャッシュしてみる

f:id:shop_0761:20160807112256p:plain

終了!!

ちゃんとlogが取れてます。

f:id:shop_0761:20160807112805p:plain

おわりに

めっちゃ簡単だし超VR向けで便利なのでは!?って感じでした。 PosingEditorの方も似たようなことをしていますが、非常に面倒な感じなのでこれに乗り換えたいですね。