UE4-(蓝图)第十七课使用动画蓝图及混合空间(实现控制人物站立、走、跑效果)

213 篇文章 578 订阅

动画蓝图:控制所有动画,在什么时候播放,播放什么类型的动画。

混合空间:根据不同的数值,切换不同的动画效果,从一个动画过渡到另一个动画,比如从 站立->走->跑。

一、在保存角色蓝图的文件夹下,右键创建动画蓝图,选择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(正好是走路正常状态)

使用 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.蓝图连线

5.完成后进行编译,运行查看运行效果

无按键站立状态,按下移动键,走路状态,按下左键Shift加移动键,跑路状态,松开Shift键,回到走路状态。

  • 24
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值