Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面
Posted 清清!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面相关的知识,希望对你有一定的参考价值。
Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面
- Lec24 用UE4.26的水来做一条河 River Water with 4.26 Water System
- Lec25 河流调整与自动河床材质 Water Polish for 4.26 Water System
- Lec26 水的浮力 Water Bouyancy
- Lec27 交互水面 Interactive Water
- Lec28 水浮力与涟漪深入 Water Systems Deeper Dive
本系列学习资料来源,Ben Cloward的油管空间,B站的搬运翻译
Lec24 用UE4.26的水来做一条河 River Water with 4.26 Water System
1 准备工作
在导入UE4.26的水之前,我们先打开插件(Edit-Plugins)
搜索landmass,它可以让我们用样条线来编辑河流
然后重启即可
Ben佬提出,如果要向我们之前做的那个8K大小的地形加河流,是比较耗性能的,所以我们会重开一个小一点的场景;另外,为了河流正常运行,我们的整个地形都要高度在0以上。
此前我们做过手工的河流场景,我们手绘了高度图,手绘了地形上的材质,摆放所有岩石,摆上河流面片……
如果我们要缩放这个场景,改变它的大小,那我们肯定要手动修改很多东西
但我们的自动地形材质shader就没这么多烦恼了,我们可以快速重建地形
拿出高度图,选出自己想要的部分,比如选择2017*2017像素(我是去之前那个地理网站重选了个区域下下来)
然后要把该地形抬高到原点之上
拖入target point
把它设成原点
然后把地图整体上移,看着都在这个点上面就行
然后上材质,记得启动第一个红框,这样之后水会动态调整我们的高度图
然后就是RVT的两个volume
这时候选择landscape模式的paint模式的layerinfo
然后改一改RVT的Material,把它的高度相关的参数暴露出来自己调调效果
重建完成啦
2 河流系统及其属性
我们拖入河流
可以看到山被挖了个大洞,这也是UE4.26的水系统特点之一,它会动态调整我们的地形,不像此前我们为了做条河要手动画一下高度图
可以看到河流上有样条线,我们可以用样条线来调整河流的位置
我们选择河流,在右边的参数面板可以调整各自参数,比如控制点的属性
以及各种边缘降落偏移的属性
我们按住河流顶部的点,再按住alt键拖动,就可以创建新的点
然后把河拖出来
但是现在还有很多问题,比如树和草到处乱长,河流颜色没改,没有河床鹅卵石等等……我们会在下节改进
Lec25 河流调整与自动河床材质 Water Polish for 4.26 Water System
1 属性设置
首先是调整一下材质
- Absorption代表被吸收的光的位置,比如R是10代表红光被10cm的水吸收,GB同理,A通道代表一个乘数
调一调参数
再调一下Scattering,类似于给水加个fog的效果
把Refraction也可以调低一点比如到1.05
2 自动河床材质
我们把河流选成不显示,可以看到这是我们的材质自动绘制的河床
我们希望河床上铺些鹅卵石而不是长杂草,并且希望河床材质能够跟着样条线变化自动变位置
2.1 地形材质RVT调整
(这里我看Ben佬的草怎么会动,然后发现是草材质里有个wind)
为了渲染的准确性,我们暂时不使用RVT
把原本的材质都换回来,都改成不使用RVT的版本(也就是远近防重复都有)
2.2 添加河床材质
我们之前在手工场景的时候做过水底的石头,直接先放进来
添加河流的layer
然后混合河流,加入layer,加入lerp
在grass绘制时,减去河流,并且增加一层给石头
河流的grass就是各种之前手工场景用过的鹅卵石
打开landscape模式的paint,选择各种info
我们可以手工绘制
但我们也可以让样条线自动绘制
2.3 样条线自动添加河床
步骤如下
选择BodyRiver,打开LayerWeightmapSettings
然后就好了,我们可以拖动样条线让材质跟着
2.4 自主发挥
在教程基础上又自主发挥了一下加了个草,加了个河岸的材质,感觉做不太到和手工河岸那么精细
方法的话,用这一串角度混合河床和河岸的材质,替代原来的河床材质
在River层的Grass加一些草
调一调河床和河岸角度层的参数
为了调节这俩的湿度,我又加了俩节点控制参数,表现出潮湿效果(上下一样)
然后又调了调河body的参数啥的
Lec26 水的浮力 Water Bouyancy
我们可以使用引擎自带的功能来创造水的浮力
首先显示引擎和插件内容
替换成木头
Lec27 交互水面 Interactive Water
之前水虽然有浮力,但是没有涟漪什么的能够起到交互,我们尝试添加交互涟漪
这一功能在UE4里尚处于实验阶段
1 修正官方的错误
我们打开官方的测试场景(我目前是UE4.26.1),但很遗憾点击play,并没有涟漪
原因是一些资产官方并没有导入
我们打开这个材质
很显然看到一个报错
给它这个RT就好了
2 添加交互水面
下面这个红框里的BP_FluidSim_01是驱动交互水面的蓝图
将其拖入场景,给如下选项打上勾可以显示作用范围
在本小节测试中,暂时不勾选跟随玩家,同时Simulation World Size选的合适一点
Terrian Mode选择Terrian With Elevation,让涟漪拥有正确的地形
也记得选择我们已经放上去的样条线河流
我们接着拖入一个测试球
拖动一下
去掉Show Simulation Mesh
Lec28 水浮力与涟漪深入 Water Systems Deeper Dive
这节以一个原木为例子,实现原木的浮动和涟漪
我们首先把原来的example复制一份
打开它,修改它内部的mesh
1 pontoons
我们打开浮力板块Buoyancy,看到右边浮桥pontoons有四个属性
这四个是什么呢?我们可以先看看直接把这个木头拖到场景里是什么效果
发现它疯狂抽搐抖动,这就是浮桥pontoons起的作用
其内部的四个元素相当于组成一个矩形来充当浮力
我们可以在树木的两头加上浮桥,我们可以用ChildActor来确定位置,类似这样
比如我们用两个浮桥来模拟头尾
我们也可以在这里调节物体的重量
2 dynamic ripples
我们之前用过
我们打开它的蓝图
复制这些蓝图到我们自己的树干去,也把ForceMesh复制过来,以及底下的Components
找到我们的ForceMesh
调整一下浮桥和ForceMesh的参数
我们注意到这个球是可以震荡的,我们可以设置速度和振幅
在蓝图中我们可以设置它的震荡方向
看看效果
接下来把这个球的Mesh设成不可见就行了
接下来的学习中会加入雨水章节
以上是关于Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面的主要内容,如果未能解决你的问题,请参考以下文章
Building Worlds In Unreal 学习笔记——29-30 水坑与涟漪
Building Worlds In Unreal 学习笔记——01-02 概览与引入
Building Worlds In Unreal 学习笔记——12-14 瀑布/雾与光/总结与展望
Building Worlds In Unreal 学习笔记——03-06 地形贴图/地形材质/修正重复/近景位移