转自: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 ColorScale 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子弹特效的更多相关文章

  1. [UE4]子弹碰撞

    在子弹actor蓝图“BP_LauncherBullet”中添加一个球体碰撞组件“Sphere Collision”,并设置为actor的根组件(直接拖放到默认根组件上面就会覆盖) 子弹碰撞预设 “B ...

  2. [UE4]子弹穿透多个机器人

    一.将机器人的碰撞类型改成“OverLap” 二.使用“MultiLineTraceByChannel”这个是可以穿透检测,可以检测到多个物体(前提是被检测物体的碰撞类型是“OverLap”).“Li ...

  3. unity3d泰斗破坏神2----课程列表

    免费 课时1:泰斗破坏神第一支预告视频 01:32免费 课时2:泰斗破坏神第二支预告视频 01:58第 1 章 : 游戏开始 用户登录 服务器选择课时3:游戏开始 用户登录 服务器选择课时4:素材介绍 ...

  4. [Unity 设计模式]桥接模式(BridgePattern)

    1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运 ...

  5. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  6. 【Unity3D与23种设计模式】模板方法模式(Template Method)

    GoF中定义: "在一个操作方法中定义算法的流程,其中某些步骤由子类完成. 模板方法模式让子类在不变更原有算法流程的情况下,还能够重新定义其中的步骤" 每一次武器攻击目标时,都要按 ...

  7. Unity 3D游戏-塔防类游戏源码:重要方法和功能的实现

    Unity-塔防游戏源码 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 2 3 4 5 6 7 8 9 ...

  8. 一个MMORPG的常规技能系统

    广义的的说,和战斗结算相关的内容都算技能系统,包括技能信息管理.技能调用接口.技能目标查找.技能表现.技能结算.技能创生体(buff/法术场/弹道)管理,此外还涉及的模块包括:AI模块(技能调用者). ...

  9. COSMOSBOX手遊制作手册(Word备份)

    20140712版 版本号 Version 日期 Date 作者 Author 变更主要原因描述 Brief Description 1.0 2014-4-26 陈霈霖 初稿 2.0 1. 前言 本手 ...

随机推荐

  1. QTabWidget和QtabBar的区别

    切换标签tab 是QTabBar int QTabWidget::insertTab ( int index, QWidget * page, const QString & label ) ...

  2. lightoj1370欧拉函数/素数筛

    这题有两种解法,1是根据欧拉函数性质:素数的欧拉函数值=素数-1(可根据欧拉定义看出)欧拉函数定义:小于x且与x互质的数的个数 #include<map> #include<set& ...

  3. Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率

    注意:由于是重复数据,词法不具有通用性!文章价值不大! 摘自:https://segmentfault.com/a/1190000002695169 Doc Values 会压缩存储重复的内容. 给定 ...

  4. 如何退出telnet

    ctrl键+ENter键 然后输入 进入telnet 命令 quit

  5. 【poj2553】The Bottom of a Graph(强连通分量缩点)

    题目链接:http://poj.org/problem?id=2553 [题意] 给n个点m条边构成一幅图,求出所有的sink点并按顺序输出.sink点是指该点能到达的点反过来又能回到该点. [思路] ...

  6. LeetCode OJ:Jump Game(跳跃游戏)

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  7. Android 中Activity,Window和View之间的关系

    转自:http://hi.baidu.com/xiaofanqing/blog/item/8261ac114ab14f64cb80c435.html 我这里根据我个人的理解来讲讲我个人对这3个概念的理 ...

  8. 《转》浅谈EJB

    ejb一直是一个让我很纠结的技术,虽然ejb作为sun推荐的最佳实践,在sun的J2EE教程中,推荐jsp和servlet作为view层,ejb作为业务逻辑层. 上述就是J2EE教程讲J2EE体系中J ...

  9. git修改远端服务器地址

    方法有三种: 1.修改命令 git remote set-url origin [url] 2.先删后加 git remote rm origingit remote add origin [url] ...

  10. CSS:Tutorial four

    1.CSS Tables To specify table borders in CSS, use the border property. The example below specifies a ...