
(注:以前の同名トピックには技術的な不備があったため、こちらを参照してください。前のトピックはモデレーターに削除を依頼済みです。この録画アニメーションをよく観察すると、前のトピックではシールドとHPが同時に減少していましたが、このトピックでは、最初は英雄の頭上の数字(シールド値)のみが減少し、シールド値が0になってからHPの減少が始まることがわかります。)
1 AGMの自動被ダメージの技術的コンセプト:
(1)以前、私は他の攻撃判定条件を使用すればこの自動ダメージ機能を中断できると誤解していましたが、それは間違いであることが証明されました。AGMのヒットボックスは、有効化され、かつ攻撃との対応関係が正しく設定されていれば、自動的に計算されます。VSではこれを中断することはできません。ヒットボックスを無効化すれば中断可能ですが、ヒットボックスを無効化するとすべての被ダメージ反応が無効になり、シールド機能も機能しなくなります。
(2)では、ヒットボックスの自動検知を停止できない場合、シールドがあるときはシールドを減らし、シールドがないときはHPを減らすにはどうすればよいでしょうか?最終的に答えを見つけました——ダメージレートを制御することです!
BaseSettingsのプロパティに「被ダメージ率(taken damage rate)」という項目があります。これを0%に設定すると無傷になり、100%に設定すると全ダメージになります。これを使用して被ダメージを制御すればよいのです!
2 具体的な実装方法:
(1)2つのヒットボックスの衝突領域を作成します。1つはヒーロー本体用、もう1つはシールド用です。そして「シールド」という変数を設定します。
(2)VSスクリプトで待機状態を有効化した後、条件を設定します——「シールド > 0」の場合、以下のアクションを実行します:【1. 被ダメージ率を0%に設定;2. シールドの衝突ボックスを有効化;3. 本体の衝突ボックスを無効化】(これにより、AGMの自動衝突によるダメージを直接ブロックできます。)
(3)衝突が発生した際、シールド値を減少させ、0.5秒間のループ処理を行います。
(4)シールド値 <= 0 の場合、以下のアクションを実行します:【1. 被ダメージ率を100%に設定;2. シールドの衝突ボックスを無効化;3. 本体の衝突ボックスを有効化】
(5)さらに、このアクションに対して、被ダメージ判定が発生した後に音声を再生する0.5秒間のループアクションを設定し、同時に対象のBaseSettingsに0.5秒間の無敵時間を設定する必要があります。
(6)他の操作は不要です。これでシールドが解除されると、AGMが自動的にHPダメージを計算します。


