Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作

**

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作

**
作者Ghost_Light


1.使用的雨天天气模拟插件是Rain Storm Effects。Rain Storm Effects的基本原理应该是将下雨的忍者飞镖、雾、风等元素挂在包含了主摄像机的父物体上,粒子产生的位置将随摄像机的位置改变,从Scene面板上看到的是局部下雨的效果。下图为Rain Storm Effects的ReadMe文档。

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第1张图片


2.新建场景后导入车辆模型和Rain Storm Effects。

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第2张图片


3.在场景中可以直接使用插件提供的第一人称角色控制器,First Person Controller的预制件中已经包含了下雨的粒子系统以及移动跳跃等物理效果。将车辆模型及“First Person Controller”、“Wind Parent”、“Lightning Parent”等预制件拖入Hierarchy,摆放好位置,此处为了让效果更明显,移除了光源并用五块黑色Plane把车围起来 。

为了让雨滴粒子和车体有物理碰撞,为车辆几个表面部分添加Mesh Collider并勾选Convex。
Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第3张图片

点击Play按钮后的效果如下。


4.下面来研究一下插件的粒子系统Inspector选项,因为是初次使用unity的粒子系统,所以碰到了一个暂时无法解决的问题,有时调整一下粒子的参数就导致软件崩溃,当前硬件是16G内存和GTX1080,也重新分配了虚拟内存。错误提示如下:

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第4张图片

撇过这个偶尔出现的错误,Inspector中的参数意思不再逐一翻译。方便效果展示,关闭了Hierarchy中的Rain Splash(雨点撞击物体后溅起的水汽)和Wind Parent。

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第5张图片
基本没有改动插件提供的原始参数,只是将Rain Storm Parent-Rain-Collision-Lifetime Loss的数值调大到0.8,这样雨点粒子消失时间会变短,撞击到物体后的拖尾效果减弱。

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第6张图片


5.雨刮器效果的构思,为了实现第一人称车辆场景雨天行车并运行雨刮器的效果,在网上没有找到相关资料,只好自己想办法实现,下面给出基本思路方便读者拓展和完善。

“真实世界中雨滴撞击到前挡风玻璃上后会溅起水花,雨再大点会产出水流从玻璃上流过,形成一层较薄的水面,此时雨点再撞击到玻璃上时会产生水晕。当雨刮器打开后会在窗前扫过一个弧形,此时弧形表面不再沾染水滴,雨滴落在干表面上重新开始积水的过程,如此往复。”

如此而言,需要在U3D中做到这样的效果,需要导入流体的模型或者用shader实现水面的效果,水流功能对于u3d来说本来就较为困难而且又因时间问题没有办法继续研究,实为遗憾。


6.具体的实现方案。在车窗前添加两个cube,为cube添加box collider并关闭mesh renderer,
将cube的高度设置到这么高,可以将本该落在车窗上的雨滴挡在摄像机看不见的地方。

Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作_第7张图片
当雨刮器未打开时,cube-SetActive(false),此时雨点等够顺利落在车窗上,产生水晕和溅水效果,打开雨刮器后,cube-SetActive(true),并在cube上挂脚本,实现在车窗范围内的左右移动,来回移动的脚本就不展示了,用itween可以很轻松的实现pingpong效果。
采用的解决方案十分简易但是确实有类似雨刮器的效果,粒子数量越多越明显。有时间的读者可以将cube换成弧形的模型,用旋转而不是左右移动,来实现雨刮器的效果。
雨刮器的模型动画可以用3DsMax制作,因为一般车辆的两根雨刮器不是一样大小的,所以最好分别录制两个动画。动画的录制过程不细讲,无非就是添加骨骼,蒙皮,在关键帧上摆好姿势,最后导出成fbx文件导入unity就行了。回到unity中将本来的雨刮器模型删掉,绑上有动画的模型。

简易的雨刮器制作到此结束,其中存在的错误希望得到指正,相互提高谢谢。

你可能感兴趣的:(Unity3D,Unity3D,天气插件,雨刮器制作)