https://docs.unrealengine.com/latest/CHN/Engine/Animation/AnimationRetargeting/index.html

本页面的内容:
  • 为何使用重定位?
  • 重定位会影响性能吗?
  • 重定位的原理是怎样的?
  • 重定位如何处理最终效果器?
  • 设置重定位
  • 使用重定位源管理器

动画重定位(相同骨架)是一种允许在共用相同骨架资产但比例差异很大的角色之间复用动画的功能。通过重定位,可以防止生成动画的骨架在使用来自不同外形的角色的动画时丢失比例或产生不必要的变形。

要让不同的骨骼网格利用重定位功能,它们不但必须使用相同的骨架资产以确保骨骼层次结构,还必须在绑定姿势中使用相同的关节旋转。请参见 骨架(Skeleton) 文档了解详细信息。

用于不同骨架的动画重定位

本页上的内容讲述了 动画重定位 背后的概念,并列举了可以对使用相同骨架资产的角色使用动画重定位的例子。有时您可能希望为使用不同骨架资产的角色重定位动画,动画重定位(不同骨架)将说明如何实现这一目的。

请参见 动画重定位(不同骨架) 了解更多信息。

为何使用重定位?

假设有三个您希望共用动画的角色:一个基本角色、一个矮壮角色和一个高瘦角色。

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

重定位前的结果

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

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

重定位后的结果

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

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

重定位会影响性能吗?

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

重定位的原理是怎样的?

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

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

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

  • 动画(Animation) - 骨骼平移来自动画数据,不做改变。

  • 骨架(Skeleton) - 骨骼平移来自目标骨架的绑定姿势。

  • 比例动画(AnimationScaled) - 骨骼平移来自动画数据,但按骨架的比例调整。这是目标骨架(播放动画的骨架)与源骨架(制作动画的骨架)的骨骼长度之比。

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

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

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

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

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

设置重定位

可以在 Persona 的 骨架树(Skeleton Tree)面板中设置重定位。

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

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

  • 骨盆将使用“比例动画”(AnimationScaled),以确保其在正确的高度,同时仍能动作。您希望平移和重定位动画的其他任何骨骼也应该使用“比例动画”(AnimationScaled)。

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

这意味着,如果您要使用重定位,快捷的工作流程将是:

  1. 右键单击 根骨骼并递归地将所有骨骼设置为 骨架(Skeleton)

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

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

在视口的 显示(Show)菜单中您可以选择 非重定位动画(NonRetargeted Animation)和 骨骼(Bones)来比较原动画和重定位的动画。

使用重定位源管理器

因为重定位使用骨架资产,而骨架的原比例是由最初为之创建骨架的骨骼网格定义的,所以按照上面描述的步骤可以顺利地实现单向重定位。但是您常常会有一些专为变体版本构建的特殊动画。例如,假设有一个特殊动画是专为角色的高个版本创建的。

如果您将这个新的“仅限高个”动画导入,仍然需要和以前一样使用从角色的基本版本创建的同一骨架资产。这将使新动画的比例失真。解决方法就是使用 重定位源管理器

重定位源管理器 允许您将动画序列与为之设计序列的实际骨骼网格关联。通过这种方法,任何重定位特殊动画的问题都可以解决。

使用重定位源管理器

请将 重定位源管理器 看作您可以用来指定比例的骨骼网格列表。如果您需要用于重定位的骨骼网格的特殊动画,需要确保该网格在 重定位源管理器 中列出。

  1. 在 Persona 的菜单栏中选择 窗口(Window)> 重定位源管理器(Retarget Source Manager)

  2. 右键单击 重定位源管理器(Retarget Source Manager)面板的列表区域(中央),从快捷菜单选择 添加...(Add...)

  3. 选择为之创建特殊动画的骨骼网格。现在您应该可以看到该骨骼网格在 重定位源管理器 中列出。

  4. 在 Persona 的 资产浏览器 中,双击 您为骨骼网格创建的特殊动画的动画序列资产。

  5. 在动画资产 细节(Details)面板中找到 动画(Animation)类别,并找到 重定位源(Retarget Source)属性。在下拉菜单中,您现在应该可以看到添加到 重定位源管理器的骨骼网格。通过选择此网格,您就指定了要使用该网格的比例驱动此动画。

