非常感谢您能来看我的博文!!o(* ̄▽ ̄*)ブ
紫色字体为资产类型名
蓝色字体为蓝图节点和引脚名以及函数
绿色字体为设置名
目录
3.创建开始检测自定义事件 并在event tick中进行调用
1.被拾取物品的蓝图父类创建
首先创建一个可以被拾取的物品的蓝图父类,以后我们需要拾取的物品都是这个蓝图的子类
然后在这个蓝图父类里,添加被拾取的骨骼组件以及判定框组件
这里我用的判定是sphere collision球形判定
然后再创建一个蓝图接口,接口中写上三个函数
(注意写好接口之后要记得编译,添加接口至父类后也要记得编译)
并将接口添加至被拾取的物品的父类
在被拾取物品父类蓝图中添加接口中的三个事件
然后分别在开启高亮和关闭高亮的事件后面加上“设置自定义渲染深度”这个节点,后面给物体添加高亮显示的时候用得上
2.角色的拾取范围检测函数创建
然后进入到角色蓝图,添加函数“物品拾取范围检测”,用于在事件中进行调用,然后判断身前是否有物体
进入到函数“物品拾取范围检测”
添加节点按通道进行球体追踪,然后起点设置为人物本身,终点设置为人物前方60cm
打开虚幻项目设置,搜索trace channel 新增通道检测“拾取检测”,然后在球体追踪节点中使用这个通道(默认值为ignore)
然后添加通道检测的起点和终点,这里我所使用的是以人物的脚前方进行一个范围检测,参数设置和检测效果如下
最后把通道检测到的hit和return值输出到返回节点,范围检测函数创建完成
3.创建开始检测自定义事件 并在event tick中进行调用
在角色蓝图内里,创建一个新变量,变量类型设置为actor的引用,此变量是检测到的可拾取物体的引用,然后创建一个方便管理的新图表命名为拾取系统
在拾取系统图表中添加自定义事件,然后调用物品拾取范围检测函数,用于开启物体的高亮和关闭高亮
因为我们创建了蓝图接口,所以就可以直接在角色蓝图内,调用接口“开启高亮”,来对被拾取物品的蓝图进行通信让其开启高亮
鉴于篇幅原因,拾取系统图表中的高亮显示自定义事件的逻辑就用注释写在图片里了
然后在event tick中实时进行这个自定义事件的调用即可
4.通道检测的起效与否测试
这时候我们就可以在函数“物品拾取范围检测”中,1.开启通道检测的debug(显示检测范围),然后在场景中放置一个物品,将其的2.碰撞预设改为自定义,然后在这之中3.设置他对拾取的检测响应为阻挡(对应下方123图)
这样我们就可以发现人物走到这个物品面前的时候,判定范围会由红变绿了
5.物体高亮效果制作
接着做物品高亮的效果
首先我们需要一个物品高亮描边的材质(这个可以自己做或者在网上找)
然后在场景中任意位置添加一个后期处理box,设置其范围为无限
然后再次选中后期处理box,右侧细节面版找到后期处理材质,新增材质为高亮效果
这样在角色判定触发框碰到可拾取物品的时候,就可以调用后期处理实现高亮效果了
最后把可拾取物品的父类的碰撞检测也调整为自定义,并且设置可拾取物品的父类的通道检测对拾取检测阻挡(就像刚刚测试判定范围的时候一样)
现在,就可以创建一个可拾取物品蓝图父类的子类,将子类模型替换为你想作为可拾取物品的东西
并且关闭刚才的可拾取物品的父类的通道检测debug,然后运行,就会发现人物走到物品前方 物品会进行高亮显示了
再次感谢您能来看我的博文!!o(* ̄▽ ̄*)ブ