UE4 手电筒射线检测

UE4 手电筒射线检测

功能物品:手电筒射线
功能描述:用于对NPC造成伤害或者有其他交互左右的物品
实现方法:每隔0.2秒发射几百根射线用于检测。
在这里插入图片描述

首先在摄像头上绑定一个SpotLight,初始设置不可视,用来当手电筒。
然后设置两个bool变量CanUseFlashLight?和HasFlashLight?,初始值都设为false,当玩家拾取手电筒时,会将HasFlashLight?设置为true,CanUseFlashLight?是手电筒射线的冷却,只有当这两个变量同时满足条件时才能开启手电筒射线。
定义一个事件用来做手电筒的冷却条,冷却时间视情况而定。(E Now是当前冷却时间)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这之后可以添加一个手电筒射线照射期间持续的声音,先定义一个变量“音频组件”命名为Aduio。
在这里插入图片描述
在这里插入图片描述

现在要先做两个宏,第一个是while loop with Delay,用来规定手电筒发射射线的时间间隔和次数。
在这里插入图片描述

然后在射线的照射期间不能使用手电筒射线,并将手电筒的光源颜色设置为紫色,将射线间隔设置为0.25s,发射次数为8次。发射完后,要把光源颜色设回白色。延迟2s的意思是手电筒射线只发射8*0.25=2s的时长,手电筒射线冷却2+13=15s。
在这里插入图片描述

第二个是“计算圆点坐标”,思路就是求出半径从小到大每个圆间隔角度的每个点的坐标,x0,y0为圆心。
x1=x0+rcos(anglePI/180)
y1=y0+rsin(anglePI/180)
首先定义宏的4个输入 FX/Y, FZ , 半径, Angle和对应的变量。输出x,y坐标即可。
在这里插入图片描述

因为灯光是绑定在摄像机上面的,所以射线是从摄像机上面发出,以摄像机面朝方向为一个平面,摄像机的中心即为圆心,计算圆的Y轴即为世界坐标的Z轴,计算圆的X轴即为世界坐标的X或者Y轴(因为摄像机会平面旋转,暂时不考虑向上的照射,即把世界坐标的X轴当成计算圆的Y轴),所以需要先判断角色的旋转朝向。
在这里插入图片描述

然后创建一个结构体,命名为圆的坐标,设置两个变量,如下图:
在这里插入图片描述
在这里插入图片描述
在蓝图中添加一个变量“圆的坐标”并命名为圆的坐标,将变量改为数组。
在这里插入图片描述

在发射之前先将数组清空,将半径重置为-50,然后循环10个圆,每个圆增加50半径。然后每个圆上的坐标的角度Angle都间隔30,30*12=360。
在这里插入图片描述

然后先判断摄像机面朝方向是否为世界场景的Y轴,true是上面的,false是下面的。目的是通过宏循环计算出圆点坐标后,把每一轮8个圆上的所有坐标都存入数组,在后边打印出来。
在这里插入图片描述

在一个圆计算之后开始循环发射射线,for each loop需要将圆拆分成2个变量,然后还要分别判断摄像机的朝向去打印射线。
在这里插入图片描述

获取摄像机的世界位置,并拆分向量,如果摄像机面朝世界场景的Y轴,就将拆分出的Y轴和Z轴参与之前计算圆点的宏(相机是否朝前?为true);如果摄像机面朝世界场景的X轴,就将拆分出的X轴和Z轴参与之前计算圆点的宏(相机是否朝前?为false),拆分出来的向量不参与计算x或y的值不变,而将上图的X,Y坐标连到下图的创建变量,上图坐标X轴对应的是下图的创建向量的x或y值(视“相机是否朝前?”而定),上图坐标Y轴对应的是下图的创建向量的Z值。
得到的世界坐标加上摄像机的向前向量(朝向和长度)就得到了射线发射出去之后的圆点世界坐标。
在这里插入图片描述

在这里插入图片描述

之后break命中结果,将hit actor添加(添加唯一)到“hit ai”的数组中去,并调用ai蓝图中“被照射”事件,从而达到手电筒射线与ai交互。
在这里插入图片描述

在手电筒射线照射开始前还需要把“hit ai”的数组清空。
在这里插入图片描述

