Skip to main content

Flexi 引擎动作编辑器用户手册

第一章 概述

动作编辑器提供骨骼动画相关资产创建、预览、编辑功能。

J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_editor_overview_new_no.jpg

图 3 动作编辑器

编号说明
1菜单栏
2资产细项面板(Asset Details) 骨架树面板(Skeleton Tree) 基于Rig重定向管理器(Retargeting Manager)
3预览面板(Viewport)
4细项面板(Details)(注:该面板区别于资产细项面板,用于当前选中对象细项的设定)
5资产编辑面板
6资产列表面板(Asset Browser) 曲线检视窗口(Anim Curve View)

1.1 菜单栏

用户可以通过菜单栏创建和保存各类动画资产,以及打开各类编辑和预览面板。

关于动画资产的创建和编辑可参考第二章“动画资产及编辑器”获取更详尽信息。关于Rig资产的创建可参考《基于Rig的动画重定向工作流程说明》一文。

1.2 资产细项面板(Asset Details)

资产细项面板是一个与用户当前编辑资产相关的编辑界面,提供各类动画资产的细项设定。

1.3 骨架树面板(Skeleton Tree)

骨架树面板向用户展示目标骨架的层次结构。结合细项面板(Details)用户可以观察关节本地空间和模型空间位移、旋转和缩放数据,同时也可以对指定关节进行各项设置,如附加变换和重定向模式等。

1.4 基于Rig重定向管理器(Retargeting Manager)

详见《基于Rig的动画重定向工作流程说明》。

1.5 预览面板(Viewport)

用户可通过预览面板实时检查当前动画资产的回放表现。

1.6 细项面板(Details)

细项面板与用户在动画编辑器中当前选中的对象相关,提供选中对象的设置细项。可参考“动画资产和相关编辑器”章节获取更详尽信息。

1.7 资产编辑面板

资产编辑面板与当前打开动画资产类型相关,提供对当前动画资产的编辑功能。

1.8 资产列表面板(Asset Browser)

资产列表面板罗列当前动作集中所有有效动画资产,是用户对动画资产进行编辑的入口。

1.9 曲线检视面板(AnimCurveViewer)

曲线检视面板实时显示目标骨架包含的曲线当前值。

如何打开“动作编辑器”?

通过组合体编辑器开启。I:TempDevCap_20210527_105013.png在资源浏览器中双击角色文件打开“组合体编辑器”,然后通过双击“动作列表”标签页下任一动作可打开“动作编辑器”。

图 1 通过组合体编辑器打开

1.11 术语

在介绍动作编辑器时将涉及到一些基本概念。这些概念部分是Flexi所特有的,但大多是通用的,仅在不同引擎间存在细微差异。为了在进入后文之前对这些概念的理解达成共识,这里我们对这些概念涉及的术语做进一步的阐释,明确约定它们在Flexi骨骼动画系统中的含义。

1.11.1 动画剪辑

动画剪辑是动画系统中的基础建构资产,通常用于表现一个单独的运动或动作。基于它可以构建其他类型的复合动画资产。在Flexi中后缀名为.xskt的Skeleton资产扮演这个角色。

1.11.2 骨架

Flexi中骨架对象同时包含骨骼拓扑结构和空间信息。

1.11.3 目标骨架

指当前动画所施加的目标对象。

1.11.4 参考骨架

参考骨架是指制作这段动画剪辑所基于的骨架。

1.11.5 动作集

动作集是一组能够应用到同一个目标骨架的动画资产的集合。在这个集合中能够为每个资产进行单独的设置,从而调整它们在动画管线中的行为和最终结果。

第二章 动画资产及编辑工具

2.1 Skeleton

Skeleton资产(后缀名为xskt)是Flexi引擎骨骼动画系统中的基础骨骼动画资产类型,目前由DCC工具创建和导出,包含骨架层次结构和骨骼/辅助点动画数据,既可以作为动画资产,也可以充当骨架资产。

2.1.1 资产细项面板(Assets Details)

动作编辑器目前不提供对Skeleton资产数据的直接编辑功能。用户可通过资产细项面板(Assets Details)调整它在动作集中的相关配置。

J:Developmentlexilexi_animation_editor_docspictures资产及工具skletonasset_detail.jpg

图 4 Skeleton资产细项设置面板

