読者です 読者をやめる 読者になる 読者になる

Widget Interactionを使ってみよう

UnrealEngine4

みなさまどうもどうもお久しぶりでございます。

本日は要望がありましたので、Widget Interactionの簡単な使い方と概要について話していきたいと思います。

 

今回やること....

          Buttonにカーソルが合っている状態で、クリックするとJump,FireEventを呼ぶ...といったものです。うん、シンプル。まずは動画を見てください。


[UnrealEngine4] Widget Interaction

 

 

1 : まずは何も考えずに指定されたクラスを作ります

(1)WidgetBlueprintClassを3DWidgetという名前で作成してください。

f:id:ikagamedev:20161031232040p:plainf:id:ikagamedev:20161031232059p:plain

 

(2)ActorBlueprintClassをWidgetActorという名前で作成してください。

f:id:ikagamedev:20161031232000p:plain

 

とりあえず、制作するクラスは以上になります。処理を組んでいきましょう。

 

2 : WidgetBlueprintClass内での処理から組んでいきます。

(1)WidgetEditorに画像の用にComponentを配置してください。(画像と同じように、Renameした方が後々救われるかもしれません。)

f:id:ikagamedev:20161031233620p:plain

 

(2)なにも考えずに画像の通りにノードを配置して下さい。

f:id:ikagamedev:20161031233413p:plain

 

では一つ一つ解説をしていきたいと思います。

Event Construct

このEventはこのWidgetがActiveになったとき、すなわちLevel上に配置されたまたはAdd to ViewPortなどで呼ばれた際に呼ばれるイベントです。ここに変数の初期化処理、セット処理などを書くのがいいと思います。

OnPressed

名の通り、Buttonが押されたときに呼ばれるEventです。Button1が押された時はJump、Button2が押された時はFireという関数を呼び出しています。

OnHovered , OnUnHovered

名の通り、Buttonにカーソルなどが重なった時に呼ばれるEventです。この処理では見栄えのための処理となっているので処理内容は割愛します。

 

3 : ActorBlueprintClass内でやること

f:id:ikagamedev:20161031234507p:plain

ComponentにWidgetを追加します。

次に、Detailsの値を少しだけ弄ります。UserInterfaceのWidgetClassに先ほど作ったWidgetClassを指定し、DrawSizeに1920,1080と入力して下さい。

f:id:ikagamedev:20161101000356p:plain

そして、InputのAuto Receive InputをPlayer0にしておいてください。

 

4 : 使用しているCharacter,PawnClassでやること

f:id:ikagamedev:20161031235440p:plain

ComponentにWidgetInteraction,今回の主役を追加してあげます。追加したのちCameraにアタッチしてあげてください。(CameraにWidgetInteractionComponentを追従させてあげるためです。)

 

f:id:ikagamedev:20161031235629p:plain

DetailのInteraction項目を弄ります。今回弄るのは、Interaction DistanceInteraction Sourceです。画像の通りに編集して下さい。

 

Interaction Distance

Rayを飛ばす距離です。はい。

 

Interaction Source

どこからRayを飛ばすかを選択できます。DefaultではWorldですが、FirstPersonCharacterではCenter Screenが一番しっくり来たのでこれで。

 

f:id:ikagamedev:20161101000721p:plain

そしてこちらもAuto Receive InputはPlayer 0で。

 

処理を組んでいきます。

f:id:ikagamedev:20161101000126p:plain

.....................End!!!!!

単純です。Left Mouse Buttonがクリックされたら、Press Pointer Key関数を呼び、リリースされたらRelease Pointer Keyを呼ぶだけです。

 

(あっFire関数(custom event)は作ってください。)

f:id:ikagamedev:20161101001006p:plain

 

あとはWidgetActorをLevelに配置したら、プレイしてみましょう。

お疲れさまでした。