Hello,大家好,我是木偶心没。接上次分享, Unreal超级水体系统介绍 ,了解了水体的基本创建以及简单的wave介绍,接下来安排浮力和浪花材质基础教学。
1、浮力效果
在加载水体的时候会自动加载水体的浮力插件Buoyancy Component,这个组件可以得到一个浮力的简单近似值,然后模拟成球形去与水体进行交互,并且可以有多个物体参与浮力计算。具体模拟如下。
首先新建一个bp,并且把需要浮力的物件添加进去,并且勾选物件的simulate physics

继续添加一个Buoyancy,并且在属性里面添加一个Pontoons浮力值。设置浮力范围radius为100,则如果relative location为(0,0,50),表示物体整个在受到浮力时几乎浮出水面;设置为(0,0,-50)的时候,表示物体在受到浮力会被水整个淹没掉。下面把做好的bp拉到场景中做一个效果对比。


同样在蓝图里面也添加了一些函数节点可以获取物体是否在水里等信息,由此可以在物体离开水面或者刚接触水面的时候生成一些泡沫等粒子效果。

2、Water Material
接着来解析一下插件默认的水体材质球
Water/Content/Materials/WaterSurface/Water_Material.uasset
首先是加载外部wave的部分,上一次分享有说到,水体可以单独加载一个独立的资产GerstnerWave,具体的添加步骤就在材质里面。

点开主要的加载函数ComputeGerstnerWaves,里面有一个custom节点Get Gerstner Waves,HLSL内容如下。
WaveOutput Waves;
Waves = GetAllGerstnerWavesNew(WaterBodyIndex, Time, WorldPosition);
return PackNormalAndWPONew(Waves);
可以看出在材质里面用WaterBodyIndex获取了water data的信息然后返回添加了gerstner wave以后的normal和WPO(world position offset),然后替换掉原来没有gerstner wave的water normal和WPO。另外在输出的normal中对远处的法线也进行了一些处理,降低了法线的强度,因为由于距离原因,并不需要看清楚那些很强的法线效果。

由于这个材质球可用于所有的water,所以,对于河流river,勾选了Enable river,就会对河流的flowmap进行处理。

剩下还有海水边缘泡沫的处理Beach Foam。

如果勾选Ocean Foam看不到明显的效果,可以将材质中的参数Height Bias调大一点。

流体模拟Fluid Simulation。

即水在与某些物体交互的时候生成的一些波纹涟漪等效果。原理就是在计算的时候会首先查询water的一些信息,然后返回交互的位置,并获取波纹涟漪的一些属性,最后在蓝图里面把波纹涟漪等加在water上面。具体请参考关卡:
Water/Content/FluidSimulation/WaterFluidSimtestShallow.umap

以上就水完了water水体系统基本的一些功能啦!
来源:Thepoly公众号
上一篇 通过《古代山谷》初探UE5新特性
下一篇 UE4制作风格化场景图文教程
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答3.精通材质贴图软件;精通各主流渲染器的设置;对主流引擎有一定了解并能还原美术效果6.简历内请附带作品资深角色模型师(CG向)......
鹿角部分我是通过在ZBrush中创建圆柱体,然后使用蛇形笔刷(SnakeHook)配合动态笔刷模式,把鹿角的大型制作出来期间对......
是的,常年被抢、上来缺口按几十个人算的,一定有角色动画专业!下面这家地处北京的制作公司表示,他们现在的主要业务是制作动画短剧、......
一样是入学时底子薄弱、但通过火星6个月课程学习获得较大提升,并顺利入职行业名企的学员案例这个专业的全称是“影视游戏3D模型大师......
全球年收入超10亿美刀的小程序游戏,正在疯狂招聘!附火星匹配专业
这里为大家整理了一组点点互动10月岗公开的热招岗位清单,主要是美术岗和技术岗,分校招和社招两组,感兴趣的同学可以尝试投递社招·......
上班啦!上班啦!又是替同学开心的一天!这位同学因为大学还没有正式毕业,所以目前是以实习生身份入职腾娱!等拿到大学毕业证的时候,......
同学您好!