[Unity] Visual Scripting でつくる簡単ゲーム「プラットフォームゲーム」

3月 7, 2024 | ALL, Unity, ビジュアルスクリプティング

ビジュアルスクリプティングでつくる「プラットフォームゲーム」の解説です。このゲームのプログラムはシンプルですが、ゲームの様々なものの位置が大事です。

1.背景を作る

まず、背景を作ります。
下の画像をPCに保存して使いましょう。

スイカゲームオブジェクト構成

ファイル名:BackgroundIMG03.png

Square(四角)スプライトを使って背景をつくります。
2D Object -> Sprites -> Square

Add Variable for Particle

Inspector画面で以下のように設定します。

Add Variable for Particle
Add Variable for Particle

背景画像は、Tiled設定にして画像を繰り返し使うようにしてあります。
こういう場合、大きさを変えるときにスケールツールではなく、レクトツールを使います。

Add Variable for Particle

最終的にはフィールドをすっぽり包むくらいの大きさにします。

Add Variable for Particle

2.ソーティングレイヤーを準備する

2次元ゲームで奥行きの上下関係を指定するためにソーティングレイヤーをつかいます。
それでは、ソーティングレイヤーを追加していきます。
まず、インスペクタ画面に行きます。どのゲームオブジェクトの構いません。

Inspector -> Layerプルダウンを開き -> Add Layer… をクリックしてTags&Layersの表示にします。

スイカゲームオブジェクト構成
スイカゲームオブジェクト構成

Sorting Layers を開き + ボランで新しいソーティングレイヤーの[Field]と[Player]を追加します。

Add Variable for Particle

これでソーティングレイヤーの追加は終わりです。

3.フィールドをつくる:その1

つぎに、フィールドを作っていきます。
下の画像をPCに保存して使いましょう。

スイカゲームオブジェクト構成

ファイル名:TipsIMG.png

Square(四角)スプライトを使ってフィールドをつくります。
2D Object -> Sprites -> Square

Add Variable for Particle

Inspector画面で以下のように設定します。

Add Variable for Particle
まず、最初の地面を作ってみましょう。
背景のときと同様にレクトツール(Rect Tool)を使って地面をつくります。
Add Variable for Particle

4.プレイヤーキャラクターを作成する

下の画像をPCに保存してプレイヤーに使いましょう。

スイカゲームオブジェクト構成

ファイル名:PlayerIMG.png

Square(四角)スプライトを使ってプレイヤーをつくります。
2D Object -> Sprites -> Square

Add Variable for Particle

Inspector画面で以下のように設定します。

※フィールドの設計に大きく影響するため、キャラクターのパラメーターは事前によく考えて決めておくとよい。

Add Variable for Particle
BoxColider2DのEdge Rediusを0.3にすると↓のように角が丸くなるのがわかります。これをしないと、プレイヤーが段差などで引っかかったりしてしまいます。
Add Variable for Particle

5.プレイヤーのプログラムを作成する

インスペクター画面の Add Component をクリックしてScript Machineを追加します。

add Script Machine component

Newを押して新しいスクリプトグラフを追加します。

Add Variable for Particle

PlayerControllerという名前をつけて、保存します。
その後、Edit Graphをクリックします。

Add Variable for Particle
下記、変数を追加します。
パーティクルについては後ほど説明いたします。
Add Variable for Particle
下記、プログラムをすべてPlayerControllerグラフにいれます。
Add Variable for Particle
Add Variable for Particle
Add Variable for Particle
Add Variable for Particle
Add Variable for Particle

6.フィールドの当たってはいけない場所をつくる

フィールド上のプレイヤーが当たってはいけない場所をつくります。

add Script Machine component

Hiearachy -> + -> 2D Object -> Sprites -> Triangle でトライアングルを追加します。

Add Variable for Particle

Inspector画面で以下の編集をします。
1.TagをEnemyにする
2.Polygon Colider 2Dを追加して、コライダーのサイズを合わせる。

Add Variable for Particle

※重要
このゲームで重要なのはフィールドづくりです。クリックのタイミングで障害をクリアできるかできないかの距離をきちんと計測してする必要があります。
また、途中でキャラクターのジャンプ力などのパラメーターを変えてしまうと、フィールドも作り直さなくてはいけないため、キャラクターのパラメーターは事前によく検討するとよい。

Add Variable for Particle

7.【第2面】浮遊型プラットフォーマーを作る

浮遊型プラットフォームゲームを作成してみましょう。プレイヤーは壁などの障害物に衝突しないようにしなければなりません。

add Script Machine component

それでは、プレイヤーのプログラムを作ります。まず、以下の変数が必要です。
[DayFX]
パーティクルオブジェクトを指定する。パーティクルを自分で作成するか、Asset Storeで購入したものを指定しておきましょう。
[StartPosition]
プレイヤーがはじめに登場する位置を指定します。希望の位置に空のオブジェクトをおき、それを指定してください。

Add Variable for Particle

【プレイヤーが障害物に衝突したときの処理】

処理説明
1.タグがEnemyだった場合
  i. 破壊パーティクルエフェクトを自身の座標に生成する
  ii.スタートボジションに移動させる

Add Variable for Particle

【キーボード及びマウス操作の処理】

処理説明
1.画面が更新されるたびに以下の処理をする
  i. ジャンプキーもしくはマウス左クリックがあった場合
   a.プレイヤーの速度を(x,y) = (18,10)にする
  ii. ジャンプキーもしくはマウス左クリックがない場合
   a.プレイヤーの速度を(x,y) = (18,-10)にする

Add Variable for Particle

「フィールドづくりについて」

プレイヤー触れては行けないすべてのオブジェクトにEnemyタグをつけましょう。(Enemyタグは自分で追加する必要があります。)

Add Variable for Particle