创建一个简单的Emitter效果
创建发射器
- 创建发射器 在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
|