Unity3d中使用自带动画系统制作下雨效果

转载 2013年12月02日 16:14:14

之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始。

使用自带动画系统制作下雨效果。

先制作下雨的雨滴涟漪。

步骤1:

在project中新建文件夹,命名为rainFX。将图片素材RainStreak及Ripple导入到rainFX文件夹中,创建一个plane,改名为RippleObj,创建一个material,命名为ripple。(将导入的Ripple贴图的Alpha from Grayscale 打上勾,以使贴图的背景透明)

步骤2:

将ripple材质赋给RippleObj。

修改材质的Shader为Particles/Addtive,将Ripple贴图赋给ripple材质的Texture,在inspector窗口中修改Particle Texture,Tilling的x值设为0.1666,y为1,offset的x为0.8333,y为0。选中RippleObj,将Shader下的Tint Color改为白色。(改为白色为了使雨滴更加明显一点)

 

修改后效果:

步骤3:

选中RippleObj,按Ctrl+6,调出Animation窗口,点击窗口下的Ripple(material),会发现下面都是灰色不可选状态。

点击RippleObj右边的一个小按钮,会出现[Create New Clip],点击。此时Ripple(Material)下的选项都已可用。

点击后会出现下面的对话框,提示保存动画文件。命名为RainAnimation,保存。

步骤4:

选择Ripple(Material)下的Main Tex.offset.x,点击右边的小横线->Addkey。

拖动时间轴到0.05,再次Addkey,修改offset.x为0.1666。分别在0帧Addkey,offset.x为0,0.05帧Addkey,offset.x为0.1666,0.1帧Addkey,offset.x为0.3333,0.15帧Addkey,offset.x为0.5,0.2帧Addkey,offset.x为0.6666,0.25帧Addkey,offset.x为0.8333。效果图如下:

步骤5:

此时的Animation窗口中有一条从0.0—0.25的红色斜线,用鼠标框选六个关键帧,右键—>Both Tangents—>Constant(右键需在红色的关键点上点击)。此时斜线被改为梯形上升的线。选择Tint Color.a,在0.0帧修改Tint Color.a为1,0.25帧即最后一帧设置Tint Color.a为0。使动画有一个透明渐变的效果。

到此,涟漪效果制作完成。

步骤6:开始添加脚本,控制涟漪的消失,脚本名:RippleDestroy。

复制代码
 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class RippleDestroy : MonoBehaviour 
 5 {
 6     public void DestroyMe()
 7     {
 8         Destroy(gameObject);    //删除自身
 9     }
10 }
复制代码

将脚本赋给RippleObj。

在Animation窗口中,最后一帧即0.25帧处,点击右边的Add Event按钮,在0.25帧添加一个事件并将DestroyMe()赋给Function。

 

步骤7:

将RippleObj拖到rainFX文件夹中,使之成为一个prefab。然后可以将场景中的RippleObj删掉。

 创建一个空物体。GameObject—>Create Empty。改名为ripple,此时场景中只有Main Camera,ripple。

创建一个rippleFX脚本:

复制代码
 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class rippleFX : MonoBehaviour 
 5 {
 6     public GameObject rippleObj;    //涟漪实例
 7     int ti;        //计时器
 8     
 9     void Start () 
10     {
11         
12     }
13     
14     void Update () 
15     {
16         ti++;
17         if(ti>=5)        //每隔5帧,计时器发生作用
18         {
19             GameObject tempObj=Instantiate(rippleObj) as GameObject;        //复制涟漪物体
20             tempObj.transform.parent=gameObject.transform;                //设置子物体
21             tempObj.animation.Play();                                    //播放动画文件
22             tempObj.transform.position=transform.position+new Vector3(Random.Range(10,-10),0,Random.Range(10,-10));//移动涟漪物体到一个随机位置
23         }
24     }
25 }
复制代码

将rippleFX脚本赋给空物体ripple,再将prefab物体RippleObj赋给ripple的脚本的变量RippleObj即可。

点击运行,即可出现地上很多涟漪的效果。

 涟漪做完了,下一篇继续写雨滴的做法~~


接着昨天的(一),今天上下雨效果的后半部分。在最后附上网盘链接,有使用的素材及本次的工程源文件,想看看的童鞋可以下载~~

下雨效果分两部分:地上的涟漪和空中的雨滴。那么现在就开始,是使用unity3d的粒子系统制作下落的雨滴。

步骤1:

新建一个粒子系统。

GameObject—>Create other—>Particle System。改名为raindrop。

步骤2:

新建一个材质(material),改名为跟贴图一样的名称RainStreak,修改材质的Shader为Particles/Addtive。

 

将贴图RainStreak赋给材质,修改Tiling的x为8。

 

修改RainStreak贴图的Wrap Mode为clamp(8为使贴图在单位面积上显示8个,即使单个贴图的面积变小,然后修改Wrap Mode为clamp即使粒子系统中显示的粒子为变小后的单个贴图)。

步骤3:

将RainStreak的Material赋给粒子系统的Render下面的Material。

此时粒子系统中显示的即为雨滴的贴图。

步骤4:

修改粒子系统的Shape,使之变为圆柱形。

调节参数Emission下的Rate,可修改雨滴密度。

Rotate by Speed下的Angular Velocity可改变雨滴的下落方向。

调节各个参数完毕后,即可达到最终效果(多调下参数,以便达到更好的效果)。

到此,下雨效果完成(这里的效果看起来比较糙...)。

另外,可以把所用到的材质、贴图、脚本等资源全部放到rainFX文件夹中,方便以后使用的时候直接拿过来用就可以了~~

我把素材及工程源文件上传到网盘,童鞋们可以下载来看看~~

http://pan.baidu.com/share/link?shareid=522605416&uk=3761044284


http://www.cnblogs.com/Sakya00/p/3313359.html

Unity Shader-后处理:屏幕水波效果

一.简介 最近在打黑魂,被虐得死去活来,每次都是想砸电脑的节奏,然而还是忍不住想玩,唉。在被虐了千百遍之后,我发现写代码比玩游戏爽....下面步入正题,黑魂的传送技能之前会播放一个帅帅的屏幕特效-屏幕...
  • puppet_master
  • puppet_master
  • 2016年11月03日 10:13
  • 10513

unity3D 下雨效果实现

这个效果借鉴自unity例子angrybot,并做了一部分适应项目的修改。 angrybot的实现方法 单个雨滴 RainBox 1.Start的时候从Mgr里面取一个雨滴的mesh给MeshFil...
  • songchao_xx
  • songchao_xx
  • 2016年02月29日 22:26
  • 4526

Unity3d中使用自带动画系统制作下雨效果(二)

接着昨天的(一),今天上下雨效果的后半部分。在最后附上网盘链接,有使用的素材及本次的工程源文件,想看看的童鞋可以下载~~       文章出自【狗刨学习网】       下雨效果分两部分:...
  • Carl180
  • Carl180
  • 2015年01月27日 20:24
  • 1314

Unity3d中使用自带动画系统制作下雨效果(一)

之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始。       文章出自【狗刨学习网】      ...
  • Carl180
  • Carl180
  • 2015年01月27日 20:24
  • 1461

unity3D 下雨效果实现

这个效果借鉴自unity例子angrybot,并做了一部分适应项目的修改。 angrybot的实现方法 单个雨滴 RainBox 1.Start的时候从Mgr里面取一个雨滴的mesh给MeshFil...
  • songchao_xx
  • songchao_xx
  • 2016年02月29日 22:26
  • 4526

Kinect系统在Unity3D游戏角色动画制作中的应用

  • 2014年09月12日 11:10
  • 113KB
  • 下载

Unity3d自带的自动寻路系统(一)

众所周知,自动寻路是所有游戏的一个难点,属于AI(人工智能)的范畴。一个游戏的AI的设计是否足够完美,可能决定了这个游戏的命运。然而自动寻路就是AI中的一个十分重要的分支,其算法异常复杂。然而unit...
  • woailvmengmeng
  • woailvmengmeng
  • 2013年10月12日 16:19
  • 3525

Unity3D自带寻路系统原创入门教程

在unity还没有自带的NavMesh寻路系统的时候我们做AI寻路使用的是Unity拓展的A*寻路插件,现在Unity的寻路系统已经非常好用,跟我来体验一下吧。 1、Navigation编辑器 Nav...
  • pizi0475
  • pizi0475
  • 2015年07月17日 10:29
  • 1199

UNITY3D自带的angryBots项目的android apk包

  • 2012年04月27日 17:05
  • 23.52MB
  • 下载

Unity3D 自带手机陀螺仪程序

  • 2015年07月08日 18:27
  • 1023B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity3d中使用自带动画系统制作下雨效果
举报原因:
原因补充:

(最多只允许输入30个字)