设置项说明
SkeletonFile参考骨架文件路径(只读)
AnimationFile动画文件路径(只读)
RateScale播放率缩放系数(只读)
EnableRootMotion未支持
RootMotionRootLock未支持
ForceRootLock未支持
UseNormalizedRootMotionScale未支持
Translate老RootMotion相关设置,可选择“清除Z分量”和“清除XZ分量”。
Additive Anim Type未支持
Base Pose Type未支持
Base Pose Animation File未支持
Ref Frame Index未支持
Sync Group同步组
Blend In Time混入时间
Blend Out Time混出时间
Blend Timing Mode混和时间模式: Absolute 使用绝对时间。混入混出时间不受播放率影响; Relative 使用相对时间,混入混出时间受播放率影响,与动画持续时间成比例变化。
Start Trigger开始播放触发事件
End Trigger结束播放触发事件
Break Trigger打断播放触发事件
Loop Trigger循环播放触发事件
Custom Key Value自定义键值对

2.1.2 动画编辑面板

J:Developmentlexilexi_animation_editor_docspictures资产及工具skletoneditor_tool.jpg

区域说明
1动画播放控制器 动画播放控制器用于控制预览动画的播放。 红色游标一方面可以标识当前动画的播放位置,另一方面提供用户拖拽操作手动控制播放位置。 在时间轴上滚动鼠标滚轮可缩放时间轴,放大的锚点位于鼠标光标处。在时间轴处于放大状态时,使用鼠标右键拖拽可对其平移。方便用户精确控制游标位置。 右侧工具栏依次为: 跳至首帧 上一帧 倒播 正播 跳至末帧 循环播放

2.2 AnimSequence

AnimSequence 是一种基Skeleton资产的复合动画资产。它通过动画编辑器创建,在Skeleton的基础上提供了重定向、Root Motion、通知、基于标签同步和曲线等的进阶功能。

AnimSequence 可以直接在管线中独立播放,也可以用于Montage、BlendSpace和AnimTree等复合资产。

通过菜单栏(File / Create)打开资产创建窗口,可以创建AnimSequence资产。

J:Developmentlexilexi_animation_editor_docspictures资产及工具commonasset_creation_window.jpg

图 5 动画资产创建窗口

2.2.1 资产细项设置

J:Developmentlexilexi_animation_editor_docspictures资产及工具anim_seqasset_detail1.jpg

图 6 AnimSequence资产细项设置

设置项说明
SkeletonFile参考骨架文件路径(只读)
AnimationFile动画文件路径
RateScale播放速率缩放系数
EnableRootMotion是否开启RootMotion
RootMotionRootLockRootMotion提取后,根骨骼的锁定方式。 RefPose 使用参考姿势 AnimFirstFrame 使用第一帧 Zero 使用规范化的Transform
ForceRootLock强制锁定Root关节,无论是否提取过RootMotion。
UseNormalizedRootMotionScale使用归一化的RootMotion缩放(避免非归一化的缩放对RootMotion结果的影响)
Translate老RootMotion相关设置。可选择“清除Z分量”和“清除XZ分量”
Additive Anim TypeNo Additive 是否为Additive 动画类型; Local Space 数据是在Local Space Mesh Space 数据是在Mesh Space
Base Pose TypeSkeleton Reference Pose 参考姿势(目标骨架) Selected Animation Scale 指定动画 Selected Animation Frame 指定动画帧
Base Pose Animation File指定作为Base Pose的动画文件(如果Base Pose类型为Additive)
Ref Frame Index指定帧(如果Base Pose类型为“Selected Animation Frame”)
Sync Group同步组
Blend In Time混入时间
Blend Out Time混出时间
Blend Timing ModeAbsolute模式使用绝对时间,混入混出时间不受播放率影响; Relative 模式使用相对时间,混入混出时间受播放率影响,与动画持续时间成比例变化。
Start Trigger开始播放触发事件
End Trigger结束播放触发事件
Break Trigger打断播放触发事件
Loop Trigger循环播放触发事件
Custom Key Value自定义键值对

2.2.2 动画编辑面板

J:Developmentlexilexi_animation_editor_docspictures资产及工具anim_seqeditor_no2.jpg

图 7 AnimSequence动画编辑面板

区域说明
1通知编辑区 用户可以创建多个轨道用于放置“通知”和“同步标签”。 图 8 动画附加数据轨道 “通知”和“同步标签”可以在轨道内及轨道间进行位置调整。 轨道右端的“+”“-”图标可用于增删轨道。如果当前轨道不为空或是唯一轨道的情况下无法删除。 在轨道上右键打开上下文菜单可新建“通知”和“同步标签”。 在轨道上右键打开上下文菜单中选择“ManageNotifies”可在“细项设置面板”打开通知管理面板。该界面提供修改通知名称和删除通知功能。 在轨道中的“通知”和“同步标签”图标上右键打开上下文菜单可打开相应的编辑窗口,提供“拷贝”、“删除”和“替换”操作。 通过拖拽“通知”和“同步标签”也可以调整“通知”和“同步标签”的位置。
2曲线编辑区 通过“+”按钮打开曲线创建窗口可以为资产添加曲线。 通过每个曲线面板左侧的文本框可以编辑曲线名 中间的复选框可以展开或收缩曲线编辑面板。 右端工具栏中的“-”可以删除曲线。 曲线的编辑可以在展开后的曲线编辑器中完成 图 9 动画曲线编辑器 关键帧编辑 可以通过双击空白区域增加关键帧。 可通过按住ctrl键对关键帧进行多选。 在选中若干关键帧后,在空白区域右键弹出菜单中选择删除关键帧。 可以选中单个关键帧后,在弹出的编辑框中调整“time”或“value”的数值。 视口调整 可以通过左上角的两个按钮根据曲线取值范围将视口调整至合适区间。 可通过滚动滚轮手动调整视口;同时按住ctrl键将仅水平缩放;同时按住shift键将仅垂直缩放。
3动画播放控制器(与Skeleton资产同)

