90天入门UE引擎开发--学习日记(57/100)

在僵尸蓝图里加上之前做好的接口

原先接口的样子: 

 

僵尸受击与两方面有关

1.受击的部位

2.受击的方向角度

骨骼重定向(换新的皮肤)

UE4:点对点(骨骼对骨骼) 

UE5:线对线(一整条对一整条)

选中新的模型,右键骨骼-》Assign Skeleton 

选择要重定向的骨架,接受

 再一次选择点击新皮肤,右键创建并制定

 

自动生成的碰撞还需要手动调整一下 

 

 之后就可以直接用BP_Zombie换上刚刚的皮肤了

 运用之前的  获得骨骼的名称和序号  步骤打印出骨骼名字和序列号(因为要开始做射击不同骨骼的交互)。做法大同小异,可以参考:90天入门UE引擎开发--学习日记(55/100)_不要积累问题的博客-优快云博客在widget组件的图表里新建一个变量AI,其中的HealthPercent变量与血条的Percent绑定。新建导航网格体边界体积,拖入场景,放大,铺满整个场景,快捷键P可以出现绿色。对BP_AI1蓝图里的Health变量设置广播方式为RepNotify。cable末端位置设置为0,cable对pawn的碰撞属性设置为忽略。先制作AI的血条 WB_AI_HealthBar。通过在BP_AI1写下列函数可以获得骨骼的序列号。在BP_AI1里新建一个函数Set Damage。具体系数参考官方文档↓↓↓。https://blog.youkuaiyun.com/weixin_42229060/article/details/127757844?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127757844%22%2C%22source%22%3A%22weixin_42229060%22%7D

 

方法2:ALS-运动系统解构-优快云博客

里的 角色替换 

击中骨骼部位 决定 僵尸反馈的状态

头:Hit Death

手:模拟物理,瘫痪

腿:Crawl 状态

躯干:前身Knock Back;后背Stand Hit To Crawl

利用枚举分类

新建一个枚举EBodyParts

然后再僵尸蓝图里新建一个枚举类变量

射击身体的交互

给ApoplyHit函数新建一个输入变量Impulse

这样我们就可以接受Be Hit事件传进来的Impulse变量 

 在ABP_Zombie01中新建一个函数(输入变量如下)

 Calculate Direction函数

关闭枪的multiline trace?

将僵尸的 胶囊碰撞体 碰撞属性设置为 对Camera和MyChannel 忽略,避免影响两种枪的射线检测

前方开枪,击退

挑选一个合适的被击退动画(改成根运动,保存),创建蒙太奇 。蒙太奇动画中,把混入混出时间都改为0。

动画蓝图中需要建立默认插槽,才能调用蒙太奇动画 

 书写蓝图:

打到腿时,也是摔倒

*布娃娃系统

(*布娃娃系统:虚幻引擎动画姿势快照 | 虚幻引擎5.3文档 (unrealengine.com)

19高级运动系统解构-姿势快照与布娃娃系统_哔哩哔哩_bilibili )

找到CrawlToStand动画序列,在通知轨道右键添加一个通知CrawlEnd

 调用通知!

 在黑板里新建一个枚举

sequence Crawl调用装饰黑板变量 

 

 添加黑板键,并且在结果发生变化(变成Crawl),中止规则设置为终止 低优先级的

 给序列的条件改名字,整理一下

在僵尸蓝图里,初始化 ABP Zombie01与Aicontroller Zombie01,得到Aicontroller Zombie01变量

把Crawl状态传递给黑板 

 整理成函数SetBBMoveState (输出的枚举变量重命名为MoveState)

 

制作死亡状态 

(ps:也可以直接在死亡的动画蒙太奇末端设立一个循环播放,让僵尸们倒地之后就不再站起来,死的透透的

从蒙太奇动画里截取出一个合适的倒在地死亡的动画

拷贝出来的右键截取一下 (根动画勾选,保存)

 状态机

 左右的受击动画不要设置根运动(不然效果不明显)

打到头时,死亡

打到手臂时,瘫痪

将Rotate to FaceBB改为系统自带Move to,可以修改AI人遇到障碍物不会转弯的bug。

断开Rotate to face BB entry

阵营功能

解决爆头死亡之后,继续打还会有反应的bug

避免穿透射线连续触发: 

根据不同的伤害类型受到的反馈

新建一个枚举EDamageType

在接口里添加一个DamageType变量

 

 编译保存

 ​

 在OnFire的动画上添加定时粒子效果

 主动更改枪的伤害类型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值