一、武器的添加
方法1:
创建插槽
打开人物骨骼界面(在任意动画里也能看到骨骼界面)
找到左右手,分别创建一个插槽,命名为剑和盾
然后放预览,调好位置,人物蓝图添加组件,蓝图那attach就行
方法2:
将剑盾建立为actor,也放到插槽
二、举盾
使用瞄准偏移(不用混合空间),放入不举盾和举盾的动画,参数设置为rise(不适用瞄准偏移的动画序列是放不进去的)
可以将瞄准偏移直接放在状态机后面
在人物蓝图中增加变量rise,按下右键时根据时间轴节点设置rise的值,松开右键时反向执行时间轴
在动画蓝图中将人物蓝图的rise值传入
最后添加布尔值 是否举盾了,当rise为1时设置为是,便于后面逻辑
注意原本的站立等姿势也要改变为持剑盾时的姿势
三、闪避动作实现及限制
注意优先级,如播放动画时,在空中时,举盾时哪些是互斥的
空中不能闪避,通过检测实现,用到节点is falling
要流畅,在蒙太奇动画快结束时使用通知
要更流畅的话,在收到通知后又有任何其他输入(如按w前进、s后退)且输入的值>0时(意思就是闪避动画播放还没结束,但你按了w使前进输入大于了0,它才提前结束这个闪避动画),停止播放当前蒙太奇动画(可以用get anim instance获得当前mesh的动画)。通过在输入移动的后面添加判断和结束当前蒙太奇动画来实现。
四、移动
设置完角色移动旋转后,要使其闪避之类的更流畅,可以:
可以设置举盾时的最大移动速度,就可以当举盾时降低速度
状态机实现跳跃
eg:站立到起跳的条件为isinair?,起跳到跳跃中的条件为:起跳的动画的剩余时间<0.1
优化:解决落地时接着移动脚不动滑步的问题
速度大于10其实差不多就是有速度时,就进入站立/走路/跑步,而原地跳跃它就会正常落地
在闪避动画中添加多一个通知:combo,后面的攻击会讲
五、攻击
使用结构体存储攻击的各项参数,创建-蓝图-结构
结构体中添加3个变量:攻击动画(蒙太奇引用)、伤害(浮点)、攻击方式(命名)
然后在人物蓝图中创建新的变量,类型为上面的结构体,并设为数组,往里添加几个元素
攻击的蒙太奇动画需要两个通知,一个attack,一个attackover,前者用于开启伤害判定,位置放在快砍到敌人的时候;后者用于通知结束可衔接下一个. 若一个动画有多个攻击点位,如挥两下,则设两个攻击通知
连击:在attackover的通知后,动画结束前,