Unity2Dアクションの作り方【作り始める前の注意点】

この記事は本のように順を追って解説しています。この記事は途中のページになります。
この記事を見ていて、現在の状況がわからない場合や忘れてしまった事などが出てきたら↓のリンクから目次ページへ飛べますので立ち戻って見てください。

<ゲームを作り始める前に>

今まで、Unityの基本的な事を解説してきました。ある程度わかったと思うのでいよいよゲーム作りを開始したいと思います。

しかし、ゲーム作りを始める前に色々やらなくてはいけない事があるので、まずは下準備をしましょう。

<プラットフォームを選ぼう>

何で動くゲームなのかを選択しよう

さて、以前にもゲーム制作を始める前にプラットフォームを選ばなくてはいけないという話をしました。

プラットフォームの話については↓の記事にて行っています。

どこで出すのか、何で動くのかを先に決めておかないとゲームの作り方が変わってしまいますので、ゲームを作り始める前にプラットフォームを決めてしまいましょう。

Build Settingでプラットフォームを切り替えよう

プラットフォームを何にするか選んだら、Unityの設定をそのプラットフォーム向けの設定に変更しなければいけません。

そうすることで、Unityで制作するゲームをそのプラットフォーム用に変更することができます。

別に途中からプラットフォームを変えることもできますが、プロジェクトが大きくなってからプラットフォームを切り替えると切り替え作業が発生するので、最初にやってしまった方が効率的です。

それではやっていきましょう。上部メニューのFile>Build Settingを選択してください。

build settings

そうすると↓のような画面が開いたかと思います。

build settings window

↑の中で変更したいプラットフォームを選択してください。当サイトではウェブブラウザをオススメしているのでWebGLを選択します。

・プラットフォームを切り替えられないケース

ここで選択したプラットフォームで↓のようにNo ○○ module loadedと表示された方は選択したプラットフォームを制作する環境がインストールされていません。Unity Hubの項目に戻って確認してみてください。

no module loaded

Unity Hubについては↓の記事からどうぞ

module loaded

このように、No ○○ module loadedと表示されなければOKです。

Switch Platform

そしたら、右下の方にある Switch Platformというボタンをクリックしてください。

switch platform

Unityマークが選んだプラットフォームのところに移動していたら完了です。

complete switch platform

後からでも変更可能ですが、後になればなるほど変更するのに必要な時間が長くなるのでなるべく最初に設定しておいた方が吉です。

Point

・最初にプラットフォームの設定を変更しよう!
・後からでもできるけど変更処理の時間が長くなるぞ!

<解像度とアスペクト比>

解像度とアスペクト比の重要性について知ろう

さて、まだまだ設定が続きますが、ゲームを作り始める前にものすごーーーーく重要なことがあります。

それは解像度とアスペクト比の設定!これをちゃんとしておかないと後々せっかく作ったゲームの画面が破綻してしまいます

例えば↓の赤い箱の4隅が自分でゲームを作成していた際の画面端だと思ってください。そして、ゲームビューが擬似的な解像度だと思ってください。ゲームビューは実際のゲームに表示される画面です。

rectangle game view

では↑の状態で赤い箱が画面端となるわけですが、ここで解像度を変更してみましょう。簡単です。ゲームビューを動かせば擬似的に解像度を変える事ができます。

change aspect rate game view

自分がここが端っこだと思って4隅においた赤い箱が解像度が変わることによって全然違うところにいっている事がわかるでしょうか。見えなくなってしまう時もあります。

この赤い箱がもし、HPバーやスコアだったり、画面端の壁だったりすると悲惨です。見えなくなったり画面端にいてほしいものが中央近くに来たりします。

このように解像度によってゲームの見え方が変わってしまうのです。

ところが、解像度というのはプラットフォームごとに異なります。ユーザーが使用している端末のディスプレイの解像度になります。

そんなのはっきり言って人によりけりなんですが、そこをうまい具合に合わせてあげる必要があります。




アスペクト比を決めよう

さて、解像度が違う事によってゲームの見え方が破綻してしまうという事がわかったと思います。ではどうすればいいかというと、まず、基準となるアスペクト比を考えていきましょう。

