【Unity 2Dゲーム入門】2Dアクションゲームを作る(1/3)

【Unity】VVVVVVスタイルに挑戦する

Posted by 51n1 on 20 Feb, 2023

もくじ

1. 【Unity】VVVVVVスタイルに挑戦する
2. 【FL Studio】8bitサウンドを作成しゲームBGMとして使う
3. 【Bfxr】サウンドエフェクトを作成しゲームの効果音として設定する

VVVVVVというゲームについて

概要

「VVVVVV」は2010年にWindows/Mac用のソフトとして発売され、現在は色々なプラットフォームからリリースされています。

ゲーム操作が左右方向の移動と重力の上下反転のみというシンプルな2Dアクションゲームです。ストーリーは、プレイヤーキャラクターが宇宙船から異次元に飛ばされてしまった仲間を探すという内容です。

VVVVVVのスタート画面

VVVVVVのゲームプレイ画面1

VVVVVVのゲームプレイ画面2

VVVVVVのゲームプレイ画面3

このゲームの面白さについて

通常の2Dアクションゲームのジャンプ操作が、このゲームでは重力の上下反転操作になっています。VVVVVVのゲーム空間は、宇宙空間を模していますので、プレイヤーキャラクターが反転するアクションに違和感はないですが、この反転アクションがこのゲームの面白さの1つであることは間違いないでしょう。

今回、PC版の冒頭部分のみプレイしましたが、ゲーム難易度は高めに設定されていると感じました。ただチェックポイントが随所に配置されており、リプレイが容易にできることで、トラップに触れてゲームオーバーとなっても再挑戦がすぐにできるようになっています。このゲームに「死にゲー」という表現が合っているかどうかわかりませんが、何度も繰り返してプレイすることでゲームクリアの方法を探すというのがこのゲームのゲームスタイルだと言っても過言ではないでしょう。

ゲームの操作性やストーリーはとてもシンプルですが、レベルデザインの多様性がVVVVVVのゲームの魅力となっていると思います。このゲームのレベルデザイン要素には以下のものが挙げられます。これらの要素に加えて反転アクションと画面の縦移動によって一般的なサイドビューの2Dアクションゲームよりスピード感があり爽快感のあるゲーム体験を形づくっていると言えます。

  • 固定型トラップ(トゲ)(Spikes)
  • 動く床(Moving)
  • 接触すると無くなる床(Disappear)
  • 移動型トラップ(敵キャラクター)(Enemies)
  • 片方向へスライドする床(Conveyors)
  • 跳ね返る壁(Gray Line)
  • アイテム(Trinkets)
  • セーブポイント(Checkpoint)

参考URL

UnityでVVVVVVスタイルの2Dゲームを作る

VVVVVVスタイルの2Dゲームを作るにあたって参考にしたのはYouTubeで公開されている以下のチュートリアルビデオおよびそのシリーズです。このチュートリアルのビデオシリーズを元にVVVVVVスタイルの2DゲームをUnityで作成します。その後、作成したゲームを自分の好きなスタイルに改良していきます。

【Unity講座】VVVVVV風2Dアクションゲームの作り方 #1 はじめに

ナレーションに少々クセはありますが、横スクロール型の2Dアクションゲームを初めて作る初級者にとっては十分にわかりやすく進めやすい学習内容だと思います。以下は、このビデオチュートリアルの主な学習内容となります。チュートリアル内のUnityの使用バージョンは、Unity 2019.4.24f1です。

おもな学習内容

  • Unity Projectの作成
  • Tilemapの作成
  • プレイヤーキャラクターの設定および移動
  • ステージ(タイルマップ)の当たり判定の設定
  • 重力の反転
  • 地面の判定
  • ゴール、トラップ、背景の作成
  • トラップ接触時のエフェクトの作成
  • リスタートの実装
  • 跳ね返る壁を作る
  • すり抜けて反転させる壁を作る
  • カメラ移動

作成した2Dゲームを改良する

Unity Editor Window

Game View Window

先に紹介したYouTubeのチュートリアルを元に作成したVVVVVVスタイルの2Dゲームを自分なりのデザインに改良します。私が使用したUnityのバージョンは、Unity 2022.2.6f1です。また、今回はURPでなくても特に問題はないのですが、今後の拡張性を考慮して2DのURP用のプロジェクトで作成します。主な改良点は以下の通りです。

オリジナルのドット絵を作成する

自分で作成したドット絵は以下のものになります。

  • Level用のタイルマップ:16 x 16 pxを必要な数
  • プレイヤーキャラクター:アニメーションするために3種類作成しました。原作のテイストに近いですが、テクノ風のアートにしました。
  • ゴール:16 x 32 px
  • 背景:32 x 32 px

背景をスクロールさせる

VVVVVVのゲームと同様に、背景イメージをスクロールさせるため、2枚のスプライトオブジェクトをC#スクリプトを使いスクロールさせます。

参考にしたブログ記事は「 Unityで背景スクロールする3つの方法」です。本当はShader Graphを使いUVスクロールさせる方法を試したかったのですが、今回は手軽さを優先してC#スクリプトでスクロールさせる方法を取りました。次回どこかで試したいと思います。

また、ここでは背景のイメージをテクスチャーのように使用するため、スプライトのタイルモードを使って設定しています。

跳ね返る壁に衝突したときに壁が点滅するエフェクトを追加する

プレイヤーキャラクターの点滅処理と同様の処理を追加しています。

トラップに接触したとき、プレイヤーキャラクターのスプライトを変更する

シンプルですが、プレイヤーがトラップに接触した際の画像1枚のアニメーションを追加しAnimatorでトランジションを設定します。

カメラ移動をヨコ移動ではなく、タテ移動にする

レベルデザインを縦方向に作成します。このゲームの面白さとなっている重力の上下反転は縦移動するときが一番面白く感じると思います。

改良後のゲームデモビデオ

改良後のゲームのデモビデオを以下に置いておきます。

My VVVVVV

今回実現できなかった要素で、今後追加したいゲーム要素や改良点は以下となります。

追加したいゲーム要素

  • 移動する床。
  • 触れたら消える床。
  • チェックポイント、リスポーン地点の作成。

さらなる改良点

  • コードをVisual Scriptingで書き換える。
  • Post-Processingを追加して画面にエフェクトを加える。
  • イベント時にParticle Effectを追加する。
  • プレイヤーの移動や反転のスピードなどのゲームバランスを調整する。

8bitサウンドのBGMとSEを作成し、ゲームに追加したいと思います。8bitサウンドの作成に関しては次の記事で紹介します。

【WebGL】ゲームデモ &【GitHub】サンプルプロジェクト

下記のページでゲームデモを公開しました。本ページで紹介しているようにVVVVVVスタイルで2Dゲームを作成し、サウンドを追加したバージョンとなります。UnityからWebGLで出力したものですので、ブラウザ上でゲームを実行し、テストプレイができます。また、GitHubから今回作成したUnityのサンプルプロジェクトのダウンロードが可能です。

VVVVVV Style Game WebGL Demo