1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[アスペクト比対応] スケールボックスの挙動検証

1
Last updated at Posted at 2026-04-13

はじめに

この記事はアスペクト対応という概念に悩む筆者がオイオイ泣きながらアスペクト比対応ためにいろいろ試した備忘録です。

参考程度にお読みください。

環境

UE5
Windows

参考

スケールボックスとキャンバスパネル

アスペクト対応において、主にこの2つをすごく駆使することになります。
スケールボックス
image.png

キャンバスパネル
image.png

スケールボックスは多くの子とか書いてあるくせに、一個しか子を持つことができないので、主に「キャンバスパネルでレイアウトを作り、後付けでスケールボックスの子にする」という使い方になります。

後付けで子にする/階層を吸収させる

ラップ

階層から子にしたいウェジットを選択し、…でラップするから選んだUIで子にしたいUIをラップ(子にする)ことができます
image.png

これが↓
スクリーンショット 2026-04-10 093751.png
こうなる↓
image.png

置換

置換では特定のパネル類に選択したUIを置き換えることができます。
image.png

また、子で置換を選ぶことで、そのパネルの下の階層の子と置換することもできます
image.png

これが↓
スクリーンショット 2026-04-10 093912.png
こうとか↓
image.png

こうなる↓
image.png

ストレッチの種類

スケールボックスの子になっているウェジットのストレッチにはいくつか設定項目があります
image.png

キャンバスパネルと中央にアンカーされたテキストを作成し、これをラップした場合の例を見ます。※Stretch DirectionはBoth
image.png
子のCanvasPanelのAlignmentはどちらも中央揃えです
image.png

None

説明:コンテンツをスケーリングしません

動作しません
image.png

Fill

説明:領域のスペース全体が埋まるようにコンテンツを不均等にスケーリングします

スケールボックスの子になっているUIの領域を全体まで拡張します
キャンバスパネルだとほとんど問題は起きませんが、テキストボックスなどが子になっている場合、スケールボックスの範囲=テキストの範囲(サイズ)となるので、場合によっては位置ずれなどが起きる可能性があります
image.png

↓テキストボックスを直接スケールボックスの子にした場合
テキストは基本上揃えなので寄ってしまっている
image.png

Scale to Fit

説明:クリップしなければスケーリングできなくなるまでコンテンツを均等に(アスペクト比を維持して)スケーリングします

image.png

つまりスケーリングできるもの(CanvasPanelなど)は限界まで圧縮し、サイズが設定されているものはXかYが端にあたるまで拡大するです
image.png

このサイズの定義は、アンカーポイントやAlignmentが大きく関わっています。
スクリーンショット 2026-04-10 101900.png
スクリーンショット 2026-04-09 180119.png

アンカーポイントやAlignmentを変更することで、保ちたい領域を調整することができます。
image.png
image.png

Scale to Fit X

説明:X軸に沿ってクリップしなければスケーリングできなくなるまでコンテンツを均等に(アスペクト比を維持して)スケーリングします。Y軸はクリップ可能であり、クリップされます。

Scale to FitのX軸しか見ない版です。
image.png

Scale to Fit Y

説明:Y軸に沿ってクリップしなければスケーリングできなくなるまでコンテンツを均等に(アスペクト比を維持して)スケーリングします。X軸はクリップ可能であり、クリップされます。

Scale to FitのY軸しか見ない版です。
image.png

Scale to Fill

説明:すべての面が領域のサイズを満たすか、または超えるまで、コンテンツを均等に(アスペクト比を維持して)スケーリングします。この場合、長い方の面がクリップされます。

XとYを見たとき、短い方を基準に限界まで敷き詰めるよってことです。
image.png

Scale by Safe Zone

説明:現在ビューポートに適用されているセーフゾーンのサイズに応じてコンテンツをスケーリングします

モバイルとかで触れない場所があるときにそれに合わせてスケーリングしてくれるらしいやつです
スクリーンショット 2026-04-10 112537.png

右上の画面サイズから確認できます

image.png

User Specified

説明:ユーザーが指定したスケールでコンテンツをスケーリングします。
スクリーンショット 2026-04-10 114130.png

これを選択すると、User Specified Scaleという項目が表示されます

image.png

変更することでスケールを変更することができます

image.png

Render Transformとの使い分けは
「見た目を変えたいだけならRender Tansfrom」
「物理的にUIサイズを上げたいならUser Specified Scale」
だそう(Developer Assistant曰く)

User Specified with Clipping

説明:ユーザーが指定したスケールでコンテンツをスケーリングをしてクリッピングも行います。

User Specifiedにクリッピング機能が付いたやつ

↓ User Specified with Clipping
image.png

↓User Specified
image.png

Stretch Direction

スケーリングの方向を限定することができます
image.png

Both

スケールアップもスケールダウンも可

↓Scale to Fit X時。現状はスケールアップされています
image.png

Dowb Only

スケールダウンのみ可

↓Scale to Fit X時。スケールアップできないので元のサイズのままです
image.png

↓小さくするのは問題ない
image.png

Up Only

スケールアップのみ可

↓Scale to Fit X時。スケールアップは可なので限界まで大きくなります
image.png

↓元のサイズを下回るとクリップされる
image.png

Ignore Inherited Scale

説明:継承するスケールを無視するオプションのBool値。ローカルスケーリングを適用する前に、親の影響を相殺するために反転したスケーリングを適用します。

image.png

適用するとこんな感じでテキストがとんでもないサイズになったりとかします
image.png
主にUser Specifiedと併用して絶対に固定値にしたいものとかに使うらしいです

まあ結局ほとんどFillとScale to Fit系しかお世話にならないんですけどね

次回「アンカーポイント編」 デュエルスタンバイッ

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?