前提・実現したいこと
攻撃で一回の攻撃ごとの当たり判定検出回数を制限したい。
つまりは一回剣を振る攻撃なら一回だけ敵に当たり、二回素早く剣を振るような攻撃なら二回当たり判定が検出されるというように、誤検出なく当たり回数をコントロールしたい。
また、複数の敵に対しても正しく当たり判定を検出したい(一回の攻撃で一回だけ当たる。しかし二体の敵に当たれば二体に一回ずつというように)。
現状の仕様と改善策とそれらの問題点
現状ではモーションのデータ(モーション値、アーマー削りなど)のなかに『hitLimmit』というような整数の項目を用意し、当たるごとにその数値を減らすことで0になったら、すなわち上限まで当たったらこれ以上当たり判定を検出しないというようにしている。
問題点としては複数の敵が当たり判定内部にいると誤作動を起こすこと。(二回当たる攻撃のはずが二体に一回ずつになる)
それから二回きりつける動きの場合一回目で二度トリガーを検出して、二回目の斬撃に反応しなくなる可能性がある。
また、貫通弾が複数の敵を貫けない。
改善策1では当たり判定が敵と衝突したらそれ以上敵に当たらないようにして(レイヤー変更?)、ごく短い時間の後当たり判定を復活させる。
これにより連撃と貫通弾の問題は改善されるかもしれないが(密着してたらだめかもしれません)複数の敵への近接攻撃の誤作動はなおらなさそう。
改善策2は逆の発想で被弾した方のレイヤーを変えて複数当たり判定を検出してしまう誤作動を防ぐ。
貫通弾も複数への攻撃も連撃も問題は解消しそうだが、NPCの攻撃がすり抜けてしまうのではないかと懸念。
しかしプレイヤーもこうすると延々とひるませ続けられたりしないので逆に長所かもしれない。
現状最有力。
改善策3は敵ごとにHitLimitを設定すること。
当たった敵を検出してリストにして各キャラごとに何回当たっているというのを管理する。
しかし正直必要以上に重そうなのでできればやりたくない。
改善策4は3の派生。
例えば二回切りつけるなら一回の斬撃で当たり判定の中にいた敵に、当たり判定が消えた段階で当たった回数によらず一回だけダメージ計算してダメージを与える。
そして次の当たり判定が出たら同じことを繰り返す。
しかしこれも、とくに多段系だとものすごく重くなりそうです。
まとめ
これらの改善策から、あるいは回答者様の知見から最適な方法についてアドバイスしていただけたら嬉しいです。
何か足りない情報などあれば適宜補足するのでお手数ですがお知らせください。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/04 01:37 編集