对UE高级运动系统研究及理解

如果一名优秀的程序员用好的文采写文章,那么他太卷了但是我是名程序员不优秀也没有好的文采。

UE蓝图基础学的差不多了,在学进阶,其实基础学地稀里糊涂的,在进阶阶段再仔细研究。研究到UE的高级系统,其实高级运动系统已经迭代到第四代了(ALS V4)


前言

ALSV4是啥?
高级运动系统(Advanced Locomotion System,简称ALS )是一个先进的双足运动和分层系统,专注于高质量的人物动画与响应运动。现在它的第4代,ALSV4,在虚幻商城中已经免费
强大的数据驱动的AnimBP,具有智能的运动混合方法,以及强大的分层系统,可轻松添加游戏状态和变化,无需大量额外动画。其他功能包括冲刺冲动、附加学习、土地预测、原地转弯/旋转、脚部IK等。

在这里插入图片描述

虽然ALS4已经免费了,但这套系统对一半的人研究起来还是有些吃力的。当然目前有很多大佬对其研究的文章,虽然自己的研究比不上那些大佬,也希望次篇文章能帮助一些人。
此次这篇文章不是重点研究第四代运动系统,而是围绕状态机以项目的方式展现状态机的知识点。


推荐几篇前辈的对动画系统研究的文章:
知乎@DarkFlameMaster:
①骨骼动画 高级运动系统 走跑混合初步
②骨骼动画 高级运动系统 八向移动
③骨骼动画 高级运动系统 原地旋转
④骨骼动画 高级运动系统 (ALSV4)
B站 @五谷延年
动画技术 深入浅出 高级运动系统
知乎: @郭袁

一、是什么状态机?

动画状态机是可以让动画从一个过渡到另一个的过程,它大大简化了动画的设计流程。可以实现很多的基础动作,例如:跑,跳,上天,游泳等一系列动作。
传统动画动态机方案:
传统动画状态机方案就是包括移动,技能,攀爬,表现等所有状态都是通过状态机去实现,该种方式在前期当然灵活易用,方便组装各种模块, 但是一旦到达中后期,动画数量达到几万个的量级,那么动画状态机的模块和层级深度可能达到几十层,在该种情况下,每添加一个动画状态成本就非常高,错综复杂的状态很容易导致出错,而且动画状态机的特性是将所有的动画全部加载到内存,动辄几百兆内存一般游戏也吃不消。
当动画资源很多的时候状态机有很大的局限性,采用状态机加动画序列帧的方式来搭建动画系统可以节省开发的很大部分的成本。
骨骼动画 详细文章推荐

二、状态机建立

1.获得必要的变量

在这里插入图片描述

得到是否在空中变量,是否在加速的变量。

2.状态机里的动画逻辑

Ⅰ.新建第一个状态机,承载最基本的行走逻辑



Ⅱ.创建第二个状态机,被第一个状态机包含,再添加原地转到逻辑。

在这里插入图片描述


Ⅲ.计算原地旋转速率值,控制器旋转越快那么原地转动的动画就播放的越快,速率值是控制器上一帧的Yaw值与当前帧控制器的Yaw值的插值。


Ⅳ.创建第三个状态机,其Idle状态承载第一个状态机的动画逻辑(包含第二状态机).

在这里插入图片描述
   其中“Land状态”中有个落地additive动画,先前自己对additive动画一知半解,后来bing查了一下(国内很少人研究这个或者说国人研究过没有发布到中国的平台网站)

那additive动画到底是什么呢?
   加法动画是通过将两个动画相互相减来计算的,并存储为两者之间的差 附加动画本身并不能真正使用,因为它需要添加到另一个动画才能工作。使用附加动画背后的想法是找到可以应用于多个动画的附加姿势。这减少了每个状态所需的动画总数。例如,可以添加武器重新加载动画。现在它可以添加到空闲动画、步行动画集(向前、向后、向左和向右)和跑步之上。因此,不是在向前走动画和所有其他组合时进行重新加载,而是制作了一个重新加载添加剂,并添加到向前走、向后跑等等的顶部
 自己在bing找的两篇文章:

additive Animation
加法动画


