Unity VFX -- (4)创建burst粒子效果

这篇具有很好参考价值的文章主要介绍了Unity VFX -- (4)创建burst粒子效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        如果用户成功达成某个目标,我们可以使用一个爆裂的礼花来激励用户。如果角色挥舞刀剑,我们可以做出剑气来增加气势。如果角色落到地面上,我们可以在脚部做出飞舞的灰尘来增加表现力。这些都可以视为burst粒子效果。

        下面是一些burst粒子效果(burst particle)的例子,由于本人未能找到合适的翻译,后面直接用burst particle英文原文写。

Unity VFX -- (4)创建burst粒子效果

武器射击时枪口的火花效果

Unity VFX -- (4)创建burst粒子效果

玩家到达终点时庆祝的闪烁的礼花效果

Unity VFX -- (4)创建burst粒子效果

 用户挥舞武器时的光影

        这些基于事件的(event-based)粒子bursts,和前面所做的环境特效是不同的,它们是由具体事件所触发的单次粒子的burst效果。

增加一个新的粒子burst

        一个burst particle和enviromental particle是类似的,只是burst particle并不会持续很长时间,并且通常产生于一个较小的区域。我们先向场景中添加一个新的粒子系统。

        1. Heirarchy中,点击右键,选择Effects -> Particle System,创建一个新的粒子系统,重命名为"FX_SmokeBurst",然后我们将它的位置设置到X=0,Y=0.5,Z=0并将旋转设置为X=-90,Y=0,Z=0(仅为案例中的位置,实际是放到火堆上,请根据实际情况移动和旋转)。

Unity VFX -- (4)创建burst粒子效果

        2.  FX_SmodeBurst的Particle System组件中,展开主模块,去掉Looping属性勾选。

Unity VFX -- (4)创建burst粒子效果

         去掉勾选后,粒子会立即停止播放。在场景视图中的Particle Effect窗口中点击Play后,我们会注意到产生了一个5秒钟的粒子效果,随后停止。这是因为Duration属性被设置为了5.目前看起来已经有点burst particle的效果了。

        为了创建出突发的粒子效果,我们将Duration降低为一个很小的值(比如0.05秒),并且将Rate over Time设置为一个很高的值(比如1000 particles每秒),这会在0.05秒内产生50个粒子(1000 * 0.05 = 50)。

Unity VFX -- (4)创建burst粒子效果

        但目前看起来效果还是不理想,我们还需要对Bursts选项进行配置。

        3. 在Emission模块中,将Rate over Time设置为0,这样会避免粒子系统随着时间产生粒子。

        4. 在Emission模块中,点击Bursts部分的“+”,添加一个新的burst。

Unity VFX -- (4)创建burst粒子效果

         这个默认的burst配置,表示在第0秒的时候(Time),burst会产生30个粒子(Count)1次(Cycles),概率是100%(Probability)。Interval值目前没有影响,因为我们只有一次burst cycle。

让粒子像烟一样运动

        前面用了burst后,粒子运动地有点快。接下来我们来让它们停留在火堆内。

        1. 在主模块中,将Start Speed属性降低到0.3秒。

        2. 在主模块中,将Start Lifetime降低到越1秒左右,这个值根据我们的需要调整。

Unity VFX -- (4)创建burst粒子效果

         现在速度问题解决了,但烟看起来就像是从火堆底部外面产生的,我们需要修改一下发射器的形状。

        3. 在Shape模块中,将Shape属性从Cone改为Sphere,然后将Radius设置为大约0.5左右的值。

Unity VFX -- (4)创建burst粒子效果

        目前粒子的移动看起来比较对了,但由于所有粒子都按照相同的速度移动,并且同时消失,这看起来不太自然。我们需要在系统中加入一点随机性来让效果看起来更加真实。

给粒子加一点随机性

         在粒子系统组件的Inspector中,我们可以看到许多属性后面带来一个小箭头,点击后会出现下拉菜单供我们选择。这些下拉菜单提供了用于设置值的额外的选项,包括随机化参数的能力。

Unity VFX -- (4)创建burst粒子效果

        为了避免粒子同时产生和消失,我们可以让Start Lifetime变成随机值。

        1. 点击Start Lifetime属性的下拉菜单按钮,选择Random Between Two Constants

