又一次从零开始做了一遍第三人称
Delta Second
下面要乘以delta second 的原因:机器的性能不同,每秒传送帧数就不同,性能越好,帧数越多,需要乘以一个小的数(每帧需要花费的时间)来平衡(1/帧数)。可以让不同的机器运动的数值是一样的。
动画系统(动画蓝图编辑器)
动画系统有两种蓝图
1.事件图表:计算动画所需的数据
2.动画图表:根据计算好的数据,播放相应的动画(动画转换规则)
新建一个动画蓝图
在动画蓝图里,获取角色(用于后续的调用)
下面的get是由刚得来的As BP My Third Person Character,右键转换为有效的get得来
UE4会做动画融合:两种动画的差值过渡
*修改骨骼节点(Transform/Modify Bone)
虚幻引擎中的动画蓝图Transform Bone | 虚幻引擎5.3文档 (unrealengine.com)
*同步组(Sync Groups)
虚幻引擎中的动画同步组 | 虚幻引擎5.3文档 (unrealengine.com)
制作混合动画
跑步动画
新建一个混合动画,选好骨骼,重命名为BS_IdleRun
一些概念
*状态机 State Machines
(虚幻引擎中的状态机 | 虚幻引擎5.3文档 (unrealengine.com))
*转换规则 Transition Rules
*混合配置权重(Blend Profile)
虚幻引擎中的混合遮罩和混合描述 | 虚幻引擎5.3文档 (unrealengine.com)
*惯性化 Inertialization
虚幻引擎中的动画蓝图混合节点 | 虚幻引擎5.3文档 (unrealengine.com)
*导管conduit
↑上面这个MovementStateMachine是新建的状态,并且改了名字 ↑
给我们的角色换上自己做的动画蓝图
因为在跳跃的时候,角色也能获得速度,导致角色在跳跃时候,脚也在走路,为了避免这个状况,我们拆分开速度的向量,忽略z轴的速度
跳跃动画
添加两个新状态(起跳状态和空中状态)
“动画事件(完成率)还剩0.1时候”这个逻辑可以通过勾选 下面这个(基于状态中序列播放器的自动规则)直接完成
返回落下时候
关闭动画循环,解决动画有一小段抽搐的bug
做状态机需要注意
1.资源的匹配(是否能找到相应资源)
2.两个动画前后状态的衔接
案例:Shoot Game射击游戏
参考第一人称:
按之前的方法将他的动作全部设置好
新建一个actor类,重命名为BP_BaseGun,放入资产
对来福枪资产创建并制定新的物理资产,改为盒体,有了Rifle_Physics
将actor里面的枪配装设置为physics actor
碰到枪的时候可以捡起来