UE ARPG | 虚幻引擎战斗系统

三种Combat system碰撞检测方法

  1. 玩家射线检测: 适合弹道攻击

  2. 玩家扇形检测: 适合站桩攻击(Stand-Still Attack / Stand-Still DPS)

  3. 武器碰撞体检测: 适合滑步攻击、移动连招等。

玩家射线检测sphere trace for object 可以从玩家射出一个类圆柱体,可以适当调整range和radius,远程和近战通用。

玩家扇形检测:是从玩家位置生成球型碰撞体,并使用dot检测玩家是否面向敌人,只适合站桩攻击,灵活性非常差。

武器碰撞检测:在武器上绑定碰撞体。

按下攻击按键(如LMB)时:

1.设置isSLASHboolean为true攻击动画结束返回false(用于状态机切换条件)

2.启用碰撞体,为了确保在击打动画的持续时间内只造成一次伤害,检测到一次碰撞后立刻禁用碰撞体,直到再次按下LMB

cs 复制代码
// 事件:OnAttackStart(点击左键触发攻击)
OnAttackStart:
    设置 CanDealDamage 为 True           // 允许造成伤害
    启用 碰撞体                          // 启用碰撞体以检测敌人

// 事件:OnAttackEnd(攻击动画完成时调用)
OnAttackEnd:
    设置 CanDealDamage 为 False          // 不再允许造成伤害
    禁用 碰撞体                          // 禁用碰撞体

// 事件:OnComponentBeginOverlap(碰撞检测,敌人进入碰撞体时调用)
OnComponentBeginOverlap(OtherActor):
    如果 CanDealDamage 为 True 且 OtherActor 是敌人 且 EnemyHit 为 空 或 不等于 OtherActor:
        调用 造成伤害(OtherActor)          // 对敌人造成伤害
        设置 CanDealDamage 为 False       // 设置为不可重复伤害
        设置 EnemyHit 为 OtherActor       // 记录当前敌人已被击中

// 函数:造成伤害
造成伤害(Enemy):
    Enemy.调用 受到伤害(伤害数值)          // 对敌人施加一次伤害

角色动画管理:

1. Locomotion(运动)

Locomotion 通常指角色在场景中的移动动画,包括行走、跑步、跳跃、滑行等。它侧重于角色在空间中连续移动的动画过渡和流畅性,常用于角色运动的平滑过渡,比如从站立到行走,再到奔跑等。

  • 主要特点

    • 动画平滑过渡:Locomotion系统通常包含Blend Spaces,用于处理从一个速度或方向切换到另一个的平滑过渡。
    • 实时性:Locomotion系统基于玩家的输入(例如按下移动键)实时响应,能够根据角色的速度或方向自动选择合适的运动动画。
    • 注重运动流畅性:通过Blend Space等技术,使角色的移动动画看起来更加自然,例如在从站立到跑步、再到停止的过程中无缝过渡。
  • 典型使用场景

    • 角色移动动画的过渡处理,比如从走路到跑步。
    • 在不同地形上调整角色的步伐和动作。
    • 角色跳跃、下蹲等运动行为的实现。

2. State Machine(状态机)

State Machine 是一种管理动画状态切换的系统。在状态机中,动画状态(例如站立、行走、跳跃、攻击等)由一系列逻辑条件控制,确保角色在特定状态下执行合适的动画。状态机可以控制从一种状态到另一种状态的切换,并定义各个状态的动画。

  • 主要特点

    • 逻辑控制:状态机通过逻辑条件(例如变量、标志位)来决定动画的切换,例如只有在跳跃键被按下并且角色处于地面时才允许从站立切换到跳跃。
    • 状态间关系明确:定义了各个状态之间的转换条件,避免在不合适的时间触发错误的动画。例如,防止角色在空中进行地面攻击。
    • 多功能性:状态机不仅用于Locomotion,还可以管理更多的复杂动画状态,例如攻击、受伤、死亡等。
  • 典型使用场景

    • 管理角色的战斗动画,比如从普通状态进入攻击状态。
    • 控制复杂的过渡条件,比如从跑步状态切换到跳跃状态时需要先检测是否满足跳跃条件。
    • 动画的切换控制和优先级管理,确保角色只在合适的时间进行合适的动作。

3.Animation Montage长度修改

一三人称蓝图切换

混合动画(如两套上下半身分别混合)

https://www.youtube.com/watch?v=wOIlkertaLA

把武器插到skeleton bone socket上

角色重定向

就是5.4右键动画(绿)一键重定向

https://youtu.be/MxMA1TFfqOA?si=Snxj1By2bMKflGLu

相关推荐
倚剑仙1 天前
Unity-WebGL开发——用IIS(Internet Information Services)部署webGL工程
unity·游戏引擎·webgl
2501_938773992 天前
《资源预加载策略:LayaBox 小游戏引擎资源池架构设计案例分析》
游戏引擎
Python私教2 天前
Unity 游戏开发「工业化级」学习路线 2025 版
学习·unity·游戏引擎
于小汐在咯2 天前
【Unity每日一记】Unity物理引擎:刚体与碰撞体详解
unity·游戏引擎
鱼蛋-Felix2 天前
Unity jar更新不生效怎么解决
unity·游戏引擎·jar
爱吃小胖橘3 天前
Unity资源加载模块全解析
开发语言·unity·c#·游戏引擎
千年奇葩3 天前
Unity性能优化之:利用CUDA加速Unity实现大规模并行计算。从环境搭建到实战案例
c++·人工智能·unity·游戏引擎·cuda
AA陈超3 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-25 属性信息数据资产
c++·游戏·ue5·游戏引擎·虚幻
爱吃小胖橘4 天前
高效对象池设计:提升Unity性能的关键
开发语言·unity·c#·游戏引擎
沉默的记录者4 天前
unity 2021反向遮罩的毛边
unity·游戏引擎