UE4子弹特效
转自:http://blog.ch-wind.com/ue4-projectile-visual-effects/
子弹使用抛体就可以实现了,但是要让其看起来更加真实,则可能需要加上一些粒子特效。
当前UE4版本4.8.1。
子弹的特效制作主要使用粒子系统进行实现,只有用于着弹效果的地方使用的是Decal Material。官方的这篇教程对于了解如何去制作一个粒子系统很有作用。原始教程地址:https://wiki.unrealengine.com/Projectile_Visual_Effects(教程中有提供相关文件的下载)。
特效的制作基础是UE4自带的第一人称模板,不需要初学者内容。也可以直接下载文档末尾处的工程文件进行观赏,工程文件不到10M,相当的方便。
着弹特效
制作特效之前,先实际参考一下现实世界中的效果比较好。为了模拟出好的特效,观察整个过程中能量的变化非常的重要。因此,教程中对子弹的着弹效果进行观察后。将特效分为了闪光、烟雾、破片三个子特效。
闪光
闪光特效使用T_Hit.tga贴图来制作材质。材质类型修改为Translucency,同时,为了保证闪光特效始终显示在表层,将Disable Depth Test设置为True。闪光特效中示例工程中额外的添加了Near Camera Fade和Depth Fade,这样的话在子弹有射入角度时就不会依然显示一个光晕了,更加自然一些。
![]()
新建一个粒子系统,并在Required模块中将默认发射器的材质修改为刚刚建立的材质。为了方便以后辨识,可以将发射器的名称修改为HIT。按照之前的教程中的建议,删除Color Over Life模块,替换为Initial Color与Scale Color/Life模块。在模块的属性上,主要使用粒子生命周期和初始大小进行随机化来增强特效的随机性。
烟雾
第一步依然是构建材质,烟雾的材质相对复杂一些。在示例的截图中,有添加Near Camera Fade特性,但是在示例工程中该材质并没有添加。使用到的贴图分别是T_Smoke与T_S_Normal。
烟雾特效中,额外的使用Initial Rotation和Initial Rotation Rate来作随机化。同时添加Sphere模块对初始位置以及速度应用随机。
烟雾特效中,由于材质中使用了MacroUV,需要对MacroUV进行修改。点击编辑器的空白处,在粒子系统的属性中进行设置。如果不同的发射器使用的是不同的设置,也可以在Required模块对MacroUV属性进行修改。
破片
破片效果主要使用SubUV模块进行实现。需要添加Acceleration模块进行重力模拟,Collision模块进行碰撞模拟。
这一部分示例工程中的材质和教程中的截图相差比较大,Near Camera Fade和Depth Fade被取消,同时用一种近似的方法生成了法线。
![]()
由于碎片较小,很难观察出有什么不同……
拖曳
拖拽特效同样通过粒子进行实现。使用的是Ribbon类型的发射器。拖拽部分使用的材质教程中没有对Panner的速度进行说明,实际情况如下:
![]()
这一部分在操作是需要注意的是,必须删除Initial Velocity模块。由于教程中没有明言,会导致结果与预期的不同。
还有一个示例工程的不同之处在Required模块中:
Screen AlignMent设置为Facing Camera Position;
Sort Mode设置为Distance to View。
弹痕与子弹
弹痕的特效使用Decal Materia进行实现。
材质中使用快速方法生成了测试用的替代法线贴图。
子弹的材质没有什么特别的地方,并不是教程的重点。如果是使用球体而不是子弹的话,可以跳过子弹的材质。
蓝图
实际的对上面生成的特效进行使用测试。
在组件中添加Ribbon的粒子系统,修改抛体的速度和重力设置,同时勾选平面移动限制。在碰撞点生成粒子系统和Decal Materia。
开始调试,就能看到相当不错的子弹特效了。
UE4子弹特效的更多相关文章
- [UE4]子弹碰撞
在子弹actor蓝图“BP_LauncherBullet”中添加一个球体碰撞组件“Sphere Collision”,并设置为actor的根组件(直接拖放到默认根组件上面就会覆盖) 子弹碰撞预设 “B ...
- [UE4]子弹穿透多个机器人
一.将机器人的碰撞类型改成“OverLap” 二.使用“MultiLineTraceByChannel”这个是可以穿透检测,可以检测到多个物体(前提是被检测物体的碰撞类型是“OverLap”).“Li ...
- unity3d泰斗破坏神2----课程列表
免费 课时1:泰斗破坏神第一支预告视频 01:32免费 课时2:泰斗破坏神第二支预告视频 01:58第 1 章 : 游戏开始 用户登录 服务器选择课时3:游戏开始 用户登录 服务器选择课时4:素材介绍 ...
- [Unity 设计模式]桥接模式(BridgePattern)
1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运 ...
- 2015最新iOS学习线路图
iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...
- 【Unity3D与23种设计模式】模板方法模式(Template Method)
GoF中定义: "在一个操作方法中定义算法的流程,其中某些步骤由子类完成. 模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤" 每一次武器攻击目标时,都要按 ...
- Unity 3D游戏-塔防类游戏源码:重要方法和功能的实现
Unity-塔防游戏源码 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 2 3 4 5 6 7 8 9 ...
- 一个MMORPG的常规技能系统
广义的的说,和战斗结算相关的内容都算技能系统,包括技能信息管理.技能调用接口.技能目标查找.技能表现.技能结算.技能创生体(buff/法术场/弹道)管理,此外还涉及的模块包括:AI模块(技能调用者). ...
- COSMOSBOX手遊制作手册(Word备份)
20140712版 版本号 Version 日期 Date 作者 Author 变更主要原因描述 Brief Description 1.0 2014-4-26 陈霈霖 初稿 2.0 1. 前言 本手 ...
随机推荐
- Strust2遇到的问题
前端发一次请求,后台执行execute方法多次,最后发现Acion类继承ActionSupport类,且覆盖了execute,当用户数量一上来就会出现执行多次的BUG,所以千万要注意不能给此方法加An ...
- Linux find 命令大全
find 含义: 顾名思义,是从来查找满足条件的内容. 从指定目录,递归的查找满足条件的内容. 格式: find [查询目录] [参数] [匹配方式] 文件操作: -name : 查找文件名 ( f ...
- 复制文件夹的方法 .net
void CopyDirectory(string SourcePath,string DestinationPath) { //创建所有目录 foreach(string dirPath inDir ...
- python标准日志模块logging使用
python的标准库里的日志系统从Python2.3开始支持.只要import logging这个模块即可使用.如果你想开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件,只要这样使用: ...
- Map类集合
集合类 Key Value ...
- Ajax的跨域问题(包括解决方案)?
原因:js的同源策略限制,不同源会造成跨域 哪些情况会造成跨域? 子域名不同(WWW) 2.主域名不同(baidu.com) 3.端口号不同 4.IP地址和网址不同 解决方案: 使用jsonp技术,但 ...
- 51nod 1486
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1486 1486 大大走格子 题目来源: CodeForces 基准时间限 ...
- Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?
转自:http://www.infoq.com/cn/news/2015/02/apache-samza-top-project Apache Samza是一个开源.分布式的流处理框架,它使用开源分布 ...
- ionic2——开发利器之Visual Studio Code 常用快捷键
主命令框 F1 或 Ctrl+Shift+P: 打开命令面板.在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace 会进入到 Ctrl+P 模式 在 Ctrl+P 下输入 > ...
- UI- UIView控件知识点回顾
// 通过一个frame来初始化一个UI控件 - (id)initWithFrame:(CGRect)frame; // YES:能够跟用户进行交互 @property(nonatomic,gett ...