皆さんは「Unity」と言えば何をイメージしますか。

ほとんどの方は3Dゲーム開発のイメージが多く思い浮かぶかと思いますが、実はUnityで2Dゲームを開発することもできます。

本記事では、Unityで2Dアクションゲームを制作したい方に向けて、なぜUnityで2Dゲームを開発するのか、そのUnityを選ぶ理由、そして実際にUnityを使って2Dアクションゲームをどう制作するのか、その制作方法についてご紹介します。

ぜひ最後までお読みください。

|Unityとは

出典:https://unity.com/ja

Unityとは、アメリカのUnity Technologies社(ユニティ・テクノロジーズ)が開発した2Dや3Dゲームを開発できるゲームエンジンです。

2023年4月現在、最新バージョンは2022年5月9日にリリースされたUnity2022です。

Unityは初心者でも使いやすくて無償で利用可能など多くのメリットで、企業だけではなく個人的な開発で多く採用されています。

Unityで作られたゲームとして、『ポケモンGO』、『マリオカートツアー』、『フォールガイズ』、『ウマ娘』、『原神』などの作品が人気です。

また近年では、Unityはゲーム開発だけではなく、ARやVR、医療や建築など様々な分野で利用され、幅広く活躍しております。

|Unityで2Dゲームを作る理由

早速ですが、なぜ2Dゲームを制作するのにUnityを選ぶのか、その理由について4つのメリットをご紹介します。

2Dゲーム開発に便利な機能が豊富

Unityは3Dゲーム開発だけではなく、2Dゲーム開発にも使用できるような機能が多く用意されています。

例えば、Tile Palletsという機能を利用すれば、Map Chipを貼ることで、ゲームに登場するキャラクターが歩いたりジャンプしたりする場所などのゲーム土台を簡単に作ることができます。

また、キャラクターの動くアニメーションもUnityで作れます。

このように、Unity内部に搭載されている2D関連機能でゲーム開発が実現されます。

マルチプラットフォーム対応

UnityはPCとモバイルだけではなく、家庭用ゲーム機やVR・ARなどに幅広く対応しています。

そのなか、例えばスマートフォンのOS(Operating System)はiPhoneとAndroidに分けられ、PCのOSはWindowsとMacに分けられ、これらのOSの間に互換性はありません。

しかし、UnityではOSを分けてプログラミングする必要がなく、ビルド対象を選ぶことで対応できるようになります。

無償で利用可能

Unityには主に4つのプランがあり、「Personal」、「Plus」、「Pro」、「Enterprise」です。

機能制限はありますが、認定教育機関の学生や16歳以上の高校生の方、また一定条件を満たす企業や個人は、「Personal」プランでUnityの無償の利用が可能になります。

さらに豊富な機能を利用したい場合は「Plus」、「Pro」、「Enterprise」などのプランに申し込むことができます。

参考文献や資料が多いため学習しやすい

日本ではUnityの使用者が多いため、Unityに関する日本語の情報が多いです。

そのため、参考できる文章や動画などの学習資料が多く、独学でも学習しやすいです。

Unityの使用方法に特化したサイトも多いため、分からないことがあったらインターネットで検索すれば解決できます。

このように、興味があるがUnityを触ったことのない初心者の方にも、非常にやさしい学習環境が整備されています。

|2Dアクションゲームの作り方

それでは、Unityで2Dアクションゲームを作成する基本をご紹介します。

今回用意した開発環境は、Windows11とUnity2021.3.9です。

タイルマップを作成する

2Dアクションゲームを作るには、まずTile Mapでゲーム環境を構築します。

キャラクターが歩いたりジャンプしたりするのを支えるには、地面が必要です。

まずその地面を作ってみましょう。そのために、Tile Paletteという機能を利用します。

Tile Paletteというのは、Tile Mapを編集するのに使用するツールで、ペイントするようにマップチップを置けるパレットのことです。

手順は下記の通りです。

1.  Hierarchyで右クリック > 2D Object > Tilemap

2.  Tile PaletteをPackage Managerからインストールする

Window > Package Manager > その中に2D Tilemap Editorを選択する > Install

