【Unity 2Dゲーム入門】URPではじめて2Dゲームを作る(1/7)

Unityで2Dゲームを作る

Posted by 51n1 on 12 Nov, 2022

もくじ

1. Unityで2Dゲームを作る
2. 2Dゲーム用ドット絵を作成する
3. ドット絵をUnityにセットアップする
4. Visual Scriptingでノンコーディング
5. Post Processingでエフェクトをかける
6. WebGLでゲームを出力する
7. First 2D Game WebGLデモ

はじめに

個人的な理由ですが、近頃、Unityの学習から遠ざかっていたので、感覚を取り戻すため簡単な2Dゲームを作成することにしました。

2Dゲームを作るにあたってサンプルとして使用したのはYouTubeチャンネルのBlackthornprodで公開されている以下のチュートリアルビデオです。このチュートリアルを元に学習を進めます。

How to make your FIRST 2D GAME in under 30 minutes - UNITY 2022 TUTORIAL

チュートリアルの2Dゲームを作成するだけではあまり面白くないので、ゲーム内で使用しているスプライトを自作のドット絵に変更したり、C#スクリプトのコードをVisual Scriptingに置きかえてみたり、Post Processingを追加してゲーム画面の見え方を変えたり、WebGLで出力してWebサイト上で作ったゲームを試せるようにしたり、色々と遊んでみようと思います。

基本的な2Dゲームの作成から始めて主にUnityを使った2Dゲームの制作技術をテーマに7ページぐらいの記事にまとめるつもりです。書き上げたページから順次公開していく予定です。

今回、最終的に作成するゲームのデモビデオ(3倍速)を最初に紹介しておきます。参考にして下さい。

First 2D Game Final Demo (x3 speed)

チュートリアルを見て2Dゲームを作る

先ほど紹介したBlackthornprodのチュートリアルビデオに沿って2Dゲームを作成します。シンプルなルールの2Dゲームを作成するチュートリアルです。ビデオ内の説明の音声は英語ですが、実際の操作を見せてくれるので、それほど難しくはないでしょう。チュートリアルの長さも30分程度と短く息抜きに学習するのにちょうど良いです。ただしビデオの進行スピードはわりと速いので、適宜ポーズしたり再生速度をスローにした方が良いと思います。

チュートリアルではプロジェクトの新規作成やカスタムパッケージのインポート手順は含まれていなかったので、下記に2Dプロジェクトの新規作成手順を記載しておきます。僕が使ったUnityバージョンはUnity 2022.1.20f1です。YouTubeのチュートリアル内のUnityバージョンは2021.3.8f1でした。

Unity Hubを起動して新規2Dプロジェクトを作成します。Projectsウィンドウの「New project」ボタンをクリックした後、「2D (URP)」のテンプレートを選択し、任意のプロジェクト名を入力し、「Create Project」ボタンをクリックします。プロジェクトテンプレートはノーマルの「2D」を選択することもできます。Unity Editor画面が表示されるまでしばらく待ちます。( 1.1)

YouTubeビデオの説明欄に掲載されているリンクから配布しているUnityカスタムパッケージをダウンロードします。次にウィンドウメニューより「Assets > Import Package > Custom Package...」を選択すると、Import Unity Packageウィンドウが表示されるので、 先ほどダウンロードしたUnityパッケージを選択してインポートします。( 1.2)

1.1 New project - Unity Hub

1.2 Import Unity Package

Unityパッケージインポート後、ProjectウィンドウのAssets > Scenesに保存されているGameシーンを開きます。ここまで準備できましたら、あとはYouTubeビデオのチュートリアルに従って学習を進めていきます。( 1.3)

1.3 Unity Editor Window after import custom package

チュートリアルのおおまかな流れは以下の通りになります。

  1. 真ん中に位置しているPlayerオブジェクトを左右の方向キーを使って回転させる。
  2. Playerオブジェクトに向かって移動していくEnemyオブジェクトを作成しPrefab化する。
  3. Enemyオブジェクトを一定間隔の時間で任意の位置から生成(スポーン)できるようにする。
  4. PlayerオブジェクトとEnemyオブジェクトが衝突したときの処理を追加する。
  5. スコア値とヘルス値を表示するUIを作成する。

今のところ、本チュートリアルに実装されていない要素は下記の通りです。将来、Blackthornprodのチャンネルで続きのビデオが追加されるかもしれません。

  • EnemyとPlayerが衝突した際のエフェクト(Particle Effect)とカメラの振動アニメーション
  • BGMやSEのサウンド

次のページではドット絵を自分で作成しサンプルゲームで使用されている各スプライトを変更していきます。