UE4_动画基础_动画重定位原理

embedded/2024/9/23 14:25:18/

动画重定位 是一种允许在共用相同骨架资源但比例差异很大的角色之间复用动画的功能。通过重定位,可以防止生成动画的骨架在使用来自不同外形的角色的动画时丢失比例或产生不必要的变形。 通过动画重定位,还可以在使用 不同骨架 资源的角色之间共享动画,前提是他们使用相似的骨骼层级,并使用名为 绑定(Rig) 的共享资源在骨架之间传递动画数据

动画重定位 是对现有动画稍加修改后用于多个角色的过程,它使你无需创建全新的动画,因为你可以在多个角色间共享动画资源。

一、为何使用重定位?

假设您有多个角色,您希望在基本角色、矮壮角色和高瘦角色之间共享动画。

基本角色矮壮角色高瘦角色

重定位前的结果

在应用重定位前,您就可以在任何共用相同骨架资源的骨骼网格之间使用动画。但是,如果角色身材比例如上图所示有差异,就会得到一些很难看的结果。请注意矮个角色是如何被不必要地拉长的,高个角色又是如何被压短的,这都是系统为了使其符合基本角色的骨骼比例而进行的更改。

基本角色矮壮角色高瘦角色

重定位后的结果

对角色应用重定位以后,系统就不再考虑它们的比例差异,动画会在每个角色身上正常播放。 您也可以转到 视口(Viewport) 选项中的 显示(Show)>非重定位动画(Non-Retargeted Animation) 来查看原骨架(以米黄色显示)和当前骨架(白色)的差异。请注意,在基本角色身上,米黄色的非重定位骨骼与骨架是完美重合的。

基本角色矮壮角色高瘦角色

二、重定位的原理是怎样的?

动画绑定到骨架资源。骨架资产其实就是一个骨骼名称和层次结构数据的列表,但它也存储了来自用于定义骨架资产的原始骨骼网格的初始比例。此数据是以骨骼平移数据的形式存储的。特别要注意的是,重定位系统只会重定位骨骼的平移分量。骨骼的旋转始终来自动画数据。

因为使用了原始骨骼网格定义骨架资产的比例,所以使用该骨架资产但有不同比例的其他任何骨骼网格(例如比原始网格短得多的网格)都需要经过重定位才能正确工作。如果不经过这一步,具有不同比例的骨骼网格会尝试使用原始网格的平移数据,导致我们在本文开头看到的各种错误。

为了解决这个问题,骨架编辑器 中的骨架树提供了几个设置,用于更改处理骨骼之间平移重定位的方式。有 3 种不同设置可用于骨骼平移重定位:

  • Animation(动画)——骨骼平移来自动画数据,不做改变。
  • Skeleton(骨架)——骨骼平移来自目标骨架的绑定姿势。
  • 比例动画(AnimationScaled)——骨骼平移来自动画数据,但按骨架的比例调整。这是目标骨架(播放动画的骨架)与源骨架(制作动画的骨架)的骨骼长度之比。

此外,对于动画重定位,使用重定位动画和非重定位动画没有显著的性能差异。使用动画重定位的好处是增加独特角色的数量,又不必创建全新的一套匹配动画,重新做动画可能会严重占用您的动画存储预算。

不同骨架的重定位动画

在为不共享相同骨架资源的角色处理动画重定位时,需要指定一个特殊的资源,名为 绑定(Rig) ,它负责处理骨架之间传递的动画数据。 与各个角色关联的骨架资源通过共享的 绑定(Rig) 资源通信,以正确地将变换数据从一个源传递到其预定目标。

绑定(Rig) 可以在 骨架编辑器 中的 重定位管理器中指定,同一个绑定需要指定给两个骨架资源。

三、重定位如何处理最终效果器?

高个角色会跑得更快吗?它们能拿住相同的道具吗?——这些都是使用重定位时可能出现的问题。简而言之,这里没有自动完成的工作,要由用户来决定如何实施。

关于保持比例,有一种方法是创建单独的一串骨骼,跟随原始动画中的手部运动,称为"手IK骨骼"。然后重定位身体和手臂,但不重定位"手IK骨骼",使其在重定位后保持原样。这样您就可以让不同比例的角色操作相同的道具(例如,给步枪装弹)。

通过单独设置一串骨骼可以在您需要时方便地在 FK 和 IK 之间平滑切换(例如您希望在装填武器弹药时打开"手IK",在从口袋里取弹夹时关闭"手IK")。

这个系统非常灵活,可以根据您的需要定制。也许您只希望左手是IK,而右手使用其FK位置和IK旋转。有时可以这样处理脚部,有时不需要这样处理。当角色踩踏非常精确的道具时,您会希望打开IK;当角色只是四处奔跑时,您会希望使用FK,以免产生罗圈腿的角色(或相反)。