使用ue5.7第一人称模板,注释一下内容都要有世界空间的加载和卸载的使用还要有防重叠机制,以及区块加载与卸载来保证资源利用率,原理玩家场景内雾气可见值时自动卸载,同时预留要添加的背景音效的位置。 制作目标是一款仿照《传送门2》玩家拥有传送枪,左键打开一道传送门,右键通过过引力抓取物体,上下传送门打开时有重力加速度也能看到门的对面,就像真的打开了一个虫洞一样,物体场景内任意道具都可跟随主角通过传送门,同时场景内至有2传送门新生成的代替老的传送门, 玩家有生命值,耐力值,存档系统,物理系统,手电筒的能量管理系统,玩家在落地时有摄像机的抖动,可以在玩家后期找到强化自己的手电(初始总电量百分比对应可照明时间为三分钟):1强光(牺牲50%电量暂定怪物行动时间5秒)2蓝光(幽灵之光获取后普通的照明消耗的电量为之前的50%)3大电池(使自己的手电的光带有微弱的电,可以减弱怪物的移动速度30%)4光束(使手电可以以每秒一米击退怪物)。传送枪可以无限的使用。 有完善的指引任务系统,即任务通关道具我会在场景内用贴花等方式提醒和搭建好完整的任务逻辑,但同时也需要你构建一套完整的通信系统保证我可以在任何时间获知玩家的状态,以及通关物品的在出现时有一点音效的提示,我需要你制作一个这样的蓝图类,并且他们会在玩家摁拾取建后产生通信,来解锁一些如门等条件,我还会制作一些来补充玩家手电的道具,任务相关位置还会有图标指引,同时制作一个蓝图类使用重物压力时有压力感应可以打开门,也制作或使用一下模板里门的蓝图类,一个给任务提示用的高亮显示并在玩家拾取后停止高亮,还有玩家拾取系统保证在玩家拾取后有一个放大和观察,e建在一定范围触发box碰撞后可拾取中间拖拽摄像机环绕观察物品,像是在旋转物品一样并注释好如何使用. 场景要有PCG程序化生成的无尽长廊和一些房间,我会提供走廊和物品的模型,但需要你注释这些物品该添加在何处,循环走廊和所链接的房间用动态坐标系重置解决保证玩家不会因一直移动而离初始坐标系太远,有一个停止循环并生成新场景的条件,且房间也好走廊也好都会随机生成一些物品,这些东西用数组解决的同时要做好权重划分,并做好通信,这里在编程时注释清楚, 同时要有一套完整的追击AI行为树,在没有玩家被侦测到时执行待机动作,同时有仇恨系统,随着玩家被追击的时间变长,速度会从原本的比玩家慢到略快于玩家,到比玩家快很,这个变化过程的时间分别是十五秒和一分钟,玩家脱离视野检测时有三秒的默认继续追击,即会跟随玩家路径, 在ui方面,开始界面,要有开始ui,ui包括开始,继续,设置,要有存档系统玩家可以通过交互键进行存档,制作一个存档的蓝图类组件,并关联ui的存档。设置在游戏中可以摁esc换出暂停的界面,界面包括了退出,返回菜单,设置,继续,设置界面,有游戏声音的总控由滑块控制,有按键的设置,游戏的亮度调节,这些都要与游戏的全局资源绑定,开始ui点击后有两个难度选择这个也可以在设置里更改,分别是不会生成追击怪物并在生成怪物点也同样不会触发追击即卸载掉追击模块的宝宝模式,和一切正常的大人模式, 背景音乐,在开始ui播放背景音乐并在正式开始游戏后停止,开始后玩家一直有微弱的呼吸声,有一个检测当怪物靠近时音量会变化的通信,怪物有自己的移动音效并也有一个根据自身状态变化的通信,手电拾取强化后自动安装会有动画且只限制上半身,以及一个音效,存档时一个音效,任务变更,触发时一个音效,预留好这些端口,最好能帮我完善他们并注释我需要把我的资源如何添加进去。 最后的最后如果可以请搭建一个建造系统,并考虑在不影响游戏整体的情况下优化性能节省内存。 根据这些进行编程并注明我需要在哪添加或关联资源设置好的资源该叫什么放在哪里才能正常的运行,并告诉我该如何正确的使用他们,在之后我需要做什么,保证我的游戏可以正常运行,我也可以在后续自己做出优化。
最新发布
12-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值