【UE4】实现《黑暗之魂》背刺攻击——如何判断攻击位置?!

news/2024/11/28 19:30:27/

这次分享一个我在DynamicCombatSystem里面学来的一个功能——就是判断攻击的位置,例如在黑暗之魂中玩家经常要用到背刺,那么就得站到敌人的背后进行攻击,如何判断玩家是在敌人的背后呢?

在这里插入图片描述
Step1
创建一个枚举,有四个位置,前、后、左、右
在这里插入图片描述
Step2
在玩家(攻击者蓝图)创建一个函数GetHitDirection,添加参数From(攻击者)和To(被攻击者),返回值就是刚刚创建的枚举(HitDirection)。
在这里插入图片描述
Step3
在函数中创建3个局部变量HitDirection(E_HitDirection)、LocalFrom和LocalTo.LocalFrom 和 LocalTo主要是用来保存传进来的From 和 To,这样就可以直接用这两个局部变量来写蓝图,显得不那么乱。
在这里插入图片描述
Step4
利用向量的点乘结果可以得到两者之间的夹角余弦值,通过这个就可以判断,比如看下面这个蓝图,获取敌人的right vector和从敌人到玩家的向量unit direction,用这两个向量点乘,如果结果小于0说明夹角大于90度,玩家在敌人的左半边,结果大于0说明夹角小于90度,玩家在敌人的右半边。

在这里插入图片描述
在这里插入图片描述
但是这个还不能够满足需求,我们希望是下面这图中显示的四个方向的,所以我们的逻辑应该是先计算在前还是在后,且区域是前后一个扇形区域,同样可以利用计算点乘的方式来判断夹角大小,如果不在前后曲区域,在去判断在做还是在右,(当然一般我们只需要计算出在后面就OK了)在这里插入图片描述
这是DynamicCombatSystem中的完整蓝图,返回的值是枚举
在这里插入图片描述
那么我们就试试效果:
在背后攻击在这里插入图片描述
在左边攻击
在这里插入图片描述
在右边攻击
在这里插入图片描述
在正面攻击
在这里插入图片描述
**

后记:

**
当然要真正实现《黑暗之魂》中的被刺效果我们还要让玩家检测到敌人在玩家的前方,
不然会出现下面这个情况:命名没有正面攻击屁股,但是仍然会判断在背后攻击,
在这里插入图片描述
一个完整的背刺系统应该还得包括更多的东西,比如给敌人加上一个接口判断能不能被刺,玩家持不同武器、不同敌人的背刺动画、背刺音效和背刺时的相机移动才能创造出像《黑暗之魂3》那样实现背刺的爽快感!


http://www.ppmy.cn/news/615760.html

相关文章

《黑暗之魂3》的游戏设计思路

动作游戏基础概念 动作游戏的深度与宽度 宽度 简单:游戏可能出现情况的和 等价:可能空间 例如:黑魂中的普攻、战技、魔法、咒术、盾反、翻滚或滑步、不同武器的不同动作模组、小怪的AI和设计、玩家之间的入侵玩法、Boss的设计等等每一种可能&…

NoSQL之redis缓存雪崩、穿透、击穿概念解决办法

目录 一:缓存雪崩 1.1概念理解 1.2解决方案 1.2.1数据预热 1.2.2缓存层高可用 1.2.3做二级缓存,或双缓存策略 1.2.4缓存业务添加限流和服务降级策略 1.3举例 二:缓存穿透 2.1概念理解 2.2解决方案 2.2.1缓存空值 2.2.2布隆过滤器…

恶魔之魂重制版登陆服务器未响应,数毛社分析《恶魔之魂:重制版》 60帧运行,加载超快...

原标题:数毛社分析《恶魔之魂:重制版》 60帧运行,加载超快 魂类游戏《恶魔之魂:重制版》将登陆PS5平台,很多玩家都非常期待该作。近日,数毛社公布了PS5《恶魔之魂:重制版》的游戏演示分析。Rese…

原罪学者 无限连接服务器,黑暗之魂2原罪学者 召唤或连线失败的解决方法分享...

黑暗之魂2原罪学者 召唤或连线失败的解决方法分享 今天为大家带来的是黑暗之魂2原罪学者召唤或连线失败的解决方法分享,一起来看看吧! 自从前几天更新之后无法召唤与被召唤让本人非常苦恼,因为我很喜欢跟别人一起逛街阿!!!!因此我在网路上爬文…

《计算之魂》读书笔记

计算之魂(吴军) 引子 计算的本质——从机械到电子 第 1 章 毫厘千里之差——大O概念 1.1 算法的规范化和量化度量 软件为什么从计算机科学中分离出来? 最初计算机是用于计算,而拥有了计算的基础功能,为了更高效计算更…

Redis中的缓存穿透,缓存击穿,缓存雪崩,分布式锁

目录 一、缓存是什么? 二、缓存穿透 1.缓存穿透是什么 2.解决方案 三、缓存击穿 缓存击穿是什么 2.解决方案 四、缓存雪崩 1.什么是缓存雪崩 2.解决方式 五、使用redis实现分布式锁 总结 一、缓存是什么? 缓存是数据交换的缓冲区,是…

南山驿站机器人_fc机器人大战钢铁之魂攻略

【游戏提示】 一,此次改版一共28关攻略集合多位玩家直播和改版作者资料并由本人亲自 通关测试拼凑而成! 二,这个版本有很多游戏坑,比较重要的都会标红说明,各位玩家要认真看,不完美攻略 要漏掉哪个环节&…

Redis——缓存穿透、缓存击穿、缓存雪崩、分布式锁

文章目录: 1.缓存穿透 1.1 什么是缓存穿透? 1.2 缓存穿透的解决方案 2.缓存击穿 2.1 什么是缓存击穿? 2.2 缓存击穿的解决方啊 3.缓存雪崩 3.1 什么是缓存雪崩? 3.2 缓存雪崩的解决方案 4.分布式锁 4.1 使用setnx del…