3. Window > 2D > Tile Palette

4.  Create New Palette > Create

マップチップを作成する

次に、地面に色が必要なので、ペイントするためのTile画像を用意しましょう。使いたい画像を先ほど作成したTile mapに塗ります。

1.Assetsで右クリック > Create > Folder > 名前入力(例:Tile Image) > 使いたいタイル画像をFolderに追加

2.用意した画像をTile Palletsにドラッグ > 保存

3.バラシ(Paint with active brush)> 追加した画像をクリック > Scene ビューの上に塗る

4.消したい場合 > 消しゴム(Erase with active brush) > 消したいところをドラッグ

ここまでで、ゲームに登場するキャラクターが歩いたりジャンプしたりする地面の部分が完成です。

当たり判定を付ける

次に、当たり判定を付けましょう。

当たり判定というのは、キャラクターなどのような物体同士の接触や衝突が起こったか否かの判定のことです。

当たり判定は、ゲームに登場するキャラクターが地面の上で動作するために必要です。

手順は下記の通りです。

Hierarchyで先ほど作成したGridを展開 > 先ほど作成したTilemapを選択 > Inspectorの下にあるAdd Componentをクリック > 「Tilemap Collider 2D」を検索 > Tilemap Collider 2Dをクリックして追加

キャラクターの動作を設定する

キャラクターを地面に設置した後に、使用するキャラクターの動作(立ち、歩く、ジャンプなど)を作りましょう。

1.  Hierarchyで右クリック > 2D Object > Spriteを選択

2.  Assetsで右クリック > Create > Folder > 名前入力(例:Script) 

3.  先ほど作ったScriptのフォルダーを右クリック > Create > C# Script > ファイル名入力(例:PlayerController) > Script内容作成

4.  Scriptをキャラクターにドラッグ

5.  Add ComponentからRigidbody 2D、Capsule Collider2D、Player Controllerなどを追加

キャラクターに動きを付ける

次に、キャラクターが歩いたりジャンプしたりする際の動きを付けます。

そのアニメーションを設定するためには、AnimatorとAnimationの機能を利用します。Animatorというのはアニメーションを制御・管理するもので、Animationはアニメーションそのものです。

1.  キャラクターの画像をScene ビューにドラッグ > Add Component > Animator

2.  AnimatorのControllerがNoneになっているので、Controllerを作ります。

Project > Assets > Create > Animator Controller 

3.  キャラクターを選択 > Window > Animation > Animation > Create > Create New Clip > 用意したキャラクターの画像をドラッグ

4.  再生ボタンを押せば、Scene ビューでアニメーションが見えます。

キャラクターとカメラの動きを合わせる

ここまででキャラクターは動きますが、カメラが追従していないため、カメラを追従させていきましょう。キャラクターとカメラの動きを合わせるためには、Chinemachineという機能を利用します。

1.          Window > Package Manager > Chinemachineをインストール

2.          GameObject >  Chinemachine > 2D Camera

3.          Inspector > Followの右まるいボタンをクリック > 追従したいキャラクターを選択

これで、カメラがキャラクターに追従して移動します。

ゲームクリア・ゲームオーバーの表示を設定する

最後に、 ゲームクリアとゲームオーバーの表示を作成しましょう。

ゲームクリアの場所にCanvasをCreate >  CanvasにPanelとTextを子オブジェクトとして置く > Script作成(メッセージ表示用) > 作成したスクリプトをCanvasにドラッグして取り付けます

また、ゲームオーバーも同じステップで、Textの内容を変えることでゲームオーバーのメッセージを表示させます。

|まとめ

ここまでお読みいただき、ありがとうございました。

本記事でご説明したように、Unityは3Dだけでなく2Dアクションゲームの開発にも役立てることができるゲームエンジンです。

2Dゲームの開発にもつかえる機能が多く用意されており、開発効率が非常に高いゲームエンジンといえます。

また、基本的に誰でも無償で利用することができ、学習しやすいという特徴があるため、利用者数が毎年増えています。

興味がある方は、ぜひUnityを利用して2Dゲームの開発を試してみてください。