如何使用运动(Locomotion)混合空间将Actor在不同方向上及不同速度的运动混合起来。(例如,展示了一个混合了以不同速度向后、前、左和右走路/跑步动作的Actor)。
一、相关知识点:
混合空间是允许根据多个输入的值混合任意数量动画的资源。
混合空间(Blend Space) 是可以在 动画图(AnimGraph) 中采样的特殊资源, 允许根据两个输入的值混合动画。要根据一个输入在两个动画之间实现简单混合, 可以使用 动画蓝图 中提供的一个标准 混合节点 。混合空间提供的方法是根据多个值(目前仅限于两个) 在多个动画之间进行更复杂的混合。
混合空间的目的是避免创建单个硬编码节点 来根据特定属性或条件执行混合。通过允许动画师或程序员指定输入、动画 以及如何使用输入来混合动画,几乎可以使用通用 混合空间执行任一类型的混合。
二、实现步骤:
1、新建Actor,更名为BP_Locomotion.
2、添加骨骼网格体组件,并添加骨骼网格体
3、创建动画蓝图ABP_Locomotion,并把动画蓝图填到上图的动画类中
4、创建混合空间,更名为MyBlendSpace_locomotion.
5、双击打开混合空间,界面如下:
如果动画蓝图与混合空间具有相同的目标骨架,则该混合空间也可以在该动画蓝图的 动画图(Anim Graph) 中使用。
6、在 创建混合空间 并打开资源后,您将需要定义 轴设置(Axis Settings) (对于驱动混合的属性)以及指定要用作 样本姿势(Sample Poses) 的动画。 定义这两个元素后,可以通过更改 混合空间资源"细节(Details)" 面板中的属性来进一步调整混合空间。
7、定义了轴设置后,接下来需要向混合空间编辑器网格添加一些要采样的动画。
您可以在采样点上单击右键以展开一个滑出菜单,其中包含可对样本调节的选项。
8、混合采样集中可以显示你添加的动画信息。
在网格上放置一些样本姿势后,您可以按住 Shift 键并四处拖动绿色菱形以查看姿势之间的混合效果。
同时按住 Shift 键和 Ctrl 键,可以在预览时显示实际样本值。
9、由于篇幅限制,我们从滑块进度条获取的变量值,暂时通过直接设置数值来替代。actor这样设置。
默认值暂时为100.
实际上应为
10、双击打开ABP_Locomotion。
先把actor中变量传过来给动画蓝图的变量,动画内容示例1.2中已经用过
注意滑块得到的是0到1的浮点值,需要转化为-180到180的值,所以需要先减去0.5再乘以360.
这样BP_Locomotion中的speed和direction变量的值就传进了动画蓝图中。
11、把动画蓝图的动画图表打开
12、把资产浏览器中新建的混合空间拖进来。把变量拖进去,连接上。
编译保存,把BP_Locomotion拖入关卡,运行
因为默认值都是100,所以得到的应该是speed为最大,direction也为最大。即向后跑。这里修改为0.5试试效果:
ok!与示例一样。