2.3 Montage

Montage是一种基于Skeleton和(或)AnimSequence的复合动画资产。它可将引用自Skeleton或(和)AnimSequence的动画剪辑线性并入轨道,并允许用户切分和重组为若干自定义片段(section)。这些自定义片段可以在管线中独立播放,也可以作为外部动画源插入动作树指定插槽。

通过菜单栏打开资产创建窗口,可以创建AnimSequence资产。

2.3.1 资产细项设置

图 10 Montage资产细项设置面板

设置项说明
RateScale播放率缩放系数
Sync Group同步组
Sync Slot Index同步插槽索引
Blend In Time混入时间
Blend Out Time混出时间
Blend Timing Mode混和时间模式 Absolute模式使用绝对时间,混入混出时间不受播放率影响; Relative 模式使用相对时间,混入混出时间受播放率影响,与动画持续时间成比例变化。

2.3.2 动画编辑面板

J:Developmentlexilexi_animation_editor_docspictures资产及工具montageedit_tool_no.jpg

图 11 动画编辑面板

区域说明
1蒙太奇轨道编辑区 新创建的Montage资产包含一条空动画轨道。 新增分段。将动画列表中的Skeleton或AnimSequence资产拖入轨道中,可以为轨道新增动画。 可以将多段动画拖入同一轨道合并为一条动画剪辑。 指定插槽。在右侧列表中选择插槽。 创建蒙太奇片段(section) 每条轨道有一个名为Default的默认片段。如果创建新的片段,可以在轨道上放右键菜单中选择“新建蒙太奇片段”,在弹出窗口中输入新片段名,然后确认。 片段位置调整。可以在轨道中水平拖拽片段调整其位置。 (注:与时间轴的缩放操作类似,我们也可以在轨道上滚动鼠标滚轮缩放轨道,以便提高section摆放的精度) 新建轨道。在已有轨道右键菜单中选择“新建轨道” 选择预览轨道。可以通过勾选Preview复选框指定当前预览那条轨道(注:如果后指定的轨道插槽已被使用,则该轨道无法被预览,编辑器会显示警告图标。需重新为其指定插槽)。 第二条轨道在调整后便可勾选预览。
2片段编辑 这个区域,用户可以重新组织在蒙太奇中新建的片段之间的播放时序关系。 J:Developmentlexilexi_animation_editor_docspictures资产及工具montagesection_edit_no.jpg 1 工具栏。用于将所有section组织为按时序由前及后的顺序关系,或清除它们之间的关系。 2. 标有所有section名的一组按钮,用于指定在3中选中section的后继。 3.片段列表 默认为: 我们也可以重新组织这些片断,将其自定义为任何线性序列。例如: 点击工具栏的“清除” 我们将得到: 选中”Default”片段 在区域2中选择当前片段的后继,例如”section03”。列表将变为: 可以以同样的方法将”section02”设置为”section03”的后继。 如果同时也将”section03”设置为”section02”的后继,则列表将变为: (注:”section02”和”section03”的颜色变化表示它们形成了一个循环。) 类似的操作,我们可以将”section01”和”section04”组织成一个列表,并让section04自循环。 点击每个section区块后的”X”按钮将解除它与后继的关联。例如我们在点击”section01”后的”X”按钮,列表将成为: 预览 我们可以点击“预览所有片段”按钮,从头至尾顺序播放所有片段。 也可以点击每个列表前的“预览”按钮,分别预览每个列表。
3通知编辑区(与AnimSequence同)
4曲线编辑区(与AnimSequence同)
5动画播放控制器(与Skeleton资产同)

2.4 BlendSpace

BlendSpace是一种基于Skeleton和(或)AnimSequence的复合资产。它能够接收多个输入控制量(目前至多两个)控制多个动画采样点间的混和。

它支持独立播放、用于动作树的播放节点和输入动作树插槽节点。

通过菜单栏打开资产创建窗口,可以创建BlendSpace资产。

2.4.1 资产细项设置面板

