チュートリアル: 「0からはじめるACTION GAME MAKER」第三章

「enemy」のスクリプトを設定しよう。

「enemy」は左右に動くだけなので、左右に動くことと、HPが0になったときにやられることができれば大丈夫です。単純に考えれば「左に移動」「右に移動」「消滅」の3つのステートがあればよいのですが、今回は単純な移動を自動で設定できる「テンプレート移動」というアクションが使えます。

なので、「テンプレート移動」「消滅」の2つのステートを作り、HPが0になったら消滅する、というリンクを設定しましょう。

ヴィジュアルスクリプトのアタッチ

1. enemy(GameObject)ノードを選択します。

2. スクリプトをアタッチボタンでスクリプトをアタッチします。

3. 名称はそのままenemy.vsで作成を押しましょう。

「テンプレート移動」「消滅」のステート制作

1. ステート001を「テンプレート移動」にリネームします。

2. インスペクターでアニメーションカテゴリを「移動」に設定します。

3. 「+実行アクションを追加」ボタンをクリックします。

4. 「テンプレート移動の設定」を選択します。

5. 「移動時間」を3、「段差から落ちない」をオンに設定します。これで3秒移動するか、落下するような段差があった場合に折り返すようになります。

6. 「追加」を押します。

7. 続いて、「テンプレート移動」ステートの右側の空間を右クリックし、「ステートを追加」します。

8. ステート001を「消滅」にリネームします。

9. 「+実行アクションを追加」ボタンをクリックします。

10. 「自身を消滅させる」を選択して追加しましょう。

11. 以下のようになっていればステートの設定が完了です。

「テンプレート移動」から「消滅」のリンクをつくろう

1. 「テンプレート移動」ステートを右クリックして「リンクを追加」し、「消滅」ステートにつなぎます。

2. インスペクターの「+その他条件の設定」ボタンをクリックします。

3. 「HPが0になった」を選択します。

4. 設定項目はそのまま(データタイプ:自分自身)で良いので追加します。

5. 以下のようになっていれば設定完了です。

「enemy」を「stage1」シーンに配置しよう。

それでは、enemyの設定ができたので、stage1に配置してテストプレイしましょう。Playerと同じレイヤーに配置します。

1. エディター画面をScriptから2Dに変更します。

2. シーンタブをstage1に切り替えます。

3. シーンウィンドウでPlayerノードを選択します。

4. 選択したまま、ファイルシステムから「enemy.tscn」をプレイヤーの右側にドラッグ&ドロップします。

5. 配置できたらテストプレイをしてみましょう。

敵が3秒毎に左右に動き、弾を3回あてると消滅することが確認できれば成功です。

動かないときのチェックリスト

敵が左右に動かない時:「テンプレート移動」ステートを確認しましょう。

敵が折り返しても反転しない時:enemyノードのアニメーションセットと、「テンプレート移動」ステートのアニメーション指定を見直してみましょう。

敵が弾1発で消えてしまう時:enemyのbasesettingsの「体力」「最大体力」と「無敵」の設定を見直してみましょう。

弾があたらない時:enemyの「HitArea」のCollisionLayer/Mask、bulletの「AttackArea」のCollisionLayer/Maskを確認しましょう。

弾が消えない時:「bullet」の移動から消滅ステートへのリンクと、消滅ステートのアクションを確認してみましょう。