2018-11-23 16:55:54 soukenan 阅读数 1134
  • Unity粒子特效:制作火焰效果

    粒子特效在Unity开发中,意义非凡,是改善用户视觉体验的不可或缺的技术手段。本视频主要以实战的方式,讲解、演示火焰效果的制作过程。本视频讲解的火焰效果特点: 1、基于真实火焰效果解析、实现;2、非常舒适的视觉体验;3、适合大多数3d/2d游戏;

    161 人正在学习 去看看 齐行超

使用粒子系统创建火焰:在灯光下面点击右键Effects-Particle System.
Effects:效果/特效。
Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。

在这里插入图片描述
添加组件之后的效果:
在这里插入图片描述
 点击Inspector中的Shape修改它的形状
 在这里插入图片描述
 Start Lifetime(生命周期)修改合适的值。在这里插入图片描述
火焰是有随机速度的选择:Start Speed-Random Between Two Constants.设置两个随机数值。
选择粒子材质覆给Material.-Texture sheet Animation勾选上。
在这里插入图片描述
最终的效果就差不多有这个样子了。细节自己调整就可以了。
在这里插入图片描述

想了解更多粒子系统创建火焰使用的参数上Siki学院视频观看了解。

初始化模块:此模块是效果组件固有的模块。

Duration:粒子发射器,发射粒子的时间。单位为S(秒)。

Looping:是否开启。如果开启了循环,Duration值只要大于最小值0.10即可。

Prewarm:是否开启预热。只有在开启的循环的时候,预热才有效果,粒子量相似发射了一个粒子周期。

Start Delay:预热延迟。游戏开始多长时间后,预热开启。单位为S。

Start Lifetime:粒子从发射器出来,到消失的时间。单位为S。

Start Speed:粒子发射的速度。

Start Size:粒子大小。

Start Rotation:粒子的旋转角度。

Start Color:粒子的颜色。

Gravity Multiplier:设置重力对粒子的影响,数值越大影响越大。

Inherit Velocity:速度继承。当粒子系统是运动的时候,粒子的速度会继承运动的速度。但粒子坐标系必须在世界坐标系。

Simulation Space:坐标系是本身还是世界坐标系。

Play On Awake:在游戏开始播放,但不影响Start Delay效果。

Max Particles:粒子释放的最大数量,当达到最大数量时,停止释放粒子,当有粒子消失时继续释放。

2017-04-19 14:08:53 q510264505 阅读数 360
  • Unity粒子特效:制作火焰效果

    粒子特效在Unity开发中,意义非凡,是改善用户视觉体验的不可或缺的技术手段。本视频主要以实战的方式,讲解、演示火焰效果的制作过程。本视频讲解的火焰效果特点: 1、基于真实火焰效果解析、实现;2、非常舒适的视觉体验;3、适合大多数3d/2d游戏;

    161 人正在学习 去看看 齐行超

转载 http://www.cnblogs.com/qinghuaideren/p/3597666.html

Effects:效果/特效。

     

     Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。

     在Unity3D 3.5版本之后退出了新的shuriken粒子系统:

     

     添加组件之后的效果:

     

     其中的Open Editor按钮可以打开粒子编辑器,用于编辑复杂的粒子效果。

    

    

    由于shuriken粒子系统是模块化的管理方式,所以可以动态的添加模块:

    

    1.初始化模块:此模块是效果组件固有的模块。

    

    Duration:粒子发射器,发射粒子的时间。单位为S(秒)。

    Looping:是否开启。如果开启了循环,Duration值只要大于最小值0.10即可。

    Prewarm:是否开启预热。只有在开启的循环的时候,预热才有效果,粒子量相似发射了一个粒子周期。

    Start Delay:预热延迟。游戏开始多长时间后,预热开启。单位为S。

    Start Lifetime:粒子从发射器出来,到消失的时间。单位为S。

    Start Speed:粒子发射的速度。

    Start Size:粒子大小。

    Start Rotation:粒子的旋转角度。

    Start Color:粒子的颜色。

    Gravity Multiplier:设置重力对粒子的影响,数值越大影响越大。

    Inherit Velocity:速度继承。当粒子系统是运动的时候,粒子的速度会继承运动的速度。但粒子坐标系必须在世界坐标系。

    Simulation Space:坐标系是本身还是世界坐标系。

    Play On Awake:在游戏开始播放,但不影响Start Delay效果。

    Max Particles:粒子释放的最大数量,当达到最大数量时,停止释放粒子,当有粒子消失时继续释放。

    2.Emission Module(粒子发射模块)用于粒子发射的速率。或是某个特定时间发射大量的粒子,用于模拟爆炸的效果。

    

    每秒发射粒子数量。Bursts为某个时间点爆发出粒子的数量,这个时间必须在粒子Duration范围内。

    

    每米发射粒子数量。粒子发射器所在的游戏对象,移动的时候每米发射的粒子,但粒子坐标系必须在世界坐标系。

    3.Shape Model(形状控制模块):定义了粒子发射器的形状,位置及发射方向。

    球形粒子发射器:

    

      Radius:球形的半径。

      Emit from Shell:是否从表面发射粒子,还是从内部发射。

      Random Direction:是否启用随机速度。

      

    半球发射器:

    

      

    锥体发射器:

    

      Angle:椎体,上边开口的大小。

      Radius:半径的大小。

      Length:椎体的高度。只有当Emit from 值为Volume Shell或是Volume时可用。

      Emit From:粒子发射的位置。

      ——————Base:粒子发射源在椎体的内部的底面上,由底面开始发射。

      ——————Base Shell:粒子发射源在椎体底面的边缘,就是周长那一圈发射。

      ——————Volume:粒子发射源在椎体内部空间。

      ——————Volume Shell:粒子发射器在椎体整个表面上。没有底面。

      

    立方体发射器:

    

      Box X:立方体长度。

      

    网格发射器:

    

      Mesh:选择网格样式。

      ——————Vertex:粒子将从网格顶点发射。

      ——————Edge:粒子将从网格边缘(棱)发射。

      ——————Triangle:粒子将从网格的三角面发射。图形都是三角形组成的。

    4.生命周期速度模块:控制每一个粒子的速度。

    

    5.生命周期速度限制模块:

    

      Separate Axis:是否启用限制每一个轴。

      Speed:限制的速度。

      Dampen:阻尼。阻尼为1的时候表示在生命周期结束的时候,速度降到限定的速度。

    6.生命周期作用力模块:控制每一个粒子在生命周期内受到力的情况。

    

      Randomize:只有在Random Between Two Constants或Random Between Two Curves时才可启用。

            表示每一帧作用在粒子上的力是均匀随机产生的。

    7.生命周期颜色模块:控制每一个粒子在生命周期内颜色的变化。

    

      

    

      

    8:速度范围颜色变化控制模块:根据设置速度的范围和粒子的速度来改变粒子的颜色。

    

      

    9:生命周期粒子大小模块:控制每个粒子在生命周期内,大小的变化。

    

    

      

    10:速度范围粒子大小变化控制模块:根据速度的变化改变粒子的大小。

    

    

      

    11:生命周期每个粒子的旋转速度:每秒粒子旋转的角度。

    

      

    12:根据速度变化改变粒子的旋转速度:旋转速度不为固定常数时。

    

      

    13:外部作用力倍增数:调整风对粒子的影响情况。

    

    14:碰撞模块:为粒子创建粒子碰撞效果,目前只支持平面碰撞。

    

    平面碰撞只支持6个平面,点击+号可以添加现在有的平面或是新建立一个。

    

    通过新建立了碰撞平面,会成为粒子物体的子物体。

      

      

     Visualization:碰撞平面的显示方式。

     ——————Grid: 

     ——————Solid:

    Scale Plane:碰撞平面的大小。

    Dampen:阻尼系数。粒子速度撞击损耗程度。0~1。

    Bounce:反弹系数。0~2.系数越大,反弹角度越小。

    Min kill Speed:最小销毁速度。当速度小于这个值的时候,粒子消失。

    Particle Radius:粒子碰撞半径。最小值为0.01。

    世界碰撞:

    

    Collides With:碰撞层级。选择与那一层级碰撞。

    Collision Quality:碰撞质量。

    ——————High:每个粒子会每帧与场景做一次射线碰撞检测,需要注意的是,这样会增加CPU的负担,故在此情况下整个场景中的粒子数应当小于1000。

    ——————Medium:粒子系统在每帧会受到一次Parude Raycast Budget全局设定的影晌。

    ——————Low:与 中等效果相似 ,只 是粒子系统每4帧才受一次Parude Raycast Budget全局参数的影晌。

 

    ——————Voxel Size:碰撞缓存中的体素的尺寸,仅当Collision Quality为Medium和Low时可用。

    15:子粒子发射模块:在粒子出生,碰撞,消灭时可以调用其他粒子。

    

    

 

     16:序列帧动画纹理模块:

    

    Tiles:x水平分割的份数,y垂直分割的份数。

    Animation:Whole Sheet-整个页面即X,Y一起移动。

    Frame over Time:生命周期内,动画变幻的速率。

    Cycles:生命周期内变化几次动画。

    

    Animation:Single Row-从左到右行滚动。

    Random Row:随机行。

    Row:选择某一行,开始滚动,小于Tiles中的Y。

    17:粒子的渲染模块:

    

    Render Mode:渲染模式。

    ——————Billboard:面板渲染。

    ——————Vertical Billboard垂直渲染,此模式当面对摄像机时,粒子将与zX平面对齐

    ——————Horizontal Billboard:水平模式,此模式下粒子将沿Y轴对齐。

    ——————Stretched Billboard:拉伸渲染。

          

          ————CameraScale:相机缩放。摄像机的速度对于粒子伸缩影晌的程度。speed Scale:通过比较粒子的速度决定粒子的长度。 LengthScale:通过比较粒子的宽度决定粒子的长度。

          

    ——————Mesh:模式。

    

    

    18:属性:

    

    Resimulate:实时渲染。在改变参数的时候,场景中的粒子效果实时变化。

    Wireframe:选择时,将显示粒子的片面网格。

    

2017-12-22 17:52:56 qq_39710961 阅读数 542
  • Unity粒子特效:制作火焰效果

    粒子特效在Unity开发中,意义非凡,是改善用户视觉体验的不可或缺的技术手段。本视频主要以实战的方式,讲解、演示火焰效果的制作过程。本视频讲解的火焰效果特点: 1、基于真实火焰效果解析、实现;2、非常舒适的视觉体验;3、适合大多数3d/2d游戏;

    161 人正在学习 去看看 齐行超

简单的将Particle System 的参数在Inspector上进行修改就能实现,火焰,爆炸,等这种于一中心点进行线性播放的粒子特效,效果图和参数图如下:
爆炸:这里写图片描述
这里写图片描述
这里写图片描述

火焰(因为没有太匹配的火焰材质这里用心形图片来代替实现火焰颜色的上升大小的变化):这里写图片描述
这里写图片描述
这里写图片描述

对于一些需要粒子进行特殊排布的粒子特效我们就需要进行代码编写来进行规律排布了。
例如:圆形彩光圈的实现流程。
首先创建Particle System,进行一些必要设置(例如:是否循环播放之类的),
粒子的产生就用代码控制,控制的本质就是位置(也就是旋转角度和旋转半径)

代码直接奉上:

using UnityEngine;
using System.Collections;

public class particleSettings
{
    public float angle { get; set; }
    public float radius { get; set; }
    public float speed { get; set; }
    public particleSettings(float r)
    {
        this.radius = r;
        this.angle = Random.value * 2 * Mathf.PI;
        this.speed = Random.value * Mathf.Sqrt(radius);
    }
    public Vector3 getPosition()
    {
        return radius * new Vector3(Mathf.Cos(angle), 0, Mathf.Sin(angle));
    }
    public void rotate()
    {
        this.angle += Time.deltaTime * speed / 10;
        if (this.angle > 2 * Mathf.PI)
            this.angle -= 2 * Mathf.PI;
        this.radius += Random.value * 0.2f - 0.1f;
        if (this.radius > ParticleSea.MaxRadius)
            this.radius = ParticleSea.MaxRadius;
        if (this.radius < ParticleSea.MinRadius)
            this.radius = ParticleSea.MinRadius;
    }
}
using UnityEngine;
using System.Collections;
public class ParticleSea : MonoBehaviour
{

