Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)

文章目录

      • 一、前言
      • 二、效果演示
      • 三、使用方法
        • 1、流体发射器
        • 2、流体碰撞器
        • 3、流体渲染器
        • 4、修改流体颜色
        • 5、盆子模型
        • 6、流体颗粒大小
        • 7、流体材质
        • 8、喷射口调节
        • 9、喷射速度调节
        • 10、碰撞材质
        • 11、流体重力加速度
        • 12、使用粒子系统
      • 四、结束语

一、前言

点关注不迷路,持续输出Unity干货文章。

嗨,大家好,我是新发,今天给大家分享一个Unity流体模拟插件:Obi Fluid
本文Demo工程已上传到CodeChina,感兴趣的同学可以下载下来学习:
地址:https://codechina.csdn.net/linxinfa/UnityFluidSimulationDemo
注意:我使用的Unity版本是2020.2.7f1c1 (64-bit)
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第1张图片

二、效果演示

效果演示:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第2张图片

Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第3张图片
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第4张图片

三、使用方法

1、流体发射器

Hierarchy空白处右键点击菜单3D Object / Obi / Obi Emitter (with solver)
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第5张图片
此时,会创建一个挂了如下四个组件的物体:
Obi Emitter:流体发射器;
Obi Emitter Shape Disk:流体发射器的形状;
Obi Particle Renderer:流体粒子渲染器;
Obi Solver:流体解决方案。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第6张图片
此时运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第7张图片

2、流体碰撞器

我们创建一个平面。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第8张图片
挂上Obi Collider组件。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第9张图片
运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第10张图片

3、流体渲染器

我们看到上面的流体效果是明显的小球的样子,此时,我们给摄像机挂上Obi Fluid Renderer组件,并赋值Particle Renderers元素为上面创建的Obi Emitter
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第11张图片

并将Obi Emmiter物体上的Obi Particle Renderer组件的Renderer勾选去掉。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第12张图片
再运行,效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第13张图片

4、修改流体颜色

通过Obi Particle RendererParticle Color属性,即可修改流体的颜色。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第14张图片
效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第15张图片

5、盆子模型

为了方便演示,我们加个盆子模型,为其添加Mesh Collider组件,并勾选Convex
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第16张图片

并挂上Obi ColliderObi Rigidbody组件。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第17张图片
如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第18张图片

为盆子添加Obi Collider组件,否则流体会直接穿过盆子。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第19张图片
将摄像机镜头拉近,运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第20张图片

6、流体颗粒大小

通过Obi Particle RendererRadius Scale可以调节流体颗粒的大小,如下,我们调整为1.5
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第21张图片
运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第22张图片
运行一会儿,帧率跌3.6FPS,我们需要设置一下参数,减少运算。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第23张图片

7、流体材质

通过Obi Emitter组件的Emitter Material可以设置流体的材质,如下,以LowResulution为例。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第24张图片
运行效果如下:

此时,帧率可以稳定在60FPS左右。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第25张图片

8、喷射口调节

选中Obi Emitter,可以在Scene窗口中看到喷射口的形状,是一个像花洒一样的东西。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第26张图片

我们看到喷射口的方向不是对着盆子的,调整一下Transform的角度,使喷射口的方向对准盆子。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第27张图片

喷射口有点大,可以通过Obi Emitter ShapeRadius即可调节喷射口的大小,我们调为0.12,如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第28张图片
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第29张图片

运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第30张图片
我们还可以替换喷射口形状,比如换成条形的喷射口。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第31张图片
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第32张图片

9、喷射速度调节

我们看到喷射速度比较慢,可以通过Obi Emitter组件的Speed属性调节喷射速度,我们调为4,再给一个随机受力Random Velocity
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第33张图片

运行效果如下:

10、碰撞材质

可以通过Obi Emitter组件的Collider Material设置碰撞材质。
为了演示,我们把喷射口角度调整一下,让流体喷射在盆口边缘,如下:

接着,我们以VerySticky为例。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第34张图片
运行效果如下,可以看到粘性很强:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第35张图片

11、流体重力加速度

通过Obi Solver组件的Gravity可以调节流体的重力加速度,如果重力加速度太大,流体可能会穿透容器。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第36张图片

如下,-30的重力加速度太快了,导致流体穿透容器。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第37张图片

如果设置为正值,流体则会收到向上的加速度,比如设置为5
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第38张图片
运行效果如下:
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第39张图片

12、使用粒子系统

Obi Emitter子节点下创建一个粒子系统。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第40张图片
给粒子系统挂Particle Advector组件,并赋值Solver对象。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第41张图片
将摄像机的Obi Fluid Renderer组件禁用。
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第42张图片
随便设置下粒子的效果,
Unity流体模拟,支持粒子系统,支持流体碰撞交互(Obi Fluid插件使用教程)_第43张图片
运行效果如下:

四、结束语

喜欢Unity的同学可以点击关注,欢迎留言评论,我会不断写一些Unity的干货文章,希望可以帮助到想学Unity的同学。

你可能感兴趣的:(Unity3D,unity,流体,water,水,模拟)