大家好!
我的游戏开发之旅始于2012年,被《守护使者》和重新创造类似体验的想法所激发。从那时起,我已经参与多个游戏项目,并在绘画和编程方面花了几年时间学习。现在,我专注于打造独特的打点游戏和发表我的原创游戏。
作为这一过程的一部分,我一直在研究并组织关于核心战斗系统的笔记,首先是击中框。私は学习到的东西分享给大家,并从社区获得反馈。英语不是我的母语,所以我使用了AI来帮助翻译这个帖子。
什么是击中框?
在打点游戏和对战游戏中,击中框是判断攻击是否击中系统的。这代表了攻击行为的实际冲击区域。当这种系统不好实施时,它容易成为玩家们的挫折之处。设计好的击中框系统确保战斗中的一致性、可预测性和公平性。
不要与伤害框混淆。伤害框是指角色可以接受伤害的区域。
主要类型的击中框
下面列出了我研究的主要类型:
- 静态击中框保持始终不变的动作。常用于简单的射击或陷阱。
- 帧同步击中框根据动画帧指定开启。通常通过动画事件来实现。这是最常见的 Melee 攻击方法。
- 动态击中框根据角色姿势或动作实时调整。适用于包含大量运动或抓取技巧的攻击。
最佳实践
下面这些实践似乎对于建立一个强壮的击中框系统至关重要:
- 清晰的帧数据文档化映射启动、激活和恢复帧对于平衡、组合设计和取消时间至关重要。
- 使用简单的碰撞检测在大多数情况下,方形碰撞体或圆形碰撞体就足够了。只有在必要时才使用复杂的形状。
- 可视化调试使用工具如
OnDrawGizmos()帮助可视化: - 绿色:激活的击中框
- 红色:成功击中
- 蓝色:伤害框
- 职责划分
- 攻击击中框负责伤害。
- 推动框用以防止角色重叠。
- 抓取框是用于夹带玩法的。
- 速度限制激活的击中框不能在一个帧内对目标造成伤害。内部冷却或标识符,如
HasHitTargetThisFrame可以帮助防止这种情况。 - 可视化一致性击中框的有效范围应该遵循何时的动作或VFX,除非有一个清晰的不想那样做的游戏原因。
常识性弱点
| 疏忽 | 后果 |
|---|---|
| 击中框太大 | 攻击看起来似乎在不知不觉中击中了 |
| 激活击中框太早 | 破坏玩家的时间表期望 |
| 过度复杂的碰撞检测 | 超出性能负担 |
| 未适应击中框到角色尺寸 | 错误的碰撞行为 |
| 过于依赖物理层 | 可能存在碰撞错误 |
调试技巧
以下是一些已被证明很有用的调试技巧:
- 实时绘制在游戏中显示活跃的碰撞体,并且可以打开或关闭它们。
- 上下文日志记录记录攻击名称、帧数和受影响目标有助于追踪意外行为。
- 慢动作检查在某些帧执行攻击时添加一个短暂的慢动作效果,使其更容易分析可视接触。
- 碰撞单元测试在控制的自动测试中模拟
OnTriggerEnter交互,使其更容易验证边缘案例。
高级考虑
- 攻击暂停攻击击中时,暂停一下,这样可以增强冲击感和清晰度。应该仅在检测到碰撞时停止。
- 单击或多击一些攻击,如旋转技能,可能会击中多次。这应该使用每个目标的标志或已受影响实体的列表来控制。
- 父母和层次击中框应该遵循正确的骨骼,如手部或武器。使用像
PlayerHitbox和EnemyHurtbox这样的自定义层来避免意外相互作用。 - 基于数据的击中框通过可脚本的实体定义击中框,允许设计师在不重新编译游戏的情况下调整值。
最后的想法:
从我研究到的东西到现在,我觉得击中框是动作游戏中战斗的基本骨架。当设计清晰、精确时,它们创建了一个合理和令人愉悦的玩家和敌人的互动,以及Juggle、Combo Chains、Cancel Windows和HItStop的基础系统。
我打算继续研究和分享关于打点游戏和对战游戏的更多关于战斗系统的内容。有没有什么重要的事情我可能遗漏,并且可能在我的工程中有效的任何技术?
大家好!我一直在研究打点游戏和对战游戏中的战斗系统和最近把有关击中框的一些笔记放在一起了,有些我想分享和从社区获得一些反馈。
评论 (0)