J:Developmentlexilexi_animation_editor_docspictures资产及工具sassets_details.jpg

设置项说明
HorizontalAxisName水平轴名
MinimumAxisValue水平轴最小值
MaxmumAxisValue水平轴最大值
Number of Grid Divisions水平轴网格分割数
Interpoloation Time水平轴插值时间
Interpolation Type水平轴插值类型
VerticalAxis 垂直轴Name垂直轴名
MinimumAxisValue垂直轴最小值
MaxmumAxisValue垂直轴最大值
Number of Grid Divisions垂直轴网格分割数
Interpoloation Time垂直轴插值时间
Interpolation Type垂直轴插值类型
Preview Base Pose预览基础姿势Preview Base Pose
设置项说明
BlendSamples采样动画列表,列表成员随采样的增删动态调整 每个成员提供:横轴坐标,纵轴坐标、关联动画和播放率
Sync Group同步组
Blend In Time混入时间
Blend Out Time混出时间
Blend Timing Mode混和时间模式: Absolute模式使用绝对时间,混入混出时间不受播放率影响; Relative 模式使用相对时间,混入混出时间受播放率影响,与动画持续时间成比例变化。
Start Trigger开始播放触发事件
End Trigger结束播放触发事件
Break Trigger打断播放触发事件
Loop Trigger循环播放触发事件
TargetWeightInterpolationSpeedPerSec向目标插值的速度
Custom Key Value自定义键值对

2.4.2 资产编辑面板

J:Developmentlexilexi_animation_editor_docspictures资产及工具sedit_tool_no.jpg

图 12 BlendSpace资产编辑面板

区域说明
1BlendSpace采样网格编辑区 这里将生成一个二维网格,网格的分区数由Asset Details面板中的设置项“Number of Grid Divisions”决定。每个网格线交点均可设置一个采样点。 我们可以通过从动画列表中拖拽Skeleton或AnimSequence资产至特定交点的方式添加采样点。 可以通过点击该图标开启或关闭采样点关联动画名称。 可以通过点击该图标开启或关闭网格剖分三角形的显示。 我们还可以通过拖拽采样点的操作移动采样点的位置。 也可以鼠标右击某个采样点后打开“采样点编辑窗口”对采样点的设置进行调整(注:这里的设置与“Asset Details”中“BlendSamples”中完全一致)。 J:Developmentlexilexi_animation_editor_docspictures资产及工具sedit_tool_sample_editing.jpg 如果需要删除某个采样点,我们可以先选中然后点击键盘的“Delete”键将其删除。 例如删除位于中心的采样点后: 我们可以通过拖拽面板中绿色方块模拟输入控制量的变化,从而通过预览窗口观察混和结果是否符合预期。另外在拖拽的过程中编辑器会弹出一个包含当前混和状态信息的提示窗口。通过这个信息能够帮助我们更好的分析混和结果的成因。 J:Developmentlexilexi_animation_editor_docspictures资产及工具sedit_tool_sample_editing01.jpg
2动画播放控制器(与Skeleton资产同)

2.5 BlendSpace1D

BlendSpace1D是BlendSpace的一维特化。它的创建、编辑和使用方式均与BlendSpace一致,这里不做赘述。

2.6 AimOffsetBlendSpace

AimOffsetBlendSpace是一种特殊的BlendSpace资产,专用于处理武器瞄准或角色望向某处之类的需求。它仅混和模型空间Additive类型的姿势,并将结果叠加在输入的基础姿势上。

它支持用于动作树的播放节点和输入动作树插槽节点。

通过菜单栏打开资产创建窗口,可以创建AimOffset资产。

AimOffset资产与BlendSpace资产编辑界面完全一致,这里不做赘述。

2.7 AimOffsetBlendSpace1D

AimOffsetBlendSpace1D是AimOffsetBlendSpace的一维特化。它的创建、编辑和使用方式均与AimOffsetBlendSpace一致,这里不做赘述。

2.8 AnimTree

AnimTree是一种能够组合使用上述各种动画资产的复合资产。可以将其视为一个层次状态机。它的每个状态由若干个不同类型的节点链接而成,例如播放节点、混和节点和一个最终姿势输出节点。姿势数据始于播放或插槽节点,流经各类混和节点,最终由输出节点流出进入另一层状态或作为最终输出结果。

2.8.1 动作树编辑器

J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_editor_no.jpg

图 13 动作树编辑器

区域说明
1菜单栏
2工具栏
3预览窗口
4动画图编辑窗口。该窗口提供动画树的创建、编辑和调试功能。
5属性窗口。与当前选中动画图节点对象相关的属性预览、编辑窗口。
6动画浏览器。显示动作列表,可以从中拖拽动画资产至动画图创建相应的播放节点。 动画参数管理窗口。用于动作树参数管理和实时调试。
7插槽管理窗口。可以在这里增删插槽组,增删插槽,修改插槽名。

