#はじめに
ゲームを作る練習として初心者がUnityを使って、強制横スクロールアクションゲームを作るお話です。出来るだけ細かくどのような作業をしたか書いていくつもりです。
#仕様
自転車に乗った人(=Player)が穴に落ちないようにジャンプして進むシンプルなゲームです。
- Playerは右方向に等速で進んでジャンプは3段ジャンプまで
- 床がランダムに生成されて、大きすぎる穴ができないように
- Playerが床の横側にぶつかった時、画面下に落ちた時にゲームオーバー
- 右上に進んだ距離を表示
- ゲームオーバーになるとゲーム終了の画面でその距離を表示
#開発
ものすごくシンプルな仕様を元にゲームを作り始めました。
今回使用したUnityのバージョンは2019.2.6f1で、2Dのプロジェクトにしました。
##1.”自転車に乗った人”を作成
まずは自転車に乗った人の絵をpixivというwebブラウザで使えるツールでお絵描きして作りました。
ログインを済ませたら”描く”を選びます。
できた絵がこちらです。なかなか味のある感じになりました笑
右上のボタンからPCにPNG形式で保存することができます。
この画像をゲームでそのまま使おうとすると背景の白い部分もオブジェクトとみなされてしまいます。
そこで背景を透明にしました。方法は他の人がまとめてくれたものを参考にしました。
背景が透明になった絵を(Unity内)Projectタブの中にあるAssetsにドラッグしてUnity内で使用できるようにしました。
その後、HierarchyにAssets内の画像をドラッグで持ってきて以下のような状態にしました。
##2. ”自転車に乗った人”の物理挙動
自転車に乗った人(=Player)には物理特性が必要なので、Rigidbody2Dを使いました。
Playerオブジェクトを選択した状態でInspector内
Add Component --> Physics 2D --> Rigidbody 2D
さらに床(仮)を準備してPlayerの物理挙動を確かめます。
床(仮)の作成にあたっては、四角形がデフォルトの2D Objectに含まれていないため、”Unityの2Dで四角形や三角形などの基本的なスプライトを使う方法”を参考に作成しました。
Playerと床(仮)が接触できるように**Collider (コライダー)**を使用しました。Colliderがどのようなものかは”『Collider』をマスターする!”が参考になります。
まず床(仮)とPlayerにBoxCollider2Dをつけました。次にPlayerの前輪と後輪にあたる部分にCircleCollider2Dをつけました。
Add Component --> Physics 2D --> BoxCollider 2D, CircleCollider 2D
Colliderのタブの中にあるEdit Colliderという四角いボタンを押すことでColliderの形をSceneタブ内で編集できます。CircleCollider2DについてはColliderのタブ内Offsetのy座標の位置とRadius(半径)を揃えることでタイヤの高さを揃えました。ちなみに床(仮)には物理特性は不要なのでRigidbody2Dは使っていません。
この状態で再生ボタンを押すとPlayerが床(仮)に着地します。
#まとめ
今回は自転車に乗った人をUnity内に用意して、物理特性とColliderを与えました。