开启左侧

[教程] Unity2018粒子系统全息讲解,坑深慎入(4)

  [复制链接]
200357v0p9jufzelwj0uuj.jpg
声明!声明!声明!这不会让你对制作想法上有什么提升!没有提升!不会提升!纯粹知识研究,非实用派人士专,强迫癌晚期解药,桌面必备文档。


将从头至尾对Particle System的每个功能都分析解释一遍,每个值的含义和一些背后的知识。当然能力有限,有些地方也没有完全弄明白或者完全理解错了的,希望各位大神指出我会及时更正。


unity2018粒子系统全息讲解,坑深慎入(1)


(出处: CGJOY)

unity2018粒子系统全息讲解,坑深慎入(2)


(出处: CGJOY)

Unity2018粒子系统全息讲解,坑深慎入(3)


(出处: CGJOY)


————————————————————————————————————————————————————————————————————————————
图片小片动画Texture Sheet Animation

---------------你要的序列图
Mode(模式):提供了Grid(格子)和sprite(雪碧)两种模式。
1.png
Tiles(平铺数):一张图标被切割的数量。x是横轴的数量,y是纵轴数量。
Animation(动画):有两种形式,
         Whole Sheet(全部小片):从左至右、从上至下播放整个图片里的小方框。
         Single Row(单排):只播一横排,因为可能会有很多排。当勾选了Random Row(随机行)时,随机选中一行播放。不够时,有一个Row值供手选使用哪一行。
Frameover Time(时间内的帧数):通常设置曲线是有意义的,设置数值只会显示固定的一帧(并非是帧,而是第几个小图)。注意的是小图片的第一张的序号是0
StartFrame(开始帧):从第几帧开始播放,仍会完整读取序列。
Cycles(循环):正常图片的整个循环是在粒子的生命时间内循环一次。这里可以改变循环几次。
Flip UU跳转:每个小图片在U也就横轴方向会产生左右翻转、1是全部翻转。0是没有翻转、中间值是随机翻转。
FlipVV):每个小图片在V也就纵轴方向会产生上下翻转、1是全部翻转。0是没有翻转、中间值是随机翻转。
EnabledUV channels(激活UV通道):选择要使用模型的UV通道,通常在发射模型时有意义。
2.png

Sprites(雪碧)模式使用一个图片的sprite循环播放。这个sprite应该是一个被切分好的图片,才有意义。其次,将sprite指定到粒子系统后,会替代粒子系统使用的材质球,你看到的图是sprite的序列图。指定方式是一个图片被切成很多个小块,需要将每一个小块都放到一个新建接口中。
3.png


————————————————————————————————————————————————————————————————————————————
灯光Light

---------------粒子产生灯

4.png

Light(灯):设置一盏灯,使粒子出生时同时有实时光照的效果,实质上就一个粒子一盏灯。
Ratio(比率):产生的粒子会有多大比例有灯照,0是一个也没有,1是全部粒子都有。
RandomDistribution(随机分布):当Ratio不是1时,设置产生灯照的粒子的分布情况,随机就是随机分布,勾掉则会根据粒子情况每隔多少秒出现一个灯照。
UseParticle Color(使用粒子颜色):灯照颜色使用粒子的颜色。
SizeAffect Range(尺寸作用与范围):粒子的尺寸会影响灯照的范围。
AlphaAffect Intensity(透明度作用于亮度):粒子的透明度会影响灯照的亮度,调整粒子的生命颜色时就可以实现控制灯照的亮度了。
Rangemultiplier(范围乘值):增大灯照的范围。
IntensityMultiplier亮度乘值):增大灯照的亮度。
Maximum Lights(最大灯数):因为是实时光照。灯的数量可能会根据粒子数量产生非常多,消耗会非常巨大。这里的值控制最多可以有多少个灯照被创建。
5.png

————————————————————————————————————————————————————————————————————————————
拖尾 Trails

---------------流星划过
理解下拖尾的含义,一个物体从A点到B点,跟随物体每隔多长时间(Minimum Vertex Distance)产生一次网格,是串联起来的。这个网格开始消失的时间是(lifetime)多久。其次还有颜色、宽度等信息。
Mode(模式):提供了ParticleRibbon模式。
6.png

