我部分出于想和人进行橡皮鸭调试的愿望,也部分是因为我想在游戏开发子reddit看到这类内容。

我目前正在为我的框架构建一个3D爆炸系统。我大致知道想要如何模拟爆炸,但我对自己是否走在正确的方向还不完全确定。我尝试测试其他游戏的做法,但很难得到清晰的图像,因为爆炸模拟是不可见的,通常很难让 enemies 安静并保持静止,以便我向他们发射火箭。我的框架是基于 Build Engine Holy Trinity 风格的快节奏射击游戏,所以我追求快速、好玩的爆炸,而不是超级细致的弹片模拟等。

我的当前思路如下:

  1. 在爆炸点生成重叠球体。
  2. 过滤重叠的碰撞体,只保留允许被爆炸击中的实体。
  3. 进一步过滤剩余的碰撞体,只保留具有直接视线的实体,使用射线检测(即防止通过墙体被击中)。我猜想需要对敌人的脚、腰和头部进行射线检测,以避免出现这种情况:因为一个 prop 阻挡了射线到达碰撞体中心,而身体其他部分仍然暴露……但这可能是过度设计?
  4. 根据爆炸点的距离,计算并发布剩余碰撞体的力和伤害消息。

所以……大家有任何想改进这一方法的建议吗?或者有更聪明、更优雅的思路?我是否漏掉了某个行业标准的爆炸技巧?