修复角色攻击时死亡会在躺下之后站起来的BUG。
来到ToAttack函数中,把setComboAttack节点放前面,把JumpToNode节点放后面。然后在jumpToNode节点前面增加一个branch判断角色是否死亡。
以上描述的方法可以保证comboIndex可以正常更新(虽然可能不需要了),但是在攻击动画结束时的Notify不会把动画引导回状态机判断逻辑中。
修复角色攻击时死亡会在躺下之后站起来的BUG。
来到ToAttack函数中,把setComboAttack节点放前面,把JumpToNode节点放后面。然后在jumpToNode节点前面增加一个branch判断角色是否死亡。
以上描述的方法可以保证comboIndex可以正常更新(虽然可能不需要了),但是在攻击动画结束时的Notify不会把动画引导回状态机判断逻辑中。
蓝图通信
1、直接蓝图通信:
1)使用获取类的actor(get class actor)节点,使用该节点时,当场景有多个实例,会返回第一个蓝图类(需要先在关卡中实例化相关的蓝图类)
2)获取类的所有的actor,获取到指定类的所有actor,返回的是actor的集合
3)重叠时事件
4)第三方通信,通过其他蓝图类,访问到目标蓝图类
5)使用生成actor(spawn actor)节点
6)获取玩家角色,直接获取到角色
7) 类型转换为(cast to),object获取到的是当前控制的角色
2、蓝图接口:
3、事件分发器:
可以在蓝图类中预留变量,在生成或事件时进行传入,以达到优化的目的
传入可搭配接口使用!!!以达到双重优化的目的
进行传入可降低耦合性,传入建议使用基类存储
多使用接口!降低耦合性!
接口处理通用的逻辑效果明显!也能达到优化的目的
初始化要注意什么时候调用,有生成对象的话需要放在beginplay
摄像机管理器用于切换摄像机
可以在控制器中使用事件获得pawn来将玩家传递给摄像机管理类
一定要注意在控制器中指定摄像机管理类
蓝图更新摄像机需要在返回节点设置fov和勾选bool值
原理:
玩家控制器将受控制的类传给指定的CameraManger,CameraManger通过这个类生成摄像机并设置摄像机的变换
CameraManger本质上是个更好管理的相机类
获取的控制器只能是CameraManger拥有的,而不是玩家的控制器
CameraManger默认在原点旋转,想要定义旋转请到下一节课
蹲伏需要设置可蹲伏,蹲伏设置半高
跳跃和蹲伏使用内置方法即可
角色运动状态发生改变时,有对应的事件调用,去找找!
需要先调用父类的事件:
拥有事件开始/结束蹲伏
事件移动模式变化时
可用上述事件来动态更新状态,节省性能
状态切换条件建议直接使用bool值,设置bool值的逻辑放在tick中更新
时间轴使用的值需要以变量的形式输入
使用TimeLine改变摄像机的局部位置来控制摄像机的晃动
使用节点和CameraShake蓝图来配置摄像机晃动
缓存姿势可用于将动画资源进行缓存,方便调用和复用
缓存的姿势需要使用节点进行使用
姿势快照缓存单帧,一般在蓝图类中(非动画蓝图类)使用
需要获得动画实例来保存
制作状态机时需要从多方面考究
状态别名用于整合状态,类似小型状态机,但是要注意是否重复整合
状态别名内的状态需要指定规则
制作时可以先将基本状态机制作出来,再使用状态别名来进行整合
使用新的状态别名来指代没有直接连接到其他状态的节点
状态别名之间可以互相嵌套指代
甄别是否可以整合:
1、看看要被整合的部分是否有指向相同状态的箭头
使用状态别名以便进行维护
导管适用于一对多、多对一和多对多的状态转换
导管需是一个状态,需要有后置动画,否则不予切换
过度时,会优先执行优先顺序数字低的
过渡惯性化混合方式需要在动画图表添加惯性化节点
共享规则会影响所有共享的副本
TimeTemreaming获取的是剩余动画播放时长,因此前置动画不能是循环
同步组过度
混合空间可以在动画状态机中播放
状态机中的状态相当于动画图表
状态机中无法添加蒙太奇动画
状态之间通过bool值切换
蒙太奇动画需要添加插槽
动画蒙太奇会在对应组的插槽进行播放
蒙太奇播放完成后不会影响其他动画,播放完成后自动回到默认状态
蒙太奇不影响原动画片段
根锁定将动画与 网格体绑定
跟运动启用动画的位移
可以将动画通知的功能单独实现在动画通知类中,以实现代码的复用
同步组都设置为跟随者,固定设置第一个为领导者
领导者顺序相反(最后一个)
需要添加同步组通知(同步标记)
对不同的动画长度,使用同步组
会对跟领者动画进行压缩,以领导者为主
映射不管值是多大,都需要除以映射范围最大值以获得正确的映射值
不理解蓝图的计算公式?试试双击查看C++代码!
IK(反向运动学):
使用单个骨骼的目标变换信息计算这个骨骼所在的骨骼链上其他骨骼的正确变换信息(例如上楼梯)
FK(正向运动学(传统)):
设置单个骨骼的目标变换信息,不会影响其他骨骼动画大多使用