※この記事は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を記載していく。
今回は画面サイズ設定を中心に記載する。
#画面サイズの設定
初期設定だとアスペクト比しか項目がない。
Build Settingでターゲット機器(今回はスマホなのでAndroid)を選択してSwitch Platformする。
Androidにすることで、Android用の画面設定ができるようになった。今回は縦シューなのでWXGA Portrait(800x1280)にする。
※解像度で選択できるようになったが、実際にはこれもアスペクト比設定である。
何も考えずに画像を登録して表示させようとすると、こんなことになるでしょう。
所々で画素が欠けていたり、縮尺がおかしいのが分かります。これはカメラ設定が画面解像度と一致してないからです。
参考サイト:
http://megamin.jp/?p=1430
さて、想定する画面はWXGA Portrait(800x1280)ですが、2Dゲームでこの解像度のゲームを作ろうとすると、画像データサイズがとんでもないことになってしまいます。
上記URLを参考に、
・64×64 のスプライトを 400×640 の解像度に見立てたスクリーンに描画する
・実際の解像度は 800×1280 とする
と定義し、半分の解像度で画面作成することにします。
つまり64×64 の画像が横に6.25個、縦に10個描画できるようにします。
まず登録画像については以下の通りに設定します。
Pixels Per Unit = 64 は、1メートルあたり64ピクセルという意味です。
Unityでは1メートルは座標1つ分の扱いとなります。
カメラ設定は下記画像の赤枠の通りにします。
Size = 5 という設定は、縦方向が10メートルという意味になります。
以上の設定で、画面の縦方向に64x64の画像が10個まで並べられるようになったはずです。
#動作確認
PC上ではこんな感じになります(一部のみ抜粋)。
前よりはましになったが、まだ画素が欠けて見えるのは今回使用しているPC上ではWXGA Portrait(800x1280)を表現できないので、画面そのものが縮小されているためです。
(※画像紛失しました^^;)
以上