2017/08/02タイトル画面を作り、タイトルからゲーム画面に移る「シーン遷移」を作ってみようUnityスクリプトTweet今回は多くのゲームで使われるシーン遷移を教えるシーン遷移?シーン遷移とは、「タイトル画面」→スタートボタンを押すと「ゲーム画面」→クリアすると「ゲームクリア画面」に移るというようなシーンの切り替えのこと。した画面の変化は、Unityではシーンファイルを分けることで実現する。ゲームを作っているとメインとなるゲームシーンばかりを触ってしまいがちだが、ある程度ゲームができてきたら「タイトル画面」→「ゲーム画面」→「ゲームクリア画面/ゲームオーバー画面」→「タイトル画面」の流れを作っておくようにしよう。SWORDER先生の解説をはじめ、技術書籍などでもよく扱われるし、さほど苦労せず実装できると思う。今回はタイトル画面にまつわる「よくある問題」を解決していこうと思う。タイトル画面を作りたい!お手軽なのは以下のようなもの。1)地面を作り、スカイボックスを設定する2)ゲームのシンボルとなるオブジェクトを置く3)UIでタイトルロゴやスタートボタンを置くGIF動画で作ってくで~1)地面を作り、スカイボックスを設定する。地面には色を塗ったマテリアルを設定してみた。スカイボックスについてはこちらの記事を参照2)ゲームのシンボルとなるオブジェクトを置く。3)UIでタイトルロゴやスタートボタンを置く。ここではプレイヤーキャラクターを置いている。そのままだと棒立ちなのでアニメーターコントローラーを設定し、待機モーションが出るようにしている。アニメーターコントローラーについてはこちらの記事を参照。静止オブジェクトならアニメーターコントローラーは不要だが、画面がストップしていないことがわかるように、タイトル画面には何かしら動く要素を入れておくべきだ(後述)UIとはユーザーインターフェースのことで、主に文字や体力ゲージなどを表示するのに使う。プロジェクトビューのCreate(または右クリック)からUIを作ることができるが、このときできるCanvasという階層の下はUI用の領域で、常に画面の手前に表示される。通常のオブジェクトは置かないように注意しよう。上の例ではUIでタイトルロゴを作っている。フォントはモリサワフォントの「ひげ文字」を使ってみた。UIは通常のオブジェクト操作と勝手が違うので少し戸惑うかもしれないが、慣れれば複雑ではない。はみ出しても見切れなくなるという設定だ。ついでに「Alignment」を中央合わせにしてみた一連の操作。SWORDER先生のシーン遷移スクリプトを参考に、「Aボタンまたはスペースキーを押したらメインとなるゲームシーンに遷移する」というスクリプトにし、画面にもその案内をUIで表示する。シーン遷移プログラムは以下のような形。該当するシーンファイルがないとエラーになってしまうので注意しよう。ボタンを押すこれで直るよ一連の操作。締切ギリギリにこの不具合に見舞われて悩まされた人も多いことだろう正しく遷移できたタイトル画面で剣太郎が待機モーションをしてるのはいいっすね画面がフリーズしてないことがわかるように、タイトルでは何か動かすようにするといいぞ!パーティクルでもいいね!うまく実装できたらゲームクリアやゲームオーバーのシーンも作り、シーン遷移させてみよう。これらの画面もタイトルと同じく何か動きがあったほうがいいだろう。ゲームの中身が仮でも「通しプレイ」ができるようになるとグッとゲームっぽくなる。