Unity VFX -- (4)创建burst粒子效果

        我们会注意到现在这个属性有两个值了,一个是最小值,一个是最大值。

        2. 输入Start Lifetime的最小值和最大值。比如如果原来的Start Lifetime是1,我们可以将其设置为0.5和1.5,或者0.25和3.0。这个值修改后可以根据实际效果进行调整。完成后,粒子系统中的每个粒子的生命周期会有所不同。

        3. 我们还可以对Start Speed进行类似的操作,让粒子系统中每个粒子的速度也随机化。

使用渐变编辑器(Gradient editor)编辑Color over Lifetime

         为了修改让粒子在其生命周期中能够改变外观,我们需要启用一些新的模块。

        首先,这些粒子的产生和消失非常突兀,看起来很奇怪。我们可以加入一些淡入和淡出的效果。

        1. 选择并启用Color over Lifetime模块,然后展开它。

Unity VFX -- (4)创建burst粒子效果

        2. 在Color over Lifetime模块里,选择白色的矩形盒子,打开Gradient Editor窗口。

Unity VFX -- (4)创建burst粒子效果

        这个横向的条表示了在粒子的生命周期中粒子的颜色和透明度是什么,生命周期从横条的左侧开始 ,右侧结束。因此,默认情况下,粒子在整个生命周期中是白色并且不透明的。我们可以使用Gradient Editor来调整粒子在其生命周期中的颜色和透明度,如下图的蓝色淡入,橙色淡出。

Unity VFX -- (4)创建burst粒子效果

         颜色条上方的标记决定了不同时间的透明度,下方的标记决定了颜色变化。目前我们只需要让我们的例子在开始时淡入,结束时淡出。

        3. 要让粒子有淡入效果,选择左上角的标记,将Alpha值设置为0。

Unity VFX -- (4)创建burst粒子效果

        此时标记变成了黑色,表示颜色是完全透明的。

        这时我们预览一下例子实际的效果,会发现粒子在其生命周期中从完全透明到完全不透明。我们想要的效果是,在开始时例子快速淡入,结束时慢点淡出。我们调整一下箭头标记。

Unity VFX -- (4)创建burst粒子效果

        4.  接下来使用渐变编辑器实现出自己的例子淡入淡出效果。要创建一个新的透明度标记,只需要在颜色条上方空白处选一下即可,要取消一个标记,将其向上或向下移动即可。

Unity VFX -- (4)创建burst粒子效果

编辑Renderer和Texture Sheet Animation

         接下里我们将粒子的纹理做一下调整,现在我们不是简单地用另一个单个纹理来替换默认的粒子纹理,而是使用texture sheet。

纹理表(texture sheets)是什么

Unity VFX -- (4)创建burst粒子效果

         一张纹理表里有一些子图,这些子图可以被循环遍历,实现动态动画的效果(每张子图类似于一个动画的关键帧)。如上图的烟雾效果,有四个子图,循环遍历它们会有烟雾形状变化的效果。

        我们可以使用纹理表来让每一个粒子的动画效果。

Unity VFX -- (4)创建burst粒子效果

随机化纹理表里的纹理

        首先,我们需要将默认的粒子材质修改为包含了纹理表的材质。

        1. 展开Renderer模块,在Material属性出,选择SmodePuffMaterial的texture sheet。

Unity VFX -- (4)创建burst粒子效果

        此时如果在场景视图中放大看烟雾,我们会发现现在每个粒子都显示了整个texture sheet的图案。

Unity VFX -- (4)创建burst粒子效果

         为了解决这个问题,我们需要启用Texture Sheet Animation模块,这个模块允许我们切割纹理表为子图并能够实现动画效果。

        2. 启用并展开Texture Sheet Animation模块。我们会看到一个Tiles属性,这个属性定义了纹理表有多少行和列。

        3. 在Texture Sheet Animation模块中,将Tiles属性设置为X=2, Y=2,这是因为我们所使用的纹理表有两行两列。

        再次点击播放,看看效果。

Unity VFX -- (4)创建burst粒子效果

         我们可以看到,默认情况下Start Frame是0,Cycles是1.这表示每个粒子会走完一遍纹理表的四帧子图(从第0帧开始)。虽然在某些场景下这样已经OK了,但对于烟雾来说看起来还是有点怪。因此,我们让起始帧变得随机化一点。

        4. 将Start Frame修改为Random Between Two Constants,然后设置最小和最大值为0和3.这样每个粒子会随机选择一帧作为起始帧。

        5. 将Cycles设置为0,设置为0后,这个值会自动被改为0.0001,这不会影响结果。

Unity VFX -- (4)创建burst粒子效果

        预览看看效果如何

