短いフレームだと攻撃が当たったに遷移しない

多段ヒットを避けるために攻撃判定を0.01秒だけ出しているのですが

攻撃自体は当たってダメージは入るものの

敵が「攻撃が当たった」の遷移にリンクしません。0.02秒は必要なようなので、、

しかし0.02秒でも判定があると2連続ヒットになります。

2Pプレイも想定しているので敵に無敵時間はできるだけ作りたくなく

(1Pの攻撃が当たってる間2Pの攻撃が素通りするため)

当たったら攻撃判定を消す方法も考えたりはしたものの上手く行きません。

何か良い方法はないでしょうか。

こちらですが、ヴィジュアルスクリプトの各状態の判定は1フレーム毎に行っています。

1フレームは0.0167秒ですので、0.01秒ではヴィジュアルスクリプトの処理タイミングが間に合いません。

これはアクツク固有の問題というよりprocess(delta)というプログラムで良くある1フレーム処理のタイミングなのでいかんともしがたいところがあります。

まだ開発の見込みは立っていないのですが、前作アクツクMVで実装した「属性別に無敵時間を設定する」システムの実装を要望としてはいれておりまして、こちらが実装できれば想定されていることができるとはおもうのですが・・・

現時点できそうなこととしては、

  • 1フレーム以上の長さの判定を入れていただく。
  • ダメージ処理を自分で作る(例えばですが、ライフという変数を別途つくってしまい、被ダメージが0以上のときに被ダメージの値を代入して減らすような処理を行う等)

等かなとはおもいます。

ご回答ありがとうございます。

とりあえずは2Fに判定を出して

元の威力を半分にする方針で考えてみます

このケースで同じ方法が使えるかはわかりませんが、私も似たようなケースで困っていました。「ダメージ処理を自分で作る」形で処理しているので一応共有してみます。

私の場合、アクツクのダメージ処理周りは全部捨てて(無敵時間0被ダメージ0)ダメージアクションへの遷移条件でやりくりしています。

変数を二つ用意して、それぞれにタイマーで無敵時間を設定する感じです。例えば「対1P無敵時間」「対2P無敵時間」という変数を用意、それぞれのプレイヤーからダメージを受けると、その無敵時間分タイマーをセット、対応するタイマーが0秒の時にそれぞれの攻撃を受けるとダメージステートへ遷移という形で実装できる・・・かも・・・?

アクツクのダメージ処理は融通が利かないので、色々工夫が要りそうな予感はしますね・・・。

参考になりそうな情報をありがとうございます。

攻撃周りは難しいですがまた色々調整しながらやっていこうと思います。