四、设置重定位

如上文重定位工作原理中所述,首先需要为骨架中的骨骼设置 骨骼平移重定位 模式。

通常您需要对两足生物使用这些设置:

  • 根骨骼、IK骨骼、武器骨骼和任何一种将使用动画模式的标记。

  • 骨盆将使用比例动画,以确保其在正确的高度,同时仍能动作。

    • 您希望平移和重定位动画的其他任何骨骼也应该使用比例动画。

  • 所有其他骨骼都应使用骨架。它们将使用来自目标骨架的静态平移。

这意味着快速工作流程应该是:

RecursivelySet.png

  1. 右键单击 根骨骼,并 递归地设置平移重定位骨架 ,以便所有骨骼都设置为"骨架"(Skeleton)。

  2. 找到骨盆或与之相当的骨骼,将其设置为 比例动画(AnimationScaled) 

  3. 找到根骨骼,所有IK骨骼、所有武器骨骼或其他标记式的骨骼,将它们设置为使用 动画(Animation) 

如果要重定位共享相同骨架资源的角色的动画,这些动画现在将受到动画重定位的影响。 如果要重定位不共享相同骨架资源的角色的动画,则需要执行一些额外步骤,确保正确重定位动画。

五、使用重定位源管理器

BasePoseManager.png

在动画重定位中使用的另一个工具是 重定位管理器 ,它可以让您:

  • 管理重定位源(Manage Retarget Source) 资源——如果每个骨架有不同比例的网格体则十分有用,您可以使用该设置来指示某个特定动画是否来自于另一个来源。

  • 设置绑定(Set up Rig) ——将动画重定位到使用相同绑定的不同骨架。

  • 管理重定位基本姿势(Manage Retarget Base Pose) ——重定位资源到其他骨架时可以使用,允许更改目标的基本姿势,以使其与源基本姿势一致,并提供更准确的重定位动画。​​​​​​​


http://www.ppmy.cn/embedded/5818.html

相关文章

npm环境搭建

npm是什么 npm是前端的包管理工具,类似于后端的maven。现在npm已经集成到nodeJs中,安装好nodeJs就可以安装好npm了。 npm初始配置 一般下载好nodeJs后要对npm进行一些初始化配置。 修改npm的镜像源 npm默认的镜像源是https://registry.npmjs.org/&a…

第五十八章 IIS 7 或更高版本的替代选项 (Windows) - 替代选项 2:将本机模块与 NSD (CSPcms.dll) 结合使用

文章目录 第五十八章 IIS 7 或更高版本的替代选项 (Windows) - 替代选项 2:将本机模块与 NSD (CSPcms.dll) 结合使用注册运行时本机模块启用 Web 网关管理的 CGI 模块 第五十八章 IIS 7 或更高版本的替代选项 (Windows) - 替代选项 2:将本机模块与 NSD (…

【学习】jemter中如何高效使用正则表达式

在Jemter的世界里,正则表达式无疑是一把锐利的剑,它可以帮助我们轻松地解决许多问题。在Jemter的性能测试过程中,我们常常需要提取响应中的某些数据,以便在后续的请求中使用。这时,正则表达式就派上用场了。通过学习如…

react 项目路由配置(react-router-dom 版本 v6.3、v6.4)

根据 react-router-dom 的版本,有不同的方式 一、react-router-dom v6.3 用到的主要 api: BrowserRouteruseRoutesOutlet 下面是详细步骤: 1、index.js BrowserRouter 用来实现 单页的客户端路由使用 BrowserRouter 包裹 App放在 顶级 位置&#x…

2024阿里云4核8G服务器租用优惠价格700元一年

阿里云4核8G服务器租用优惠价格700元1年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采用Intel(R) Xeon(R) Platinum处理器,阿里云优惠 aliyunfuwuqi…

网站结构规范对于独立站的重要性

网站结构是指通过优化网站的内部结构和布局,以提高其在搜索引擎结果页面(SERP)中的排名和可见性的过程。 涉及到网站内部链接、导航菜单、网站url路径、网站地图等细节。 网站结构的优化可以更好地帮助搜索引擎了索引网站的内容&#xff0c…

GVRP协议与动态、静态vlan

一、GVRP协议使用场景 1、当实际组网复杂到网络管理员无法短时间内了解网络的拓扑结构,或者是整个网络的VLAN太多时,工作量会非常大,而且非常容易配置错误。在这种情况下,用户可以通过GVRP的VLAN自动注册功能完成VLAN的配置。 2、…

MySQL事务

📟作者主页:慢热的陕西人 🌴专栏链接:MySQL 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容介绍了MySQL中事务的概念,也是MySQL中非常重…