Unity VFX -- (4)创建burst粒子效果

使用曲线改变Size over Time

        接下来我们让粒子在出现时变大,消失时变小。

        1. 启用并展开Size over Lifetime模块,在Size下拉菜单中选择Curve。

Unity VFX -- (4)创建burst粒子效果

        2. 选择Size属性的曲线预览方框。当选中时,里面的线会变成红色。

Unity VFX -- (4)创建burst粒子效果

        3. 如果我们看不到Particle System Curve窗口,在Inspector的底部将其往上拖动即可。 

Unity VFX -- (4)创建burst粒子效果

        拖上来后,我们可以清楚地看到曲线图形了。

Unity VFX -- (4)创建burst粒子效果

        这张图的横轴表示时间,纵轴表示大小

Unity VFX -- (4)创建burst粒子效果

        默认的曲线是一条直线,表示随着时间增长,粒子会以线性方式逐渐增大。在time 0的时候,大小是0(粒子刚产生),在time 1的时候,大小是1,最大(粒子生命周期结束时)。 

调整曲线

        现在我们了解了粒子系统曲线编辑器的布局了,接下来我们来编辑一下曲线,让粒子的大小随着时间增大和变小。

        1. 首先可以尝试一下粒子系统曲线编辑器底部的预设曲线,选择其中的一种来看看效果。

Unity VFX -- (4)创建burst粒子效果

        我们想要的曲线应该是一个倒U形的曲线(类似于向下开口的抛物线),可以知道这种曲线前段时间粒子会越变越大,后段时间会越变越小。预设曲线里并不存在,因此我们需要自定义。

        2. 选择下图中的预设曲线作为初始曲线

Unity VFX -- (4)创建burst粒子效果

        3.  选择并向下拖动右上角的红色小圆圈(关键帧),让曲线终点的Size变到很小或0

Unity VFX -- (4)创建burst粒子效果

Unity VFX -- (4)创建burst粒子效果

        如果进行预览,会发现粒子变得非常小,这是因为曲线的最大值在0.3秒左右都到了,而且曲线的顶点也比较低。我们需要将曲线调高一点。

        4. 选择左下方的关键帧,我们会看到原点旁边有一个条线,线有一个端点用来调节。

Unity VFX -- (4)创建burst粒子效果

        5. 拖拽上面的线的端点,向上移动,增加曲线高度。

Unity VFX -- (4)创建burst粒子效果

Unity VFX -- (4)创建burst粒子效果

         现在再来看看效果,如果对于效果不满意,我们就继续调整粒子系统的相关模块参数。详细的粒子系统模块的信息,可以参考Unity官方文档:

        Unity - Manual: Particle System modules

        对于制作好的烟雾特效,如果要复用,可以将其制作成预制体。

触发动画

        接下来我们用脚本来检测按键并完成点火和熄灭火堆的效果,同时带上烟雾效果。

        1. 在火堆的粒子系统的主模块中,确保Play on Awake被勾选,这个选项能保证火焰粒子效果能在它被添加到场景的时候自动播放。

        2. 在烟雾粒子效果的主模块中,确保Play on Awake被禁用(不要勾选)。我们要用脚本来触发这个特效的播放时机。

        做完上面两步后,可以看到火焰会保持燃烧,没有烟雾效果。

        3. 在项目窗口中,将CreativeCore_VFX->Scripts目录里的ToggleFireParticle脚本拖到Fire_ParticleSystem_Prefab物体上作为其组件。

        4. 在Fire_ParticleSystem_Prefab的Inspector中,拖动对应的Point Light(prefab的子物体),烟雾特效游戏物体到脚本的属性中。

Unity VFX -- (4)创建burst粒子效果

        点击运行场景,按空格键可以实现点火和熄灭的效果。文章来源地址https://www.toymoban.com/news/detail-421274.html