アスペクト比というのは解像度の比率です。これを考える必要があります。

考えていきたいところなんですが、ユーザーによって使うディスプレイの解像度なんてまちまち過ぎて対応しきれません。

例えば、プラットフォームにiOS/Androidを選択した場合、スマホとタブレットの両方を考慮に入れる必要があります。

その場合のディスプレイの解像度とアスペクト比は以下のようになります。

iOS/Androidのディスプレイの解像度とアスペクト比

・2688 × 1242(アスペクト比 19 : 9)
・2436 ×1125(アスペクト比 2 : 1)
・1920 × 1080(アスペクト比 16 : 9)
・2048 × 1536(アスペクト比 4 : 3)
etc…etc…..

と、まー挙げ出したらキリがないほど出てきます。

では、どーすんのよという話なんですが、一番いい方法はアスペクト比の「数字が大きい方」を「数字が小さい方」で割った時もっとも数値が大きくなるものを基準にしてください。

例えば、

19 : 9 → 19 / 9 = 2.1111…..
2 : 1 → 2 / 1 = 2
16 : 9 → 16 / 9 = 1.7777……
4 : 3 → 4 / 3 = 1.33333……

と、なります。↑の中でもっとも数値が大きいのは2.1111…..の19 : 9になります。

ホントは一番数値が小さいものも考慮に入れた方がいいのですが、初心者の方には難しすぎるので今回対応するアスペクト比は1種類にしたいと思います。

何故一番大きいものを選択するのかというと、2Dアクションゲームでは幅(もしくは高さ)が欲しいからです。

一番小さいものだと画面が正方形に近くなるので、行く先の状況をなるべく知りたいアクションゲームではプレイしづらいと思います。

これらのアスペクト比は、そのご時世に登場しているディスプレイによると思うので各自調べてみてください。プラットフォームによりけりだと思います。

これで基準となるアスペクト比を決定する事ができました。

ちなみにオススメしているウェブブラウザの場合、この計算を無視する事ができます

ウェブブラウザの場合、自由に決める事ができるので好きに決めるといいかなと思います。とは言っても100:1とかにしちゃうとゲーム画面が細すぎて何が起きているかわからないと思うので常識的な範囲にしましょう。何かよくわからない人は16 : 9が一般的でいいかなと思います。

解像度を決定しよう

さて、アスペクト比を決定する事ができました。ではここからどのような解像度に対応するのかを決定します。

ここが、なんとも難しいところなんですが、対応させる解像度についてもご時世によると思ってください。

今、この記事を執筆している2019年現在、4Kディスプレイとかしまいには8Kとかいう化け物解像度が出てきたり、スマホやタブレットもめちゃめちゃ高解像度の物が出てきています。しかしながら、この超高解像度にCPUやGPUが追いついていないというのが現状です。

つまり、どういうことかというと、この高解像度に合わせようとするとまーーーーーカックカクになります。ゲームがカクカクしてできたもんじゃなくなります。CPUやGPUがもはや追いついていないのです。

映画や映像だけの物なら8Kとかでも対応できるんでしょうが、ゲームは映像を出力するために膨大な計算をしているのでちょっと画面がデカくなっただけで処理落ちが発生します。

もしかしたら、未来には状況が変わっているかもしれません。そのため、ゲームを製作するご時世によるので本来ならその時代に合わせて考えなければならないのですが、今回はそんなこと言っても難しいと思うのでこちらで指定しようかなと思います。

とりあえず、2019年現在、高解像度でゲームを動かすとカクカクになるので意図的に解像度を下げてあげる必要があります。では、どれくらい下げればいいのかというと、大きい方の値が960になるようにしてみてください。

感覚的に数値がわかる人は別に自分で決めてもらってもOKです。

大きい方の値を決めると、アスペクト比からの計算により、小さい方の値も求める事ができます。

大きい方の大きさが960なので、19 : 9なら 960 / 2.1111…. = 454.7368….と計算できます。
つまり解像度は960 × 454(小数点以下切り捨て)になります。
16 : 9なら 960 / 1.77777…… = 540.0000…..
なので 960 × 540 になります。

これは横画面ですが、縦画面にしたいなら解像度を反対にすればOKです。
これで解像度を決定する事ができました。

