Widget Interactionを使ってみよう
みなさまどうもどうもお久しぶりでございます。
本日は要望がありましたので、Widget Interactionの簡単な使い方と概要について話していきたいと思います。
今回やること....
Buttonにカーソルが合っている状態で、クリックするとJump,FireEventを呼ぶ...といったものです。うん、シンプル。まずは動画を見てください。
[UnrealEngine4] Widget Interaction
1 : まずは何も考えずに指定されたクラスを作ります
(1)WidgetBlueprintClassを3DWidgetという名前で作成してください。
(2)ActorBlueprintClassをWidgetActorという名前で作成してください。
とりあえず、制作するクラスは以上になります。処理を組んでいきましょう。
2 : WidgetBlueprintClass内での処理から組んでいきます。
(1)WidgetEditorに画像の用にComponentを配置してください。(画像と同じように、Renameした方が後々救われるかもしれません。)
(2)なにも考えずに画像の通りにノードを配置して下さい。
では一つ一つ解説をしていきたいと思います。
Event Construct
このEventはこのWidgetがActiveになったとき、すなわちLevel上に配置されたまたはAdd to ViewPortなどで呼ばれた際に呼ばれるイベントです。ここに変数の初期化処理、セット処理などを書くのがいいと思います。
OnPressed
名の通り、Buttonが押されたときに呼ばれるEventです。Button1が押された時はJump、Button2が押された時はFireという関数を呼び出しています。
OnHovered , OnUnHovered
名の通り、Buttonにカーソルなどが重なった時に呼ばれるEventです。この処理では見栄えのための処理となっているので処理内容は割愛します。
3 : ActorBlueprintClass内でやること
ComponentにWidgetを追加します。
次に、Detailsの値を少しだけ弄ります。UserInterfaceのWidgetClassに先ほど作ったWidgetClassを指定し、DrawSizeに1920,1080と入力して下さい。
そして、InputのAuto Receive InputをPlayer0にしておいてください。
4 : 使用しているCharacter,PawnClassでやること
ComponentにWidgetInteraction,今回の主役を追加してあげます。追加したのちCameraにアタッチしてあげてください。(CameraにWidgetInteractionComponentを追従させてあげるためです。)
DetailのInteraction項目を弄ります。今回弄るのは、Interaction DistanceとInteraction Sourceです。画像の通りに編集して下さい。
Interaction Distance
Rayを飛ばす距離です。はい。
Interaction Source
どこからRayを飛ばすかを選択できます。DefaultではWorldですが、FirstPersonCharacterではCenter Screenが一番しっくり来たのでこれで。
そしてこちらもAuto Receive InputはPlayer 0で。
処理を組んでいきます。
.....................End!!!!!
単純です。Left Mouse Buttonがクリックされたら、Press Pointer Key関数を呼び、リリースされたらRelease Pointer Keyを呼ぶだけです。
(あっFire関数(custom event)は作ってください。)
あとはWidgetActorをLevelに配置したら、プレイしてみましょう。
お疲れさまでした。