到了这里,关于Unity VFX -- (4)创建burst粒子效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【实现100个unity特效之7】unity 3d实现各种粒子效果

    【实现100个unity特效之7】unity 3d实现各种粒子效果

    直接调整为【Stretched Billboard拉伸/延伸渲染】 控制雨的大小 创建个材质 材质设置 挂载材质 设置延申效果 第一个叫做Speed Scale:通过比较每个粒子的速度,来去决定每个粒子拉伸/延伸的长度 而Length Scale:通过粒子的宽度,来决定粒子的长度 3d粒子大小随机化 颜色也可以设置随

    2024年01月19日
    浏览(14)
  • Unity VFX -- (5)VFX Graph基础

    Unity VFX -- (5)VFX Graph基础

            在Unity中,还有一种完全不同的创建VFX的工作流,VFX Graph。VFX Graph能够生成出和粒子系统相同或更好的效果。         相比于粒子系统,VFX Graph的一个最大的好处是它能够在保持应用良好性能的情况下,模拟出多得多的粒子。对于VFX艺术家来说,他们的主要职责之一

    2024年02月10日
    浏览(13)
  • 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示R登录成功“,提供一个Ok按钮,用户点击OK后,关闭登录界面,跳转到其他界面,

    完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示R登录成功“,提供一个Ok按钮,用户点击OK后,关闭登录界面,跳转到其他界面,

    如果账号和密码不匹配,弹出错误对话框,给出信息\\\"账号和密码不匹配,是否重新登录\\\",并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面如果用户点击取消按钮,则弹出一个问题对话框,给出信息

    2024年04月10日
    浏览(50)
  • unity多线程Burst+Job System

    unity多线程Burst+Job System

    Unity自己本身UnityEngine所使用的API是不能被多线程调用的,它没有向用户开放线程接口,所以Unity是不能使用多线程的,但是C#中可以使用多线程,Unity使用C#进行脚本编辑,故而Unity也可以通过C#来调用多线程。 JobSystem 是Unity Dots(多线程运行框架)的核心组件之一,也可以把它拿

    2024年02月04日
    浏览(9)
  • Unity绳子插件QuickRopes使用方法(让你快速创建你想要的绳索效果)

    Unity绳子插件QuickRopes使用方法(让你快速创建你想要的绳索效果)

    QuickRope插件介绍 从插件的名字就可以知道,QuickRope,使用此插件可以让开发者快速创建绳子、锁链等链条的工具,并可以模拟这些绳子的物理属性,自动生成绳子,可以编辑绳子属性,创建一条你想要的绳子。 插件demo演示说明 demo1:Edit Rope Renderer 点击左侧列表按钮即可看到

    2023年04月08日
    浏览(9)
  • unity发布exe报错BuildFailedException: Burst compiler (1.2.3) failed running(完美解决)

    unity发布exe报错BuildFailedException: Burst compiler (1.2.3) failed running(完美解决)

    根据网友提供的回答,使用过的方法:            1.多打包几次,无效 2.重启unity,重启电脑,无效           3.删除过Library文件夹,无效           4.发布位置没有中文路径,没有在Assets文件夹下,无效 5.删除多余的插件,无效 最终删除工程文件夹里面的Packages,重新打

    2024年02月16日
    浏览(7)
  • html 粒子效果文字特效

    有两个代码如下: index.html index2.html 下面是运行效果视频: 20240124_21:16:06_1 代码可以直接复制 如果有啥问题可以问我看到一定会回复大家,如果大家喜欢可以作者点赞和关注 大家的支持是我创作下去的最大动力!

    2024年01月25日
    浏览(17)
  • 基于JavaScript粒子流动效果

    基于JavaScript粒子流动效果

    这是一个HTML文件,主要包含了一些CSS样式和JavaScript代码,用于创建一个动画效果。 在CSS部分,定义了一些基本的样式,包括页面的背景颜色、位置、大小等。特别的,定义了两种球形元素(.ball_A 和 .ball_B)的样式,以及它们的动画效果。 在JavaScript部分,定义了一个名为

    2024年02月09日
    浏览(13)
  • unity异常:InvalidOperationException: Burst failed to compile the function pointer `Int32

    异常信息具体如下: InvalidOperationException: Burst failed to compile the function pointer `Int32 ValidateCollinear$BurstManaged(Unity.Mathematics.float2*, Int32, Single)` Unity.Burst.BurstCompiler.Compile (System.Object delegateObj, System.Reflection.MethodInfo methodInfo, System.Boolean isFunctionPointer, System.Boolean isILPostProcessing) (at Lib

    2024年02月06日
    浏览(15)
  • Trapcode Particular---打造惊艳粒子效果

    Trapcode Particular---打造惊艳粒子效果

    Trapcode Particular是Adobe After Effects中的一款强大3D粒子系统插件,其能够创造出丰富多样的自然特效,如烟雾、火焰和闪光,以及有机的和高科技风格的图形效果。Trapcode Particular功能丰富且特色鲜明,是一款为Adobe After Effects用户打造的强大3D粒子系统插件。其主要功能特色如下

    2024年04月26日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包