忍者ブログ

非現実的な話

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

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

×

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

コメント

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

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

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

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

4.Tips
その他、UMGに関して調べたり試したことを適当に乗っけておきます。超雑多。

4.1.ポーズ
ゲームをポーズしたとき、Actor継承のクラスではTickが停止する。
しかしUserWidgetでは停止しないため更新イベントが走り続ける。


こまった...。

ちょっと回避策を練る。

親Widgetを作り、変数にフレーム時間をつっこむ。
ポーズかかってたら0.0を入れておく。


以降、作成するWidgetは上記のWidgetを継承し、変数からフレーム時間を取得する。
これでタイマなどDeltaTimeを使用する機能は抑止できる。
ただこれだと毎フレーム呼ばれる問題は残っている。
また、アニメーションも停止できない。
Widgetを量産することを考えると、全WidgetにActorのTick更新制御できる機能が欲しいかな...


4.2.Widget
テキストなどを複数配置する時など、以下のように親に貼り付けすると属性や詳細の内容を複製できる。ただそれだけだけど、テキストの複製とか面倒だからね。


4.3.Invalidiation Box
更新を行わないWidgetに対してキャッシュを使用しない描画をするかどうか。
実験中だけどパフォーマンスは果たして改善するのか。
クラス設定から以下のチェックボックスをチェック。
また、適応するWidgetにもチェックを入れる。




使用前(80fps前後)。


使用後(110fps前後)。

確かに効果があった。
ただしこの設定を行った状態で更新を行うWidgetがあると(例えばfpsを表示するテキストを追加したりすると)40fps前後まで下がった。


4.4.サウンド
Widget内でサウンドを再生する場合、以下のノードから再生できる。
ただし、以下のノードは単発再生のみなので途中で停止できない。


また、User WidgetクラスはComponentを設定することができないのでAudioComponentも配置できない。

回避策



AudioComponentを変数として用意し、Widget生成時に渡す。
こうすることでWidget内で再生、停止はできるようになった。
実際にサウンドを制御するWidgetが音源データを持っていないのは違和感があるけどとりあえず。

4.4.描画優先
描画優先順(ZOrder)を整理。
 

・同一Slot内
    異なるZOrder:ZOrder準拠
    同一ZOrder:後優先


・同一Widget内
    異なるZOrder:ZOrder準拠
    同一ZOrder:後優先


・同一Viewport内
    異なるZOrder:ZOrder準拠
    同一ZOrder:後優先 (Create順)


5.1.参考
5.1.1.参考サイト
その他、更新の新しい公式ドキュメント

Invalidiation Box(公式ドキュメント)
 UMGのパフォーマンス向上に関して
イベントでUIの更新を操作する(公式ドキュメント)
 UMGを使用したWidgetの更新に関する記載など
UMGのベストプラクティス(公式ドキュメント)
 スケーリングや最適化のコツなど
Unreal Match 3(公式ドキュメント)
 サンプルプロジェクトUnreal Match 3について


5.1.2.参考プロジェクト
UMGを使用するにあたって参考になりそうなサンプルプロジェクト
 ・ContentExamples
 ・Unreal Match 3

サンプルは全部見れていないのでなんとも言えないのですが、
UMGはVer4.4以降からだったので基本的には初期に出たプロジェクトのUIをUMGで作成しなおすことはされていません(ってどっかのスレで見た気がする)。



以上、2015年UE4アドカレの記事についてでした。
少しでもゲーム制作の参考になれば!

コメント

プロフィール

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

ブログ内検索

カレンダー

09 2017/10 11
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