Ⅴ.计算斜角值(Lean),当速度达到一定速度时,转弯直观上会有倾斜效果,也可以用高中知识离心力来理解。对Lean的计算有很多种算法,对于不同状态的动画效果选择不同算法,我将展示我对Lean的计算。

 即Actor旋转体当前帧Yaw值与上一帧的Yawn的差值
推荐另一位知乎博主一篇文章他有另一种对Lean的算法: Locomotion 人物转弯倾斜(Lean)
ps:自己对Lean值研究不是很深。


Ⅵ.双脚IK。IK( Inverse Kinematics),即反向动力学。在这不过多解释,下面两幅图将让你简单了解IK。

下面自己手写思路图

在这里插入图片描述
算出(用检测开始的位置检测-地面与双脚碰撞的位置)的值,获取长度-胶囊体半高长度=Ik双脚偏移量
在这里插入图片描述
在这里插入图片描述


三、小Demo成果展示

请点击演示链接观看


总结

  现在ALS已经迭代到第四代了,对于高级动画系统需要学习的知识有很多,很多大作3A很注意动画系统的开发但到第四代的3A有但不是很多,内容有IK、八向动画、技能逻辑动画等等或者复杂点的Paragon里面提到的技术,如Distance Match,Speed Warping,Orientation Warping等,再或者自定义Node节点,ControlRig,还有很多要学习的东西。这正是印证那句话“活到老,学到老”。
  此次的内容太水了,可能刚自己进阶研究的比较基础的,如果此篇文章对您有些帮助,点个赞支持下,以后会再深入研究,下一篇将深入学习研究IK。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4的AI系统提供了一套强大的工具和框架,用于开发各种类型的人工智能角色和行为。下面是UE4 AI系统的一些关键组件和功能的详细介绍: 1. AI控制器(AI Controller):AI控制器是用于管理和控制AI角色行为的类。它负责决定AI角色的移动、攻击、交互等行为。你可以在AI控制器中编写代码或使用蓝图来定义AI角色的行为逻辑。 2. 行为树(Behavior Tree):行为树是一种图形化的工具,用于描述和执行AI角色的行为逻辑。在UE4中,你可以使用行为树来定义AI角色在不同情况下应该执行的动作。行为树由一系列节点组成,包括选择(Selector)、序列(Sequence)、条件(Condition)等。你可以通过连接这些节点来创建复杂的行为逻辑。 3. 黑板(Blackboard):黑板是用于存储和共享AI角色状态信息的数据结构。每个AI控制器都有一个黑板,可以在其中存储变量和值。行为树可以使用黑板中的数据来做出决策。例如,你可以在黑板中存储目标位置、敌人信息等,并在行为树中使用这些信息来导航、攻击等。 4. 感知系统(Perception System):UE4提供了一套感知系统,用于让AI角色感知周围的环境和其他角色。感知系统包括视觉感知(Sight)、听觉感知(Hearing)和碰撞感知(Collision)。你可以使用这些感知源来检测敌人、障碍物或其他重要的游戏事件,并相应地调整AI角色的行为。 5. 导航系统(Navigation System):UE4的导航系统提供了强大的路径规划和导航功能,用于让AI角色在游戏世界中移动。导航系统可以自动生成可行走区域,并提供了一系列的路径搜索算法。你可以使用导航系统来指导AI角色在地图中寻找最佳路径、避开障碍物等。 6. AI蓝图(AI Blueprint):UE4的蓝图系统可以用于编写AI逻辑。你可以使用蓝图来定义AI角色的行为、响应事件、处理输入等。蓝图提供了一种可视化的编程环境,使得编写AI行为变得更加直观和易于理解。 除了以上提到的核心组件和功能,UE4还提供了其他一些工具和技术来增强AI的表现力和逼真度,例如动画蓝图(Animation Blueprint)、人工智能动画(AI Animation)、状态机(State Machine)等。 总的来说,UE4的AI系统提供了丰富的功能和灵活的工具,使得开发者可以轻松地创建复杂的AI角色和行为。无论是使用蓝图还是C++编程,你都可以根据游戏需求来设计和实现自己的AI系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值