Particle(粒子):使用这个模式使粒子产生一个拖尾。
Ratio(比例):粒子会产生拖尾的比例。1是全部粒子都会有拖尾。
Lifetime(生命):拖尾的生命值。就是拖尾开始消失的时间。1是和粒子生命一样长。注意的是,默认Die with particle勾上时,粒子消失后拖尾也会消失,这个消失跟拖尾的Lifetime没有关系,只是被摧毁了。拖尾的生命时间就是开始消失的时间。
Minimum Vertex Distance(最小顶点距离)mesh的两个顶点的距离。也就是细节程度,值越小,效果越好。实质上是产生一次mesh的时间。当然时间越小整个生命里产生的网格越多了。早先版本trail的产生是按每多少帧产生mesh的数量算的,所以会造成一旦卡了,trail就完全没法看了,这里是按时间算的,不用担心掉帧了。
WorldSpace(世界空间):勾上时,这个拖尾会受到空间位移的影响。不勾是,只会相对于自身粒子系统进行拖尾。
Diewith particle跟随粒子消亡):勾上时,粒子消失后,拖尾一起消失。
TextureMode(图片模式)
         Stretch(拉伸):在整个mesh上拉伸整张图的U
         7.png

         Tile(平铺):U不会被拉伸,超出部分是重复平铺。
         8.png

         Distribute Per Segment(每段都分配):和Stretch效果差不多,但计算的切入点不一样,
      9.png
Stretch是先计算出trail的长度,在拉伸图片。这个是先计算又多少个网格,每个网格上应该分配多少图片的信息。理论上应该更精细。
        Repeat Per Segment(每段重复):每一个网格上分配一个图片。
         10.png

Sizeaffects width尺寸影响宽度):勾上时,默认宽度和粒子大小一致。而且宽度也随粒子大小变化了。
Sizeaffects lifetime(尺寸影响寿命):勾上时,生命时间(也就是开始消失的时间)会受到尺寸的影响。当粒子变的巨大和很小时,智能的缩减拖尾时间很有必要。
Inherit particle color(继承粒子颜色):勾上时,拖尾颜色会受到粒子颜色的影响。
Colorover lifetime(生命期内颜色):拖尾生命时间内的颜色情况,是时间层面的,使用Gradient模式可以设置随时间变化颜色,开始是什么色,后面是什么色。跟粒子生命时间内颜色类似。
Colorover trail(拖尾颜色的情况):拖尾自身的颜色变化情况。是空间层面。使用Gradient模式可以设前段是什么色,后段是什么色。注意和Color over lifetime区别。
Widthover trail(拖尾的宽度情况):重要调节,来真正影响拖尾的宽度的值。曲线模式下可调节拖尾的前后宽度,横轴是整体长度,竖轴是宽度。
GenerateLighting Data(生成光照信息):让trail可以收到光照。
11.png

Ribbon(丝带):让产生的粒子链接起来。目前来说功能很匮乏,效果很尴尬。
Ribboncount(丝带数量):就是使用几条丝带来将所有粒子链接起来。1就是只有一条。当丝带数大于场景中的粒子数时,就不在会产生粒子。多说下粒子的事情,每个粒子系统的粒子都是有序号的,假设一个序号为1的粒子2秒后消失,内存上说但他并不是真的消失了,它会从新回到发射器原点,模拟一个新的粒子出生,拥有新的生命和速度大小等。而这里的丝带链接目标是和序号有紧密关系的(坑深不挖)。所以当你看到条带数是粒子数的一半时,是两两链接的。
SplitSub Emitter Ribbons(分离子发射器的丝带):就是如果当期粒子系统是一个子发射器。让每个粒子产生的新的发射器和其他产生的发射器不关联。
12.png

————————————————————————————————————————————————————————————————————————————
自定义数据Custom Data

---------------请关闭

要用到脚本才能起作用
————————————————————————————————————————————————————————————————————————————
渲染器Renderer

---------------最后一步


简单说下unity里面的坐标轴。
回忆下数学。
在纸上一个两个方向的坐标。一个横轴、一个竖轴。横的是x轴、竖的是y轴。
如果这个坐标是3d坐标。还有一个轴,它是从纸上指向你的一个轴。这就是z轴。
将这三个轴放到unity中就是unityxyzUnity就是继承了这样的概念从纸里指向你的轴是z轴。而y轴则朝上的。
Z轴通常也是一个游戏物体的正方向或前进方向。所以一个粒子系统发射的正方向也是z方向,这就是我们用创建一个Cone发射器时需要x轴倒转90°才能冲着天发射,是让Z轴朝上。
13.png     14.png

数学3d坐标和unity坐标。
而类似于max中坐标系统是xy是在地面上,z轴则是向上的。
RenderMode(渲染模式):提供了几种粒子的显示模式。

Billboard(公告板):永远朝向摄像机。粒子其实是一个plane,只是他的z轴(反方向)每时每刻都朝向摄像机而已。
15.png

NormalDirection(法线方向):改变粒子片的法线方向。当粒子受到光照时(关键是shader要支持),将一个片模拟成一个受光照的体积。
16.png

Material(材质):粒子的材质。图片通过shader生成一个材质。
TrailMaterial(拖尾材质):拖尾材质。
Sort Mode(排序模式):给粒子排列先后顺序,它是针对粒子系统自身发出的粒子进行排序。
而且粒子材质球是可排序的才有意义。就是材质要是透明材质才行。         
         None(无):不排序,混乱的。
         ByDistance(依据距离):根据粒子距离摄像机的远近排序。比较常用。
         Oldestin Front(最早在前):谁先出生排列在前,后出生排列早后。平面上可能有用。
         Youngestin Front(最新的在前):谁后出生排列在前、后出生排列在后。
SortingFudge(排序欺骗):作者的意思大概是说这是一个欺骗性的排序,它让粒子假装往前或者往后移动的多少距离。负值是原理镜头、正值是靠近镜头,靠近镜头的肯定会在前面。当然材质球也必须是可排序的材质球才行。例如相加、相乘、透明混合等。
Min particle Size(最小粒子尺寸):简单说小于这个值的粒子都会被放大到这个值这么大。这个值是屏幕大小,值1就是一个平面那么大。做屏幕特效时有用,不必去把粒子设的很大,用这个就能准确设定大小。
17.png

Max particle Size(最大粒子尺寸):这个值同样只屏幕大小。当粒子显示大于这个值时,会被缩小。避免细小的粒子冲向摄像机时变的巨大。
Render Alignment(显示队列):指定粒子朝向方向,也就是z轴朝向。
         View(视野):粒子片z轴朝向你观察的方向。
         World(时间):粒子片z轴朝向世界的z轴。
         Local(自身):粒子片z轴朝向粒子系统自身的z轴。这时就可以旋转它了,就是真实粒子片的状态。
         Facing(面朝):粒子片z轴朝向摄像机位置。和view效果很像,但是却不并不一样。这里朝向时,会去掉透视关系,只是拿z这个面朝向你。Mesh状态下能看的更清楚。
         Velocity(速率):粒子片z轴朝向自身运动的方向。
18.png

Pivot(中心点):设置了三个方向可以调节中心点。在Stretched Billboard会有大用。            
Visualizepivot(可视化中心点):使粒子的中心点显示出来。粒子真正的运行位置,调节pivot时有用。
Masking遮挡):是关于sprite遮挡的功能。简而言之,sprite有个组件可以把图片做成一个遮照放到场景中。处理超出这个遮照范围外就会消失,或者只在范围外显示。通常用于平面类型特效上面。
         No Masking(无遮挡):不会有遮挡。
         VisibleInside Mask(遮照内部可见):只在Sprite Mask内部显示粒子。超出不显示。
         VisibleOutside Mask(遮照外部可见):只在Sprite Mask外部显示粒子。内部不显示。
19.png

CustomVertex Streams(自定义顶点流):程序相关,脚本调用。主要处理顶点色。
CastShadows(投射阴影):可以投射阴影。但材质必须是不透明类型的。
         Off(关)On(开)Two Sided(双面)shadowsOnly(只有阴影。-
ReceiveShadow(接收阴影):公共版模式下意义不大因为是一个片接收到阴影并不舒服,建议mesh模型下使用。
MotionVectors(移动向量):和摄像机的运动向量有关。不太明白意义是什么。可以确定的是和特效制作没关系了。
Sorting Layer(排序层):设置一个层处理前后关系,越早创建的层越靠后,越新创建的层越靠前。
Orderin Layer(层中排序):在这里可以在同一个Sorting Layer层里设置前后关系。值越大越靠前。
要注意这两个功能和Sorting Fudge是有区别的。Sorting Fudge是假设他在场景中的位置,负值是离镜头较远、正值是离镜头较近。近的肯定是会覆盖掉远的,从而调节先后关系。而这里是真正更改渲染顺序的。在unity中整个排序是这样的,先计算shader上面的顺序,然后是Sorting layer的前后,然后是Order in layer大小,最后才是Sorting Fudge的影响。
LightProbes(光探测):
ReflectionProbes(反射探测):
这两项和其拓展出的功能都和灯光探测有关,坑深不挖。特效制作基本不用。

Stretched Billboard(拉伸公告板):公共板会朝一个方向延伸。

打包文档。看官老爷们,看在码字儿辛苦份上,打赏点。

游客,本付费内容需要支付 12张CG券 才能下载支付



点击标签,内容一促即达。

有大鱼
自我介绍空空的,快来写点什么吧~
未设置城市
其他作品 (10)

Unity2018粒子系统全息讲解,坑深慎入(4)

27598 116 5年前
您需要登录后才可以回帖 登录

全部评论
肯定要打,打打打,多打点,这个真心很棒,很有用
5年前 回复
谢谢楼主分享,这么认真整理的东西,敬佩啊。
5年前 回复
支持
5年前 回复
感谢楼主分享
5年前 回复
谢谢分享
5年前 回复
辛苦了 辛苦了
5年前 回复
强迫症晚期~
5年前 回复

感谢楼主分享
5年前 回复
1111
5年前 回复
数据加载中...
没有更多评论了
快速回复 返回顶部 返回列表