2.8.2 动作树播放节点

节点说明
Sequence播放节点Anim Tree中的Sequence播放节点可以对Skeleton或AnimSequence资产进行采样并输出特定时间点上的姿势。 节点使用 我们可以在动作树的某个状态图上右键打开节点选择面板,并展开“动画”分类,浏览所有有效的Sequence播放节点。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_flag.jpg 选中节点并放置。 将输出引脚连接至目标节点的输入引脚,例如: 如需预览,点击工具栏中的Apply按钮。播放节点将被驱动,预览窗口可以观察回放结果。 属性编辑
混和空间播放器节点Anim Tree中的混和空间播放器节点可以使用BlendSpace 资产输出特定时间点上的姿势。 节点使用 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu1.jpg 放置过程类似Sequence播放节点。 属性编辑 X回调:通过指定的回调函数获取水平方向参数控制量。 X是否使用参数:是否从参数中获取水平方向参数控制量。 X参数:指定从哪个参数中获取水平方向参数控制量。 Y回调:通过指定的回调函数获取垂直方向参数控制量。 Y是否使用参数:是否从参数中获取垂直方向参数控制量。 Y参数:指定从哪个参数中获取垂直方向参数控制量。
混和空间1D播放器节点与混和空间播放器节点同
目标偏移播放器节点Anim Tree中的目标偏移播放器节点可以对AimOffsetBlendSpace 资产进行采样并输出特定时间点上的姿势。 节点使用 放置流程与混和空间播放器节点相同。但需要为“Base Pose”引脚指定输入。 属性编辑 Additive Alpha:叠加混和度 sample_x:在混合空间中采样的X坐标 sample_y:在混合空间中采样的Y坐标
目标偏移1D播放器节点与目标偏移播放器节点同

2.8.3 混和节点

节点说明
混和节点该节点根据给定权重值混和输入的两个姿势。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“混合”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_blending_blend.jpg 便能将其加入图中: 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 混和权重 略 混和权重偏移 略 混和权重缩放 略 激活时重置 重新激活时重置子节点
按布尔值混和姿势节点该节点根据布尔型参数控制输出在两个输入间切换。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“按布尔值混和姿势”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_blending_boolblend.jpg 便能将其加入图中: 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 假混和时间 略 真混和时间 略 回调字符串 用于指定回调函数 是否使用条件 是否使用条件。关于条件的使用可参考关于“动作树参数使用”部分。
混和多引脚该节点根据给定权重值混和输入的多个姿势。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“混和多引脚”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_multiblending.jpg 便能将其加入图中: 点击节点上“+增加引脚”便可为其添加新的引脚。 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 是否是叠加型节点 略 是否标准化Alpha 略 混和权重偏移 略 混和权重缩放 略 期望权重列表 列表各项对应各引脚期望分配的权重。如果“是否标准化Alpha”被勾选,则使用标准化后的权重值。
按整形混和姿势节点该节点根据整形参数控制输出在多个输入中切换。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“按整形混和姿势”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_int_blending.jpg 便能将其加入图中: 点击节点上“+增加引脚”便可为其添加新的引脚。 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 混和时间列表 略 回调字符串 用于指定回调函数 是否使用条件 是否使用条件。关于条件的使用可参考中“动作树参数使用”部分。
基于每个骨骼分层骨骼混合节点该节点能够在基础姿势上使用逐骨骼的掩码叠加多层姿势。常用于实现角色不同部位受不同动画驱动这类需求。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“基于每个骨骼分层骨骼混合”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_layeringblending.jpg 便能将其加入图中: 点击节点上“+增加引脚”便可为其添加新的引脚。 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 权重混和列表 设置每层的权重 Mesh空间旋转混合 是否在Mesh空间混和旋转 层设置列表:逐层设置骨骼权重掩码。每层可以配置多个分支,每个分支可以指定一根骨骼作为分支的根,一个深度值作为这个分支的过渡深度。
应用叠加型混和节点该节点能够在基础姿势上叠加additive动画的采样数据。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“应用叠加型混和”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_blendadditiveblending.jpg 便能将其加入图中: 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 混合权重 略 混合权重偏移 混合权重缩放 LOD阈值 该节点允许允许的最大LOD。
应用Mesh空间叠加型混和节点该节点能够在基础姿势上叠加Mesh空间additive动画的采样数据。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“应用Mesh空间叠加型混和”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_blendmeshadditiveblending.jpg 便能将其加入图中: 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 混合权重 略 混合权重偏移 混合权重缩放 LOD阈值 该节点允许允许的最大LOD。
创建动态的叠加型姿势节点该节点能够动态创建additive动画的数据。 节点使用 在动画图上右键打开上下文菜单,展开“Blends”分类并从中选取“创建动态的叠加型姿势”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_makedynamicadditive.jpg 便能将其加入图中: 然后可以为节点配置合适的输入/输出。例如: 属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: Mesh空间叠加 是否在Mesh空间计算additive动画数据。

