タイトル画面を作り、タイトルからゲーム画面に移る「シーン遷移」を作ってみよう

今回は多くのゲームで
使われるシーン遷移を教える
シーン遷移?


シーン遷移とは、「タイトル画面」→スタートボタンを押すと「ゲーム画面」→クリアすると「ゲームクリア画面」に移るというようなシーンの切り替えのこと。こうした画面の変化は、Unityではシーンファイルを分けることで実現する。

ゲームを作っているとメインとなるゲームシーンばかりを触ってしまいがちだが、ある程度ゲームができてきたら「タイトル画面」→「ゲーム画面」→「ゲームクリア画面/ゲームオーバー画面」→「タイトル画面」の流れを作っておくようにしよう。

単純なことだけど
これをやるだけでグッと
「作品」っぽくなるよ
作りかけって感じが
だいぶなくなるっすね!
スタートからクリア(ゲームオーバー)まで
一連の流れを「通しプレイ」
できるようになると
全体のバランスもつかめてくるよ


タイトル画面からシームレスにゲーム画面に移る、という粋な演出を実装しているゲームもあるが、ひとまずスタンダードな「タイトル画面」→「ゲーム画面」の遷移のしかたを教える!

教えてくれるのは
FREE SWORDER先生である

こちらのページをご覧ください
ズコーーーッ
FREE SWORDER先生
ありがたや……


シーン遷移自体はFREE SWORDER先生の解説をはじめ、技術書籍などでもよく扱われるし、さほど苦労せず実装できると思う。今回はタイトル画面にまつわる「よくある問題」を解決していこうと思う。

とりあえずタイトル画面を作りたい!

お手軽なのは以下のようなもの。

  • 1)地面を作り、スカイボックスを設定する
  • 2)ゲームのシンボルとなるオブジェクトを置く
  • 3)UIでタイトルロゴやスタートボタンを置く

GIF動画で作ってくで~





1)地面を作り、スカイボックスを設定する。地面には色を塗ったマテリアルを設定してみた。スカイボックスについてはこちらの記事を参照



2)ゲームのシンボルとなるオブジェクトを置く。
3)UIでタイトルロゴやスタートボタンを置く。
ここではプレイヤーキャラクターを置いている。そのままだと棒立ちなのでアニメーターコントローラーを設定し、待機モーションが出るようにしている。アニメーターコントローラーについてはこちらの記事を参照。
静止オブジェクトならアニメーターコントローラーは不要だが、画面がストップしていないことがわかるように、タイトル画面には何かしら動く要素を入れておくべきだ(後述)



UIとはユーザーインターフェースのことで、主に文字や体力ゲージなどを表示するのに使う。プロジェクトビューのCreate(または右クリック)からUIを作ることができるが、このときできるCanvasという階層の下はUI用の領域で、常に画面の手前に表示される。通常のオブジェクトは置かないように注意しよう。

上の例ではUIでタイトルロゴを作っている。フォントはモリサワフォントの「ひげ文字」を使ってみた。UIは通常のオブジェクト操作と勝手が違うので少し戸惑うかもしれないが、慣れれば複雑ではない。理解していこう



文字が小さいっすー!
大きくしようとすると
消えちゃうっすー!
誰もが通る道だねーこれは




インスペクタービューにある「Horizontal Overflow」と「Vertical Overflow」を「Overflow」にしよう。水平方向、垂直方向にはみ出しても見切れなくなるという設定だ。ついでに「Alignment」を中央合わせにしてみた


一連の操作。Alignmentは結局左寄せになったw


なんか文字がボケてるっすけど……
シーンビューで拡大すると
ボケてるけど、
ゲームビューでは綺麗だから
これでええんやで



先に紹介したFREE SWORDER先生のシーン遷移スクリプトを参考に、「Aボタンまたはスペースキーを押したらメインとなるゲームシーンに遷移する」というスクリプトにし、画面にもその案内をUIで表示する。シーン遷移プログラムは以下のような形。


該当するシーンファイルがないとエラーになってしまうので注意しよう。また、FREE SWORDER先生の解説にもあるとおりBuild Settingsにシーンを追加しておくことも忘れずに



ボタンを押したら遷移したっす!
……ってアレ?
なんかキャラが暗くなったっす?
これも多くの初心者を
殺してきたUnityの罠なのだ……


シーン遷移で画面が暗くなる現象の解決方法



  • 1)暗くなってしまう(遷移先の)シーンファイルを開く
  • 2)上部メニューの Window → Lighting でライティングウィンドウを表示する
  • 3)ライティングウィンドウ上部の Global maps を選択する
  • 4)Auto Generateチェックボックスを外し、隣の Generate Lighting ボタンを押す


これで直るよ



一連の操作。締切ギリギリにこの不具合に見舞われて悩まされた人も多いことだろう



正しく遷移できた


タイトル画面で
剣太郎が待機モーションを
してるのはいいっすね
画面がフリーズしてないことが
わかるように、タイトルでは
何か動かすようにするといいぞ!
パーティクルでもいいね!


うまく実装できたらゲームクリアやゲームオーバーのシーンも作り、シーン遷移させてみよう。これらの画面もタイトルと同じく何か動きがあったほうがいいだろう。まだゲームの中身が仮でも「通しプレイ」ができるようになるとグッとゲームっぽくなる。ゲームの中身に悩んでいたら、試しにシーン遷移を作ったり、タイトルロゴを作ってみてはいかがだろうか!