Unity備忘録、STG制作1:画面サイズの検討

※この記事は2年前くらい(2016年)に、当時在籍していた某社内で投稿したものの、誰一人として活用する人間がいなかったため、記事を全部引き上げ、個人的に再掲載してみることにしました。著作権を会社に渡した覚えは無いし、そんな規約も無かったので、まあ大丈夫でしょう。

UnityのVersion:5.3.5f1

背景

以前に個人製作でWEBブラウザ上で遊べるシューティングゲーム(以下、縦シューとする)を作成したが、これをスマホに移植したいと思っている。

作品公開URL:
http://unitygameuploader.jpn.org/game/5899.html
※当時(Unity4.6)はWebPlayer形式で作成したが、Unity5.4以降ではWebPlayerは非対応となった(確かセキュリティ脆弱性という理由で)。ブラウザによっては動作しないので注意です(少なくともIE11では動作する。Google Cromeでは動作しない)。

というわけで、スマホに移植する上でのHow Toを記載していく。
今回は画面サイズ設定を中心に記載する。

画面サイズの設定

初期設定だとアスペクト比しか項目がない。
img01.png

Build Settingでターゲット機器(今回はスマホなのでAndroid)を選択してSwitch Platformする。
img02.png

Androidにすることで、Android用の画面設定ができるようになった。今回は縦シューなのでWXGA Portrait(800x1280)にする。
※解像度で選択できるようになったが、実際にはこれもアスペクト比設定である。
img03.png

カメラの設定

今回はこの64x64の画像を表示させる。
img07.png

何も考えずに画像を登録して表示させようとすると、こんなことになるでしょう。
img04.png

所々で画素が欠けていたり、縮尺がおかしいのが分かります。これはカメラ設定が画面解像度と一致してないからです。

参考サイト:
http://megamin.jp/?p=1430

さて、想定する画面はWXGA Portrait(800x1280)ですが、2Dゲームでこの解像度のゲームを作ろうとすると、画像データサイズがとんでもないことになってしまいます。
上記URLを参考に、
 ・64×64 のスプライトを 400×640 の解像度に見立てたスクリーンに描画する
 ・実際の解像度は 800×1280 とする
と定義し、半分の解像度で画面作成することにします。
つまり64×64 の画像が横に6.25個、縦に10個描画できるようにします。

まず登録画像については以下の通りに設定します。
img05.png
Pixels Per Unit = 64 は、1メートルあたり64ピクセルという意味です。
Unityでは1メートルは座標1つ分の扱いとなります。

カメラ設定は下記画像の赤枠の通りにします。
img06.png
Size = 5 という設定は、縦方向が10メートルという意味になります。

以上の設定で、画面の縦方向に64x64の画像が10個まで並べられるようになったはずです。

動作確認

PC上ではこんな感じになります(一部のみ抜粋)。
前よりはましになったが、まだ画素が欠けて見えるのは今回使用しているPC上ではWXGA Portrait(800x1280)を表現できないので、画面そのものが縮小されているためです。
(※画像紛失しました^^;)

で、こちらがスマホの画面(原寸大)。バッチリですね。
img08.png

以上

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.