动画重定位(相同骨架)相关推荐

  1. tiny4412 裸机程序 八、重定位到DRAM及LCD实验【转】

    本文转载自:http://blog.csdn.net/eshing/article/details/37407423 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.实验原 ...

  2. tiny4412 裸机程序 八、重定位到DRAM及LCD实验

    一.实验原理 上一章已经解释的很清楚了,如何将所要运行的user_bin程序定位到DRAM中,这一章要进行重定位到DRAM后运行LCD程序,实际上一章中BL2中程序可以不用改动,直接重写我们的USER ...

  3. Nat. Biotech. | AI、药物重定位和同行评审

    传统的计算分析和机器学习是否可以弥补在信息泛滥的情况下对药物重定位论文进行同行评审的不足? COVID-19的流行改变了科学和临床成果的分享和传播方式.根据最近的一项分析,平均每周有367篇COVID ...

  4. medRxiv | 基于网络的人类冠状病毒的药物重定位

    随着新型冠状病毒(2019-nCoV)感染肺炎疫情持续发展,武汉.全国各地以及全球的疫情牵动着每一个人的心.2020年2月5日medRxiv发表了研究工作"Network-based Dru ...

  5. Nat. Commun | 用于全基因组药物重定位的系统网络算法

    1. 背景 DNA/RNA测序的最新进展实现了通过"精确"定位个性化疾病模块来快速识别新靶标并重新利用已批准的药物治疗异质性疾病.基因组学时代,药物开发已成为高度集成的系统性问题, ...

  6. 探索“老药新用”最短路径:亚马逊AI Lab开源大规模药物重定位知识图谱DRKG

    本文经授权转载自机器之心(almosthuman2014),未经授权禁止二次转载与摘编. 本文长度为3200字,建议阅读9分钟 本文带你了解亚马逊AI实验室的开源机器学习工具. [ 摘要 ]最近,来自 ...

  7. 共享可写节包含重定位_PE结构学习01-DOS头-NT头-节表头

    什么是PE结构:PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,就是只要在Windows下的可执行程序的内部结构都是PE结构, ...

  8. 如何使用Rebase以及bind来重定位和绑定dll

    dll的重定位和绑定技术可以优化应用程序的性能.我们知道,程序性能最本质的提升是算法(这里的算法绝不仅是1+1=2的问题)的改进,其他的改进只是一些配置的优化而已. 那么重定位和绑定属于哪一种呢?从原 ...

  9. 重定位(搜索KERNEL32.DLL得到API地址)

    1 ;-------------------------------- 2 ;动态加载功能实现 3 ;moriarty 4 ;2012/04/13 5 ;----------------------- ...

最新文章

  1. Swift 异常处理
  2. case when条件表达式
  3. hadoop NameNode HA 和ResouceManager HA
  4. 从excel表中生成批量SQL,将数据录入到数据库中
  5. html中radio,checkbox值的获取、赋值、注册事件
  6. [vue] vue在created和mounted这两个生命周期中请求数据有什么区别呢?
  7. linux查看杀死进程
  8. c#split方法拆分为数据_【转载】C#使用Split函数根据特定分隔符分割字符串
  9. 1.1.0-简介-P9-分布式ID生成器解决方案
  10. C#实现文件二进制存储
  11. 湖北警方打掉一制贩假酒团伙 涉案金额1.6亿元
  12. ajax编辑教程,今天手动编写了一个简易的 ajax 发起器(JavaScript)
  13. Unity中的几个”近义词”
  14. dependencyManagement 失效
  15. PHP 省市区 最新最全json生成
  16. 记用Fiddler抓包爬取pc端微信公众号文章
  17. 计算机化工应用答案,计算机化工应用习题与解答.pdf
  18. Unity 生命周期 Reset() 的使用
  19. 新氧打出精细化运营组合拳 激活医美发展新动力
  20. 大型三甲医院信息管理系统源码 his系统源码【源码分享】

热门文章

  1. 32寸曲面屏显示器写代码太爽了!再送一台!
  2. 图像抽象成彩色文字/符号/黑色气泡
  3. 【链块技术36期】智能合约基础语言(一)——Solidity概述和开发工具的使用
  4. api哪个键是查询_api键是什么意思
  5. 玩转Django2.0---Django笔记建站基础十一(二)
  6. DeepMind带来了大魔王阿尔法扣,程序员还有前途吗?
  7. 数字人民币 为经济添活力
  8. Python绘制桑基图Sankey,Pyecharts不显示html页面,桑基图只显示标题,原因总结
  9. Oculus Quest,Unity开发如何开启虚拟键盘
  10. c语言输出狐狸图形,c语言中的结构体