忍者ブログ

非現実的な話

ゲーム、UnrealEngine4などの話題を取り扱います。取り扱う内容は個人の範囲で調べたものなのでご利用は自己責任でお願いします。

【UE4】UMGを使ったUIの実装+ (その2)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

【UE4】UMGを使ったUIの実装+ (その2)

この記事はUnreal Engine 4 (UE4) Advent Calendar 2015 24日目の記事です。

-------------------------------------------------------------------------------

3.3.Widgetの制御
3.3.1.ゲームロジックへの繋ぎこみ
UIの大枠ができたのでゲームロジックに繋ぎこんでいきます。
先程作成したバトル関連情報のWidgetをバトル開始時にCreate、AddtoViewportノードで表示します。バトル開始前の演出として黒フェードも併せて表示する必要があるのでここで同じく生成しておきます。生成元は敵とのエンカウントを検知するPlayerControllerクラスで行います。
 

フェード部分はバトル情報よりも上に表示する必要があるため、ZOrder(描画優先度)を予め上げています。


黒フェードのマスク用WidgetもFullscreenサイズで作成、バトルWidgetと同様に画面上部と画面下部で分けて子Widgetを作成し、フェードが終わったら自分でRemoveしています。


このWidgetはバトル開始前にしか使わないため、役目を果したら自分でRemoveするようになっています。

フェード部のマテリアルは以下のようにScalarParameterで制御しています。

画面上部のフェード部


画面下部のフェード部

フェード演出が終了したらバトル関連情報はプレイヤの情報を更新するだけなので、バトル開始時の処理はこれで完了となります。

3.3.2.アニメーションとの連携
①シーケンス連動アニメーション
バトル終了後、リザルト画面を表示してリザルトのオープニングアニメーションを行います。このケースではバトル終了を検知したPlayerControllerクラスからリザルト用のWidgetを生成、アニメーション開始制御行っています。

ここまで処理が長いとUI制御用のサブレベルを用意して処理はそちらに書いてしまっても良いかもしれません...
リザルトのオープニングアニメーションはこんな感じ。


UMGのデザイナ部にあるタイムライントラックを使うことで簡単にアニメーションを作成することができます。オープニングアニメーションは平行移動だけの単純なアニメーションのため、以下のようにCanvasPanelをそれぞれのWidgetの中央に配置し、平行移動させるだけで実現できます。


また、アニメーション開始→アニメーション再生→アニメーション終了→キー入力許可、とシーケンシャルに動かすため、以下のようにOnAnimationFinishedを使用してアニメーションの終了を通知します(ただしこのイベント、アニメーション終了以外にもアニメーション停止イベント(StopAnimation)でも反応してしまうので注意)。


②単独アニメーション
敵にダメージを与えたときなどに表示するダメージUIなど、シーケンシャルに動かす必要のない独立したUIのアニメーションに関する内容です。こんな感じ↓。


(gifファイルって結構重いなぁ)

もちろん表示のトリガイベントは必要なのでそちらは準備します。
このケースではダメージ発生イベントをコントロールするクラス(ATBManagerクラス)からダメージ表示用Widgetを生成しています。被ダメージキャラの中心に表示したいので、キャラクターのケツの位置(SkeltalMeshからBone"Hips"のワールド座標を取得)をスクリーン座標に変換し、Widgetの表示位置を設定しています。


先程と同様にアニメーションの終了をとりますが、ダメージ表示が終わったら用済みとなるためRemove from Parentで消えてもらいます。


アニメーションとの連携の一例を載せてみました。
UIにアニメーションを付けるとよりゲームっぽくなりますね。

(その3)に続く→

コメント

プロフィール

UnrealEngine4について調べる。
ゲームはそんなに得意ではない。

ブログ内検索

カレンダー

07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

リンク

  • [PR]
    PR