UE4 从动画蓝图讲讲平A前腰后腰机制

1,565 阅读3分钟

前言

大部分游戏进行攻击操作都是这样逻辑
graph TD
触发攻击判断 --> 攻击判断成功
攻击判断成功 --> 播放动画
播放动画 --> 攻击完成
当然这是个笼统的过程 实际上有很多变化

有点杂的内容

人物动画

理解为模型的接受指令后进行的运动

UE4的小白人

image.png

UE4自家的小白人已经打好了骨骼 人物的运动其实就是骨骼一段时间的变化

动画蓝图

绑定人物骨骼后,就能进行动作的复现,这和mesh无关,理解为一次编译,四处运行。

做一个动画蓝图

前提你得会Blender,或者基本的建模操作

Blender是一个free建模软件,有人将UE4的小白人弄了出来,做了个插件

image.png

image.png

然后你咕哒咕哒就能明白这些RGB的作用就是调整模型位置
这样就能和Blender的动画制作搭上了

分层操作

image.png

将小白人的IK进行了分层,每个层都对应常用的环节,像手指的弯曲,背部的旋转

储存的动作

image.png

设计动作的关键帧存储在这,导出的也是这个部分的数据

非线性动画

image.png

设计好了的动作压栈后进就入这里,如果多个不同动作需要调节帧位置,要么就不勾选

摆了一天小白人后

45exq-59shc.gif

凑合着用 总比掏钱去商店买要强

UE4导入后

image.png

就是这玩意 也就是动作 之后讲讲行为逻辑

攻击逻辑

先来个木桩 再来个小白人

image.png

image.png

一般设计中攻击动作和移动是在一块的
graph TD
Start --> 点击
点击 --> 命中地点
点击 --> 命中木桩
命中地点 --> 移动地点
命中木桩 --> 移动进入攻击距离
移动进入攻击距离 --> 执行攻击判定
这一块实现起来比较清晰

image.png

因为要实现进入攻击距离攻击这个行为,所以要用tick事件

image.png

Stake Into Attack Range

image.png

考虑到攻击距离是人物独有的,放到Character里去设计,
同时把攻击判定放到人物中

Hit Stake

image.png

这里用事件调度器 delegete去做生命值变化的工作

回到Stake中 进行事件的绑定

image.png

攻击判定后调用动画蓝图

新建状态机后 把自己做的攻击动画放进去

image.png

再把攻击判定放到导管里

image.png

回到事件中

image.png

先把操作人物的ref做一个存储
再来获取他的攻击判定结果

image.png

攻击帧 前腰 后腰

image.png

这个动画我做了38帧,我在33放了个通知事件,攻击结束

image.png

回到之前的HitStake中可以看到

image.png

graph TD
攻击结束 --> 进入Stake生命变化命令

前腰和优化抬手

也就是说前32帧都是自己控自己的行为,也就是玩游戏时的抬手动作,
什么优化抬手,就是把你的信息通知往前移动几帧
200ms/16.7=12
优化200ms抬手就是把你的信息通知往前移动12帧

后腰和取消后腰动画

后面34帧-38帧就是后腰 理解为动画的尾部,也是自己控自己,
不过有s停止玩家攻击的机制,也就是所谓的取消动画,强行进入Idle状态,
之后让人物做移动的行为

如果有所谓的皮肤优化抬手

那就是游戏公司卖皮肤把你的帧往前抬了几帧!

如果你开了盒子用了皮肤 改了客户端 发现抬手优化明显的一匹

SMDDX