アクションゲー!ヒットストップの実装!
アクションゲーで攻撃を敵に当てた時、一瞬攻撃が止まるような演出ありますよね!(モンハンがいい例だったはず。ブラボもそうだったかな?)
今回はその実装です!
とりあえず武器にコリジョンをつけたキャラを使用します。
以下の処理を組みます。
武器のコリジョンにオーバーラップしたアクターが指定したタグ持ちなら、ダメージを与え、ヒットストップをかける。
といった処理です!
ヒットストップ処理はマクロにひとまとめにしてます!
中身はこう!
SetglobalTimeDilationは時間の速さを変えれます。値が小さいほど遅くなります。
Delayで何秒時間を遅くするかを指定します。
Delayで指定した秒数が経過したら、SetglobalTimeDilationの値を「1」に戻し、時間の速さを元に戻します。
SetglobalTimeDilationの値につながってる変数「StopTime」には「0」を入れ、
Delayの値につながってる変数「Delay」には「0.00834」を入れます。(0.00834は手探りで見つけたちょうどいい数値)
次に、敵側のBPです。
敵側にもヒットストップ処理をする必要があります。
プレイヤーのヒットストップ処理の数値と一緒にしましょう。
StopTime(SetglobalTimeDilation)・・・「0」
Delay(Delay)・・・「0.00834」
おまけとして、敵の体力が「0」になったらラグドール化して死亡するようにしてます。
それではプレイ!
しっかりヒットストップがかかってますね!
ちなみに先ほど、敵側のヒットストップ処理で
プレイヤーのヒットストップ処理の数値と一緒にしましょう。
と言いましたね。
同じにしないと、例えばプレイヤーだけHitStopのDelayの数値を変えた場合、敵に攻撃が当たった瞬間、プレイヤーの動きが固まってしまったりしてしまいます。たまに。
まあ、その辺は実際にやって確かめてみてください。(この辺はまだ不確定なのでよくわかってません。すいません)
これで爽快感のあるアクションが作れるかもですね!
それではまた!^^ノシ