VRシューティングゲームの作り方では、UnityとPlaymakerを使ってVRシューティングゲームを作り、STYLYにアップロードして公開するまでをレクチャーします。
今回は、敵の数を管理するEnemy Counterと敵を生成するSpawnerの設定をし、敵の数を管理するシステムの構築方法を紹介します。
- 事前準備
- 銃コントローラ設定
- 弾丸の設定
- 敵キャラクター発生方法
- 敵キャラクターの設定
- BGMとSEの設定
- STYLYにアップロードする方法
Part.1〜7まで続いてますので、最後まで読んで作ってみましょう!
前回はゲームに使用する銃の弾丸の設定を行いました。
- 1 Enemy Counter の設定手順
- 2 EnemySpawnerの設定手順
- 3 ランダムな位置に敵を生成する方法
- 3.1 enemyCount 変数を作成
- 3.2 Character Generation ステートの作成
- 3.3 Automatic generation イベントを作成
- 3.4 Random Float アクションの追加
- 3.5 Set Vector3 XYZ アクションを追加
- 3.6 Creat Object アクションを追加
- 3.7 Send Event アクションを追加
- 3.8 Randam Waitアクションを追加
- 3.9 Checking Number of Enemiesステートを作成
- 3.10 Get Fsm Variable アクションを追加
- 3.11 Int Compare アクションを追加
- 4 サンプルScene
Enemy Counter の設定手順
画面上の敵の数を管理するためにカウンターオブジェクトを作っていきます。
enemyCounter を作成
それでは新しく空のゲームオブジェクトをScene Hierarchy内に作り、「enemyCounter」と名前をつけましょう。
FSMを作成
enemyCounterのFSMを作成し、開始ステートに「Setup」と名前をつけます。
グローバルイベントを作成
「addEnemy」と「subtracetEnemy」と言った名前でこのFSM内にイベントを二つつくり、名前の横のボックスにチェックを入れグローバルイベントにします。
これにより、ゲーム内のFSMを持った他のオブジェクトからアクセスできるようになります。
対応させた名前のついたグローバルイベントをそれぞれに追加します。
FSMは次の図のようにしてください。
Int Add アクションを追加
「Int Add」アクションをAdding Enemyステートに追加し、Addを1に設定し、enemyCountに追加されるようにします。
これにより、敵を生成されるとカウントが1増加するようになりました。
Subtracting Enemyステートにも同様にInt Addアクションを追加しますが、今回は値を-1に設定します。
これにより、シーン内における敵の数のカウントを1ずつ減らすことができます。
EnemySpawnerの設定手順
enemySpawnerを作成
次に空のゲームオブジェクトをScene Hierarchy内に作り、「enemySpawner」と名前をつけます。
さらにそれがPlayMaker Tutorial Gameの子要素であることに注意します。
それによりSTYLYに後ほどエクスポートするプレハブ内に含まれることになります。
FSMを作成
enemySpawner内に新しいFSMを作り、下の図のように初めのステートである「Setup」と名前をつけます。
maxEnemies変数を作成
この開始ステート内に「maxEnemies」という新しい変数を作ります。
これは、ステージ上に生成される敵の最大の出現数を決定するために使用します。
今回は20体より多く生成されないようにValueの値を20とし、Intとして変数を設定します。
Get Fsm Variable アクションの追加
enemySpawner用のSetupステート内にも次の画像のように新しい「Get Fsm Variable」アクションを作ります。
Game ObjectドロップダウンメニューからSpecify Game Objectを選択し、Scene HierarchyからenemyCounterオブジェクトにドラッグして、Game ObjectをenemyCounterとして指定します。
Store Valueに変数maxEnemiesを格納します。
これでEnemy CounterとEnemySpawnerの設定が完了し、敵の数を管理する仕組みができました。
ランダムな位置に敵を生成する方法
enemyCount 変数を作成
次は敵をステージ上のランダムな位置から生成させます。
まず、enemySpanerのFSMを開き、「enemyCount」という新しいInt変数を作成します。
Character Generation ステートの作成
次に、Setupステートの完了時に「Character Generation」という新しいステートへの遷移を作成します。
Automatic generation イベントを作成
「Automatic generation」という新しいイベントを作成し、Character Generationステートに追加します。
Random Float アクションの追加
Character Generationステート内に新しく「Random Float」アクションを2つ追加し、下の図のように「X」と「Z」という新しい変数に格納します。
このように変数を設定することで、ステージ上の奥からランダムに敵を生成させることができます。
Set Vector3 XYZ アクションを追加
「Set Vector3 XYZ」アクションを追加し、下の図のようにXとZのランダムの変数を「EnemyPos」という変数に格納させます。
このとき敵をステージ上に立って見せるために「Y」の値は1としてください。
これで、敵をランダムに生成させる位置の変数を設定できました。
Creat Object アクションを追加
「Creat Object」アクションを追加し、敵を生成させます。
Game ObjectにEnemy(次の記事でEnemyを作りますのでこの段階ではなくて大丈夫です)を設定し、Positionに先ほど作ったEnemyPos変数を設定します。
Send Event アクションを追加
「Send Event」アクションを追加し下図のように設定します。
これによりグローバルイベントのaddEnemyを発生させ、敵を生成するとカウントが増えるようになります。
Randam Waitアクションを追加
「Randam Wait」アクションを追加し、Finish EventをAutomatic generationと設定します。
下図のように設定することで、敵が生成した後に1秒から3秒待ち時間が発生します。
Checking Number of Enemiesステートを作成
「Checking Number of Enemies」ステートを作成し、spawn enemyと呼ばれる新しいイベントをステートに追加します。
Get Fsm Variable アクションを追加
Checking Number of Enemiesステート内で「Get Fsm Variable」アクションを追加し、Game ObjectをenemyCounterとして指定します。
今回はenemyCount変数を取得したいので、Store ValueをenemyCountに設定します。
Checking Number of EnemiesステートからSetupステートへの遷移を作成します。
Int Compare アクションを追加
最後に、「Int Compare」アクションを追加し、下図のように設定します。「Every Frame」ボックスがチェックされていることを確認してください。
これにより、enemyCountとmaxEnemiesを比較し、enemyCountが少ない場合にspawn enemyイベントをトリガーさせ、敵を生成させるようにします。
先ほどmaxEnemiesを20と設定したため、敵の数が0体から19体の時のみ生成されるようになりました。
以上で、敵の数を管理するシステムを構築し、ランダムな位置から敵を生成させることができます。
次の記事では敵役の女の子の設定方法を紹介します。
サンプルScene
サンプルゲームはSTYLY GALLERYから体験できます。