[UE4]武器碰撞
实现武器战斗伤害系统,击中时如何发出碰撞事件产生伤害,目前探索的有通过物理碰撞和LineTrace两种方法。
物理碰撞通过Overlap事件的方法,优点是易于实现,缺点是无法具体到碰撞骨骼位置,低帧数或者武器高频运动时可能无法产生Overlap事件。
LineTrace通过指定武器伤害区域,形成线段跟踪,获得与射线交叉的骨骼位置。优点是可具体获得骨骼位置,低帧数也可获得一定效果。缺点是需要具体指定Socket位置,若被碰撞骨骼过小,可能会穿过导致不准确的结果。
一、Overlap方法
当武器和敌人重合时,发出Overlap事件,获得碰撞到的敌人。
1.属性设置
武器碰撞体积设置。
碰撞Channel设置,武器自身类型设为WorldDynamic,碰撞对象类型设置Overlap Pawn,剩下的都Igonre即可。敌人自身类型设为Pawn,碰撞类型修改Overlap WorldDynamic。
注意:Root的碰撞Channel设置会影响child actor的碰撞检测。比如root忽略了pawn,child都不会检测到pawn的碰撞事件。
把武器的Generate Overlap Event设置为false,攻击过程设为true。
当攻击动作播放时,通过AnimNotiy在AnimationBP中发送设置攻击状态变量的消息
在Character的蓝图中获得事件根据变量改变Generate Oberlap Event的值。
2.造成伤害蓝图
3.最终效果
二、LineTrace
在武器上指定若干socket,攻击时记录每一个socket的位置,下一帧时各socket与上一帧对应位置连线,该线段作为LineTrace的线段,检测交叉到的物体。
1.属性设置
指定武器的Socket位置,在武器的StaticMeshEditor中,Window->Socket Manager,Create Socket,创建若干Socket并拖到合适位置。注意Socket间距不要太大,否则可能导致被击骨骼在Socket间隙未被碰撞。
碰撞Channel设置,双方Ignore或者Overlap对方均可。
2.造成伤害蓝图
3.最终效果
类似于这个效果。从网上找的图,自己工程有些问题无法打开。
三、OnHit方法
Hit事件仅发生在碰撞双方都是Block对方类型,可获得Hit的法向、骨骼等具体信息。但角色攻击时,武器经过敌人物理体内部时,Block会导致敌人在物理碰撞系统的影响下弹飞。所以应适用于远程碰撞爆炸等效果,在此处未使用。
[UE4]武器碰撞的更多相关文章
- [UE4]子弹碰撞
在子弹actor蓝图“BP_LauncherBullet”中添加一个球体碰撞组件“Sphere Collision”,并设置为actor的根组件(直接拖放到默认根组件上面就会覆盖) 子弹碰撞预设 “B ...
- UE4碰撞规则详解
UE4的碰撞设置在官方的文档的 物理模拟模块(链接:点击打开链接).但是操作起来感觉坑还是比较多,所以这里总结一下,以防平时经常会漏掉或忽略某些条件.如果想看关于碰撞响应触发,可以参考链接( UE4蓝 ...
- 【UE4】二十三、UE4笔试面试题
在CSDN博客看到的,带着这些问题,多多留意,正所谓带着问题学习. 一. 1.Actor的EndPlay事件在哪些时候会调用? 2.BlueprintImplementableEvent和Bluepr ...
- 从Unity学UE(一)之蓝图类的使用----制作一个可控灯光
转自:http://blog.csdn.net/u011707076/article/details/44171829 首先申明,本文章内容适合有Unity引擎基础的童鞋享用,如果不了解Unity引擎 ...
- Unity项目 - DeathtrapDungeon死亡地牢
目录 游戏原型 项目演示 绘图资源 代码实现 注意事项 技术探讨 参考来源 游戏原型 死亡地牢是一款 2D-Roguelike 的地牢冒险游戏.手握利刃,斩杀怪物,在凶险的地牢内生存下去.但注意,敌人 ...
- UE4创建空白关卡并添加碰撞体
让我们接着上次继续学习UE4引擎,今天我们学习下怎样创建空白的关卡以及添加碰撞物体. 一. 创建空白关卡 1) 点击文件 -> 新建关卡(或者按快捷键Ctrl+N). 2) 你可以选择Defau ...
- [UE4]Static Mesh的碰撞体
一.可以在3D建模的时候添加碰撞体,导入到UE4的时候,碰撞体也会跟着导入进来. 二.也可以在UE4中自行添加碰撞体 三.在UE4中添加编辑碰撞体 四.选择碰撞体可以移动.缩放.旋转碰撞体,如果模型比 ...
- UE4新手编程之创建空白关卡和添加碰撞体
让我们接着上次继续学习UE4引擎,今天我们学习下怎样创建空白的关卡以及添加碰撞物体. 一. 创建空白关卡 1) 点击文件 -> 新建关卡(或者按快捷键Ctrl+N). 2) 你可以选择Defau ...
- UE4物理模块(三)---碰撞查询(下)SAP/MBP/BVH算法简介
在上一文中介绍了碰撞查询的配置方法: Jerry:UE4物理模块(三)---碰撞查询(上)zhuanlan.zhihu.com 本篇介绍下UE4的各种零大小的射线检测,以及非零大小(带体积)的射线检 ...
随机推荐
- tinyxml学习5
读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好. TinyXML是一个开源的解 ...
- NoSQL数据库探讨之一 - 为什么要用非关系数据库?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.而传统的关系数据库在应付 web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...
- win10 Administrator没有管理员权限解决方案
方法/步骤 在运行框 里面输入“gpedit.msc”. 打开组策略编辑器,计算机配置->windows设置->安全设置->->本地策略->安全选项 找到“用户账户控制: ...
- SQLite数据库文件格式
数据库命名约定 sqlite3_open()API用到数据库的文件名,可以是相对当前工作目录的相对路径名,也可以是从系统根文件树开始的完整路径名.任何被本地文件系统接受的正规文件名都是好的. 如果文件 ...
- 【浅析】IMU代码
IMU的代码的引自https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/imumargalgo ...
- 【转】awk、nawk、mawk、gawk的简答介绍
来自http://blog.sina.com.cn/s/blog_3d2d79aa0100h47h.html awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准 ...
- ios category,protocol理解
category: 向现有的类中增加方法,同时提供方法的实现,现有类不需要做任何改动. protocol:(相当于Java或C#中的接口interface,当很多类都要需要类似的方法,但是方法具体实现 ...
- QT 使用jsoncpp
QT 使用jsoncpp 编译jsoncpp 编译前先安装好python,scons,解压jsoncpp到目录e:\jsconcpp,查看目录下的readme,有关于编译的说明的,根据说明做相应操作就 ...
- anomaly detection algorithm
anomaly detection algorithm 以上就是异常监测算法流程
- 【C#】 目前的技能点
[C#] 目前的技能点 一. C/S 1. WinForm 2. WPF 二.B/S 1. MVC 2. ASPX 3. WebService 4. js 5. jQuery , jQuery UI ...