【Unity/Playmaker】VRシューティングゲームの作り方 敵キャラクター発生方法

VRシューティングゲームの作り方では、UnityとPlaymakerを使ってVRシューティングゲームを作り、STYLYにアップロードして公開するまでをレクチャーします。

今回は、敵の数を管理するEnemy Counterと敵を生成するSpawnerの設定をし、敵の数を管理するシステムの構築方法を紹介します。  

  1. 事前準備
  2. 銃コントローラ設定
  3. 弾丸の設定
  4. 敵キャラクター発生方法
  5. 敵キャラクターの設定
  6. BGMとSEの設定
  7. STYLYにアップロードする方法

Part.1〜7まで続いてますので、最後まで読んで作ってみましょう!

前回はゲームに使用する銃の弾丸の設定を行いました。

 

Enemy Counter の設定手順

画面上の敵の数を管理するためにカウンターオブジェクトを作っていきます。

enemyCounter を作成

それでは新しく空のゲームオブジェクトをScene Hierarchy内に作り、「enemyCounter」と名前をつけましょう。

enemyCounterを作成

enemyCounterを作成

FSMを作成

enemyCounterのFSMを作成し、開始ステートに「Setup」と名前をつけます。

enemyCounterのFSMを作成

enemyCounterのFSMを作成

グローバルイベントを作成

「addEnemy」と「subtracetEnemy」と言った名前でこのFSM内にイベントを二つつくり、名前の横のボックスにチェックを入れグローバルイベントにします。

これにより、ゲーム内のFSMを持った他のオブジェクトからアクセスできるようになります。

チェックを入れグローバルイベント化する

チェックを入れグローバルイベント化する

対応させた名前のついたグローバルイベントをそれぞれに追加します。

FSMは次の図のようにしてください。

enemyCounterにグローバルイベントを追加

enemyCounterにグローバルイベントを追加

Int Add アクションを追加

「Int Add」アクションをAdding Enemyステートに追加し、Addを1に設定し、enemyCountに追加されるようにします。

これにより、敵を生成されるとカウントが1増加するようになりました。

Adding EnemyステートにInt Addアクションを設定

Adding EnemyステートにInt Addアクションを設定

 

Subtracting Enemyステートにも同様にInt Addアクションを追加しますが、今回は値を-1に設定します。

これにより、シーン内における敵の数のカウントを1ずつ減らすことができます。

Subtracting EnemyステートにInt Addアクションを追加

Subtracting EnemyステートにInt Addアクションを追加

EnemySpawnerの設定手順

enemySpawnerを作成

次に空のゲームオブジェクトをScene Hierarchy内に作り、「enemySpawner」と名前をつけます。

さらにそれがPlayMaker Tutorial Gameの子要素であることに注意します。

enemySpawnerを追加

enemySpawnerを追加

それによりSTYLYに後ほどエクスポートするプレハブ内に含まれることになります。

FSMを作成

enemySpawner内に新しいFSMを作り、下の図のように初めのステートである「Setup」と名前をつけます。

enemySpawnerにFSMを追加

enemySpawnerにFSMを追加

maxEnemies変数を作成

この開始ステート内に「maxEnemies」という新しい変数を作ります。

これは、ステージ上に生成される敵の最大の出現数を決定するために使用します。

今回は20体より多く生成されないようにValueの値を20とし、Intとして変数を設定します。

maxEnemies変数を作成

maxEnemies変数を作成

Get Fsm Variable アクションの追加

enemySpawner用のSetupステート内にも次の画像のように新しい「Get Fsm Variable」アクションを作ります。

Game ObjectドロップダウンメニューからSpecify Game Objectを選択し、Scene HierarchyからenemyCounterオブジェクトにドラッグして、Game ObjectenemyCounterとして指定します。

Store Valueに変数maxEnemiesを格納します。

Get Fsm Variableアクションを追加

Get Fsm Variableアクションを追加

これでEnemy CounterとEnemySpawnerの設定が完了し、敵の数を管理する仕組みができました。

ランダムな位置に敵を生成する方法

enemyCount 変数を作成

次は敵をステージ上のランダムな位置から生成させます。

まず、enemySpanerのFSMを開き、「enemyCount」という新しいInt変数を作成します。

enemyCount変数を作成

enemyCount変数を作成

Character Generation ステートの作成

次に、Setupステートの完了時に「Character Generation」という新しいステートへの遷移を作成します。

Character Generationステートを作成

Character Generationステートを作成

Automatic generation イベントを作成

「Automatic generation」という新しいイベントを作成し、Character Generationステートに追加します。

Automatic generationイベントを作成

Automatic generationイベントを作成

Random Float アクションの追加

Character Generationステート内に新しく「Random Float」アクションを2つ追加し、下の図のように「X」と「Z」という新しい変数に格納します。

このように変数を設定することで、ステージ上の奥からランダムに敵を生成させることができます。

Random Floatアクションの設定

Random Floatアクションの設定

Set Vector3 XYZ アクションを追加

「Set Vector3 XYZ」アクションを追加し、下の図のようにXとZのランダムの変数を「EnemyPos」という変数に格納させます。

このとき敵をステージ上に立って見せるために「Y」の値は1としてください。

これで、敵をランダムに生成させる位置の変数を設定できました。

Set Vector3 XYZアクションの設定

Set Vector3 XYZアクションの設定

Creat Object アクションを追加

「Creat Object」アクションを追加し、敵を生成させます。

Game ObjectにEnemy(次の記事でEnemyを作りますのでこの段階ではなくて大丈夫です)を設定し、Positionに先ほど作ったEnemyPos変数を設定します。

Creat Objectアクションの追加

Creat Objectアクションの追加

Send Event アクションを追加

「Send Event」アクションを追加し下図のように設定します。

これによりグローバルイベントのaddEnemyを発生させ、敵を生成するとカウントが増えるようになります。

Send Eventアクションの追加

Send Eventアクションの追加

Randam Waitアクションを追加

「Randam Wait」アクションを追加し、Finish EventをAutomatic generationと設定します。

下図のように設定することで、敵が生成した後に1秒から3秒待ち時間が発生します。

Randam Waitアクションの追加

Randam Waitアクションの追加

Checking Number of Enemiesステートを作成

「Checking Number of Enemies」ステートを作成し、spawn enemyと呼ばれる新しいイベントをステートに追加します。

Checking Number of Enemiesステートを作成

Checking Number of Enemiesステートを作成

Get Fsm Variable アクションを追加

Checking Number of Enemiesステート内で「Get Fsm Variable」アクションを追加し、Game ObjectをenemyCounterとして指定します。

今回はenemyCount変数を取得したいので、Store ValueをenemyCountに設定します。

Checking Number of EnemiesステートからSetupステートへの遷移を作成します。

Get Fsm Variableアクションを追加

Get Fsm Variableアクションを追加

Int Compare アクションを追加

最後に、「Int Compare」アクションを追加し、下図のように設定します。「Every Frame」ボックスがチェックされていることを確認してください。

これにより、enemyCountとmaxEnemiesを比較し、enemyCountが少ない場合にspawn enemyイベントをトリガーさせ、敵を生成させるようにします。

先ほどmaxEnemiesを20と設定したため、敵の数が0体から19体の時のみ生成されるようになりました。

Int Compareアクションを追加

Int Compareアクションを追加

 

以上で、敵の数を管理するシステムを構築し、ランダムな位置から敵を生成させることができます。

次の記事では敵役の女の子の設定方法を紹介します。

サンプルScene

サンプルゲームはSTYLY GALLERYから体験できます。