虚幻引擎图文笔记:动画资源中Force Root Lock的作用

前言

今天有小伙伴问我虚幻引擎中动画资源Root Motion选项中的Force Root Lock的作用是什么,老王对这个选项的功能理解也是比较含糊的,查阅了官方文档,其描述也比较费解。索性通过实验的方式理解一下它的作用吧。

该选项的位置

在这里插入图片描述

官方文档中的解释

在这里插入图片描述

实验准备

项目设置和资源准备

  • 项目:第三人称横板项目
  • 动画资源:Polygonmaker资源包,该套资源具有带根运动的动画

默认动画蓝图设置

将地面运动的混合空间替换为具有跟运动的动画资源"Anim_Regular_climb_up"

在这里插入图片描述
为了让跟运动在蓝图中生效,将Root Motion Mode设置为Root Motion from Everything
在这里插入图片描述

角色蓝图设置

将Character Movement组件中 Default Land Movement Mode设置为Flying,这样可以屏蔽掉重力的干扰
在这里插入图片描述
并且我在角色的根骨骼上添加了一个红色的方块,以便于观察根骨骼的变化

在这里插入图片描述

实验

1. 不开启Root Motion和Force Root Lock

在这里插入图片描述

[演示视频]不开启RM和Force Root Lock

根骨骼移动,但不会影响胶囊体的位置,此时Skeletal Mesh会“逃出”胶囊体范围

在这里插入图片描述

2. 仅开启Root Motion

在这里插入图片描述

[演示视频]仅开启Root Motion

根骨骼移动,并且会反向影响胶囊体的位置(顺便可以看到跟运动会受物理碰撞影响)

3. 仅开启Force Root Lock

在这里插入图片描述

仅开启Force Root Lock

根骨骼的移动被清零,自然也不会影响胶囊体位置

4. 开启Root Motion和Force Root Lock

在这里插入图片描述

[演示视频]开启RM和Force Root Lock

和仅开启Root Motion效果相同,说明Force Root Lock仅在Root Motion未开启时才会产生作用

应用场景

关于这个选项的应用场景,我找到了国外社区中一个网友提出的问题,有些时候我们并不想使用根运动,但是由于动画资源中的根骨骼有位移数据(即本身是RootMotion动画资源),在游戏中这个根骨骼位移数据虽然不能影响胶囊体的移动,但是会使角色“逃出”胶囊体范围,这时开启“Force Root Lock”可以强制将根骨骼位移数清零,并将角色限制在胶囊体范围之内。

在这里插入图片描述

小结

以上是通过实验得出的结论,由于没有深入研究过源代码,有理解不当之处敬请指正。

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/127705161