プレイヤーのヴィジュアルスクリプトに「やられ」を追加しよう。
「やられ」状態の検討
HPが0になったときに、動けなくなり、「やられパーティクル」を放出する、という設定をするのが良さそうです。リンクはAnyStateからつなぐのが良さそうですが・・・それだけは一つ問題があります。以下のような図になるのですが、「どのような状態」でも「攻撃にあたる」と「被ダメージ」ステートに遷移するようになっています。
HPが0になったということは敵の攻撃を受けているわけですから、「やられ」ステートからでも攻撃にあたって「被ダメージ」に遷移してしまうことがあります。
なので、以下のように「被ダメージ」へのリンク条件に「HPが0ではない」を追加して遷移を防ぎましょう。
「やられ」ステートをつくろう
アニメーションはちょうどよいものがないので「被ダメージ」を再利用しますが、全く同じだとやられ状態かどうかの判断ができませんので、オブジェクトの見た目を変更する「フィルター」機能で見た目もかわるようにしましょう。
1. Playerシーンを開きます。
2. 2DからScriptにエディター画面を変更します。
3. 「被ダメージ」の情報の空間に「ステートを追加」します。
4. ステート名を「やられ」に変更します。
5. アニメーションカテゴリ名を「被ダメージ」に設定します。
6. 「アクション設定」を展開します。
7. 「動作中の移動の入力を受け付けない」プロパティをオンにします。
8. 「+実行アクションの追加」ボタンを選択します。
9. 「パーティクルを表示」アクションを選択します。
10. パーティクルオブジェクトのパスの
マークをクリックし、先ほど作成した「やられパーティクル.tscn」を選択します。
11. 「追加」ボタンを選択します。
12. 再び、「+実行アクションの追加」ボタンを選択します。
13. 「フィルターを設定」を選択します。
14. フィルタータイプを「透過」完了までの時間(秒)を3.0秒に変更します。これで、3秒かけて徐々に透明になります。
15. 「追加」ボタンを押し、以下のようになっていればステートは作成完了です。
AnyStateから「やられ」ステートへのリンクを作ろう
1. AnyStateを右クリックして「リンクを追加」し、「やられ」とつなぎます。
2. 「+その他条件の追加」ボタンをクリックします。
3. 「HPが0になった」条件を選択して「追加」します。
「被ダメージ」への遷移条件を追加しよう。
最後に「被ダメージ」への遷移条件を追加します。共通設定の「条件を反転させる」を有効にすることで、条件を逆にすることができます。つまり、「HPが0になった」条件はこの設定で「HPが0ではない」とすることができます。
1. AnyState→「被ダメージ」のリンクを選択します。
2. 「その他条件の追加」ボタンを選択します。
3. 条件「HPが0になった」を選択します。
4. 「条件を反転させる」をオンにして追加します。
5. その他条件欄が以下のようになっていればOKです、「反転」オプションが有効な場合は「≠」のアイコンが白くなるので正しく反転が有効かチェックしておきましょう。
「やられ」をテストプレイしてみよう。
テストプレイをしてみましょう、現在HP初期値のままで1しかないので、1回敵の攻撃にあたれば「やられ」になるはずです。
うまくできていれば、敵にあたればパーティクルが表示され、徐々にプレイヤーが薄くなっていきます。なお、やられたあとは「F5」キーを押すことでリセットできます。
うまくいかない時のチェックリスト
花火のパーティクルがでない: 「やられパーティクル」オブジェクトの内容と「パーティクルを表示」アクションを見直しましょう。
透明にならない:「フィルターを設定」の内容を見直しましょう。
被ダメージのリアクションが出る:リンク条件を見直してみましょう。