Skip to main content

动画插槽

最近更新时间:2023-09-21

概述

插槽(Slot)可以在动画树(Animation Tree)中作为一个节点使用,播放动态的动作(如攻击动作),将动画树外部播放的动画姿势插入动画树以供其他节点使用。插槽通常和蒙太奇一起使用。

创建插槽

动画树编辑器(Anim Tree Editor)中的插槽管理器(Slot Manager)中右击插槽名称(Slot Name),选择添加默认组和插槽(Add Default Group And Slot)来添加一个插槽组和插槽。

image-20230828161759493

添加新的插槽,需右击默认组(DefaultGroup)或者默认插槽(DefaultSlot),然后选择添加插槽(Add Slot),在弹出的窗口中输入插槽名称后按Enter键完成添加。

image-20230828163501822

添加完成:

image-20230828163541559

右击默认组(DefaultGroup)打开快捷菜单。

image-20230828163636662

名称说明
添加插槽(Add Slot)添加新的插槽。
添加分组(Add Group)添加新的插槽组。
删除分组(Delete Group)删除选中的插槽组。

右击插槽打开快捷菜单。

image-20221122162814108

名称说明
删除插槽(Delete Slot)删除选中的插槽。
重命名插槽(Rename Slot)对选中的插槽进行重命名。
添加插槽(Add Slot)添加新的插槽。
添加分组(Add Group)添加新的插槽组。
删除分组(Delete Group)删除选中的插槽组。

修改插槽后,点击插槽管理器(Slot Manager)中的保存(Save)按钮。

image-20230215144054722

节点使用

动画树(Anim Tree)空白处右键打开节点选择面板,展开蒙太奇(Montage)分类并从中选取插槽。

image-20220909114823988

添加完成:

插槽(Slot)节点常与逐骨骼分层混合(Layered Blend Per Bone)节点配合,以实现角色上下半身动作合成,例如:

image-20230828164803723

动画树(Animation Tree)外部没有输入时,插槽(Slot)节点UpperBody引脚的输入即为输出,角色输出Locomotion动画。

当外部有输入时,节点的输出将切换为外部输入,角色的上半身被输入动画替换。

属性

选中插槽(Slot)节点后,可以在属性窗口(Property Window)中看到该节点的各项属性。

属性说明
组(Group)插槽组。
插槽(Slot)选择插槽。
过渡模式(Transition Mode)选择播放插槽节点时的过渡模式。
  • 交叉淡入淡出(Cross Fade):原动画权重逐渐减少,新动画权重逐渐增加。
  • 惯性过渡(Inertia Transition):在过渡开始时保留原动画的惯性,过渡中原动画惯性逐渐消失。

插槽组

所创建的插槽都会归属于插槽组中,在创建第一个插槽的时候,该插槽会自动创建于一个默认分组(DefaultGroup)下。要创建一个新的插槽组,右击插槽管理器(Slot Manager)中的插槽组或插槽选择添加分组(Add Group),输入名称后按Enter键完成创建。

image-20230914133113574

创建完成:

image-20230914133141712

插槽组可用于插槽的分类,同组的插槽也会相互影响,当播放一个组内动画的时候,可通过脚本或者C++项目调用来选择是否停下组内其他动画。

向动画树插槽插入动画

通过BlendAction接口将default_Attack01攻击动画插入到动画树中的UpperBody插槽中。

actor:BlendAction("default_Attack01", false, false, true, 1.0, true, "UpperBody", true)

示例

有关插槽(Slot)节点的使用可参考逐骨骼分层混合节点中的示例。