动画

修改动画系统

为 Bannerlord 导出动画

默认动画设置
FBX 导出设置 (Autodesk Maya)

这些设置适用于Maya。类似的软件可能包含相同的设置。当我们首次导出新rig时,导出的FBX文件应包含骨骼和网格。

首次设置(骨架+网格)

仅导出动画设置

在导出动画之前,我们确保禁用网格和皮肤相关选项。”Use scene name”对于动画和rig导出时的检查非常重要。还要确保根骨骼在字符串末端包含”_notused”。

我们确保我们不发送任何类型的”Constraints”和”Skeleton Definitions”。约束(Constraints)、连接(Connections)和单位(Unit)应设置为下图。我们的引擎使用”Z”作为上轴。

定义新动画

导出你的动画后,要在游戏中引用它,你需要从资源浏览器中添加新的动画剪辑,它引用该动画。要做到这一点,你应该使用 “Create” 父构建内的 “Animation Clip” 按钮。这些片段最重要的属性是

一个典型的动画也包含一些可选的属性。最常见的是blend_in_period,它设置了与现有动画混合并达到100%权重的持续时间,blend_out_period与这个混合相反,但它有一个重要的区别。Blending out实际上是指动画结束的时间早于给定的持续时间,剩下的动画将只用于向另一个动画进行混合。但混合持续时间只由 blend_in_period 设置。拥有比下一个动画的blend_in_period更长的blend_out_period并不会延长这个混合持续时间。它只是帮助混合看起来更顺畅,因为在该混合期间,如果两个动画同时播放,在视觉上看起来更有吸引力。blend_out_period为0的动画只是在混合到下一个动画的过程中暂停,它会导致骨骼旋转的突然停止/速度变化。

一个动画还有几个可选的属性:

动画通常包含另外两个节点:flags和clip_usage_data。clip_usage_data是一个常见的数据指针,可以参考blend_data、displacement_data、bipedal_movement_and_ik_data和quadrupedal_movement_data。它们主要是针对特定情况,其细节不在本解释的范围内。不过几乎所有的动画都会用到flag,需要做一些解释。可能用于动画的标志有。

修改/添加新操作

agent动画作为动作被映射到动作集。为了给现有的动作设置一个新的动画,首先需要通过资源浏览器定义一个新的动画片段。动画剪辑定义了动画的开始和结束秒数、FPS和各种属性。然后你需要将其映射到特定动作集的action_sets.xml下。如果需要创建一个新的动作,首先需要在action_types.xml下将其添加为新的行,然后再进行上面同样的步骤。

非agent动画不被映射为动作。对于这些,你只需要通过资源浏览器添加动画片段,然后在代码中开始使用它。

每个动作都有几个属性。这些属性是硬编码的,以便引擎能够理解动作的某些属性。这些属性是

类型(默认:actt_other):

usage_direction (可选):

action_stage (可选):

使用修改后的动作非常直接,你只需要在action_sets.xml下修改动作到动画的映射就可以了。但是如果你想创建一个新的动作,或者为现有的动作创建一个新的行为,可能的整合它到游戏中的方法有: