简介
大家好,我叫Timothy Cole,是一名虚幻引擎艺术家。我在大学学习的是电脑游戏的3D艺术,但是我也一直对电影充满热情,所以我尝试在这两个领域都有所涉猎。我最初在悉尼的一家动画工作室工作,使用虚幻引擎制作游戏电影和预告片。从那时起,我开始接触实时动作捕捉,并与 Guy Norris(《疯狂的麦克斯:狂暴之路》特技导演)合作,现在刚刚结束《X 战警:黑暗凤凰》的拍摄。我负责虚幻技术中实时预览方面的工作,并在 VR 中建立了一个虚拟摄像机设置,这样导演和摄影师就可以在布景建立之前拍摄整个序列。除此之外,我还是 SpectreVR 多个 VR 项目的虚幻引擎负责人。
关于水
我认为,在游戏引擎中构建任何东西,都不可能有真正的流体模拟或物理上精确的东西,因此,如何将不同的元素分层,使其与参照物尽可能接近,就成了一个挑战。首先要多找参照物,真正想象出你要创造的东西,但要选择一个参照物作为你的 "英雄"。有时,如果你要在多张图片中匹配颜色/纹理,就很容易迷失方向,最终看起来与其中任何一张都不一样!因此,请选择一张主要的图片,尽量与之接近。
在这个项目中,我在 Pinterest 上有一个持续参考的板块,我的主要参考对象是肖恩-霍华德(Sean Howard,instagram:@sean.howard)的这张照片。
在实时材料方面,我尽量使用不透明材料,而不是依赖半透明材料。半透明材质价格昂贵,对光线的反应也不如不透明材质好,但这实际上取决于水的使用。如果玩家停留在水的一侧(或进或出),那么你就可以使用不透明材质,但如果他们可以进进出出,你可能就需要使用半透明材质了。
在这个场景中,唯一的半透明材质出现在表面颗粒上,即便如此,混合模式也设置为叠加模式。
分层
这一切都是为了分层。我将其分解为不同的元素:水面、光源和体积粒子。
对于水面,我在平面上使用了一个反射平移水材质。这实际上是不透明的,因为我想把注意力集中在水下!在此基础上,我添加了一个波纹粒子,它可以扭曲水面,使其更具有机感。在水的边缘也有波纹粒子,以伪造边缘的拍打互动。
我将在下一部分介绍灯光设备。
灯光
光照已经演变成一个有点复杂的装备,但只是从我的参考资料开始,然后逐层分解。
基本上是从表面到深度的渐变,从透明到深蓝色的散射。另外,就苛性色而言,可以将其理解为在表面附近聚焦,越往深处越模糊。
此外,有些灯光的阴影是关闭的,而开启阴影的灯光的阴影分辨率为 0.2。这有助于在水下创建柔和的阴影效果,也有助于提高性能。
我还在指数高度雾中使用了 UE4 中新的体积参数。在这个项目中,我没有过多更改雾的设置,只是将密度设置为 0.5,将雾的散射颜色设置为黑色,并打开了体积雾。
我首先使用了一个光材质功能来制作渲染效果。它基本上是两个不同尺度的平移纹理,通过一个大的 perlin 噪声进行 UV 扭曲。然后在这 2 个图层上使用正弦混合。然后以 0.8 的不透明度将其乘以光线。
然后,我将其应用到聚光灯上。焦散在表面附近最为锐利,因此我将衰减衰减得很短。这最初是一束白光,但我真的很想模仿光谱分解的效果,所以我做了手脚,将这束光分解成 3 束光,每束光之间略有偏移。每盏灯都具有相同的材料功能,但颜色分别为红色、绿色和蓝色
然后在顶部再装一盏衰减较大的聚光灯,这样它就能深入音量。它也被染成蓝色,因为这是伪造水面散射的主要光线。这一层的阴影是关闭的。该灯光使用了相同材质功能的实例,但我改变了纹理的 mip 偏差,使其变得模糊。如果你喜欢,可以在这里使用不同的纹理,或者在 photoshop 或 substance 中实际模糊纹理,但我发现这个小技巧同样有效,而且更便宜。这束光也会被烘焙成间接光。
下一层是所有灯光中衰减最大的深度散射。我还将这盏灯的体积贡献度提高到了 10。
最后,我在顶部添加了一束白光,以稍微中和色彩并夸大光源。
最后将所有图层放在一起:
运动
我是虚幻物理领域的新手,物理引擎在最新版本中进行了改进,因此我利用这个项目来学习它。当前的设置是使用不可见的碰撞器来使角色移动。我关闭了重力并减弱了响应,使其更具漂浮感。我还在使用 mocap 数据,并在上面混合物理效果。我认为这将是我最终使用的方法,因为这意味着模拟更加稳定。体积内的 GPU 粒子应用了速度场,这有助于产生水体的错觉。
这可以用于实时环境吗?
当然可以。我制作的任何东西都会考虑到可扩展性,像这样分层构建环境可以更容易地进行优化。例如,你只需使用一到两层的灯光设置和/或关闭阴影,就可以直接使用较低规格的机器。主腐蚀层上的 RGB 分色可以很容易地只用一个白光。