「Unity」は、3Dゲーム開発エンジンとして有名ですが、2Dゲーム開発に必要な機能もさまざまに備わっています。
この記事では、Unityで作る2Dゲームの特徴やメリット、アクションゲームの作り方を解説します。
【入門編】Unityで作る2Dゲームの特徴とは?
『Unity』とは、2D・3Dゲーム開発のための統合開発環境が内蔵されたゲームエンジンのことです。2005年6月に3Dゲーム開発対応のゲームエンジンとしてリリースされ、近年においても数多くの開発現場で採用されています。
日本での3Dゲーム開発に関しては、UnityのほかにUnreal Engine4などの3D開発ツールも有名です。詳しくは、「【入門】Unreal Engine4とは?Unityとの違い、ダウンロード、UE5情報も」をご覧ください。
Unityは3Dゲームを開発する際に便利であるため、“Unity=3Dゲーム開発ツール”と考える人も多いでしょう。しかしUnityには、2Dゲームを作るために特化した機能が数多く搭載されています。
以下で、Unityを使った2Dゲーム開発のメリットについてみていきます。
なお、Unityに関する詳しい説明を聞いてからこの後を読み進めたいという方は、「【Unity入門者向け】ゲーム開発で使われるUnityを紹介! 」をご覧ください。
Unityで2Dゲームを作るメリットを解説
Unityを使用した2Dゲーム開発には多くのメリットがあります。
- マルチプラットフォーム対応
- タイルマップなど2Dゲーム開発に便利な機能が豊富
- 参考文献や資料が多いため学習しやすい
- 無償で利用可能
それぞれのメリットを詳しく解説していきます。
◎マルチプラットフォーム対応
Unityはマルチプラットフォームに対応しています。マルチプラットフォーム対応により、iPhoneとAndroid、WindowsとMac などでOSを分けて考えることなく、それぞれのプラットフォームで動くようにビルドできます。
AndroidはJava、iOSはSwiftというように、それぞれのOSで別のプログラムを書く必要がないため、開発効率が非常にアップします。
◎タイルマップなど2Dゲーム開発に便利な機能が豊富
2Dゲーム開発に必要な機能が充実している点もUnityのメリットです。代表的な機能にタイルマップがあります。ます目状の「マップ」に地面などの模様の「タイル」を貼っていくような操作で、キャラクターが歩く道などを簡単に作成できます。
◎参考文献や資料が多いため学習しやすい
Unityは、学習しやすいこともメリットです。非常に人気のある開発エンジンであるため、不明点をインターネットで調べれば、多くの場合で解決策が見つかるでしょう。
また、Unityが配信する公式チュートリアルもあり、初心者でも使いやすい環境が整っているといえます。
◎無償で利用可能
Unityは、無償で利用できるPersonalプランでも、さまざまな機能を利用することができます。さらに充実したサポートを受けたい場合は上位プランに移行することも可能です。
これからゲーム開発に挑戦したい人や、趣味で使いたい人にも利用しやすくなっています。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >【Unityチュートリアル①】2Dゲームの基本
ここからは、Unityでの2Dゲーム開発について、基本的な操作をチュートリアル形式でご紹介します。
なお、Unityのインストールについては「【Unity入門者向け】ゲーム開発で使われるUnityを紹介! 」をご覧ください。
プロジェクトの作成、保存
まずはプロジェクトの作成および、保存方法を解説します。
1.Unityを起動させてください。
2.メニューからFile(ファイル)をクリックしてください。
3.New Projectを選択します。
4.テンプレートの中から2Dを選択します。
5.CREATEボタンをクリックすればプロジェクト作成の完了です。
6.保存は、メニューのFileをクリックします。
7.Saveをクリックしてください。これで保存は完了です。
スプライトとは何か?使い方をチェック
スプライトとは、ゲームのキャラクターやアイテムなどのイメージを画面に表示させることができる2Dグラフィックオブジェクトです。
使い方は以下の通りです。
1.まず、Assetsフォルダーの中に使いたいキャラクターなどの画像をドラッグアンドドロップします。
多くの場合、プロジェクトでAssetsを管理する際は画像のように階層を作ったほうが扱いやすいでしょう。ただし、簡易プロジェクトであれば、Assetsの中に画像ファイルを入れることでも使用可能です。
2.Assetsファイルにある画像をSceneにドラッグアンドドロップします。これで、スプライトを作成することができました。
3.スプライトを使用するときは、インスペクターのTransformやSprite Rendererを利用します。
タイムラインとは何か?使い方をチェック
タイムラインはキャラクターの動きや音声を管理できる機能のことです。この機能を使うことで、キャラクターを移動させることができます。
1.メニューからWindowを選択してください。
2.Windowの中のSequencingからTimelineをクリックしてください。
3.ウィンドウの中にタイムラインが表示されました。このタイムラインウィンドウは自由に動かすことができるので、今回は画面の中央に配置しました。
4.Projectの中にあるAll PrefabsからCubeを選択し、Sceneにドラッグアンドドロップしてください。
5.次にHierarchyからCubeを選択します。
6.右のInspectorからAdd Componentボタンをクリックします。
7.Playablesを選択してください。
8.Playable Directorを選択します。
9.Playable Directorコンポーネントが追加されます。
10.次にCubeを選択し、タイムラインからCreateボタンをクリックします。
11.任意の名前で保存してください。これで、Cubeとアニメーションをリンクさせることができました。
12.タイムラインを使ってみましょう。タイムラインウィンドウのオレンジ色の丸ボタンをクリックすると、録音が開始されます。
13.0の地点にあるタイムラインを60までドラッグします。
14.X軸のpositionを5に変更して録音を止めてください。
15.再生ボタンをクリックすると、CubeがX軸方向に動くのがわかります。
【Unityチュートリアル②】2Dアクションゲームの作り方
続いて、2Dアクションゲームの基本的な作り方について解説します。この記事では、ステージの設置やジャンプ、当たり判定などを見ていきます。
キャラクターが立ったり走ったりするステージを作成しよう
アクションゲームには、まず舞台が必要です。そのため、キャラクターが立ったり、走ったりするステージを作成していきましょう。
1.Hierarchyから2D Object>Tilemapを選択してください。
2.クリックすると、SceneにGrid(グリッド)が表示されました。GridをクリックするとSceneが網目状になったのがわかります。
3.次に、Tile Paletteを使用します。先述の「タイルマップ」で見た通り、Tile Paletteは、タイル状の画像を貼り付けていくことができるパレットのことです。
Tile Paletteを使うには、タイルの画像を準備しなければなりません。今回のチュートリアルでは真っ白の画像を利用します。
4.まず、パレットと先ほど準備した画像を入れるファイルを用意します。パレットを入れるファイルをPallets、タイル画像を入れるファイルをTileAssetsとして、Assetsフォルダーの配下に作成しました。
5.ファイルを作成できたら、メニューからWindow>2D>Tile Palletsを選択します。
6.Tile Paletteが表示されました。
7.左上からCreate New Paletteを選択してください。
8.Createボタンをクリックし、任意の場所に保存してください。今回のチュートリアルではPalletsに保存しています。
9.次に、画像をアセットに追加します。TileAssetsにwhitetileという画像を保存しました。
10.画像ファイルをTile Pallets上にドラッグアンドドロップします。任意の場所に保存してください。
11.ブラシを選択し、パレットに追加したタイルを選択します。
12.Sceneビュー上をクリックしていくと、ステージを作ることができました。
当たり判定をつける
地面部分が出来上がったので、次は当たり判定の設定をしていきます。当たり判定は、キャラクターが地面の上に立つために必要となります。
1.先ほど作成したGridの中にあるTilemapを選択します。
2.Add Componentをクリックします。
3.検索からTilemap Collider 2Dを探し、選択してください。
4.画像のように、先ほど作成した地面に緑の線が浮かび上がります。これで、当たり判定の設定が完了です。
キャラクターをジャンプさせよう
次は、キャラクターにアニメーションをつけてジャンプさせていきます。
1.Hierarchyから2D Object>Spriteを選択してください。
2.Assetsファイルの中にScriptフォルダーを作成します。
3.次にScriptフォルダーを右クリックして、Create>C# Scriptを選択してください。ファイル名は任意で構いません。今回はPlayerControllerとしました。
4.スクリプトファイルに下記のコードを追加してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { Rigidbody2D rigit2D; float jumpPower = 100.0f; void Start () { this.rigit2D = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.Space)) { this.rigit2D.AddForce(transform.up * jumpPower); } } } |
5.次に、先ほど作成したSpriteのインスペクターからAdd Component>PlayerControllerを選択してください。
6. Rigidbody 2Dをコンポーネントから追加し、Gravity Scaleを0に設定します。
7.実行してください。Spriteが地面から離れてジャンプしているのがわかります。
この記事では、Unityで作る2Dゲームの特徴や基本的な使い方、2Dアクションゲームの簡単な作り方を解説しました。Unityには2Dゲーム開発に便利な機能が豊富で、スムーズに開発を行うことができます。
また、今回はアクションゲームだけを取り上げましたが、もちろんPRGゲームなどの開発も行うことが可能です。ぜひUnityを使って2Dゲーム開発をしてみてください。
最新情報・キャンペーン情報発信中