[Unity本 紹介] 楽しく学ぶUnity2D超入門講座

楽しく学ぶUnity2D超入門講座

 私が本格的にUnityを始めるにあたって最初に入門書として選んだのは、[著]森巧尚 [発行]マイナビ出版の「楽しく学ぶUnity2D超入門講座」であった。3Dゲームにも挑戦したかったのだが、まずは馴染みのある2Dゲームからと思いこの本を手にとった。

 必要な素材はマイナビのサポートサイトからダウンロードできるので、見た目は本書のサンプル写真どおりにゲームができる。中身の解説も写真が豊富で画面と照らし合わせて確認できるし、解説文も分かりやすい

 まさにUnityの入門として最適な1冊だと思う。

内容をChapterごとに紹介

 ひとことに”おすすめ”と言われてもイメージがつかないと思うので、問題がないと思われる範囲でChapterごとの内容を簡単に紹介したい。

Chapter 1 Unityって何?

 Chapter1ではUnityの簡単な説明をしてくれる。PC、ゲーム機、スマホのゲームが作れること。3Dゲームも2Dゲームも作れること。この本が初めてゲームを作る初心者向けの本であること。

 ゲームを作るのに必要な要素について。プログラムが必要なこと。UnityではプログラムにC#を使うこと。Unityではプログラムのことをスクリプトと呼ぶこと。この本ではC#の文法はやらずにいきなりゲーム作りからはじめること。

 Unityのダウンロードとインストールの仕方(Visual Studioとの連携は触れられていないが、ここでやっておくべき)。Unityには無料版と有料版があること。初心者は無料版で十分なこと。画像の書き出しについて。CLIP STUDIO PAINT、Adobe Photoshop CC、Adobe Animate CCからの書き出しについての説明。

UnityのインストールとVisual Studioとの連携については最新の情報をネットで調べたほうがいい。

Chapter 2 体験してみよう

 新規でプロジェクトを立ち上げる説明。Unityの起動直後の画面の解説。5つのウインドウの名称と役割の解説。ウインドウのレイアウトの変更。画面サイズの変更。必要に応じて表示されるウインドウの名称と役割の解説。

 ゲームオブジェクトの説明。画面上の座標について。ゲームオブジェクトに機能を与えるコンポーネントの解説。Unityで用意されているコンポーネントの解説。コンポーネントは自分で作ることもできること。

 ゲームオブジェクトの作り方。シーンでのいろいろな画面の操作の説明。ゲームオブジェクトを操作するツールバーの項目と使い方の説明。(ここでの解説は覚えておくとスムーズに作業が進められるようになる)

 簡単なスクリプトを作ってゲームオブジェクトにアタッチして動かしてみる。サポートサイトのスクリプトを利用してアタッチすることもできる。

Chapter 3 スクリプトで動かそう

 スクリプトの作り方。「いつ」「何をするのか?」という視点で考える。クラスとメソッドの簡単な説明。

「ずっと、水平に移動する」スクリプトの説明。垂直に移動するスクリプトも作成。ゲームオブジェクトに画像とスクリプトをアタッチして実行してみる。public変数の説明。UpdateメソッドとFixed Updateメソッドの説明。

「ずっと、回転する」スクリプトの説明。回転させる命令の書き方。ゲームオブジェクトに画像とスクリプトをアタッチして実行してみる。

「ときどき、曲がる」スクリプトの説明。一定の間隔で曲がる仕組みを考える。どれくらいの角度で曲がるのか。ゲームオブジェクトに画像とスクリプトをアタッチして実行してみる。長いスクリプトを書くのではなく、単純なスクリプトをいくつもアタッチしていく考え方。

「ときどき、反転する」スクリプトの説明。どうやったら反転できるのか。フラグを使ってスクリプトを書く。ゲームオブジェクトに画像とスクリプトをアタッチして実行してみる。オマケのスクリプトあり。

Chapter 4 キー入力と衝突判定

 キー操作でキャラクターを移動させる方法。キー操作で上下左右に車が移動できるようにする。右向きと左向きの画像の入れ替え。

 リジッドボディ2Dコライダー2Dの解説。この2つを車にアタッチして、車とブロックがすり抜けずに衝突するようにする。重力を指定して車が2Dとして平面で動くようにする。

 プレイヤーとオバケのオブジェクトを使って「プレイヤーを追いかけてくるオバケ」と「プレイヤーから逃げるオバケ」のスクリプトを作ってみる。

 衝突判定を利用して、ブロックに衝突したら反転するオバケのスクリプトを作ってみる。また、プレイヤーとオバケが衝突したらゲーム自体をストップするスクリプトも作ってみる。

 衝突判定を利用して、何かと衝突したら何かが消えたり、何かと衝突したら何かが出現するスクリプトを作ってみる。

これまで作ったスクリプトを使って「追いかけゲーム」を作る。

Chapter 5 マウスでタッチしたものを調べる

 タッチすると動く仕掛けを作る。マウスでタッチしたら〇〇するというスクリプトを書く。