解像度を設定する

さて、解像度が決まったら、解像度を設定していきましょう。

ゲームビューのFree Aspectとなっているところをクリックすると↓のようになります。

aspect rate settings

下の+ボタンをクリックしてください。

add aspect rate setting

Labelに適当な名前と、Width & Heightに決めた解像度を入れます。そうすると、↓のような状態になります。

Fix aspect ratio

これは、解像度が固定されたため、余白の部分が黒くなっています。この状態でゲームビューの大きさを変更すると

Fix aspect ratio explain

今度は赤い箱の位置が変わっていないのが見て取れるかと思います。これで画面がうまく可変するようになったのでディスプレイがどんな解像度になっても余分な部分が黒で表示されて、指定した解像度の部分だけゲームが表示されている事がわかります。

もし、プラットフォームをPCなどで想定していた人はこの画面はちょっと小さいかもしれません。小さいなと感じたら値を変更してみてください。ただ、大きくしすぎるとゲームが処理落ちしてしまうのでゲームによって調整していく形になります。PCだったらある程度大きくしても耐えると思います。逆にスマホなどだとこれ以上大きくすると処理落ち一歩手前になります。

まぁ、めんどくさかったら今回はお試しという事で960基準にしてもいいかなと思います。

本来なら、複数の解像度や大きいディスプレイの対応など色々手法はあるのですが、難しいのでまたの機会に解説しようと思います。一度960で試してみて、後で様々な対応を入れるというのも手かもしれません。この辺りは適宜対応してください。

解像度の変更をゲームにも適応しよう

さて、↑の設定はエディタでの変更ですが、今度はゲーム自体に変更を適応しましょう。

スクリプトを作成してください。名前は適当で大丈夫ですが、自分はScreenSettingとしました。

screen setting

↑のStartのところに

Screen.SetResolution(設定したい解像度,false);

と記載してください。

これはこのゲームの解像度を設定する命令です。最後のfalseというのはフルスクリーンにするかしないかですので、とりあえずfalseにしておきましょう。ユーザーも勝手にフルスクリーンになると困ると思うので。

ちなみに、↑のスクリプトだけで解像度変えられるのでは?と疑問を持つかもしれませんが、残念ながらScreen.SetResolutionはエディタ上では機能しません。ですのでゲームビューとスクリプトの両方の設定が必要だったわけです。

できたら、新しいシーンを作って、MainCameraか何かに↑のスクリプトをアタッチしてください。それだけで大丈夫です。

PC用ゲームを作る人の場合

プラットフォームがPCの場合はちょっと一工夫必要です。実はPCの場合は解像度をユーザーが好きに変更する事ができます。それをされるとちょっと困るのでPCのゲームを作る人は変更できないようにしましょう。

*PC用ゲーム作る方限定です。他の人は別に設定しなくても大丈夫です。
上部メニューのEdit>ProjectSettingを選んでください。

project settings

↓のような画面が出てくるので左側のメニューのPlayerを選択してください

player resolution and presentation

Resolution and Presentationをクリックして中を展開したら、FullscreenModeのところをWindowedに変更します。すると下にDefalut Screen Width と Default Screen Heightが出てくるのでそこに設定したい解像度を入れてください。

display resolution dialog

次に、Display Resolution DialogをDisabledにしましょう。

これでPCでの設定は完了です。

Point

・最初に基準となるアスペクト比と解像度を決めてしまおう!
・決めてしまわないと画面崩れが起きるよ!
・エディタ上の設定とゲーム内の設定両方必要だよ!

<わからない事、質問等があれば>

このサイトの説明ではよくわからなかったとか、もっと知りたい事などがあれば

自分の Youtubeの動画にコメントで質問していただければ動画でお答えしようと思います。

文章同士のやり取りだと伝わりづらいし、ラリーに時間がかかりそうなので動画で回答します。

↓の動画が回答の一例になります。どの動画でもいいのでご遠慮なくコメントしてください

できたらチャンネル登録よろしくお願いします!




さて、とりあえず、制作を始める前の設定は終わりました。次はタイトル画面を作っていきたいと思います。






タイトルとURLをコピーしました