赞
踩
动画蓝图:控制所有动画,在什么时候播放,播放什么类型的动画。
混合空间:根据不同的数值,切换不同的动画效果,从一个动画过渡到另一个动画,比如从 站立->走->跑。
一、在保存角色蓝图的文件夹下,右键创建动画蓝图,选择Animation中的动画蓝图,出现的界面时选择父类及目标骨架,父类选择AnimInstance类型:该类型是所有动画蓝图父类,用来初始化操作。目标骨架:能够拥有对应的骨骼动画,要选对。选择完成后点击确定,将动画蓝图命名为Test_Anim
创建混合空间,同样在Animation下的BlendSpace ID,选择与动画蓝图一样的骨骼,创建后命名为Test_BlendSpace
二、设置混合空间
1.双击打开Test_BlendSpace,系统默认窗口布局中,右下角有资源浏览器,选择站立、走、跑动画,拖入到中间区域下方位置,按照顺序拖入,放在不同的分区内,可以通过选中绿色的点左右移动观看动画效果,也可以按住Shift键,左右滑动观看效果。
2.AxisSetting面板中设置水平坐标属性,在左侧资源面板
Name是指整个动画轴的名字,用来传入值获取到不同值下的动画状态,一般设置名称为Speed
Minimum Axis Value :设置轴的最小值
Maximum Axis Value :设置轴的最大值(设置400)
上面两个值分别体现在中间区域最下方数值,传入值不同,取出动画效果不同。
Number of Grid Divisions:区域分割,整体区域分为几个部分,可以用来放置多个动画设置4。
Interpolation Time:插值时间,值越大过渡时间越久。为0,两个动画间不存在过渡,从上一个动画直接更改到下一个动画,无动画过渡可能会使动作看起来生硬,设置为0.2。
Interpolation Type:插值类型(平均,线性),使用默认即可。
设置完成后点击工具栏的保存。
三、在动画蓝图中创建状态机(后面实现人物跳跃也要使用)
动画图表:功能:只会写动画,添加动画到另一动画的判断。
1.双击打开创建的动画蓝图Test_Anim,进入动画蓝图编辑器动画图表界面,在蓝图右键创建 Add New State (创建状态机)节点重命名为State_Machine,将两个白色小人的图标连线
2.双击State_Machine节点,进入状态机内,该蓝图内初始值有个Entry节点,状态机从此处开始执行,在此界面可以制作多种状态,通过不同的条件驱动进入不同的状态,蓝图空白处右键创建增加状态节点,命名为Idle_Walk_Run
(该处的蓝图中,是用来创建状态机内的各种状态的节点)
3.为状态添加动画
增加状态后,双击Idle_Walk_Run节点进入编辑状态界面,进行动画的添加。此状态为站立到走路到跑的状态,所以要加入我们制作的动画空间。在右侧选择资源浏览器,下方是所有动画,也包括我们制作的动画空间,将Test_BlendSpace拖拽到蓝图中
4.在混合空间节点中要输入Speed值,该值是需要通过人物角色自身传入的速度来获取动画,所以将该值提升为变量命名为Speed,进行蓝图连接
四、编写动画蓝图根据角色速度触发动作逻辑
事件图表:一般写获取角色控制,获取角色身上组件获得速度或某些状态
1.选择在最上方有事件图表,在该图表中写逻辑
(如果不小心关闭动画图表或者事件图表,在左侧我的蓝图,下面有图标列表,选择对应的图标双击,就能打开对应的界面。)
2.该蓝图中先创建 尝试获取该蓝图控制的角色节点 Try Get Pawm Owner节点,Return Value 会将获取的角色返回。该节点可能会获取到,也可能获取不到,如果获取不到,在执行后面的处理会报错,所以为了避免获取不到 使用 Is Valid 判断获取对象是否有效。
使用Blueprint Update Animation节点执行处理,该节点每帧都会执行。
3.获取到蓝图控制的角色后,要获取该角色身上的组件,用来获取角色当前的速度。
更改系统默认人物行走速度,在人物蓝图Test_Player中,选择CharacterMovement,细节面板中找Character Movement:Walking 属性,有一个Max Walk Speed 属性,该属性代表行走最大速度,该速度会影响我们动画取值(模型运动后,速度会瞬间到该临界值),因为我们上面混合空间中设置的数组是0-400, 一旦动画蓝图设置完成,此值不更改,人物会直接触发奔跑动作,(移动速度600要大于400,会直接获取到跑的动画),应该将Max Walk Speed设置为200(正好是走路正常状态),触发移动输入命令(wasd)时候即使用该默认speed。
使用 Get Velocity 节点获取角色当前的速率,但是获得的速率为向量类型,要将速率转换为速度 (float类型,也就是获取向量的长度)
使用Vector Length节点,获取到角色速度后,要设置Speed变量,来获取输出的动画,左侧我的蓝图变量下有Speed变量,设置该变量节点。
五、设置人物角色使用动画蓝图
1.设置好动画蓝图后,回到角色蓝图类Test_Player中,此时人物本身默认没有任何可使用的动画蓝图,所以要在Component面板选择Mesh,在细节面板中的Animation属性中的Anim Class 选择我们保存的动画蓝图Test_Anim.
2.设置完成后编译,查看走路效果
六、编写蓝图实现跑的动画调用
1.因为我们设置Player最大的移动速度为200,所以不管怎么移动我们获得的都是人物走动还有站立的动画,通过设置Player Max Walk Speed ,设置Speed,获取到跑的动画。
使用按下左边Shift按键,实现跑动效果,在Test_Player蓝图中,创建Left Shift节点
2.我们要获取自身的组件才可以设置最大行走速度,所以将Component中的CharacterMovement拖到蓝图中
3.创建 Set Max Walk Speed节点,因为按键有按下及抬起两个操作,所以我们的动画也要从走路切换到跑,从跑切换到走路,需要两个设置节点,并且两个节点中的Max Walk Speed 的值按下Shift键值传入400,抬起Shift 键,值恢复到200.
4.蓝图连线
4.蓝图连线——更改
这里通过使用timeline节点,实现走跑之间的过渡。动作变化不会那么生硬
时间轴节点设置:2个关键点。时长0.5。0点值150 ,0.5点值400
5.完成后进行编译,运行查看运行效果
无按键站立状态,按下移动键,走路状态,按下左键Shift加移动键,跑路状态,松开Shift键,回到走路状态。
6.添加跳跃效果(动画图表)
动作图表里面的逻辑可以参考默认小白人的动画蓝图逻辑。
注意:
1.落地时候动作由loop转到end。逻辑这里有加个not
2.jump的start 、loop、end 三个状态内的动画设置。
速率可以看情况调整,循环效果建议关闭,这里这个loop因为源动画空中脚步姿态不好,这里通过骨骼分层混合节点将它和小白人的跳跃loop动画做了融合。融合骨骼节点是腰部的Spine关节(根据实际骨架,填写对应关节名)。
(骨骼分层混合节点还有一个经常使用在的地方是调用蒙太奇和走跑动画进行融合。)
————————————————
版权声明:本文为CSDN博主「懒猫睡大觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lei_7103/article/details/94595523
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。