「タッチすると、消える」「タッチすると、ずっと回転する」「タッチすると、ルーレットのように回転して止まる」、これらのスクリプトを考えることによって「タッチしたら〇〇する」「タッチをやめたら〇〇する」といった動作を学ぶ。

 ゲームオブジェクトの重なり方の順番を指定する3つの方法。Sorting Layer、Order in Layer、Position Zによる指定の解説。

 これまでのスクリプトを使って仕掛け絵本を作る。タッチすると消える、タッチすると回転する、タッチすると中からなにか出てくる、タッチするとしばらく回転して止まる。

Chapter 6 アニメーション

 Chapter5まではキャラクターがアニメーションしない画像だけであったが、このChapter6では複数の画像を使って「歩く」アニメーションを作ってキャラクターを歩かせることができる。

「右に歩く」や「下に歩く」など複数の歩くアニメーションを作り、アニメーターを使って複数のアニメーションを管理する方法を学ぶ。

 アニメーターで管理しているアニメーションに名前を付けて上下左右の”キーを押したときに表示するアニメーション”として設定し、「キーを押すと、アニメーションを切り替える」スクリプトによってキーを押した方向を向いて歩くキャラクターを作る。

Chapter 7 シーンを切り替える

 シーンを切り替える方法を学ぶChapter。タイトル画面やゲームオーバー画面を作って切り替えられるようにすると、ぐっとゲームらしくなる。

 複数のシーンを用意してそれぞれに名前をつけて管理する。「タッチしたら、シーンを切り替える」「衝突したら、シーンを切り替える」仕組みを作ってスタートからゲームオーバーまでシーンが繋がるようにする。

Chapter 8 プレハブでたくさん作る

 プレハブの使い方を学ぶChapter。コンポーネントをアタッチしたゲームオブジェクトをまとめて1つの部品として扱うことによって、同じゲームオブジェクトが量産できるようになる。

 スクリプトによってプレバブを制御し、「タッチしたら、プレハブが登場する」「ある範囲にときどき、プレハブが登場する」「時間が経ったら、自分を削除する」といった動作を実現する。

 これまで学んだことを利用して「ウニ逃げゲーム」を作る。

Chapter 9 重力を使う

 ここまで重力値を0にしていたリジッドボディの値を変更してみる。これまでに学んだスクリプトを使って「積みバーガー」を作る。

 リジッドボディ2DのMassの値を変更することでアタッチしたゲームオブジェクトの重さを表現することができる。また、フィジックスマテリアル2Dで摩擦弾力を設定することができる。

 ジャンプをするスクリプトを学ぶ。上方向に力を加えることでジャンプを表現する。ただジャンプをボタンに割り振るだけでなく、キャラクターが地面に接している時にだけジャンプするようにスクリプトを書く。

 ジャンプさせる仕組みを利用して桃を投げるスクリプトを書く。キーを入力すると桃が出現してキャラクターが向いている方向に投げる。

 1画面だけでない広いマップを作る。ステージが広くなるので、プレイヤーにカメラが付いてくるようにスクリプトを書く。また、ゲームスタイルに合わせたカメラの移動範囲を考える。

 ブロックの摩擦やすり抜けを設定してゲームを遊びやすくする

Chapter 10 UIテキストでカウンター

 CanvasのUIテキストを使ってスコアを表示できるようにする。テキストの位置や文字の大きさと色を設定して見やすいスコア表示を作る。

 カウンターの本体は外部からもアクセスできてシーンが変わっても値が残るようにスクリプトを書く。また受け取った数値は文字に変換してずっと画面に表示させていなくてはいけない。

 プレイヤーが触れたら得点をカウンターに加算して消えてなくなるゲームオブジェクトを作る。カウンターのスコアがある数値まで達したらシーンを切り替えるスクリプトを書く。

 これまでのスクリプトを応用して「お寿司アクションゲーム」を作る。

感想

 C#について知らなくてもスクリプトがダウンロードできるのでゲームを完成させることはできる。手に取ると結構ぶ厚いので不安になるかも知れないが、写真で丁寧に解説しているのでぶ厚くなっているだけだ。Unity自体の使い方は分かりやすく説明してくれているので、本当に初心者には最適な1冊目の本だと思う。

 UnityやC#はアップデートで仕様や文法が変わってしまうのでエラーが出てしまうことがあるかもしれないが、たいていはググれば解決できるしC#の文法はVisual Studioが訂正文を表示してくれる。根気よく取り組めば解決できるはずだ。

 個人的にはUnityを使ってのゲーム作りへの理解を深めるために、あらかじめC#を簡単にでも学んでおくことをオススメする。C#のことを知っていたほうがスムーズに読み進められるし、逆にプログラミング言語の使い方への理解も深まるので一石二鳥だ。

 この本で完成するゲームは音やBGMはついていない。つける方法も書かれてはいないのでご注意を。それでも完成したゲームは面白いし、完成させた達成感もある。使うプログラムは全てダウンロードして使えるので、プログラミング言語に興味は無いけどゲームは作ってみたいという目的でも満足できる本だと思う。