2.8.4 姿势缓存相关节点

节点说明
新保存的缓存姿势节点该节点能够保存动作树任意节点的输出姿势数据,以供其他节点使用。 节点使用 在动画图上右键打开上下文菜单,展开“Cached Poses”分类并从中选取“新保存的缓存姿势…”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atcontextmenu_caches_save.jpg 便能将其加入图中: 可以点击标题区域进入编辑状态修改名称。 然后可以为节点配置合适的输入。例如: 这样混合空间的输出姿势就能够被缓存起来,供其它节点使用。 属性设置 选中节点后,我们可以在属性窗口看到节点的属性: 缓存名 编辑缓存名
使用缓存姿势节点该节点能够输出已缓存的姿势数据,以供其他节点使用。 节点使用 在动画图上右键打开上下文菜单,展开“Cached Poses”分类并从中选取“新保存的缓存姿势…”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atcontextmenu_using.jpg 便能将其加入图中: 然后可以将缓存姿势使用节点连至任何需要的节点。例如: 属性设置(暂无)。

2.8.5插槽节点

节点说明
插槽节点该节点用于将动作树外部播放的动画姿势插入动作树供其他节点使用。 节点使用 在动画图上右键打开上下文菜单,展开“Montage”分类并从中选取插槽。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atcontextmenu_slots.jpg 便能将其加入图中: Slot节点常与骨骼分层混合节点配合实现角色上下半身动作合成,如: 在动作树外部没有输入时插槽节点“UpperBody”引脚的输入即为输出。角色输出Locomotion动画。 当外部有输入时节点的输出将切换为外部输入。角色的上半身被输入动画替换。 属性设置 选中节点后,我们可以在属性窗口看到节点的属性: 组 插槽组 插槽 插槽名

2.8.6其他节点

节点说明
动作快照节点该节点能够使用之前缓存的姿势快照。 节点使用 在动画图上右键打开上下文菜单,展开“其他”分类并从中选取“动作快照”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atcontextmenu_misc_snapshot.jpg 便能将其加入图中: 动作快照可用于保留过去某个时间点的姿势在将来使用。例如我们可以将其用于实现角色以布娃娃的方式倒地后的起身效果。 我们在角色需要站起时,采集一帧姿势快照。然后通过“按布尔值混合姿势节点”从快照的姿势切换至播放中的起身动作。 属性设置 选中节点后,我们可以在属性窗口看到节点的属性: 快照名 欲使用的快照名称 模式 NamedSnapshot 根据名字选择快照 (当前仅支持此模式)
注释节点该节点能够为动作图提供注释。 它能将其覆盖区域在视觉上显示的标注出来,并通过标题栏提供文字说明和统一的拖拽操作。 节点使用 在动画图上右键打开上下文菜单,展开“其他”分类并从中选取“添加注释”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atcreate_node_menu_add_comment_node.jpg 便能将其加入图中: 我们可以通过拖拽调整其大小,使其囊括需要注释的节点区域。 并通过设置标题栏中的文本,完成对这块区域的注释。 属性设置 选中节点后,我们可以在属性窗口看到节点的属性: 注释: 编辑注释文本

2.8.7动画后处理节点

节点说明
CCDIK该节点对输入姿势应用CCDIK算法解算。 节点使用 在动画图上右键打开上下文菜单,展开“其他”分类并从中选取“添加注释”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atccd_ik_node_menu.jpg 便能将其加入图中: 可以将需要CCDIK解算的姿势连至其输入引脚。 属性设置 目标误差值:末端与目标间的最大容许值 最大迭代次数:解算算法最大迭代次数 标记骨骼:末端骨骼 根骨骼:略 回调脚本:控制逻辑实现,以及目标点位置和融合度的动态设值工作 目标点名称:通过目标点名称可获取外部逻辑设置的目标点位置 骨骼旋转限制数组:给定一串由逗号隔开的数值用于限制骨骼旋转。如果数组元素少于骨骼数,则未匹配的骨骼不做限制;如果数组元素多于骨骼数,则多余的数值被丢弃。
FABRIK该节点对输入姿势应用FABRIK算法解算。 节点使用 在动画图上右键打开上下文菜单,展开“其他”分类并从中选取“添加注释”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atabr_ik_node_menu.jpg 便能将其加入图中: 可以将需要FABRIK解算的姿势连至其输入引脚。 属性设置 目标误差值:末端与目标间的最大容许值 最大迭代次数:解算算法最大迭代次数 标记骨骼:末端骨骼 根骨骼:略 回调脚本:控制逻辑实现,以及目标点位置和融合度的动态设值工作 目标点名称:通过目标点名称可获取外部逻辑设置的目标点位置
TwoBoneIK该节点对输入姿势应用TwoBoneIK算法解算。 节点使用 在动画图上右键打开上下文菜单,展开“其他”分类并从中选取“添加注释”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具at	wobone_ik_node_menu.jpg 便能将其加入图中: 可以将需要TwoBoneIK解算的姿势连至其输入引脚。 属性设置 标记骨骼:末端骨骼 回调脚本:控制逻辑实现,以及目标点位置和融合度的动态设值工作 目标点名称:通过目标点名称可获取外部逻辑设置的目标点位置 链接点名称:通过链接点名称可获取外部逻辑设置的链接点位置 混合名称:用于取混合值 目标旋转名称:用于取目标旋转值 旋转是否根据法线: 旋转是否根据父骨骼: 允许拉伸:略 拉伸起始比率:用于确定何时开始拉伸 拉伸最大比率:限制拉伸最大比率

