0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UnrealEngine】レイアウトが崩れないウィジェットの作り方

Last updated at Posted at 2024-08-31

はじめに

UnrealEngineでウィジェットを作るときに、スクリーンサイズが変わってもレイアウトが崩れないように作りたいですよねぇ。
historiaさんの記事を読んで作り方はわかったのですが、それぞれのウィジェットの意味を自分の中で噛み砕きたくて記事を書きました。

historiaさんの方法は直観的で、UI初心者には実装しやすいですが、Xで最適化に関するご意見をいただいたので最後に追記しています。

※「自分用のメモをちょっと綺麗にして出してる...」くらいのノリなので、わかりづらい部分もあるかもしれません。X(Twitter)なりコメントで質問は大歓迎です。

対象者

この記事は下記のような人を対象にしています。

  • 駆け出しUnrealEngineエンジニア
  • WBP初心者

テーマ

レイアウトの崩れないウィジェットの作り方を理解しよう
👉ウィジェットの最適化の話もいただけたので追記

結論

image.png

ポップアップなどのひとまとまりごとに、

  • Overlay
    • SizeBox
      • ScaleBox
        • Overlay
          • コンテンツの中身を格納する

こういう階層構造にしたら使い勝手が良かったです。

詳細

Overlay

子ウィジェットを複数格納できます。
PaddingとAlignmentによって、位置を決めることができます。
子ウィジェットのサイズについては、子ウィジェット側の設定に基づいて決まります。

image.png

Size Box

子ウィジェットのサイズを設定できます。
親ウィジェットのOverlayのサイズと1920p*1080pとみなして設定すると期待していた見た目になりました。
これがあることで、下の階層のパーツを丸ごとサイズ管理することができます。
これを挟まないと、「ポップアップを丸ごとサイズ変更したいのに、パーツごとに調整しなきゃいけなくて大変💦」みたいなことが起きます。

image.png

後に追記しますが、SizeBoxは負荷が高いみたいです。Spacer使ったほうが軽そう

Scale Box

子ウィジェットのレイアウトが崩れるのを防いでくれます。
これがないと、スクリーンが小さくなった時などのタイミングでUIが崩壊します。

2024-08-31_18h53_21.gif
↑ ScaleBoxの有無による挙動の違い

Overlay

この子ウィジェットに、構成パーツを格納しまくったら完成!

image.png

ちなみに、パーツのデザインをPhotoshopなどで作る際は、スクリーンサイズが1920p×1080pの想定で作成して、そのまま出力するのがオススメです。
Overlayに配置する時、image sizeに画像のサイズを設定すれば、画面全体に対しても正しいサイズで配置されて楽ちんです。


追記!最適化の話

記事を公開したところ、最適化の観点のお話をXでいただけました。

簡単に要点をまとめると、

  • そもそもSize Boxは負荷が重い
  • Size BoxとScale Boxを組み合わせると、さらに処理負荷が重くなる

ようです。
SizeBoxの代わりにSpacerを使用することが最適化の観点では推奨されているみたいです!

となると、

  • Overlay
    • ScaleBox
      • HorizontalBox
        • Spacer
        • Overlay
          • コンテンツの中身を格納する
        • Spacer

とかが良さそうですかね!


おわりに

というわけで、レイアウトが崩れないウィジェットの作り方、、、からの最適化のお話でした。
動いたらヨシ!👈🐱⛑
と思っていましたが、ちょっとした工夫でゲームが軽くなるならそれに越したことはないですな!
それでは!

参考記事

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?