![Unity 3D特效设计必修课](https://wfqqreader-1252317822.image.myqcloud.com/cover/765/26542765/b_26542765.jpg)
1.3.10 粒子系统控制技巧
中国有句古话叫作“万变不离其宗”。做特效也是一样的,再复杂、再高级的效果也都是通过活学活用每个参数命令制作出来的。至于能做到哪种地步就需要看用户对技术的发掘了。
通过之前对粒子系统的学习,相信读者已经初步掌握了粒子系统的相关知识。那么从本节开始将会讲解在特效制作中一些高级效果的控制技巧。
1.3.10.1 设置粒子系统间的显示层级
在特效制作时,经常需要对特效中的粒子系统进行显示优先级排序,设定哪个粒子系统显示在上、哪个粒子系统显示在下。以地面裂痕与地面纹理为例,由于它们本身相距较近,所以很容易发生显示错误的问题。那么要如何才能保证裂痕显示在地面纹理的上方呢?本节会进行详细的讲解说明。
Step 01首先创建两个粒子系统,取消Shape(发射器形状),并设置它们的Start Speed(初始速度)为0,适当调整粒子大小,将粒子系统Max Particles(最大粒子数量)设置为1,将它们放在同一位置坐标点,如图1-263所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_1.jpg?sign=1739414211-WdZVeT7xuhPWSPfp0dc5BqnQMGQcjh7v-0-fd10f6fed477cfb32355fba4c17c93ef)
图1-263
Step 02为了方便观察,把粒子系统Render Mode(渲染类型)修改为Horizontal Billboard(水平布告板),如图1-264所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_2.jpg?sign=1739414211-HqPPGM40jYFSLaL2qAPaiGc796mhVuBF-0-a336128720c2935441e73e7c358d7d3a)
图1-264
Step 03赋予材质贴图。设置地面材质Shader(着色器)类型为Particle/Alpha Blended(粒子/Alpha混合),设置裂痕材质Shader(着色器)类型为Particle/Additive(粒子/附加),如图1-265所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_3.jpg?sign=1739414211-4bWfeEHOK2W7eqkVsNXRNNB4v3x3LRLV-0-5c0326aadd95404e95076401e8faa920)
图1-265
观察发现当前场景中地面纹理显示在上方,这显然不正确。
如果想要调整渲染排序就需要分别设置两个粒子系统中的Sorting Fudge(排序校正)数值。
Step 04将裂痕纹理粒子系统Renderer(渲染模块)下的Sorting Fudge(排序校正)数值设置为“0”,将地面纹理粒子系统Sorting Fudge(排序校正)设置为“100”。
设置如图1-266所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_4.jpg?sign=1739414211-6nlTfPX4lI6BssmzePYnE8d80MerspbF-0-d6b7bc709e081882981ee869bd423b1a)
图1-266
Step 05再次查看效果,发现裂痕纹理已经显示在地面纹理上方了,如图1-267所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_5.jpg?sign=1739414211-IiYsbadlnk8Grnxj2KiLkrz3hFClCaqp-0-090a3ddd9d0a507933f964e23b25547b)
图1-267
由此得出结论,Sorting Fudge(排序校正)数值相对较小时,粒子将会优先渲染。
显示顺序示例:-200>-100>0>100>200。
注意
设置粒子显示层级时,切忌把粒子系统之间的Sorting Fudge差值设置过小,否则排序效果不明显。推荐将差值设置为200左右。
粒子与模型之间的渲染排序知识扩充:在学习粒子间渲染排序的设置技巧后,那么粒子与模型间的渲染排序要如何调整呢?以Cube(正方体)为例进行演示。
首先单击菜单GameObject→3D Object→Cube(游戏对象→3D对象→正方体)创建一个Cube(正方体),然后创建一个粒子系统,将粒子发射器形状设置为Edge(线性发射),修改角度及位置如图1-268所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4560.jpg?sign=1739414211-yv5CWdQPVLicAs5iMQKaxZyiI0lDaIYd-0-47bdb9f696c2450b1e1bfbb129165764)
图1-268
观察发现粒子直接穿过了正方体(完全挡住了粒子),并且修改Sorting Fudge(排序校正)没有任何作用。
Unity材质系统中的两个知识点:
(1)粒子系统参数Sorting Fudge(排序校正)仅作用于Shader(着色器)为Particles(粒子系统)类型下的材质。
(2)将模型体设置为Particles(粒子)材质后,默认Sorting Fudge(排序校正)数值为0(数值固定,无法修改)。
这次将正方体的材质类型设置为Particles/Alpha Blended(粒子/Alpha混合),如图1-269所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4564.jpg?sign=1739414211-3OPzvkmWRmWy8VMGQp1OgLxqhWLU9Snj-0-3d961df25de7d0ea7222f5b34fb6db95)
图1-269
粒子系统材质设置为Particle/Additive(粒子/亮度叠加),如图1-270所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4568.jpg?sign=1739414211-rCTnmwAhGKlKt9rbaq4pfcZ35b1m4NdS-0-a1e6b31c40a7701907ca3466d08a02ad)
图1-270
再次调整粒子系统Sorting Fudge(排序校正)数值为“-200”,结果显示如图1-271所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4572.jpg?sign=1739414211-b2KB7HCeNecMfYMVScqGWjmkJymJYnP9-0-411caae9b44c18ad7c392b9c2c97188f)
图1-271
观察发现,这次粒子系统已经被优先渲染了。
1.3.10.2 粒子向上逐渐拉伸变细消失
在制作Buff(加益状态)类特效时,常常需要加入一些向上飘动的长条形粒子丰富效果,最常见的处理方式就是直接把Renderer Mode(渲染类型)修改为Stretched Billboard(拉伸形布告板)。虽然这样实现了效果,但是觉得动态感觉还不够。
如果希望粒子向上运动的同时逐渐拉伸变细消失,那要如何设置呢?
如图1-272所示为每个粒子的尺寸变化示例。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16427.jpg?sign=1739414211-MEvQcxZPRU2LMMTV8zVToAYIOa1kSF0V-0-560503902a2ce0ebd88c16a064146414)
图1-272
实现方法:
Step 01首先创建一个粒子系统,设置Start Lifetime(粒子初始寿命)为1,如图1-273所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16430.jpg?sign=1739414211-KCVz6Hs5y36uZzq6KU3Do6a5Oe2yd3Hn-0-d743b0339ab5f54b2c01ce98379737f5)
图1-273
Step 02将粒子系统Shape(发射器形状)修改为Cone(圆锥形),适当调节Radius(发射器半径),将Angle(发射角度)设置为0,使粒子竖直向上运动,参数设置如图1-274所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16435.jpg?sign=1739414211-BiOkUrjv4lLiTE2tcLIC4lZqO47iuQ8i-0-bd95e8514c998abd07644e0fea1554de)
图1-274
Step 03将Render Mode(粒子渲染类型)设置为Stretched Billboard(拉伸形布告板),设置Speed Scale(速度缩放)及Length Scale(长度缩放)数值,如图1-275所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16439.jpg?sign=1739414211-Aril6xmsW5gTuVo9c9lKqDQsNDhbMtTD-0-29385aad93c982993ae5cda83c11ac8b)
图1-275
Step 04开启Size over Lifetime(生命周期内粒子大小的变化控制)曲线控制模式,如图1-276所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16448.jpg?sign=1739414211-KESw1CF7UYlDSRGu55vpU4NLTZD0HwQI-0-79a81a1ec1fcd24a314407f5faf44575)
图1-276
Step 05赋予材质纹理,播放查看就可以看到每个粒子拉伸并消失的效果了,如图1-277所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16452.jpg?sign=1739414211-BxXVIvI8TguuYvJeiOhoABcLUbF8estg-0-7e89f5fc04a3198350e8c668631188fa)
图1-277
注意
(1)Stretched Billboard(拉伸形布告板)中的内置参数Speed Scale(速度缩放)可以控制粒子横向缩放。
(2)在实际项目制作中结合Color over Lifetime(生命周期颜色)修改粒子的透明度过渡变化可以使特效过渡更加自然细腻。
1.3.10.3 粒子的扰乱飘动效果
直上直下的粒子动画太过单调?不知道怎么制作出丰富变化的粒子?本节讲解如何制作出“萤火虫/火星”一样运动的粒子(粒子由下至上运动,运动过程中摇摇晃晃),如图1-278所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16475.jpg?sign=1739414211-P5GHT4OFBQjoOgUUQ4E5mVeRR1zbjCqX-0-c00a38a62f7097fa18404fe27cb7191c)
图1-278
注意
图1-278中蓝色圆点代表粒子,红色箭头表示粒子的速度方向。粒子匀速沿Y轴运动,并且会受到X、Z轴速度的影响。
首先分析下每个粒子在各轴向的速度变化。
由于X、Z轴速度变化相同(都是随机运动),经过分析可以得到下面的运动曲线,如图1-279所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16487.jpg?sign=1739414211-TxBJZARCppgEapIjpt5dle5046RK5Nir-0-9eaa17c794cc2f2e9c8778384248f613)
图1-279
Y方向速度为匀速上升,得到Y轴向的运动曲线如图1-280所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16491.jpg?sign=1739414211-Fn3ekDJhn7vuPqqABaftZTLTSOgf9hiz-0-ede571d41e9aa5f98d37455a95a13d97)
图1-280
当得出三个轴向速度的曲线变化之后,只要将数值赋予粒子系统的速度控制项即可。
Step 01首先单击菜单GameObject→Particle System(游戏对象→粒子系统)创建一个粒子系统,然后将Start Speed(初始速度)设置为0,Start Lifetime(粒子初始寿命)设置为2~3取随机值,修改粒子大小为0.1~0.5取随机值,如图1-281所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16495.jpg?sign=1739414211-f3rSKGS7cMH5qgXAERhkqtKBbwomrpRO-0-95d8aa0be76db9c3e5b8de3436cf3bb9)
图1-281
Step 02将粒子系统Shape(发射器形状)设置为Sphere(球形发射器),适当调节发射器半径,如图1-282所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16500.jpg?sign=1739414211-SnBxdZmJ64XYmjdNgKiMHg1nPKjQHgXS-0-d802582b39c815a8c25bbde7e40436d1)
图1-282
Step 03接着启用Velocity over Lifetime(生命周期速度),将其中Space(解算空间)修改为World(世界坐标)并将轴向速度控制类型更改为Random between Two Curves(两曲线间随机)。之所以设置为Random between Two Curves(两曲线间随机)是为了增加粒子运动的随机变化,如图1-283所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16514.jpg?sign=1739414211-xtrSw0XnYSSYyLG4LgN00sWna919VyHz-0-5d871cc841b4554f3bb1866fb557cce7)
图1-283
Step 04依照之前的各轴向速度曲线的分析结果,将粒子属性Velocity over Lifetime(生命周期速度)速度曲线依次修改如下。
(1)X轴速度曲线,如图1-284所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16519.jpg?sign=1739414211-F962LkDrc2lLUNVzP1CQv17vd0jhLi6R-0-40d70531d4cd76382b18bf4611fcfdfb)
图1-284
(2)Y轴速度曲线,如图1-285所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16523.jpg?sign=1739414211-ohJ2RgvjWpHHRBEdcORmi2kg2MS8vZVA-0-102fca231360798447ed2e27dbc95363)
图1-285
(3)Z轴速度曲线,如图1-286所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16527.jpg?sign=1739414211-PhZDKuKdIln0zrgXzn0bJHEmks9vKx97-0-6257e0f4f728a9938acaf5553a5080db)
图1-286
在曲线编辑器视图左上角可以输入数值,该数值对应的是粒子速度的最大值。
在这里,把X、Z轴速度设置为2,Y轴速度设置为5。(设置位置如图1-286左上角红色框。)
Step 05开启Size over Lifetime(粒子生命周期大小),使用Curve(曲线)控制,如图1-287所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16001.jpg?sign=1739414211-4qXrq6prF1x5hyBxfkdYBlH7qt7Hubdk-0-32cfa666a5bf646d764c0d948587bbc6)
图1-287
Step 06最后播放粒子系统,就可以看到随机运动效果了。
赋予粒子材质贴图后效果如图1-288所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16541.jpg?sign=1739414211-Gqa1SbLxCwjkrQhvLjCD3h7kjviF2aQz-0-5a212ef5b25b12ce1851fcbe7c04d084)
图1-288
注意
由于之前已经分析出了粒子的各轴向速度曲线,所以只要在Velocity over Lifetime(生命周期速度)中修改对应的速度曲线即可。示例效果中粒子速度完全受Velocity over Lifetime(生命周期速度)控制,这也是之前把Start Speed(粒子初始速度)设置为0的原因。
1.3.10.4 设定粒子旋涡运动
很多3D游戏引擎中都有粒子的力场控制功能(例如风场、旋涡场、引力场等),当然Unity 3D也不例外。不过Unity粒子控制起来可没有那么直观,需要动动脑筋才行。那么如何使用Unity模拟出粒子旋涡效果呢?
虽然在Unity中没有那么多的力场类型供选择,但是可以通过对Velocity over Lifetime(生命周期速度)X、Y、Z三个轴向的速度控制来模拟各种力场效果,在本节中将以粒子的旋涡运动效果为例进行演示。
分析以下粒子在旋涡力场的影响下各轴向的运动趋势及速度曲线,如图1-289所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16564.jpg?sign=1739414211-2z1WXWWf5fOjpkjwYr1c3tT1W389Idqq-0-d0742374a6a787e790840bd4838fc13e)
图1-289
从图1-289中可以看出,粒子的运动路径是圆形并且始终绕着圆心运动,那么接下来再分析粒子绕行一个周期各轴向的速度变化。
粒子在X轴方向的运动趋势如图1-290所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16568.jpg?sign=1739414211-ftVBOkRw4Z53WoJCPIHBksoIgyFVlbYQ-0-a184d7af0176cca3f95c5cce814583d3)
图1-290
根据粒子在X轴方向的速度变化,绘制出粒子在X方向的运动曲线。图1-291表示粒子每旋转一周,X轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16574.jpg?sign=1739414211-vmUFgP6kdkKrPtBeCU6hO3SNeh2SIsfO-0-2cc1a102e976e6e0abaa391017a9866d)
图1-291
粒子在Y轴方向的运动趋势如图1-292所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16578.jpg?sign=1739414211-y5lA8deJ4DUDed0XtYG0dbrB9DRQogFW-0-251468222f2a4090f8e8309e5aadaee4)
图1-292
根据粒子在Y轴方向的速度变化,绘制出粒子在Y方向的运动曲线。图1-293表示粒子每旋转一周,Y轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16582.jpg?sign=1739414211-WtT4WoJzcCbaACRuAXc7YDdd30f4Ahnl-0-79b74b40053070f30813b47d0c290e22)
图1-293
注意
当前运动曲线表示粒子在Y轴没有速度变化,如果想要加上Y轴方向的速度变化,则需要对Y轴曲线也进行控制。例如,把运动曲线修改为向上的斜线表示Y方向速度逐渐增加。
粒子在Z轴方向的运动趋势如图1-294所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16606.jpg?sign=1739414211-rK44oHlWxhK799GtqxCIFgRa3RlGRoGr-0-97ca4595e6c902c3033b401afcbd861e)
图1-294
根据粒子在Z轴方向的速度变化,绘制出粒子在Z方向的运动曲线。图1-295表示粒子每旋转一周,Z轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16610.jpg?sign=1739414211-QIhZZlcYO8gx5JK8yAUsgBu88uI8aGbx-0-5663e1bda5f3b8bee27218d895a11959)
图1-295
注意
对比X轴与Z轴的粒子速度曲线发现,X、Z两轴曲线之间(近似)像是偏移了四分之一个周期。
到这里就已经分析出对应三个轴向的速度变化曲线了,接着只需要依照之前各轴向速度曲线的分析结果,将粒子属性Velocity over Lifetime(生命周期速度)速度曲线依次修改设置即可。
Step 01首先单击菜单GameObject→ Particle System创建一个粒子系统,将Start Speed(初始速度)设置为0,Shape(发射器形状)设置为Sphere(球形发射器),如图1-296所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16625.jpg?sign=1739414211-lyU5xlTVlwSFxjfMxck6KXAOrj00YGu2-0-42765346d76ca5f46f91e3b6375d5925)
图1-296
Step 02接着启用Velocity over Lifetime(生命周期速度)将Space修改为World(世界坐标)并将轴向控制类型更改为Random between Two Curves(两曲线间随机)。之所以设置为Random between Two Curves(两曲线间随机)是为了增加粒子运动的随机变化,如果设置为Curve(曲线)则随机效果不明显,如图1-297所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16629.jpg?sign=1739414211-mPhgVF5lZn1uyxTFiKRlu5NQD5DSw8T2-0-b3cd8b37b3c28cdab8bb2ad3f241eacc)
图1-297
Step 03接着按照之前的分析结果,将各个轴向的运动曲线依次修改,设置如下。
X轴速度曲线,如图1-298所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16633.jpg?sign=1739414211-7STBu0jdZwidBFIzyKYM39tBOSDRhZZc-0-36c61d20a9a073e63a6b5521152c2007)
图1-298
Y轴速度曲线,如图1-299所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16650.jpg?sign=1739414211-Ns8uKAdMvhZOHPwMGJHDvUn9d6GJHhnv-0-6f857c94ed346e2e94b0f6c974dbdf10)
图1-299
Z轴速度曲线,如图1-300所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16654.jpg?sign=1739414211-7eabURxr4UlKnna4Iu4JdoxVPv3nELOF-0-d1ad38a182407033cff328bba0440537)
图1-300
Step 04在曲线编辑器视图左上角(图1-300红框位置)可以输入数值,数值对应的是粒子速度的最大值。
在这里把X、Z轴速度设置为5, Y轴速度设置为0。
Step 05最后单击播放就可以看到粒子的环绕运动了,效果如图1-301所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16658.jpg?sign=1739414211-kkXQopFowMHErv9B7GyYV6FDXbXzSbqY-0-c11cb351466d5c1fa5960db945841d24)
图1-301
注意
(1)如果不希望粒子有范围随机效果,则可以将Velocity over Lifetime(生命周期速度)调节为Curve(曲线)单曲线控制模式。
(2)粒子螺旋上升效果与之同理,只需调小当前粒子发射器半径,然后增加Velocity over Lifetime(生命周期速度)Y轴方向速度即可。
1.3.10.5 让粒子上升悬浮一会儿再掉落
制作粒子上升的效果相信大家都知道怎样实现,不过如何使用Unity模拟出粒子悬浮后掉落的效果呢?
下面来分析粒子悬浮的运动趋势,如图1-302所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16676.jpg?sign=1739414211-07UQbU3OtTQ79whuzq7veWhhYm2SksgB-0-f7fb19c6e7c4a2be32eb1d1e680272d7)
图1-302
从示意图中可以看出,粒子速度的主要影响轴是Y轴,不过在实际制作中为了增加粒子的随机效果,通常也会在X、Z轴加入一些速度变化。
观察得出每个粒子在各轴向的速度运动曲线如图1-303所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16697.jpg?sign=1739414211-LR4iFkJwL9bjvosB8RGJEMIK65VbG2wY-0-a470bb2c3a13d3c23d1e96cfecf43432)
图1-303
注意
图1-303中Y轴向显示为粒子先加速上升,然后减速上下浮动,最后匀速下落。
Step 01首先创建一个粒子系统,将粒子系统Start Speed(初始速度)设置为0,Start Lifetime(粒子初始寿命)设置为1~5取随机值,修改Start Size(初始大小)为0.4~1取随机值,如图1-304所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16703.jpg?sign=1739414211-kA09jVz7XTTsBIHW2ynz4P70EpyVHpwX-0-ad8621e1a060b7959a252a79c0300375)
图1-304
Step 02将粒子系统Shape(发射器形状)设置为Box(方盒体),并修改发射器形状边长为Box X=5,Box Y=1,Box Z=0,如图1-305所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16709.jpg?sign=1739414211-bWVjQlrgPblINfJlQ1VcuWCTc4g5WTSx-0-c0182c1580e98d0d982acbf19b98d3a1)
图1-305
Step 03接着启用Velocity over Lifetime(生命周期速度)将Space修改为World(世界坐标),并将数值控制类型更改为Random between Two Curves(两曲线间随机),设置X、Y、Z三个轴向运动曲线如图1-306所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16714.jpg?sign=1739414211-po4Poc1qVCSEUWXQinlPbbOUiVHrdPSW-0-8ef69987c032c25e0b733386ccf34478)
图1-306
X轴速度曲线,如图1-307所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16718.jpg?sign=1739414211-E7WtkE20GqVBck30AwmvV1Uge3TXlXc0-0-0cbacaaae8177dfcbdcf1f5ca75dd700)
图1-307
Y轴速度曲线,如图1-308所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16722.jpg?sign=1739414211-RGLL7CwTgebm8HJPK1Z4YEd0elLFl3E8-0-da011398b7e008e13dd10642267383e7)
图1-308
Z轴速度曲线,如图1-309所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16726.jpg?sign=1739414211-YB67KTYADGWdPjU4Uq8Ja7n6o2hDnYbV-0-c8a44319753df25893a15ba399de81ab)
图1-309
设置Y轴的速度曲线(红框位置)速度最大值为10,设置X、Z轴的速度曲线(红框位置)速度最大值为1。
注意
Y轴速度曲线最大值对应粒子上升最大幅度,在实际制作中可以根据制作需求更改曲线上升幅度等参数。
Step 04将粒子系统Render Mode(渲染模式)修改为Mesh(网格体),选取一个石头模型赋予材质,如图1-310所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16751.jpg?sign=1739414211-sxzhmPvlV82CZO9VtAB2JalKODwyRhLs-0-9b1f11e46db5c1c47fda80d299a68bfc)
图1-310
Step 05修改完成后,单击播放就可以看到粒子运动了,如图1-311所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16756.jpg?sign=1739414211-wElNDALxnGCgQuLheK3vhnMKa0Tozpax-0-9f1372a775ac32a0fe7ab1573fd49848)
图1-311
1.3.10.6 粒子初始运动方向被扰乱产生随机效果
粒子初始运动方向统一,随着时间的增加而逐渐偏离原来的运动轨迹。那么这种刚开始运动方向很规律后来变随机的效果要如何实现呢?
以Cone(圆锥体)形状的粒子发射器为例,以下是默认速度与随机扰乱效果图之间的示例,如图1-312所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16761.jpg?sign=1739414211-Bc87qkLBKHhVMepTj4baQ8CTKC6Q3vnL-0-b2cea4bbefaa1288ab9d085e1a733e88)
图1-312
从示例图中可以看出,粒子在Start Speed(初始速度)方向时,将会始终依照发射器形状来发射。而随机扰乱效果图中,粒子初始沿着自身速度方向发射,但是在生命周期后半部分发生了扰乱/不规律运动。
通过观察得出各个轴向的速度曲线如图1-313所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16765.jpg?sign=1739414211-lVjiqzTayJL407rachbrpax15nWgz7mo-0-0becaa3967e2be21b2511b2c6b3a92d8)
图1-313
注意
由于粒子有沿着发射器形状发射的特性,通过Start Speed(初始速度)控制速度大小,所以这次不需要对粒子X轴方向速度进行设置,直接将Velocity over Lifetime(生命周期速度)中X轴速度曲线设置为0即可。
接着只需按照分析结果,修改粒子系统数值即可。
Step 01首先创建一个粒子系统,将其旋转值归零,如图1-314所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16790.jpg?sign=1739414211-T7dLZUoHwyvSCgYoTsnwnSuI4fI6DLIm-0-7c34cf26fd1995fa2f16c7cf67f92c41)
图1-314
Step 02将粒子系统的Duration(发射周期)设置为0.1秒,取消Looping(循环选项),设置Start Lifetime为2。
Step 03将粒子系统的Start Speed(初始速度)设为10~20取随机值,适当调节Start Size(粒子大小),如图1-315所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16795.jpg?sign=1739414211-4LY98xcO2qJj0uP0xQagqZ1gBPVZKtdx-0-71492d6e6b9591c6624504c7ebf1be91)
图1-315
Step 04将Rate(发射速率)设置为0,开启Bursts(爆发),设置第0秒发射30个粒子,如图1-316所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16799.jpg?sign=1739414211-A6pFPPeaQf7drmW1RJd4OvMLvbMessac-0-a5503012a6c9be835cf51d0632290388)
图1-316
Step 05将Shape(发射器形状)设置为Cone(圆锥体),适当调节Angle(发射角度)及Radius(发射器半径),如图1-317所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16803.jpg?sign=1739414211-xFSOWjPZyWuFHd6nKlrKcmPs0rOZ0OxQ-0-e0f67691119c5f67368523f6e23b05bf)
图1-317
Step 06开启Velocity over Lifetime(生命周期速度),将Space(结算空间)设置为World(世界坐标),如图1-318所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16807.jpg?sign=1739414211-YqxHdeNmhBQkadox1RXxDbH2Bz1Pfqh2-0-8eacb7b38a1d8b61c7bd8ec778b0cb44)
图1-318
Step 07设置Velocity over Lifetime(生命周期速度)为Random between Two Curves(两条曲线间取随机),并调节运动曲线及强度值(红框位置),如图1-319所示。
在这里把Y、Z两个轴向的最大速度设置为30(图1-319中红框位置),X轴向最大速度设置为0。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16812.jpg?sign=1739414211-iBdUcFUyEmsadIgxpk3sZIiGzdVm1JHE-0-0183869f9d3f8b7c5693102fadc446c8)
图1-319
Step 08启用Size over Lifetime(粒子生命周期大小),设置动画曲线为粒子大小逐渐消减,如图1-320所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16827.jpg?sign=1739414211-n0fk4s2i2j72XmfsVYAW1oFcClJFqkyj-0-7b1019a60323ccb939d4f354f4b8037e)
图1-320
Step 09设置相关参数后,播放即可,效果如图1-321所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16832.jpg?sign=1739414211-llP5drh8TYjjepvbf55Yn5w2QZFi3nMe-0-8d58199bb9dc8ea7e8df63051160b618)
图1-321
除了使用速度曲线控制外,还可以用一个更简便的设置方法来实现粒子路径扰乱功能。
大家知道在Unity中除了可以使用速度控制粒子外,还可以通过力场来直接影响粒子,那么接下来将演示用力场控制来模拟这种效果。
Step 01同样创建一个粒子系统(设置参数与上一案例相同,操作不再重复)。
Step 02这次不勾选Velocity over Lifetime(生命周期速度)选项,而改为开启Force over Lifetime(力场控制),将Space(解算空间)设置为World(世界坐标),如图1-322所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16844.jpg?sign=1739414211-IIrgEZ7lDVYzI0LOC2F86aLrsstDI1g1-0-0ece941bc8fbb2344f4b3f7cf181fcda)
图1-322
Step 03设置Force over Lifetime(力场控制)为Random Between Two Constants(两个数值间取随机),设置如图1-323所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16849.jpg?sign=1739414211-kTEiCmbGkXxU7h82m0RHC2SQoLA6cgS8-0-0162e198f219a0a011df7ff61c084806)
图1-323
Step 04播放查看后效果。力场控制一般会比直接控制速度曲线效果更加自然,如图1-324所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16853.jpg?sign=1739414211-zIISr4UJ0iWwsGv6lTvalDex45ovCPMd-0-d418b383ddc9dba120e083149fb38287)
图1-324
注意
随着粒子受力场影响时间的增加,粒子的速度变化也会越来越明显。
1.3.10.7 粒子运动时速度逐渐减慢
在特效之中适量加入减速/限速效果,对提高特效整体的节奏感会起到很大作用(例如喷射出的火星效果等)。在Unity粒子系统中本身就有粒子限速模块Limit Velocity over Lifetime(生命周期限速),通过该模块就可以轻松地实现粒子速度逐渐减慢的效果。
本节以火星飞溅效果为例进行演示。
Step 01首先创建一个粒子系统,将其旋转值归零,如图1-325所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16876.jpg?sign=1739414211-FBMEKxtnAkKcVe9eh3DWjqKhejRKmG02-0-659d650f767e487d41e002384b671378)
图1-325
Step 02设置Duration(发射周期)为0.1秒,取消Looping(循环选项),将Start Lifetime(初始寿命)修改为0.3~1.2取随机值,将Start Speed(初始速度)设置为10~40取随机值,将Start Size(初始大小)设置为0.1~0.5取随机值,如图1-326所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16880.jpg?sign=1739414211-5XNJylI82FpzmKGsZGCqOB8ssh5y9L6R-0-07f18bfa8cb7157466b164f587c9debe)
图1-326
Step 03将Rate(发射速率)设置为0,开启Bursts(爆发)选项,设置第0秒产生30个粒子,如图1-327所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16884.jpg?sign=1739414211-CQuI29vx5fTBD6izECfLMGApwXaB6FUm-0-410dee953402353858ae415f7743132a)
图1-327
Step 04发射器形状Shape切换为Cone(圆锥形),适当调节发射Angle(角度)及Radius(半径),如图1-328所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16888.jpg?sign=1739414211-PbRWQ7Asux6xsIzkQnpIxFEvyx304gtI-0-47a548ced648b5d23ff74a2b6660b74f)
图1-328
Step 05启用Limit Velocity over Lifetime(生命周期限速),设置如图1-329所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16893.jpg?sign=1739414211-cmgK7WYW0VcbPZDgfRbBnfyEedpfxElT-0-8ee4b3c0808044ab37c1711e3389e2a6)
图1-329
Step 06开启Color over Lifetime(生命周期颜色),调节火花的颜色过渡,如图1-330所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16898.jpg?sign=1739414211-iHxRpsdL4QgDSUsCXf7U2MbUMRHtSzJO-0-79069c9aa8f5d8ca5462717a4ec77ba9)
图1-330
颜色过渡设置如图1-331所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16902.jpg?sign=1739414211-IfB2fHFKktK1T2iuSjatkxHAJcVlD2Ax-0-49fe92b8c9a1f2c90fe65f8f48debd22)
图1-331
Step 07启用Size over Lifetime(粒子生命周期大小),调节粒子大小渐变消失,如图1-332所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16907.jpg?sign=1739414211-x5CGIomFZgNrZSje7a3CUuovmJ4H4VGY-0-1fe7992c86f1e5ed9801f4a06489849f)
图1-332
Step 08然后给粒子系统赋予一张火星的纹理贴图,在Renderer(渲染模块)中把粒子Render Mode(渲染模式)设置为Stretched Billboard(拉伸模式),设置如图1-333所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16922.jpg?sign=1739414211-M4gS3ZnL5Q5ANa861MynzcziVJ71rmY3-0-2207d9ff4bebe5c4675a0bf28f038f1c)
图1-333
Step 09最后单击播放,就可以看到火星飞溅并逐渐减速消失的效果了,如图1-334所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_37184.jpg?sign=1739414211-Ey3VuYzn0qsdv1E8s7NFegwAgY2jNhyV-0-56ceb478b1a2dcc28fd0dfd093f58c06)
图1-334
注意
在类似效果中(如飞溅出的石块、碎屑)过渡消失过程最好不要直接使用透明度渐变消失,让粒子由大变小逐渐消失看起来会更加自然。
1.3.10.8 通过粒子系统实现落叶3D旋转效果
普通的落叶效果大家肯定知道如何制作的,但是由于默认粒子类型Billboard(布告板)始终朝向摄像机没法制作出自然生动的落叶,那么要如何制作3D旋转的落叶效果呢?
本节使用的是Unity 5.3.0之后加入的新功能3D Start Rotation(3D坐标旋转)。打开新版Unity 3D并创建一个粒子系统,观察发现在粒子控制项中多了一个3D Start Rotation(3D坐标旋转)选项。这个功能将允许我们设置粒子的初始3D旋转值,同时在控制项Rotation over Lifetime(生命周期旋转)中也增加了一个Separate Axes(分离轴)功能,通过该功能可以分别对X、Y、Z三个轴向的自旋转速度进行控制。
Step 01首先创建一个粒子系统,将发射器向X轴旋转90°,使其向下发射粒子,如图1-335所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16944.jpg?sign=1739414211-oHrrQuPcooe4R26O2iJ6rLjm6hmj6FvT-0-bf9b371cdb0342f492696f6e38f53e21)
图1-335
Step 02将Start Size(粒子初始大小)设置为0.5~1.5取随机值,开启3D Start Rotation(3D坐标旋转),启用Random between Two Constants(两个数值之间取随机值),修改X、Y、Z三个轴向旋转为0°~360°,如图1-336所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16948.jpg?sign=1739414211-rlS4Tfpt41aXrCbcbg0vLIIYcnkB3505-0-6c79a6cfc95edcf3e654dec594b2f323)
图1-336
Step 03适当调整发射速率,如图1-337所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16953.jpg?sign=1739414211-uiSLtY8Q6qYvfOcSIoxRoWJ7fiZh27E6-0-fbac10995c7d4b9238cfe3bc4123bcbe)
图1-337
Step 04发射器形状设置为Cone(圆锥体),将Angle(角度)设置为0,Radius(半径)设置为15,如图1-338所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16968.jpg?sign=1739414211-jK6NiZ18JNu5nQJh0xXv7X2Yk74vWxtm-0-0f722de61e234e845c3b76e93084502d)
图1-338
Step 05开启Ration over Lifetime(生命旋转周期),单击Separate(分离轴),设置为Random between Two Constants(两个数值之间取随机值),修改X、Y、Z三个轴向自旋转速度为80~200,如图1-339所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16972.jpg?sign=1739414211-yNBB44amOXxG31SBwIboJeCBpnkKDvXJ-0-e8036490adf3c754356792c714c7c4a9)
图1-339
Step 06将粒子系统设置赋予树叶材质纹理,播放效果如图1-340所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16977.jpg?sign=1739414211-6dPFFFR4RU1fJQeWUPXabesXMnZ4R61F-0-d9cb1c32ff78a501932cb9b8054694d4)
图1-340
一个简单的树叶旋转飘落的效果就这样制作完成了。通过该功能不但增加了粒子的可控性,还可以让飘落效果更加自然真实。
注意
除了使用3D Start Rotation(3D坐标旋转)属性外,通过粒子系统发射面片同样也可以实现3D旋转的效果。
1.3.10.9 粒子发射模型的妙用
虽然Unity 3D带有动画系统,但是使用动画系统控制模型并不是特别方便。为了方便操作,一些简单的动画可以由粒子系统发射模型体,通过调节粒子参数来制作。例如,常见的刀光效果等。通过粒子系统发射模型也可以实现一些默认模型体不能完成的效果,例如序列动画就可以由粒子发射模型体来完成。
1.粒子系统发射Mesh(网格体)旋转轴控制
在制作特效时,经常需要通过粒子来发射Mesh(网格体)进行控制,这样不但制作方便,也易于调节参数。但是有些时候在3ds Max中制作网格体导入Unity后,不能很好地控制旋转轴。那么如何才能让网格体按照规定的轴向旋转呢?
下面以一个平面为例,希望该平面体沿着世界坐标Y轴旋转运动。
Step 01首先在3ds Max中创建一个简单的模型体,赋予一张贴图,效果如图1-341所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16996.jpg?sign=1739414211-zoUYles9TX9cmFxvLQdixOrSTujk0AmK-0-f1f9b27bf535a938811e9b24068e720d)
图1-341
然后直接将模型体导入到Unity中。
Step 02在Unity中创建一个粒子系统,将粒子系统的Start Speed(初始速度)设置为0,设置粒子系统Max Particles(最大发射数量)为1,如图1-342所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17006.jpg?sign=1739414211-OeReqgSicjEim7D0CDY8Hgen93mSxVhw-0-7320dc60a4dc4f35151e72a7402814cd)
图1-342
Step 03开启Rotation over Lifetime(生命周期旋转),设置一个自旋转速度,如图1-343所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17010.jpg?sign=1739414211-b2c4UwD4k2hfbFtgyXKVOx00LQ3NnVWz-0-58e479b4f44542a0d316696c71dd0e0d)
图1-343
Step 04设置粒子渲染类型为Mesh(网格体),选取在3ds Max中制作的平面网格,如图1-344所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17015.jpg?sign=1739414211-PDYvUDgsC0TWCUiraXAIjuFVemBPavz0-0-2e86804f2af1d10a246c9c975c70d8e6)
图1-344
Step 05赋予粒子系统一张贴图纹理,并播放,如图1-345所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17020.jpg?sign=1739414211-AfcRwKqX6hfioE4GEYCreLH1Ul8fB0Th-0-c97011b43cb5976bda184b1b77505a0b)
图1-345
观察发现当前网格体的旋转方向并不正确。
那么要如何才能让平面网格沿着Y轴旋转呢?
其实很简单,默认粒子系统的发射器形状为Cone(圆锥体),只需取消粒子发射器形状,再次播放粒子系统就可以正确旋转了。
Step 06取消粒子系统的发射器形状,如图1-346所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17025.jpg?sign=1739414211-rhY0M5g4ZQeDqPPfWxKUA9zEia5PaKuT-0-add62e44f2b37dee6c63cacf69e2d107)
图1-346
Step 07最后效果如图1-347所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17029.jpg?sign=1739414211-FmkMZDCHReSzq4KIcIKGZ3mklJSMmi1z-0-c87578dd8656ab4248202a17fa66e82c)
图1-347
观察发现平面体已经在正确的方向旋转了。
提示
如果粒子发射模型体的旋转轴不正确,除了取消发射器形状外,还可以尝试将粒子发射器Shape(形状)设置为Box(方盒体),并设置Box X、Box Y、Box Z为0。如果这两种设置方法都不行,那就需要在3ds Max中修改模型影响轴了。
2.模型播放序列图
在Unity中模型体默认是不能直接使用序列图的,不过有两种方案可以解决这个问题。
一种是使用粒子系统发射Mesh(网格体)从而实现序列图的播放效果,而另一种是使用脚本来实现。在本节中将学习使用粒子系统在模型上播放序列图的方法。
注意
大家知道粒子的其中一种渲染形态为Mesh(网格体),利用这个特性结合粒子系统内置属性Texture Sheet Animation(纹理篇动画)可以实现序列播放效果。
Step 01首先创建一个粒子系统,取消Looping(循环)循环选项,将Start Speed(初始速度)设置为0,设置Start Lifetime(粒子初始寿命)为1,如图1-348所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17060.jpg?sign=1739414211-RMb2aIKE2anHEpgHqSXtIzOzjH5xWu2x-0-e69a44aca79cb87bc9a14c686e712f49)
图1-348
Step 02将粒子系统Rate(发射速率)设置为0,开启Bursts(爆发),第0秒发射一个粒子,如图1-349所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17064.jpg?sign=1739414211-Lm9rqnzwPpjw53GYhQ2xgafnQJZuBtRN-0-04863953487724cbb86cb58a701fa062)
图1-349
Step 03取消Shape(发射器形状),如图1-350所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17068.jpg?sign=1739414211-6h18cyPMhKVzNET8Zs40qU0DQeR6Aez2-0-b00e18f8a534a44b474f0520dab550df)
图1-350
Step 04将粒子渲染类型Render Mode(渲染模式)设置为Mesh(网格体),单击后面的圆点(如图1-351所示),拾取一个模型体(也可以导入一个自定义模型体)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17073.jpg?sign=1739414211-veRiX33uDbmzq7CqFwq1L4eC2v6J6DVH-0-304add00e2ae49909acd99a39f7f43d1)
图1-351
Step 05赋予粒子系统材质,开启Texture Sheet Animation(纹理篇动画)功能,根据贴图排布来设置Tiles(平铺分布)数值。
图1-352所示为示例贴图及选项设置。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17077.jpg?sign=1739414211-SLwtTtQPp1MR9Andpm5BxWsbBUHVVKW8-0-1559ef8f4d867cb853bad04084ea0cf2)
图1-352
Step 06设置完成后,播放粒子系统就可以查看效果了,如图1-353所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17093.jpg?sign=1739414211-PP7r9jqEaueDpcaDafwzoea4G3gpzPrC-0-e1bffdfe8c6f3d3a99533b717fb153b4)
图1-353
注意
(1)如果想进一步对序列播放速率进行控制,则可以在粒子属性Frame over Time(时间帧)中通过修改动画曲线来调整。
(2)在之后的脚本篇中会讲解运用脚本来实现模型播放序列图的方法。
1.3.10.10 批量修改粒子系统参数
在制作一些群体效果或者复杂特效时,往往会同时使用多个粒子系统。后期修改过程中需要反复调节多个粒子系统的数值,这样不但非常耗时,并且工作效率低。那么有没有一种可以批量修改粒子参数的方法呢?在本节中,就将学习批量修改粒子系统参数的方法。
以特效Effect_Scene_penquan为例,当前希望把特效所有粒子系统中的Max Particles(最大粒子数量)统一设置为10,那么应该如何去做呢?
Step 01首先选择所有粒子系统,如图1-354所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17107.jpg?sign=1739414211-yu2ZqH3EFe9YWir74jDpHdeWi8ysNafP-0-a32dddb2d6ae44886218721138f44e16)
图1-354
全选后发现,虽然在Inspector(检测视图)中可以修改粒子系统的Transform(变换)参数,但是粒子本身的其他属性参数却被隐藏无法修改。
Step 02单击Inspector(检测视图)右上角,切换编辑模式为Debug(调试模式),操作如图1-355所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17111.jpg?sign=1739414211-QqNoINrbqlA50Mxlvb4TwmwQdXNtfiLF-0-c0aabb82147556c9eca63b3b9420e569)
图1-355
切换为Debug(调试模式)后,界面显示如图1-356所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17115.jpg?sign=1739414211-xEbnzB2aAprzhdaNcOaQMwKN69mus0rF-0-40ec1bdf9331496551dd067363df0ce4)
图1-356
这时发现许多默认Normal(常规模式)下没有显示的相关参数现在都被显示出来了(显示的位置和名称可能与之前会略有不同)。
注意
在Debug(调试模式)下通常会比Normal(常规模式)多出一些设置项,例如Instance ID等。
Step 03然后在属性列表中找到Max Num Particles(Max Num粒子)属性,该参数与Normal(常规模式)下的粒子参数Max Particles(最大数量)意义相同,将其设置为10,如图1-357所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17141.jpg?sign=1739414211-YxkiGE8QohSvh0ptqCX7iDmzhm1tJ62o-0-33267a171b1d7882382b2e77ca5d7bdc)
图1-357
Step 04把模式切换回Normal(常规模式)并查看粒子系统相关属性,如图1-358所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17146.jpg?sign=1739414211-3OZ9e7cI5B3eZKL3Qmx9eo0UiHTPiPpM-0-b7f1e84b36092dd0f0f912cbae677390)
图1-358
Step 05检查发现所有粒子系统中的Max Particles(最大数量)都被统一设置为10(如图1-359所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17150.jpg?sign=1739414211-6uz4F01LsFW3TDDeoQPhcBQdB4xPymWk-0-ff4ad4578c2984b8a3e0378e69a48a72)
图1-359
也可以使用该方法批量修改粒子系统中的其他属性参数。
注意
Debug(调试模式)是一个默认不开放的编辑模式,往往在Debug(调试模式)中可以修改一些Normal(常规模式)下无法修改的信息,实现一些意料不到的功能(如切换动画文件的新旧版本等)。
1.3.10.11 粒子系统的发射间隔控制
在特效制作中,可能会遇到这样一种情况,效果中需要粒子系统持续播放一段时间,然后停止发射,隔一会儿后再重新开始发射,并且需要这个过程无限次循环。粒子系统本身并没有持续发射间隔控制功能,唯一的类似功能Bursts(爆发性发射)也无法满足持续性发射的效果要求。那么这个效果要如何实现呢?
以之前的一个项目效果为例:
需要实现鲸鱼浮出水面后开始喷水,喷水结束后下潜(鲸鱼浮出水面总时长5秒,水下停留时长同样也是5秒)。
鲸鱼每次喷水持续时长4.5秒,停留0.5秒后下潜到水底。鲸鱼的动画是上下潜水(间隔规律)无限循环,如图1-360所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17167.jpg?sign=1739414211-aq9Iid12obGy2egk50VlEE5uhiVkFIZO-0-603965d42ca36767a2c40a7268e57108)
图1-360
测试了几种方法:①使用粒子系统Bursts(爆发)功能来模拟,但是由于鲸鱼需要持续喷水的时间较长,使用该命令并不满足要求。②使用动画对粒子系统Position(移动)K帧,在鲸鱼上浮时将粒子系统放置在鲸鱼喷水的位置,当鲸鱼下潜时跟着鲸鱼一起下潜。但是这样处理,鲸鱼就没有“开始/停止”喷水的过程了。并且当鲸鱼第二次上浮时,未到水面上就开始喷水,所以也不满足要求。
经过反复研究测试,最后总结出如下两种控制粒子系统发射间隔的方法。
第一种:通过动画系统实现。
Step 01以使用粒子系统制作喷水效果为例,首先创建两个空的Game Object(游戏对象),将喷水特效放置在其子层级,命名为“Effect_penshui”/“Jingyu_penshui”,如图1-361所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17187.jpg?sign=1739414211-lsNbWPtHNWcdj4aMJNkL3lchJoUTOROw-0-06e685fd72312f6f8108c4abe00f6a6f)
图1-361
图1-361中Effect_penshui与Jingyu_penshui都是Game Object(空对象)
Step 02打开Add Curve(添加曲线),单击Jingyu_penshui前的三角符号,选择展开项中的Is Active(激活)选项,如图1-362所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17202.jpg?sign=1739414211-6UdgSTejcdP4VMrJiNEC3UMcJImmd8pX-0-1ba4c30f4e7e2f5a124a7b87f30900cd)
图1-362
注意
勾选动画文件中的Loop Time(时间循环)选项,将其设置为循环模式(默认勾选状态)。
Step 03接着对Is Active(激活)选项属性进行K帧,设置前5秒是开启激活状态,5秒后关闭激活选项,如图1-363所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17206.jpg?sign=1739414211-ki2RJBnGcFG0KsVTFnffqdw36oDRv0dp-0-e3bab58a03b45ae3b53f29048b9cf67c)
图1-363
注意
勾选Is Active(激活)选项是开启激活,去除勾选Is Active(激活)选项是关闭激活。
Step 04接下来再添加一个新的关键点来设置停止播放的持续时间,如图1-364所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17220.jpg?sign=1739414211-iWMOXsWTbHD8MzKQ3w8lqhh89hRs9MUx-0-1592ad4be0eb894614bb0f21b67d07cb)
图1-364
现在粒子系统在前5秒是激活状态(开始喷水),后5秒是非激活状态(停止)。由于动画文件是循环模式,所以在游戏运行后,粒子激活5秒后关闭,再等5秒后重新开始激活播放。
Step 05然后将喷水效果中所有粒子系统的Duration(发射周期)设置为3.5秒,设置每个粒子的最大寿命是1秒,并取消粒子系统的Looping(循环选项)。
也就是说,鲸鱼每次完整的喷水过程(从开始喷水到喷水结束)需要持续4.5秒左右。
Step 06最后运行游戏,一个无限循环的喷水效果就制作完成了。
注意
该方法不仅适用于粒子系统,同样也适用于“模型动画”“材质球动画”等各类型效果的重复激活播放。在项目中也可以根据实际需求来调节粒子周期、激活时间以及停止时间等参数。
第二种:通过粒子系统Emission(发射器选项)实现。
Step 01同样以使用粒子系统制作喷水效果为例,首先设置粒子系统的Duration(发射周期)为10秒,Start Lifetime(粒子初始寿命)设置为1秒,开启Looping(循环选项)。
Step 02将粒子系统Emission(发射器选项)中的Rate(速率)修改为Curve(曲线调节模式),如图1-365所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P119_17248.jpg?sign=1739414211-AxMusf8ny2AlH5xdLREy9kTP2TXrKpfr-0-8d62bbf2787c493bc37c42821eeacdc0)
图1-365
Step 03接下来调节Emission Rate(发射速率)曲线如图1-366所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P119_17260.jpg?sign=1739414211-41WtUKNa9KfZ11IzoXpNEZamaO4K5NG4-0-4df825aa070961ca36edb82e04396737)
图1-366
注意
Curve(曲线调节)视图下侧的0~1对应粒子发射周期0~10秒。
曲线横/纵两个轴向分别表示发射速率与发射周期。
Step 04将粒子系统Rate(发射速率)最大值设置为10(图1-366红框位置),设置前3.5秒发射速率为10,3.5秒后发射速率为0(停止发射)。
注意
粒子持续发射3.5秒,每个粒子的寿命为1秒,刚好整个发射过程持续4.5秒。10秒后(满一个发射周期),粒子将再一次重新发射。
Step 05播放粒子系统,一个无限循环的间隔播放效果就制作完成了。
注意
该方法仅适用于粒子系统,如果特效中含有模型动画或者材质球动画等,则建议使用第一种方法来实现。
1.3.10.12 增加粒子系统SubEmitters(子发射器)数量
当制作一些复杂的拖尾效果时,为了增加细节,往往需要使用多个SubEmitters(子发射器),那么当默认数量不够用时应该如何处理呢?
以Brith(产生)出生时产生子发射器为例。
Step 01首先创建一个粒子系统,开启SubEmitters(子发射器)模块,添加两个子发射器,如图1-367所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17304.jpg?sign=1739414211-dY2QyDw3SNJuTxvjMPxT3SRV3oUYdClw-0-c2f14acb328e4773893874406dad5d83)
图1-367
观察发现默认最多只能添加两个子发射器。
Step 02取消这三个粒子系统的Shape(发射器形状),取消Looping(循环选项),将粒子系统Lifetime(粒子寿命)为20,将Start Speed(初始速度)修改为0,调节Max Particles(最大粒子数量)为1,如图1-368所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17311.jpg?sign=1739414211-NpASeom1csxiEDLYlO5dN698lJBy6jNE-0-f84fecf4ea23ea269a9a4e1762d565cf)
图1-368
开启Bursts(爆发性发射)第0秒发射一颗粒子,如图1-369所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17315.jpg?sign=1739414211-PrAoeNwpBj5srQ5EQ8eIroAuvpJdBtCd-0-2224594a37d6d8c6b549994d75df0807)
图1-369
注意
(1)以上设置应用于Particle System(粒子系统)及两个SubEmitters(子发射器)系统。
(2)粒子系统Lifetime(生命周期)设置为20,表示粒子拖尾的持续发射时长为20秒,可以根据需求调节该数值。
Step 03开启两个子发射器SubEmitters(子发射器)的子发射器模块,如图1-370所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17330.jpg?sign=1739414211-iZoShfpkaU5XaYdl03Bbf47QpUF81lQL-0-058525ce07c9bce2ee0dca8861aa21a1)
图1-370
Step 04将特效根级别与父级别的Simulation Space(解算空间)设置为Local(局部坐标),将四个子级别的Simulation Space(解算空间)设置为World(世界坐标),如图1-371所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17334.jpg?sign=1739414211-Dnzzsy3QuBInazOpERqEzX2hVRxMRlgg-0-f622cae446c819a2814847fcecb2be2c)
图1-371
Step 05为了方便区分,将这四个子发射器的粒子颜色分别调整为红、黄、蓝、绿,并将这四个子发射器粒子系统的Start Speed(初始速度)设为1,如图1-372所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17339.jpg?sign=1739414211-jcQC6rngfAGuoUPmk3hldpPNz9pO9hrU-0-6de38c5bb48ae4a15910d082b63b2b0a)
图1-372
Step 06最后运行游戏,单击Simulate(播放粒子系统),在场景中拖曳特效根级别。
注意
运行游戏后,需要单击Simulate(播放粒子系统)(如图1-373所示)才能播放其拖尾粒子效果。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17366.jpg?sign=1739414211-LNpnxUSCiFv40M6zUcjQnbwMQquU1goG-0-8c183f59e5b34afc8c46f1b5a9a13d9f)
图1-373
观察发现,拖曳后产生了粒子拖尾(如图1-374所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17370.jpg?sign=1739414211-TzT6snUOP60UOkXf6ekudhluNd5Gr7k5-0-c5ea07bd29a7aa70740d7503af318ed3)
图1-374
注意
通过使用该方法可以任意增加SubEmitters(子发射器)数量,但为了效率考虑,建议不要添加过多。