[Unity] Visual Scripting でつくる簡単ゲーム「防空ゲーム」その2

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

ビジュアルスクリプティングでつくる「防空ゲーム」の解説第二弾です。ここでは敵をつくります。

1.敵キャラクターを制作する

それでは敵キャラクターをつくりましょう。

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

まず、スプライト画像の準備をします。
Projectウィンドウで使うイラストを選択します。

Add Variable for Particle

Inspectorが画面で以下のように設定して、Apply(適用)をクリックします。これで、キャラクターの大きさを変えることができます。

Add Variable for Particle

キャラクターのオブジェクトを作ります。

Add Variable for Particle

次にスプライト画像を設定します。

Add Variable for Particle

名前を「Enemy01」にします。
※このEnemyのあとの番号(01)を元に各種類の敵キャラクターのHPや攻撃力などを割り当てています。
Inspector画面でSprite画像を設定します。

Add Variable for Particle
Add Variable for Particle

Animation -> Create をクリックします。

Add Variable for Particle

アニメーションの名前を入れてSaveします。

Add Variable for Particle

Projectウィンドウのインスペクタ画像をまとめて選択し、Animationウィンドウにドラッグします。

Add Variable for Particle

Samplesを調整してアニメーションの速さを調整します。
Samplesが表示されていない場合は、Animation画面右上の設定ボタンからShow Sample Rateにチェックをいれてください。

Add Variable for Particle
Add Variable for Particle

次にHito時のアニメションも追加いますので、新しいアニメーションクリップを追加します。

Add Variable for Particle
Add Variable for Particle

Hitと名前をつけてSaveします。

Add Variable for Particle

Hit用の画像をまとめて選択し、Animetionのタイムライン上にドラッグします。

Add Variable for Particle

Sampleを20にします。

Add Variable for Particle

Animator画面を開きます。
作ったIdle StateとHit StateをTransitionでつなぎます。

Add Variable for Particle

ステートを右クリック -> Make Transition でTransitionを追加します。

Add Variable for Particle

AnimatorのParameters -> + でパラメーターを追加します。

Add Variable for Particle

Bool方のパラメーターを追加します。

Add Variable for Particle

パラメーター名をHitにします。

Add Variable for Particle

Idle -> Hit の Transition をクリックしてInspectorを変更します。
Has Exit Time のチェックを外します。

Add Variable for Particle

Conditions の+をクリックしてStateの遷移条件を設定します。

Add Variable for Particle

Condition を Hit が True の時に設定します。

Add Variable for Particle

Hit -> Idle の Transition をクリックしてInspectorを変更します。

Add Variable for Particle

これでアニメーション関係の設定は終わりです。

敵オブジェクト選択肢インスペクタを編集します。

Add Variable for Particle

敵オブジェクトに以下のコンポーネントを追加します。
1.Capsule Colider 2D
2.Rigidbody 2D
3.Script Machine
Variables はScript Machineを追加した時点で追加されます。

Add Variable for Particle

スクリプトマシーン(Script Machine)は最初↓のようになっています。
Newを押して新しいスクリプトグラフを追加しましょう。

Add Variable for Particle

グラフ(Graph)名を「EnemyControllerFly」にしてSaveします。

Add Variable for Particle

2.敵キャラクターのプログラムをつくる

敵キャラクターのプログラムを作ります。
このプログラムはすべての種類の敵キャラクター共通のプログラムになります。

Add Variable for Particle

敵キャラクターを選択し、インスペクター画面 -> Script Machine -> Edit Graphをクリックします。

Add Variable for Particle

プログラムで使うObject変数(Variables)をつくります。
Object変数はオブジェクト事に単一です。

Add Variable for Particle

次にScene変数(Variables)をつくります。
Scene変数はシーンごとに共通で使えます。
■EnemyHP EnemyPower
– 敵キャラクターの種類ごとのHPや攻撃力などを管理
■BulletPower
– 弾の種類ごとの強さを管理
■PlayerHP
– プレイヤーのHP
■GameSchedule
– 1桁目は出現までの待ち時間
– 2〜3桁目は敵の種類番号

Add Variable for Particle

【地面についた時の処理】
敵が地面に着地したときに、パーティクルを出してから自分を消す。

Add Variable for Particle

【敵のHPを設定】
自分の名前の(例:Enemy01の01部分)番号を読み取り番号に合わせた自身のHPをEnemyHPから読み取り、それを設定する。また、敵の速度をy=-1に設定する。

Add Variable for Particle

【弾があたった時の処理】
弾があたったとき、当たった弾の威力だけHPを引く。
HPが0以下の場合、パーティクルを呼び出して自身を消す。
HPが0以上の場合、
i.アニメーションパラメーターHitをTureにし、
ii. 速度をy=0にする
iii.0.5秒まつ
iv. アニメーションパラメーターHitをFalseにする
v. 速度をy=-1に戻す

Add Variable for Particle

3.ゲーム管理ようのプログラムをつくる

敵の出現タイミング、プレイヤーのHP管理とゲームオーバー管理などを行うプログラムを作ります。
その前に、必要なUIと空のオブジェクトを作り名前をGameControllerにします。

プログラム:敵の出現管理

GameControllerオブジェクトに新しいグラフ[名前:FlyGameController]
を新規作成します。

プログラム:敵の出現管理

それでは2つプログラムを追加します。

【敵の出現管理】
リスト変数GameScheduleを読み取り敵のそこから出現タイミングと敵の種類を取得します。取得した情報をもとに敵を出現させます。

プログラム:敵の出現管理

【プレイヤーのHP管理とゲームオーバー管理】
敵キャラクターがタイルマップに触れたときにプレイヤーのHPを減らします。HPが0になった場合、ゲームオーバーの表示をします。

Add Variable for Particle