2.8.8状态机节点

节点说明
State Machine 节点State Machine 节点包含若干状态和状态间的迁移。每个状态包含一个动画图,每个迁移包含一组迁移规则。在外部逻辑的驱动下,状态机将根据迁移规则在不同状态间切换。状态机将激活状态的输出动画融合并作为自身的输出姿势,然后传递给自身所处的动画图做进一步处理。 节点使用 创建状态机节点。在动画图上右键打开上下文菜单,展开“State Machines”分类并从中选取“添加新状态机”。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atseq_player_context_menu_statemachine_outline.jpg 便能将其加入图中: 点击节点的标题区可进入编辑模式,修改状态机名。 双击节点可进入状态机节点的状态图。 在状态图中我们可以进行创建状态和组织结构。 创建状态节点 在状态图中右键展开上下文菜单,点击选项“添加State” J:Developmentlexilexi_animation_editor_docspictures资产及工具atsm_contextmenu_addstate.jpg 可以创建一个状态节点。 在创建的状态上点击标题区可以对状态名进行编辑。 状态的属性设置 状态名 状态名编辑 进入状态事件 进入状态事件回调函数名 离开状态事件 离开状态事件回调函数名 完全混入状态事件 完全混入状态事件回调函数名 每次进入状态都重置 是否每次进入状态都重置关联动画图的子节点 创建迁移节点 我们可以从一个状态的外围区域开始拖拽鼠标,这样可以拉出一根代表迁移的箭头。 然后我们可以在合适的位置释放鼠标,这时将弹出一个创建节点选择菜单供我们挑选欲创建的目标结点。 这里我们选择创建一个状态节点。 这样我们就一次性创建了一条迁移和一个目标状态。 状态机构建常规操作介绍。实际操作中我们可以根据角色的动作需求在状态图中进行一个总体的设计。例如: 然后逐个状态,逐个迁移进行实现。 例如我们可以双击“ground”状态节点打开关联的动画图。 在动画图中我们可以添加各种前文中提到动作树节点(包括状态机节点)以实现我们预期的地面动作需求,例如这里我们使用一个BlendSpace播放器节点: 完成这个状态的设置后,我们可以借助导航栏跳出这一层级的编缉重新回到之前的状态图。 接着我们可以对其他状态和迁移条件进行编辑,例如可以选中位于状态“ground”和“begin in air”间的迁移,编辑它的属性窗口完成迁移规则的配置。 这里我们有几个选项: 前一个状态的动作结束自动切换; 配置回调函数,根据返回值决定是否迁移; 使用流程图; 使用条件。关于条件的使用可参考“动作树参数使用”部分。 管道节点 管道可以视为一种特殊的状态,与状态不同的是它不包含动画图, 除了通过迁移控制状态跳转外,状态机还提供了一种被称为“管道”的节点用于一对多,多对一或多对多的状态切换需求。管道类似于一个移除了动画图的状态。它内部具有一个“是否允许进入迁移”的规则。通过对这条规则的配置,当状态试图通过管道迁移时可以决定是否能够通过其做进一步的迁移。 创建管道节点 我们在状态图中右键展开上下文菜单,点击选项“添加管道” J:Developmentlexilexi_animation_editor_docspictures资产及工具atsm_contextmenu_addconduit.jpg 可以创建一个管道节点。 在创建的状态上点击标题区可以对状态名进行编辑。 管道的属性配置 管道名 编辑管道名 是否可进入 是否可进入它的退出迁移 一个管道节点的用例 如下图所示,图中名为“Killed”节点即为管道节点。当角色处于“Walk”或“Run”的运动状态时,如果遭受攻击健康值低于死亡临界值之下,逻辑控制状态向Killed管道节点迁移,并由具体的迁移规则决定最终切换至哪个状态。 状态机属性设置 选中节点后,我们可以在属性窗口看到节点的各种属性: 状态机名 可编辑状态机名 单帧最大状态切换数量 一帧中最多运行切换状态的数量 再次进入是否重置 再次进入是否需要重置。如果不重置则从离开时的状态开始更新。 初始化时是否跳过第一次过渡 如果是,则将直接满权重进入满足条件的状态。否则,将从入口状态过渡至满足条件的状态。

