创建一个简单的Emitter效果
项 | 值 |
---|---|
Unity 版本 | Unity2021 1.18f1c1 |
ObiFruid版本 | Obi Fluid v6.43 |
IDE | vs2022 |
系统版本 | win 10 |
撰写日期 | 2022年5月 |
创建发射器
- 创建发射器 在Hierachy面板右键3D>Obi>Obi Slover
- 创建发射器 在Hierachy面板右键Obi Slover(刚刚创建的)> 3D>Obi>Obi Emitter
- 检查有无OniCollisionWorld这个物体,并挂载上OniCollisionWorld 脚本
- 在Obi Slover上检查有无Obi Fixed Updater 脚本,并将场景中全部的Slover拖拽到ObiFixed Updater脚本的Slovers里。
- 查看ObiSloer脚本,将Mode修改为 Mode 3D
- 点击ObiEmitter,将Blueprint修改为预制的效果蓝图
- Collision material可以不填写。
- Disk为发射器的形状,Disk为圆盘
- 在摄像机上增加Obi Fluid Renderer脚本,将场景中的发射器Emitter拖拽到Particle Renderers变量下
- 在太阳(Directional Light)上添加Shadowmap Exposer 脚本,并将全部的发射器拖拽到Particle Renderers下
创建地板
- 在模型导入之后见模型修改为可读可写(Read/Write Enabled)
- 将模型拖入到场景中去,添加Rigidbody组件
- 添加Obi Rigidbody组件
- 添加Obi Collider组件
- 修改Rigidbody的Is Kinematic 为true
- 修改Obi Collider中Material为想要的物理效果,
Source Collider
为地板的Mesh Collider
, - 在路径 Obi>Samples>Common>SampleResources>DistanceFields 下有一个
DistanceFields
右键Creat>Obi>Distance Field,
将地板的模型的Mesh拖拽到创建的distance field
的Input上。并重新生成Generate
。 - 在Obi Collider脚本的Distance Field属性选择为刚刚创建的
Distance Field
。
其他
- 如果是球球,需要在发射器上的Obi Particle Renderer组件上取消勾选Render。
- Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5。报错这个。修改地板的修改
Rigidbody
的Is Kinematic 为true。 - 如果创建完成之后,液体不能和地板交互,直接穿过去了,检查Obi发射器Obi Emitter的
CollisionMaterial
和Collides category
,以及地板的CollisionMaterial
和Collides category
是否一致。
脚本介绍
处理器Slover
切换渲染的模式,是3D还是3D
Slover>obi Slover>Slover settings>Mode>Mode 3D
Obi渲染器Obi Particle Renderer
路径 Emitter>Obi Particle Renderer> Render
true在Scene下可以看到
false在Scene下看不到
ParticleColor 显示液体时的颜色
Obi发射器Obi Emitter
路径 ObiEmitter>Obi Emitter
Blueprint 液体的属性(水,石头,岩浆等等)预设的材质
CollisionMaterial 小球的碰撞材质,可以不加
Collides category 设置碰撞的序号标记
Collides with 允许和那些进行物理交互 (在ObiCollider
中也有Collides category
,Collides with
这两个属性,不理解可以去测一下)
Emission method 发射方式STREAM(流式) BURST(爆发)
Min poll size 发射的最小粒子量,单位是百分比,最大粒子量点击Blueprint
查看预制体的Capacity
查看最大的粒子数
Speed 发射器的初始速度,速度慢会有一滴一滴的感觉
Lifespan 生命周期,单位秒
Random velocity 随机方向,一般保持默认值
Use shapr Color 生成的粒子由相应的发射器形状的颜色着色。(没看懂保持默认)
发射器形状
路径 创建发射器ObiEmitter>Obi Emitter
可以添加 Cube Disk Edge Sphere Square
,一个发射器可以同时有很多形状
Obi渲染器Obi Particle Renderer
Render 完成渲染之后需要取消勾选,就可以看到水的效果,否是是球球,(true在Scene下可以看到,false在Scene下看不到)
Shader 着色器选择默认
Particle Color 最后渲染出的颜色
Radius SCale 半径衰减,值越高粒子越大
发射体的预制体(发射的蓝图)
选择Obi Emitter
的Blueprint
可以看到,有水,石头,岩浆等等
Capacity 产生的最大粒子数量
Resolution 默认值 (1) 将使用每立方米(每平方米) 1000 个颗粒。
Rest Density 单位内的粒子密度,愈多愈清晰(不清楚,保持默认)可以和Radius SCale
一起调整
Smoothing 光滑度
Viscosity 粘度
Syrface Tension
Buoyancy
Atmospheric Drag
Atmospheric Pressure 越小越容易炸开
Vorticity 漩涡
Diffusion
修改完成之后要点击最下面的按钮
摄像机上的脚本 Obi Fluid Renderer
Basic Blending > Thickness Cutoff 液体和模型边缘的距离
Basic Blending > Thickness Downsample 采样
Surface Reconstruction > Blur Radius 越高越真实清晰
Lighting > Smoothness 越高越光滑,高光越明显
Lighting > Ambient MuLtiplier 越高越亮
Reflection > Reflection 反射量
Reflection > Metalness 金属
Refraction > Transparency 控制透明度
Refraction > Absorption 控制透明度,Obi Particle Renderer>Particle Color配合使用
Refraction > Refraction 折射
Refraction > Refraction Downsample 折射
修改发射器的模式
- 创建发射器 在
Hierachy
面板右键3D>Obi>Obi Emitter
- 在创建的
Obi Emitter
上可以看到Disk
脚本,Disk是创建的是圆环 - 移除
Disk
脚本,点击Add Component
输入Cube
来将发射器改为正方形 Cube Disk Edge Sphere Square
其他学习网站
//Unity Obi Fluid教学 来自cg
https://www.cg.com.tw/ObiFluid/
//官方教程
http://obi.virtualmethodstudio.com/manual/6.3/fluidrendering.html