骨架资源

骨架资源的总览,以及其如何应用到UE4动画的说明。

Windows
MacOS
Linux

如果您熟悉数字内容创建,那么对“骨架”的概念应该有所了解。 在多数3D应用程序中,骨架通常是一个数字层级架构,用于定义角色中的骨骼或关节,并以诸多方式模仿真实的生物骨架。 在虚幻引擎4中,一个重要的区别是骨架资源将 关联动画数据,而并非只是骨架网格体中的骨骼层级。 在UE4中,骨架资源将把骨骼(关节)数据关联到动画轨迹,从而驱动动画。

MayaSkeleton.png

SkeletonTree.png

Maya骨骼范例

UE4骨骼树范例

骨架资源主要聚焦于处理动画数据,而非骨架网格体。

骨架资源的另一个重要方面:如果骨架网格体共享同一个骨架资源(取决于满足的基本规则),则可共享动画数据,即使层级不完全匹配也能共享。 能够在骨架网格体之间共享骨架资源后,即可在多个角色之间共享动画,甚至共享整个动画蓝图 ,定义角色的动画逻辑。

除驱动动画外,骨架资源还负责:

  • 动画重定位 ,便于调整比例不同的角色的动画。

  • 创建和保存插槽 ,以便将内容附加到角色。

  • 保存动画通知 ,以便将效果(例如脚步声、粒子系统,甚至触发其他代码的自定义事件)添加到动画。

  • 保存动画曲线 (可用于驱动材质参数或变形目标)和槽命名 (可用于播放角色的动画蒙太奇 )。

如果您刚接触UE4中的动画,为便于深度理解骨架资源,建议您查阅“使用骨架”系列教程:

创建骨架资源

创建骨架资源的主要方式在骨架网格体的导入 中发生。 导入骨架网格体时,如将FBX导入选项 窗口中的 骨架(Skeleton) 域留空,则基于正在导入的骨架网格体自动创建一个骨架资源。

FBXImportOptionsWindow.png

导入骨架网格体后将创建一个骨架资源:

ImportedSkeletalMesh.png

双击骨架资源将打开骨架编辑器

SkeletonEditor.png

导入引擎的每个骨架网格体或动画都需要一个关联的骨架资源。 在FBX导入进程中可以使用现有的骨架资源(具体取决于所满足的共享骨架资源),无需单独创建骨架。 骨架的初始比例由其所创建的原始骨架网格体而定义,重定向 动画时务必考虑到这点。

创建骨架——快捷菜单

常见做法时在骨架网格体的导入过程中创建骨架资源,但也可以通过右键快捷菜单从内部网格体创建骨架。 此方法可以用引擎中现有的网格体来新建一个骨架。如果该网格体有关联的其他骨架,其只会重新关联到新骨架,然后所有动画都将关联到新骨架。

contextmenu.png

使用骨架资源

在骨架网格体的FBX导入进程中,可以使用 骨架 下拉菜单来选择一个骨架资源与正在导入的网格体进行关联。

FBXImportSelectSkeleton.png

如果您已遵守共享骨架资源的规则,您的骨架网格体将被导入,并指定到您选择的骨架资源。

如果您在导入中选择的骨架资源与正在导入的网格体差异较大,且未遵守共享规则,此时将出现错误消息:

FailedSkeleton.png

您可能需要在这些实例中为正在导入的骨架网格体新建骨架资源。

共享骨架资源的规则

骨架资源的一个重要特性是单个的骨架资源可以由多个骨架网格体使用。 每个骨架中的骨骼层级无需完全一致。但其需要拥有相同的整体结构。 最重要的是一个骨架网格体到另一个的骨骼层级不能被改变。 这意味着骨骼命名和骨骼的排序必须一致。

举例而言,一个躯干拥有3根骨骼,分别命名为 123

ExampleBoneHierarchy.png

如果有第二个需要使用相同骨架资源的骨架网格体,则需要保证这些骨骼的命名和排序相同。 然而可以添加层级外部的骨骼(不含这些额外骨骼的角色不会使用此数据)。举例而言,您的新层级应与下图类似:

PeripheralBones.png

然而,为使两个骨架网格体使用相同的骨架资源,无法对层级进行重新排序,也无法重命名骨骼。举例而言,这并非有效:

ReorderedBones.png

在此实例中,第二个骨架网格体使用了一个不同的骨骼层级,需要一个新的骨架资源。

额外躯干

因为添加层级外围的骨骼为有效操作,所以可以轻松在拥有额外部分的骨架网格体之间重复使用骨架资源。举例而言,需要在3个不同但相似的角色类型之间共享动画,这三者均拥有相同的骨骼结构(和相同的骨骼命名),但存在一些关键差异:

  • 一个男性人类(举例而言,这就是您的基础角色)

  • 一个女性人类,拥有马尾辫骨骼

  • 一个拥有四肢的类人角色

您可以将同一个骨架资源用于所有这些角色,结果是骨架资源将包含所有3种类型的关节层级信息。动画将使用骨架资源来确定应用到每根骨骼的旋转。因为骨架网格体为设计制作,因此其基础骨骼层级均相同,动画将在它们之间完美兼容。唯一的差异是可能需要一些特殊动画来驱动这些角色上多出的躯干或马尾辫。

未包含在骨架网格体中的骨骼接收到动画数据时(例如马尾辫动画被用于使用相同骨架资源的角色,但此角色不带马尾辫),该动画数据将被忽略。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback