Unity ParticleSystem 入门

news2024/12/24 21:20:58

概述

在项目的制作过程成,一定少不了粒子系统的使用吧,如果你想在项目粒子效果,那这部分的内容一定不要错过喔!我添加了理解和注释更好理解一点!

这次的内容比较多,右侧有目录,可以帮助快速导航


Common Attribute(粒子通用属性)

  • Duration:粒子持续的时间(Looping 模式下无效)
  • Looping:循环模式,粒子会源源不断的生成,没有结束。
  • Prewarm:预热模式,粒子一般都是打开才开始生成的,也就是从第一个粒子开始生成,但是打开预热模式后,粒子在看不到的时候就开始运行了,当你打开粒子效果的时候,就可以得到完整的粒子效果。
  • Start Delay:开始生成粒子的时候的延迟,比如某些特效是按顺序生成的就可以使用这个参数,控制粒子特性的生成顺序
  • Start Lifetime:粒子的生命周期,也就是粒子存在的时间,(这个参数是区别于Duration的,当Loop模式下Duration是没有效果的,但是粒子的生命周期是存在的,也就是粒子存在多久,Start Lifetime可以设置在循环模式下粒子持续的时间)
  • Start Speed:粒子开始的速度,当粒子开始运动的时候的速度大小。
  • 3D Start Size:勾选这个选项的时候,就可以在XYZ方向设置粒子的大小,控制3D的粒子。
  • Star Size:控制粒子整体比例的大小。(当不勾选3D Start Size的时候起效)
  • 3D Start Rotation: 勾选这个选项的时候,可以在XYZ轴控制粒子的开始旋转。
  • start Rotation:控制粒子整体的旋转。(当不勾选3D Start Rotation的时候起效)
  • Flip Rotation:控制粒子反向的比例,可以设置这个参数,粒子在产生的时候随机的反向,可以让粒子更加随机真实。
  • Start Color:设置一个粒子开始时候的颜色
  • Gravity Source:重力源,设置这个重力的来源,3D Physical:3D物理源,2D physical:2D物理源。(根据你的项目设置)
  • Gravity Modify:重力的值,也就是相比于原本重力的比例。
  • Simulation Space:粒子的坐标系,是局部坐标还是世界坐标的。
  • Simulation Speed:设置全包播放粒子的速度,是一个比例。
  • Delta Time:是否受TimeScale的影响,Scale:受TimeScale的影响  UnScale:不受TimeScale的影响(在Project Setting中,Time中可以设置,修改Time Scale的值就可以知道这个参数作用了)
  • Scaling Mode:粒子的缩放模式,
  • Play On Awake:是否刚开始运行的时候就开始播放粒子。
  • Emiter Velocity Mode:粒子发射的速度模式,Transform:使用Transform的方式计算粒子的速度, Rigidbody:使用刚体的方式为物体给粒子附加刚体参数速度。Custom:自定义的方式
  • Max Particles:最大的粒子数量。
  • Auto Random Seed:默认是勾选的,不过也可以取消勾选,自定义一个随机数种子。
  • Stop Action:停止后的行为,None:不错任何处理,Disable:禁用当前的游戏物体,Destroy:销毁当前的游戏物体,Callback:回调函数,会执行引用到这个粒子系统的回调函数。
  • Culling Model:剔除模式
  • Ring Buffer Mode:循环缓冲模式,控制粒子的当达到最大数量后,如何处理。

Emission(粒子发射器)

  • Rate over Time:每秒钟发射多少粒子
  • Rate over Distance:每个单位移动发射多少粒子(这个参数一定要物体移动才有效果的,你可以拖动物体试试,就明白了)
  • Time:发射的延迟,就是这个粒子系统开始运行的时候,多久才开发发射一波粒子。
  • Count:这个波粒子所包含的个数
  • Cycles:发射粒子循环的次数。
  • Interval:间隔,每隔多久发射一次粒子。
  • Probability:发射粒子的可能性。

注意点:(注解,如果不理解Burst的参数可以帮助理解)

  1. "Rate over Time" , "Rate over Distance"和“Bursts”这三个是相互独立的,不相互影响,各自处理各自的逻辑。
  2. 前两个比较好理解,这边我来解释一下Burst,首先你按我的参数设置,这时候你播放粒子效果,它就是一波一波的,(可以勾选上我上面Common Attribute 属性中的Looping选项),Cycle的意思是,我发射多少波粒子,就是在一个周期内,Interval的意思是,我每波粒子之间的间隔是多少时间,可以设置长一点就可以看到效果了,Probability,是每波粒子发生的可能性,是个0-1的值,就是多大可能发射,越大发射的概率就越高,越低发射的概率就越低,为0的时候就不发射了。

Shap(粒子发射器形状)

  • Shape:可以制定一个发射源的形状
  • Angle:粒子发射器的发射角度
  • Radius:粒子发射器的半径
  • Radius Thickness:半径厚度。(控制粒子的厚度,只一个0-1的值,调整一下试试就知道了,发射出来的明显会不一样)
  • Arc:弧度 ,Mode:弧度模式,在弧度内控制粒子的产生范围。Spread:弧度暂开的范围,怎么说呢,就是控制范围的显示,这个还是你调整一下就知道了,也是一个0-1的值。
  • Length:发射器的长度。
  • Edit from:发生源
  • Texture:纹理,当粒子是简单颜色的粒子的时候可以制定这个。
  • Position:位置,修改发射源局部坐标的位置。
  • Rotation:旋转,修改发射源的局部旋转。
  • Scale:缩放,修改发射源局部的缩放。
  • Align To Direction:排列在一个方向。
  • Random Direction:随机方向。
  • Spherize Direction:球形方向。
  • Randomize Posion: 随机发射位置
  • Scene Tools:场景编辑器,一个是控制场景中的gizmo的,(类似于boxCollision的编辑器,编辑形状的),还有一个是Transform编辑器,类似于我们常用的位置变换编辑器(快捷键‘W’‘E’‘R’)。

Volicity over Lifetime(粒子生命周期内的速度)

  • Liner:线性方向的速度,修改这三个轴的值,会直接修改粒子对应反向的速度。
  • Space:坐标轴模式,Local:局部坐标,World:世界空间的坐标。
  • Orbital:轨道速度,为你的粒子添加轨道效果(挺有趣的这个效果,你也可以动手修改一下试试)
  • Offset:速度偏移值。
  • Radial:辐射大小,(辐射速度是粒子远离或者面向中心点)。
  • Speed Modify:速度修改,修改这个值,这个值会直接乘在原来的速度上,整体修改速度的大小。

Limit Velocity over Lifetime(限制生命周期内的速度)

  • Spareate Axes:分离控制没法速度的方向轴。
  • Speed:限制粒子在生命周期的速度
  • Dampen:抑制率,(这个值是配合Speed使用,Speed限制大小,Dampen控制限制的强度,如果Dampen为0,那Speed也就是没得作用的)。
  • Drag:应用线性拖拽的方式在粒子速度上。
  • Multiply By Size:当启用的时候,更大的粒子会影响更大的拖拽系数。
  • Multiply By Velocity:当启用的时候,更快的粒子会影响更大的拖拽系数。

Inherit Velocity(粒子速度继承)

  • Mode:速度继承的模式,Initial:初始化模式,当粒子创建后就不可以修改速度了,Current:当前模式,velocity每帧更新
  • Multiplier:粒子速度继承的比例。

Lifetime By Emitter Speed(发射器速度生命周期)

  • Multiplier:控制发射器初始化的粒子速度
  • Speed Range:速度范围

Force over Lifetime(粒子生命周期的方向力)

  • XYZ:各个方式上施加的力。
  • Space:影响的坐标系,Local:局部坐标,World:世界坐标系
  • Randomize:随机模式,(这个模式只有在选择双实数和双曲线的时候才有效)

Color Over Lifetime(生命周期内颜色的变化)

  • Color:颜色,(非常有意思的效果,就是可以控制颜色在粒子生命周期内的变化,可以实现炫酷的渐变效果)

Color by Speed(颜色在速度的变化)

  • Color:渐变的颜色
  • Speed Range:速度范围(指定一个范围的速度大小,眼神在这个范围内渐变)

Size over Lifetime(生命周期内粒子的大小)

  • Separate Axes:单纯控制XYZ轴粒子的方向的尺寸
  • Size:控制整体的尺寸。
  • Size by Speed:(粒子大小随速度的变化而变化)

  • Separate Axes:独立的轴,单独控制每个方向的尺寸
  • Size:控制整体的尺寸
  • Speed Range:指定一个速度的范围,这个范围内粒子的大小随速度的变化而变化。

Rotation over Lifetime(在粒子生命周期内角度的变化)

  • Separate Axes:单独控制各个方向的轴的旋转。
  • Angular Velocity:角速度,(粒子在运动过程中旋转的快慢)。

Rotation by Speed(旋转随着速度的变化而变化)

  • Separate Axes:单独控制各个方向的轴的旋转。
  • Angular Velocity:角速度,(粒子在运动过程中旋转的快慢)。
  • Speed Range:速度范围,(仅当角速度为双曲线的时候才可以启用,如果不懂怎么启用可以留言告诉我,上面同理,后面我把这部分的内容添加上)

External Forces(外力影响)

  • Multiplier:受外力影响的系数,(比如其它的粒子效果或者风等)。
  • Influence Filter:过滤模式
  • Influence Mask:指定不受影响的层。

Noise(粒子噪声)

  • Spearte Axes:单独控制想影响的轴
  • Strength:噪声效果的强度
  • Frequency:噪声效果的频率
  • Scroll Speed:噪波图滚动的速度
  • Damping:启用的时候,强度会和频率成比例,效果会更加合理
  • Octaves:噪波图的数量,可以用多个噪波图的数量来混合,产生更混乱的效果,但是会显著增加性能的开销
  • Octaves Multiplier:混合比例,按照一定比例减少强度的影响。
  • Octaves Scale:混合尺寸,按倍的调整频率。
  • Quality:质量,制动使用1D 2D,3D的噪波图。
  • Remap:在噪波图结束的时候重新绘制一个范围。
  • Remap Curve:重绘曲线。
  • Position Amount :按比例控制有多少个噪点影响粒子效果的位置。
  • Rotation Amount:按比例控制有多少个噪点影响粒子效果的旋转。
  • Size Amount:按比例控制有多少个噪点影响粒子效果的缩放。

Collision(粒子碰撞器)

  • Type:碰撞器的模式,Plane:是在3D场景创建一个无限大的平面,当粒子碰撞到屏幕就会反弹,World:这就是真实的粒子对3D物体的碰撞
  • Dampen:碰撞后速度损失比例,0就是没有损失。
  • Bound:碰撞反弹范围,在粒子碰撞后反弹速度是多少,(是一个0-2值,调整一下试试就明白了)
  • Lifetime loss:当粒子碰撞后,生命时间的损失比例。(就是碰撞后会粒子存在的时间会有一点的损失)
  • Min kill Speed:当粒子碰撞的时候小于这个值,就会被移除。
  • Max kill Speed:当粒子碰撞的时候大于这个值,就会被移除。
  • Radius Scale :碰撞粒子的碰撞体范围。
  • Send Collision Message:发送碰撞到粒子系统的消息,调用对应的回调函数。
  • Scene Tools:场景工具。
  • Visualization :可视化,实体(Solid)或者网格(Grid)的模式
  • Scale Plane:碰撞屏幕的大小比例。
  • Visuallize Bounds:范围可视化,启用可以看到粒子的碰撞范围。

Trigger(触发器)

  • Inside:粒子完全进入的时候。(Kill:销毁这些粒子 :Ignore:不做任何处理 :callBack :调用回调函数,会调用脚本中的OnParticleTrigger()方法
  • OutSide:粒子完全出来的时候触发。(参数同第一条,因为人不想看满是文字的文章,突出意思就行)
  • Enter:粒子刚进入的时候触发。(参数同第一条)
  • Exit:粒子刚出来的时候触发。(参数同第一条)
  • Collider Query Mode:碰撞体查询模式。(启用这个选项,可以获得更多的碰撞信息,但是也会增加更多的性能消耗,如果是不需要的话,就请选择Disable,Disable:不起任何作用:One:对碰撞到的第一个物体做信息查询:All :获取所有碰撞相互的信息)
  • Radius Scale:粒子的半径。
  • Visualize Bounds:可视化范围(选择一下就明白了,就是可以咋Scene 视图中看到粒子碰撞体范围)。

Sub Emitters(子发射器)

  • Birth:粒子系统刚生成的时候就触发可以选择一个子粒子触发的方式 :Birth:是粒子刚创建的时候触发 Collider:当触发碰撞的时候触发 :Death:当粒子死亡的的的时候触发:Trigger:当粒子触发触发器的时候触发 Manual:使用脚本触发
  • Inhert:从父物体继承的内容。(可以选择继承的部分)
  • Emit Probability:粒子发生的可能性。(也就是触发概率是多少,概率越高就触发的频率越高,为1的时候就每次都触发子发射器的粒子效果)

Texture Sheet Animation(纹理图片动画)

  • Mode:动画模式(Grid :动画片段模式,也就是把图拆分成小小的动画帧,用来播放动画 Sprites:精灵图的模式,指定一个精灵图片)
  • Tiles:纹理平铺。(仅Grid有效)
  • Animation:动画。(仅Grid有效,动画播放的模式,Whole Sheet:整张模式,粒子系统会把纹理图看成一个整体,粒子会从纹理图选择位置发射  Single Row:简单滚动,粒子系统会将纹理图逐行展示,粒子系统会根据不同的行数逐一发射粒子)
  • Time Mode:时间模式
  • Frame over Time:动画播放曲线,横向控制动画的生命周期,纵向控制动画帧的ID。
  • Start Frame:开始帧,就是开始延迟多少帧再开始播放。
  • Cycles:循环次数,动画循环多少次。
  • Affected UV Channel:动画影响那一个UV通道的值

Light(粒子光照)

  • Light:指定一个光源。
  • Ratio:粒子数量受光源影响的比率,(也就是受光影响的粒子都多少)。
  • Random Distribution:随机分配,在一个规律的间隔内随机发出光照。
  • Use Particle Color:使用粒子本身的颜色。
  • Size Affect Range:光照受尺寸大小的影响。
  • Alpha Affects Intensity :透明度多光照的影响强度。
  • Range Multiplier:指定一个自定义的光照范围。
  • Intensity Multiplier:指定一个自定义的光照强度。
  • Maximun Light:限制最大光照。

Trails(粒子尾迹)

  • Mode:尾迹模式。
  • Ratio:指定一个粒子产生尾迹的比例
  • Lifetime:尾迹生命周期
  • Minimum Vertex Distance:尾迹间最小顶点距离(越小越圆滑,相对的性能就越高
  • World Space:是否是世界空间的模式
  • Die with Particle:随着粒子的销毁而销毁
  • Texture Mode:纹理的模式
  • Texture Scale:纹理的比率
  • Size affects Width:尾迹受粒子大小宽度的影响。
  • Size affects Lifetime:尾迹受粒子生命周期的影响。
  • Inherit Particle Color:继承粒子的颜色。
  • Color over Lifetime:尾迹颜色随生命周期的变化。
  • Width over Trial:尾迹的宽度
  • Color over Trail:控制尾迹的颜色
  • Generate Lighting Data:启用时候,尾迹在渲染的时候会构建光照信息
  • Shadow Bias:阴影偏移。

Custom Data(自定义数据)

  • Mode:数据的类型,可以自定义一个数据,在脚本中使用

Renderer(粒子渲染)

  • Render Mode:渲染模式
  • Normal Direction:法线方向。
  • Material:材质球。
  • Trail Material:尾迹材质球。(启动粒子尾迹(Trails)的时候有效)
  • Sort Mde :排序模式。
  • Sort Fudge:排序偏差(这个是用来处理,透明物体做深度测试的时候出错的问题)
  • Min Particle Size:最小粒子尺寸。
  • Max prticle Size:最大粒子尺寸。
  • Render Alignment:渲染对其方式。
  • Flip:粒子反向。
  • Allow Roll:允许滚动。
  • Pivot:中心点。
  • Visualize Pivot:可视化中心点,可以在Scene场景中查看。
  • Masking:遮罩。
  • Apply Action Color Space:允许启动颜色空间。
  • Custom Vertex Steams:自定义顶点流。(可以控制材质球Shader的参数)
  • Custom Trail Vertex Steam :自定义尾迹顶点流。(可以控制材质球Shader的参数)
  • Cast Shadow:产生阴影。
  • Receive Shadow:接受阴影。
  • Shadow Bias:阴影偏移。
  • Motion Vectors:运动向量。
  • Sorting Layer ID:层排序的ID。
  • Order in Layer:渲染层排序。
  • Light Probes :光照探针。
  • Reflection Probes:反射探针。

作者的一点废话 

这部分的内容还是非常多的,想要短时间的掌握还是比较困难的,而且也不用每个参数都掌握,知道一下常用的就行,想不起来再回来查查就行。

有帮助到你就请点个赞吧,你的支持是我创作的动力!( ´・∀・`)


日志:
2024年5月1日 18:58//上传Unity  ParticleSystem 上传,还有部分没写完,今天写了一天了,还是休息一会,晚点再来补吧。

2024年5月2日 1:34//终于补完了,明天起来了再检查一下吧,今天先溜了。

2024年5月2日 9:49//检查了一下昨天晚上写的,添加了一点内容和样式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1639022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高中数学:三角函数公式汇总及推导

一、定义 常用三角函数值 参考: 三角函数定义 二、基本三角函数及相互关系 sinx cosx tanx cscx secx cotx 函数间相互关系 参考: cosx、sinx、tanx的函数图像与性质 secx、cscx、cotx函数图像及相关关系 三、诱导公式 口诀:奇变…

通信接口——时钟和信号

前言 所有接口只要抓住三个核心点就能分清:时钟同步和异步,时钟的来源,信号的传输方向。 一、时钟同步和异步 接口之间的交互方式存在多种形式,如果按照是否有公共时钟CLK的参与,可以分为同步传输和异步传输。 同步&…

C语言——队列的实现

队列按照先进先出(FIFO,First In First Out)的原则管理数据。这意味着最先进入队列的元素会被最先移出,类似于排队等候服务的情况。队列通常有两个主要操作:入队(enqueue),将元素添加…

DRF返回值源码分析

DRF返回值源码分析 1 返回值 在视图中定义finalize_response方法(也可以用来判断是否异常) 自定义异常 配置文件 # settings.py REST_FRAMEWORK {"EXCEPTION_HANDLER": utils.handlers.exception_handler # 自定义的exceptional_handler路…

Sarcasm detection论文解析 |利用对话语境进行讽刺分析

论文地址: 论文地址:Sarcasm Analysis Using Conversation Context | Computational Linguistics | MIT Press github地址:https://github.com/debanjanghosh/sarcasm_context Alex-Fabbri/deep_learning_nlp_sarcasm: code for deep learnin…

基于springboot实现公司日常考勤系统项目【项目源码+论文说明】

基于springboot实现公司日常考勤系统演示 摘要 目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题,原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率…

debug的基本使用

1.简介   首先看下IDEA中Debug模式下的界面。 如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方: ① 以Debug模式启动服务,左边的一个按…

Redis运维篇-快速面试笔记(速成版)

文章目录 1. Redis的持久化1.1 RDB(快照模式)1.2 AOF 模式 2. Redis主从模型(高可用)2.1 Redis的主从复制2.2 Redis拓扑结构 3. Redis集群模式(高并发)3.1 Redis的Slots3.2 集群模式的常用命令3.3 多主多从…

win下vscode的vim切换模式的中英文切换

问题描述 在vscode中安装vim插件后,如果insert模式下完成输入后,在中文输入方式下按esc会发生无效输入,需要手动切换到英文。 解决方法 下载完成vscode并在其中配置vim插件下载github—im-select.exe插件(注意很多博文中的gitcod…

Node.js -- express 框架

文章目录 1. express 使用2. 路由2.1 路由的使用2.2 获取请求报文参数2.3 获取路由参数2.4 路由参数练习 3. express 响应设置4. 中间件4.1 全局中间件4.2 路由中间件4.3 静态资源中间件 5. 获取请求体数据 body-parser6. 防盗链7. 路由模块化8. 模板引擎8.1 了解EJS8.2 列表渲…

InfluxDB安装使用介绍

1.介绍 InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。 2.对常见关系型数据库(MySQL)的基础概念对比 1…

Spring Cloud——Circuit Breaker上篇

Spring Cloud——Circuit Breaker上篇 一、分布式系统面临的问题1.服务雪崩2.禁止服务雪崩故障 二、Circuit Breaker三、resilience4j——服务熔断和降级1.理论知识2.常用配置3.案例实战(1)COUNT_BASED(计数的滑动窗口)&#xff0…

UE4_Niagara_两个模型之间的粒子幻化

学习笔记,仅供参考! 操作步骤: 1、新建niagara system,添加空的发射器,渲染改为网格体渲染器,网格体为1M_Cube. 2、创建粒子材质重载。 3、渲染网格体的材质设置: 4、在发射器属性面板&#x…

LeetCode 213 —— 打家劫舍 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题是 LeetCode 198—— 打家劫舍 的升级版,多了一个首尾相连的设定。 因为首尾相连,所以第一个房屋和最后一个房屋只能偷窃其中一个。 所以,第一种方案就是不偷窃最后一个房…

Web APIs 学习归纳6--- BOM浏览器对象

前面几节主要针对DOM进行了学习,现在开始新的内容的学习---DOM浏览器对象。 DOM是更注重页面(document)内容的设计,但是BOM不仅限于页面(document)的设计,而是更加全面包括页面的刷新&#xff0…

SpringBoot使用ResponseBodyAdvice和RequestBodyAdvice实现请求体解密、响应体加密

文章目录 一、写在前面二、实现细节1、定义加解密注解2、请求体解密逻辑3、响应体加密逻辑4、测试类5、测试结果 三、源码分析1、RequestResponseBodyMethodProcessor2、RequestBodyAdvice3、ResponseBodyAdvice 一、写在前面 项目中经常需要对接第三方平台,每次对…

redis ZRANGE 使用最详细文档

环境: redis_version:7.2.2 本文参考 redis 官方文档1 语法 ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]参数含义key是有序集合的键名start stop在不同语境下,可用值不一样BYSCORE | BYLEX按照分数查询 | 相…

Node.js -- mongoose

文章目录 1. 介绍2. mongoose 连接数据库3. 插入文件4. 字段类型5. 字段值验证6. 文档处理6.1 删除文档6.2 更新文档6.3 读取文档 7. 条件控制8. 个性化读取9. 代码模块化 1. 介绍 Mongoose是一个对象文档模型库,官网http://www.mongoosejs.net/ 方便使用代码操作mo…

2021-10-21 51单片机两位数码管显示0-99循环

缘由单片机两位数码管显示0-99循环-编程语言-CSDN问答 #include "REG52.h" #include<intrins.h> sbit K1 P3^0; sbit K2 P3^1; sbit K3 P3^2; sbit K4 P3^3; sbit bpP3^4; bit k1,wk10,wk20; unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,1…

数据库(MySQL) —— DDL语句

MySQL—— DDL语句 什么是MySQL的DDL语句查看所有的所有数据库查看当前使用的数据库库操作创建库使用数据库删除库 表操作创建表查询当前库中所有的表查询表结构查询指定表的建表语句删除表 表修改删除字段修改数据类型修改字段名和字段类型重命名表删除指定表并重新创建该表 我…