2.8.9节点的复制/粘贴

为了便于用户编辑,编辑器允许用户对当前选择区域内的所有节点和它们的连接关系执行复制和粘贴操作。

例如,我们需要在当前动画图中构建一个已存在的节点结构,这时我们可以选择从已有的图中将此结构复制过来(此操作支持在不同编辑器之间进行)。操作如下:

首先我们在动作图中选择目标区域。

然后使用快捷键“ctrl + C”或在任一选择的节点上打开右键菜单,选择“复制”

最后在目标动画图中使用快捷键“ctrl + V”或在空白处打开右键菜单,选择“粘贴节点”即可。

2.8.10 动作树参数

每个动作树实例可以持有一组参数,这些参数可以被外部修改,并在内部节点中读取。

J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_param.jpg

图 14 动画参数管理面板

操作说明
参数的创建J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_param_add_param.jpg J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_param_add_param1.jpg
参数的编辑在新建的参数条目中能修改“参数名”、“当前参数值”(动作树的模板值)和“当前参数实例值”。 “当前参数值”是指动作树的模板值。 “当前参数实例值”指的是当前动作树实例中的参数值,修改这个值能实时影响动作树。
参数的使用例如在“按整形混合姿势”节点中,我们可以通过参数指定节点的控制值,从而由外部控制动作书内部的动画数据处理流程。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_param_add_int_param.jpg 又如在“按布尔值混合姿势”节点中,我们可以将各类参数用于条件表达式,并将最终结果用于控制节点混合。 J:Developmentlexilexi_animation_editor_docspictures资产及工具atanim_tree_param_add_nolimit_param.jpg

2.9 骨架树面板(Skeleton Editor)

通过骨架树面板,我们可以查看目标骨架的层次结构,查看每根骨骼在Local空间、模型空间和世界空间的位移、旋转和缩放,更改附加变换和设置运行时重定向模式,并且能够创建运行时重定向模板以及复用运行时重定向模板。

2.9.1 查看目标骨架层次结构

图 15 骨架树面板

打开动画编辑器时,动作树面板默认是开启的。如果出于关闭状态我们可以同菜单栏(窗口 / SkeletonEditor)打开。

区域说明
1清空当前重定向模式 当用户设置骨骼结点重定向模式后,按钮亮起,点击按钮完成清空重定向模式。
2选项按钮
3过滤器文本框
4骨架层次结构面板 目标骨架层次结构在面板中以树状图展示。我们可以通过点击每根骨骼前的“+”按钮展开骨骼,查看它的子骨骼,也可以点击已展开骨骼前的“-”按钮收拢它的子骨骼。 在对应骨架结点对应行点击右键,进行递归或非递归形式的重定向模式设置。
5运行时重定向设置。 重定向模式: Animation 骨骼位移取自动画 Skeleton 骨骼位移取自目标骨架 AnimationScaled 根据骨骼在目标骨架和动画参考骨架中的长度比值修正采样自动画位移。 SkeletonRotation 用于体型 OrientAndScale 根据骨骼在目标骨架和动画参考骨架的朝向差异和长度比值修正采样自动画位移。 AnimRelative 根据骨骼在目标骨架和动画参考骨架间的位移、旋转和缩放差异修正采样自动画的变换。
6创建/更新运行时重定向模板 为当前骨架资源模式创建模板,以便在其他资源中复用。
7删除运行时重定向模板
8使用已保存的运行时重定向模板 存放重定向模板以骨架资源路径命名。

选中一根特定的骨骼,可以在细项面板(Details)查看骨骼细节,如图:

图 16 骨骼属性面板

区域说明
1附加变化设置 设置的位移、旋转和缩放将叠加在最终结果上。
2显示骨骼名称
3当前骨骼变换。 显示骨骼当前在Local空间、模型空间和世界空间的位移、旋转和缩放。

2.10 曲线检视面板

曲线按键式面板默认处于关闭状态。我们可以通过菜单栏(窗口/AnimCurveViewer开启)。

图 17 曲线值检视面板

该面板实时显示当前目标骨架包含的曲线当前值。如图:

J:Developmentlexilexi_animation_editor_docspictures资产及工具atcurve_viewer_marker.jpg

图 18 曲线求值预览