Unity

ピクセル画像は、Unityで、どれぐらいの大きさに表示されるのか

この記事では、Unityで、ピクセル画像が

  • どんなルールに基づいて
  • どのぐらいの大きさで表示されるのか

を明らかにして、Unityで2Dゲームを作る時

「どれぐらいのサイズの画像を用意すれば良いのか」
が誰でも分かるようにします。

 

しのごの言わず、まず画像を表示してみる

iPhone8(解像度:750×1334)シミュレータに、iPhone8の画面解像度と同じ、750×1334の画像を配置してみます。
(こんな画像。縁が分かるように、1pxの赤い枠を追加しています)

すると…

画像がはみ出すっ!!
(※白い線がiPhone8の画面サイズ)

 

なんで?

なぜかというと、Unityは、表示端末の解像度に関係なく、「10ユニット」「縦に」表示する仕組みだからです。

「ユニット」というのは「Unityで使われるサイズの単位」です。

 

1ユニットって何px?

1ユニットが何pxになるかは、画像ごとに定義されていて、先程iPhone8の背景として置いた画像を、Projectフォルダから選んでInspectorを見ると「Pixels Per Unit」に定義されています。

「100」ということは、1ユニット=100px
Unityは、表示端末の解像度に関係なく、「10ユニット」「縦に」表示する仕組み
というのは先程言った通りなので、つまり

Unityは、表示端末の解像度に関係なく、「1000px」「縦に」 「拡大/縮小して」表示する仕組み、という事です。

試しに、先程の画像(750×1334)を、(750x 1000 )に大きさを変えて、配置してみます。
すると…

縦がぴったり!!

シミュレータの枠も表示させてみると、上下に1pxの赤い線が見えます。(見えづらいけど)

 

縦が10ユニット=1000pxは分かったけど、横は何pxになるの?

横の表示サイズは、iPhone8の場合、縦が元々1334pxだったのを1000pxに縮めて表示しているので、その比率に合わせて、横は元々750pxの所が

750 x (1000/1334) ≒ 562px

になります。

では、試しに、先程のiPhone8の背景に配置した画像を「562×1000」に変えて、配置してみます。

ピッタリ!

シミュレータの枠も表示させると、上下左右に1pxの赤い線が見えます。(見えづらいけど)

 

おまけ

Unityは、表示端末の解像度に関係なく「10ユニット」「縦に」表示する仕組み、と言いましたが、これはMain Cameraを選択すると「Size」の所に定義されています。

この値の2倍、5×2=10ユニットが、縦に表示されるサイズとなります。
もっと高解像度にしたい場合は、このSizeを変更してみて下さい。

 

まとめ

Unityはデフォルトでは

  • 「縦に10ユニット=1000px」
  • 「端末の解像度に関係なく」

表示されます。

横は、端末の比率に合わせて
端末の横解像度 x (1000 / 端末の縦解像度) px
表示されます。

最近はアスペクト比16:9の端末が多いので、その場合、562×1000、表示されます。
(iPhone8のケースと一致)