この講座では初心者向けのUnity入門ゲームプログラミング講座として、「ブロック崩し」を制作していきます。
実際に作っていくゲームがこちら。
講座は全てで5回構成になっています。講座はUnity C#をちょっとかじった程度の初心者でもゲームを完成させられます。
ブロック崩し講座を通してUnityの使い方や画面の見方、ゲームオブジェクトの扱い方の基本やスクリプトの実践的な書き方なども身に付きます。
また、ブロック崩しでは数学関数を用いた演算でボールの反射や加速処理などを作っていく場合も多いですが、今回はUnityの物理エンジン機能を利用して数式いらずで作っていきます。
そのため、数学に詳しくなくてもゲームを完成させることができます(その代わり少し融通が利かない部分もあり)。
制作の流れとしては、
- ブロック・プレイヤーパドル・ゲームフィールドの作成
- プレイヤーパドルを移動できるようにする
- 壁とプレイヤーパドルの当たり判定を作る
- ボールの移動処理と当たり判定を作る
- ブロックを崩す処理とボール反射処理を作る
- クリア・リトライ・ゲームオーバー処理を作る
上記手順でブロック崩しゲームの製作を進めていきます。
各記事のまとめを以下で解説します。
ブロックを配置してフィールドを作る
↑第一回目までで作り上げるところ
ブロック崩し講座第一回目では、Unityプロジェクトを立ち上げることから始め、ブロック崩しのフィールドを構築します。
- Sceneビューとインスペクタービューの基本的な使い方
- Gameオブジェクトの位置・向き・形状の変更
- Gameオブジェクトの親子関係の構築
- ゲーム画面にオブジェクトを表示させるためのRendererコンポーネントを知る
- マテリアルの作り方 マテリアルを設定して色や見た目を変える
上記のようなスキルも身に付く回になっています。
プレイヤーパドルの移動処理を作る
第二回目は主に入力機能を実装してブロック崩しのプレイヤーブロックを移動できるようにします。
また、物理エンジンの機能を利用して壁の当たり判定などを簡単に実装します。
RigidBodyコンポーネントや重力の使い方をマスターしましょう。
- 入力を受け取るためのUnityEngine.Inputの使い方
- 物理エンジンのRigidBodyコンポーネントの使い方
- RigidBodyのUseGravityを用いた重力の有無を設定法
- スクリプトからRigidBodyをアタッチしたGameObjectに物理的な力を与えるAddForce()メソッドの使い方
- 物理エンジンの影響を消す方法
上記内容を習得することができます。
ブロックとボールの当たり判定の実装 ボールの跳ね返り処理を作る
第三回まででボールをブロックに当てる反射運動が実現します
第三回ではブロック崩しの肝となるボールの当たり判定や移動処理を作っていきます。
Unityの物理エンジンで当たり判定を行う際によく用いるColliderコンポーネントの利用法を習得していきます。
物理エンジンを利用することで、跳ね返り処理や反射角度の数学計算を実装しなくてもブロック崩しの力学を作ることができます。ただし、物理エンジンを利用することで逆に融通が利かなくなる部分も出てくることも学べます。
- UnityEngine.Colliderを用いた物理エンジンの当たり判定の作り方
- 跳ね返り係数や摩擦係数などを設定できる物理マテリアルの使い方
などを習得できます。
ボールに当たったブロックを消す処理を作る
第四回目ではいよいよボールに当てたブロックを崩す処理を作ります。
ゲームオブジェクトを削除するDestroy関数やプレハブ化を用いたオブジェクト大量生成&コントロールの方法も学んでいきましょう。
- GameObject削除に用いる
UnityEngine.Object.Destroy()
の使い方 - GameObjectを識別法である名前、タグ、レイヤーの使い方
- 同じ設定を持つGameObjectをたくさん作れるプレハブの使い方
上記のスキルを習得することができます。
ブロック崩しのクリア・リトライ・ゲームオーバー処理を作る
ブロック崩し講座最後となる第5回では、ゲーム管理システムを実装します。
ブロック崩しのクリア・リトライ・ゲームオーバー処理などを作っていきます。
- ゲームの流れを管理するプログラムの作り方
- GameObject.SetActive()を使用したGameObjectの有効・無効を設定する方法
- Component.enabledによるComponentを実行・停止を設定する方法
- UnityEventとデリゲート型を利用した処理の連結方法
上記のスキルを身に付けることができます。
また、ここまででブロック崩しゲームが完成します。
脱初心者・Unity入門者への第一歩を踏み出せましたね。
まだまだUnity入門の森にはたくさんのゲームの作り方講座があるので、ぜひ気に入ったゲームを作ってみてくださいね^^
より本格的なゲームが作れるタワーディフェンスゲームの作り方講座、クリッカーゲームの作り方講座や3Dアクションゲームの作り方講座にチャレンジしていくのがおすすめです。