    public new ParticleSystem particleSystem;
    private ParticleSystem.Particle[] particlesArray;
    private particleSettings[] psetting;
    public int seaResolution = 25;
    public static float MaxRadius = 120f;
    public static float MinRadius = 50f;
    public float radius = 100.0f;
    public Gradient colorGradient;

    void Start()
    {
        particlesArray = new ParticleSystem.Particle[seaResolution * seaResolution];
        psetting = new particleSettings[seaResolution * seaResolution];
        particleSystem.maxParticles = seaResolution * seaResolution;
        particleSystem.Emit(seaResolution * seaResolution);
        particleSystem.GetParticles(particlesArray);
        setInitialPosition();

    }
    void Update()
    {
        RotateParticles();
        changeColor();
        particleSystem.SetParticles(particlesArray, particlesArray.Length);
    }

    //控制粒子旋转
    void RotateParticles()
    {
        for (int i = 0; i < seaResolution; i++)
        {
            for (int j = 0; j < seaResolution; j++)
            {
                psetting[i * seaResolution + j].rotate();
                particlesArray[i * seaResolution + j].position = psetting[i * seaResolution + j].getPosition();
            }
        }
    }

    void setInitialPosition()
    {
        for (int i = 0; i < seaResolution; i++)
        {
            for (int j = 0; j < seaResolution; j++)
            {
                psetting[i * seaResolution + j] = new particleSettings(radius);
                particlesArray[i * seaResolution + j].position = psetting[i * seaResolution + j].getPosition();
            }
        }
        particleSystem.SetParticles(particlesArray, particlesArray.Length);
    }

    void changeColor()
    {
        for (int i = 0; i < seaResolution; i++)
        {
            for (int j = 0; j < seaResolution; j++)
            {
                float value = (Time.realtimeSinceStartup - Mathf.Floor(Time.realtimeSinceStartup));
                value += psetting[i * seaResolution + j].angle / 2 / Mathf.PI;
                while (value > 1)
                    value--;
                particlesArray[i * seaResolution + j].color = colorGradient.Evaluate(value);
                //particlesArray [i * seaResolution + j].color = colorGradient.Evaluate (Random.value);
            }
        }
    }
}

效果图如下:
这里写图片描述
这里写图片描述

这里写图片描述

2014-07-27 11:19:45 u013289188 阅读数 4993
  • Unity粒子特效:制作火焰效果

    粒子特效在Unity开发中,意义非凡,是改善用户视觉体验的不可或缺的技术手段。本视频主要以实战的方式,讲解、演示火焰效果的制作过程。本视频讲解的火焰效果特点: 1、基于真实火焰效果解析、实现;2、非常舒适的视觉体验;3、适合大多数3d/2d游戏;

    161 人正在学习 去看看 齐行超

粒子特效


粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果。要使用粒子特效首先要创建,在hierarchy视图中点击create——particle system即可



粒子发射器

粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等。在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性:


emit:是否是使用粒子发射器。

min size:粒子最小尺寸。

max size:粒子最大尺寸。

min energy:粒子的最小生命周期,单位秒,表示N秒后粒子消失。

max energy:粒子的最大生命周期,单位秒,表示N秒后粒子消失。

min emission:粒子每秒生成的最小数量。

max emission:粒子每秒生成的最大数量。

world velocity:粒子在3D世界中各轴的速度。

local velocity:粒子自身坐标系中各个轴的移动速度。

rnd velocity:各个轴粒子的随机速度。

emitter velocity scale:粒子继承发射的速度。

tangent velocity:粒子发射切线的速度。

angular velocity:粒子发射的角速度。

rnd angular velocity:粒子的随机角速度。

rnd rotation:粒子是否随机旋转。

simulate in worldspace:是否在世界坐标中模拟粒子。

one shot:选择后,粒子只发送一次,否则粒子将连续发送。

ellipsoid:粒子产生的所有轴的位置。

min emitter range:设定粒子之间的间隙。


粒子动画

粒子动画用于设定粒子渲染中的动画效果,首先简单的介绍粒子动画中各个属性:


does animate color:是否开启粒子动画的颜色,颜色将根据自身的生命周期改变。

color animation[ n ]:设置动画渐变数组中的颜色,这个数组长5,也就是说粒子的颜色发生改变时,循环这5个颜色。

world rotation axis:粒子围绕世界坐标轴旋转。

local rotation axis:粒子围绕着本地空间轴旋转。

size grow:粒子成长的生命周期。

rnd force:粒子运行时,每经过一帧就在粒子上加一个随机的力。

force:粒子运行是,每经过一帧就在粒子上加一个固定的力。

damping:阻力,用于减慢粒子。

autodestruct:自动销毁粒子动画对象。



粒子渲染器

粒子渲染器主要用于粒子的渲染,如:渲染模式,粒子的缩放,粒子的尺寸等


cast shadows:是否投射粒子的阴影。

receive shadows:是否接受粒子的阴影。

materials:粒子显示的材质。

camera velocity scale:相机缩放的速度。

stretch particles:粒子的显示状态,如横向或纵向。

length scale:粒子缩放的长度。

velocity scale:粒子缩放的速度。

max particle size:粒子最大的尺寸。

uv animation:设置粒子动画水平方向上的数量与垂直方向上的数量以及播放贴图动画。



粒子效果实例

unity为粒子提供了很不错的标准包,在project视图右键弹出import package——particles,导入粒子标准包,里面有很多现成的粒子材质。


using UnityEngine;
using System.Collections;

public class Script_06_11 : MonoBehaviour 
{

	//粒子对象
	GameObject particle = null;
	//粒子X轴方向速度
	float velocity_x = 0.0f;
	//粒子Y轴方向速度
	float velocity_y = 0.0f;
	//粒子Z轴方向速度
	float velocity_z = 0.0f;
	
	void Start () 
	{
		//获得粒子对象
		particle = GameObject.Find("ParticleSystem");
		
	}
	
	void OnGUI()
	{
		//拖动设置粒子的最大尺寸
		GUILayout.Label("粒子最大尺寸");
		particle.particleEmitter.maxSize = GUILayout.HorizontalSlider (particle.particleEmitter.maxSize, 0.0f, 10.0f,GUILayout.Width(150));
		
		//拖动设置粒子的最大消失时间
		GUILayout.Label("粒子消失时间");
		particle.particleEmitter.maxEnergy = GUILayout.HorizontalSlider (particle.particleEmitter.maxEnergy, 0.0f, 10.0f,GUILayout.Width(150));
		
		//拖动设置粒子的最大生成数量
		GUILayout.Label("粒子的最大生成数量");
		particle.particleEmitter.maxEmission = GUILayout.HorizontalSlider (particle.particleEmitter.maxEmission, 0.0f, 100.0f,GUILayout.Width(150));
		
		//拖动设置粒子X轴的移动速度
		GUILayout.Label("粒子x轴的移动速度");
		velocity_x= GUILayout.HorizontalSlider (velocity_x, 0.0f, 10.0f,GUILayout.Width(150));
		particle.particleEmitter.worldVelocity = new Vector3(velocity_x, particle.particleEmitter.worldVelocity.y, particle.particleEmitter.worldVelocity.z);
		
		//拖动设置粒子Y轴的移动速度
		GUILayout.Label("粒子y轴的移动速度");
		velocity_y= GUILayout.HorizontalSlider (velocity_y, 0.0f, 10.0f,GUILayout.Width(150));
		particle.particleEmitter.worldVelocity = new Vector3( particle.particleEmitter.worldVelocity.x,velocity_y, particle.particleEmitter.worldVelocity.z);
		
		//拖动设置粒子Z轴的移动速度
		GUILayout.Label("粒子z轴的移动速度");
		velocity_z= GUILayout.HorizontalSlider (velocity_z, 0.0f, 10.0f,GUILayout.Width(150));
		particle.particleEmitter.worldVelocity = new Vector3( particle.particleEmitter.worldVelocity.x, particle.particleEmitter.worldVelocity.y,velocity_z);
	
	
	}
}
运行:




2016-11-11 17:38:41 zhaokuo_123456 阅读数 10437
  • Unity粒子特效:制作火焰效果

    粒子特效在Unity开发中,意义非凡,是改善用户视觉体验的不可或缺的技术手段。本视频主要以实战的方式,讲解、演示火焰效果的制作过程。本视频讲解的火焰效果特点: 1、基于真实火焰效果解析、实现;2、非常舒适的视觉体验;3、适合大多数3d/2d游戏;

    161 人正在学习 去看看 齐行超

Effects:效果/特效。

     

     Particle System:粒子系统。可用于创建烟雾、气流、火焰、涟漪等效果。

     在Unity3D 3.5版本之后退出了新的shuriken粒子系统:

     

     添加组件之后的效果:

     

     其中的Open Editor按钮可以打开粒子编辑器,用于编辑复杂的粒子效果。

    

    

    由于shuriken粒子系统是模块化的管理方式,所以可以动态的添加模块:

    

    1.初始化模块:此模块是效果组件固有的模块。

    

    Duration:粒子发射器,发射粒子的时间。单位为S(秒)。

    Looping:是否开启。如果开启了循环,Duration值只要大于最小值0.10即可。

    Prewarm:是否开启预热。只有在开启的循环的时候,预热才有效果,粒子量相似发射了一个粒子周期。

    Start Delay:预热延迟。游戏开始多长时间后,预热开启。单位为S。

    Start Lifetime:粒子从发射器出来,到消失的时间。单位为S。

    Start Speed:粒子发射的速度。

    Start Size:粒子大小。

    Start Rotation:粒子的旋转角度。

    Start Color:粒子的颜色。

    Gravity Multiplier:设置重力对粒子的影响,数值越大影响越大。

    Inherit Velocity:速度继承。当粒子系统是运动的时候,粒子的速度会继承运动的速度。但粒子坐标系必须在世界坐标系。

    Simulation Space:坐标系是本身还是世界坐标系。

    Play On Awake:在游戏开始播放,但不影响Start Delay效果。

    Max Particles:粒子释放的最大数量,当达到最大数量时,停止释放粒子,当有粒子消失时继续释放。

    2.Emission Module(粒子发射模块)用于粒子发射的速率。或是某个特定时间发射大量的粒子,用于模拟爆炸的效果。

    

    每秒发射粒子数量。Bursts为某个时间点爆发出粒子的数量,这个时间必须在粒子Duration范围内。

    

    每米发射粒子数量。粒子发射器所在的游戏对象,移动的时候每米发射的粒子,但粒子坐标系必须在世界坐标系。

    3.Shape Model(形状控制模块):定义了粒子发射器的形状,位置及发射方向。

    球形粒子发射器:

    

      Radius:球形的半径。

      Emit from Shell:是否从表面发射粒子,还是从内部发射。

      Random Direction:是否启用随机速度。

      

    半球发射器:

    

      

    锥体发射器:

    

      Angle:椎体,上边开口的大小。

      Radius:半径的大小。

      Length:椎体的高度。只有当Emit from 值为Volume Shell或是Volume时可用。

      Emit From:粒子发射的位置。

      ——————Base:粒子发射源在椎体的内部的底面上,由底面开始发射。

      ——————Base Shell:粒子发射源在椎体底面的边缘,就是周长那一圈发射。

      ——————Volume:粒子发射源在椎体内部空间。

      ——————Volume Shell:粒子发射器在椎体整个表面上。没有底面。

      

    立方体发射器:

    

      Box X:立方体长度。

      

    网格发射器:

    

      Mesh:选择网格样式。

      ——————Vertex:粒子将从网格顶点发射。

      ——————Edge:粒子将从网格边缘(棱)发射。

      ——————Triangle:粒子将从网格的三角面发射。图形都是三角形组成的。

    4.生命周期速度模块:控制每一个粒子的速度。

    

    5.生命周期速度限制模块:

    

      Separate Axis:是否启用限制每一个轴。

      Speed:限制的速度。

      Dampen:阻尼。阻尼为1的时候表示在生命周期结束的时候,速度降到限定的速度。

    6.生命周期作用力模块:控制每一个粒子在生命周期内受到力的情况。

    

      Randomize:只有在Random Between Two Constants或Random Between Two Curves时才可启用。

            表示每一帧作用在粒子上的力是均匀随机产生的。

    7.生命周期颜色模块:控制每一个粒子在生命周期内颜色的变化。

    

      

    

      

    8:速度范围颜色变化控制模块:根据设置速度的范围和粒子的速度来改变粒子的颜色。

    

      

    9:生命周期粒子大小模块:控制每个粒子在生命周期内,大小的变化。

    

    

      

    10:速度范围粒子大小变化控制模块:根据速度的变化改变粒子的大小。

    

    

      

    11:生命周期每个粒子的旋转速度:每秒粒子旋转的角度。

    

      

    12:根据速度变化改变粒子的旋转速度:旋转速度不为固定常数时。

    

      

    13:外部作用力倍增数:调整风对粒子的影响情况。

    

    14:碰撞模块:为粒子创建粒子碰撞效果,目前只支持平面碰撞。

    

    平面碰撞只支持6个平面,点击+号可以添加现在有的平面或是新建立一个。

    

    通过新建立了碰撞平面,会成为粒子物体的子物体。

      

      

     Visualization:碰撞平面的显示方式。

     ——————Grid: 

     ——————Solid:

    Scale Plane:碰撞平面的大小。

    Dampen:阻尼系数。粒子速度撞击损耗程度。0~1。

    Bounce:反弹系数。0~2.系数越大,反弹角度越小。

    Min kill Speed:最小销毁速度。当速度小于这个值的时候,粒子消失。

    Particle Radius:粒子碰撞半径。最小值为0.01。

    世界碰撞:

    

    Collides With:碰撞层级。选择与那一层级碰撞。

    Collision Quality:碰撞质量。

    ——————High:每个粒子会每帧与场景做一次射线碰撞检测,需要注意的是,这样会增加CPU的负担,故在此情况下整个场景中的粒子数应当小于1000。

    ——————Medium:粒子系统在每帧会受到一次Parude Raycast Budget全局设定的影晌。

    ——————Low:与 中等效果相似 ,只 是粒子系统每4帧才受一次Parude Raycast Budget全局参数的影晌。

 

    ——————Voxel Size:碰撞缓存中的体素的尺寸,仅当Collision Quality为Medium和Low时可用。

    15:子粒子发射模块:在粒子出生,碰撞,消灭时可以调用其他粒子。

    

    

 

     16:序列帧动画纹理模块:

    

    Tiles:x水平分割的份数,y垂直分割的份数。

    Animation:Whole Sheet-整个页面即X,Y一起移动。

    Frame over Time:生命周期内,动画变幻的速率。

    Cycles:生命周期内变化几次动画。

    

    Animation:Single Row-从左到右行滚动。

    Random Row:随机行。

    Row:选择某一行,开始滚动,小于Tiles中的Y。

    17:粒子的渲染模块:

    

    Render Mode:渲染模式。

    ——————Billboard:面板渲染。

    ——————Vertical Billboard垂直渲染,此模式当面对摄像机时,粒子将与zX平面对齐

    ——————Horizontal Billboard:水平模式,此模式下粒子将沿Y轴对齐。

    ——————Stretched Billboard:拉伸渲染。

          

          ————CameraScale:相机缩放。摄像机的速度对于粒子伸缩影晌的程度。speed Scale:通过比较粒子的速度决定粒子的长度。 LengthScale:通过比较粒子的宽度决定粒子的长度。

          

    ——————Mesh:模式。

    

    

    18:属性:

    

    Resimulate:实时渲染。在改变参数的时候,场景中的粒子效果实时变化。

    Wireframe:选择时,将显示粒子的片面网格。

    

cocos2dx-粒子特效

阅读数 1983

没有更多推荐了,返回首页