查看原文
其他

实时渲染短片《Adam》揭秘-资源创作

Unity官方 Unity官方平台 2021-05-16

此前已为大家分享过Unity引擎实时渲染短片《Adam》的产品设计,今天这篇文章将揭晓《Adam》的资源创作部分。


如果还未看过实时渲染短片《Adam》,请欣赏:


https://v.qq.com/txp/iframe/player.html?vid=q0308bnwmit&width=500&height=375&auto=0


关于作者

本文作者Plamen (Paco) Tamnev,负责制作Adam Demo中的许多资源。Plamen曾先后在Black Sea Studios和Crytek担任角色美术一职,之后加入Unity的Demo团队,投身于实时Demo的制作,例如Adam、The Blacksmith,以及一些稍小的环境类Demo(Viking Village, Bedroom, Courtyard)。
世界观




资源创作之路始于对富有创造性的目标以及项目价值的透彻理解:世界观(即我们所叙述的故事),以及怎样去设计人物才能有助于传达理念。关于这点,可以阅读此前的Georgi Simeonov博客文章,其中介绍了“Adam” Demo的设计流程。  
我与Georgi以及我们的导演Veselin Efremov有着紧密的合作,主要是角色与环境方面的。我们的首要工作就是确定整体比例,细节分配以及明确正确的轮廓。我们使用一种迭代的工作方式,从基本模型开始,再逐渐精细打磨。  
 
Unity 5 编辑器中的屏幕截图
Adam的视觉预览与功能(Adam的创造过程)
创造Adam还是有一点点挑战性的,因为我们要在不破坏概念中的外观与构想的前提下,创造一个真实的“他”。我们知道“他”能做非常多的动作,而且还有很多对准“他”的微距特写。Adam的另外一个用途是当做同类群体的基础模版。因为故事设定的缘故,我们另外两个主要角色自然地也使用了Adam身上的一些零件。在模型制作阶段我必须要把这些细节牢记在心,创造Adam几乎就像在制造某种灵活的可重用模型装备一样。我们从一个不断地被改进更新的角色草图版本入手。我和动画导演、产品设计师之间合作高度紧密,因为许多东西都需要重新调整甚至全部重做。虽然它们最初看起来不错,但为了改进角色的运动范围或轮廓,我们就不得不重新返工。  


制作中的Adam高模VRay参考渲染图


这些是我在进入低模制作阶段前,对Adam上需要进行复杂运动的部分所做的功能视觉预览渲染。手臂作为复杂部件之一,有着大量的细节与层次,大部分微小的部件还需要能够恰当的移动与滑动。虽然在最终的影片中无法看到所有的这些细节,但它们对于确定正确比例是很有帮助的,同时还能给我们提供相关细节的新思路。  



 制作中的Adam高模VRay参考渲染图
视觉预览渲染还可以作为材质使用方面的参考。通过这种方式,在进入低模及纹理制作阶段前,就能够快速预览附有基础材质与颜色的高模,还给了我们争取了对其进行迭代的时间。它的设置简明易用:我大部分使用的是ZBrush中缓和后的自动UV处理,之后再设置VRay平铺纹理材质用以优化粗糙度与漫反射率。



制作中的Adam高模VRay参考渲染图


对于包裹型材质,我先使用Marvelous Designer工具做基础处理。它能快速地展现出不错的效果,还能方便地将数据导入到ZBrush中进行细节调整与打磨,实现令人满意的最终效果。 

在Marvelous Designer中进行包裹型材质测试的屏幕截图

 


用于进行模型预览反馈的一组3DS Max屏幕截图。这时候正是我们最后确定是否还需要做重大更改或添加,后面将开始打磨模型细节并着手以高模为基础制作低模

 


3DS Max中被分解的Adam低模屏幕截图。此时已经可以用来烘焙各种贴图(法线、闭塞、曲率等等)以及纹理集展开图了
纹理贴图
此处我使用了Substance Painter 2对Adam进行纹理贴图。他的头、身体和四肢分别用了不同的独立纹理。此外我还直接在Painter中为法线添加了一些次要细节。


 低模在Marmoset Toolbag 2中的最初纹理样子(此图用作下文的示例)
在本阶段,我对数值与风化效果的分配,进行了一系列测试。在这个例子中,金属的风化效果有些过度了,某些颜色的色彩饱和度还不够。解决了这些问题后,我继续优化细节,并添加表面裂痕与贴花。 
Painter 2中对手臂进行纹理贴图过程的屏幕截图

 


Painter 2包裹材质的大体初级阶段




 
Painter 2中对破碎面具进行纹理贴图的屏幕截图

 


在3DS Max中UV展开前的手臂低多边形屏幕截图



 
LOD0级别的部分Adam低模成品线框图

 

Marmoset Toolbag 2 中最终确认的低模预览图


人群与变化
制作方面的另一个挑战是,我们必须实时生成一群囚犯,其中一些会离摄像机很近 —— 在某些镜头中,甚至比Adam还近。我们肯定不会对所有人物都使用默认的Adam模型,所以必须根据与摄像机的距离使用相应的LOD模型。


Marmoset Toolbag 2 中人群的LOD预览30K LOD模型用于接近摄像机的人物,而900个顶点的LOD模型则被用于背景中的角色。对于每个LOD级别而言,我们必须使用更少的材质ID与纹理分辨率,这个根据每个LOD网格的具体距离而定

此外我们还想让不同的囚犯具有不同的特征,因此我制作了一个完全包裹好的Adam作为基础,然后用自定义灰度遮罩着色器来制作各种不同的包裹分布。

 Marmoset Toolbag 2 中最后确认的人群差异纹理预览图

 


Unity 5 编辑器中的屏幕截图
Adam的面具




Adam的面具制作经过了数次迭代,因为我们想找到一种最符合我们故事所需呈现的设计。面具的材质表面要看起来像某种3D打印材料,不但有部分残缺和层次感,还要有些透明效果。

 我们早期做的一些面具实验品,最后决定使用的是最下面那个。方向确定后就进入了打磨阶段


我们最早的一个视觉预览模型比最终使用的版本更像真实的人脸。但经过数次迭代后,导演Vess认为他想要的是一张感觉是藏在面具之后的脸,而不是真脸。因此我们立即对它进行简化,直至所有的人类脸部特征全部消失。早期阶段,我主要使用了ZBrush。这让我可以以一种非破坏性的方式进行工作——所有的东西都在不同的层里,同时使用噪点生成器以及遮罩来尝试不同程度的风化效果,并根据需要对它们进行混合。



我们的视觉特效美术Zdravko Pavlov对破碎的面具做了一些尝试,他使用了完整的面具和最终版本UV的纹理来保持面具的一致性。在3DS Max的Bullet物理插件帮助下,他在面具上进行多个破坏效果以供选择。当我们选定想要的那个效果后,我将它作为基础,增加了一些变化及残缺效果。因为它已经有完整面具的UV和纹理,我只需为新增的几何体添加UV即可,而这部分UV空间也已在原先的纹理中保留。随后我将它导入Substance Painter,进行最后的细节修改与材质处理工作。

 Marmoset Toolbag 2中的参考屏幕截图

 


Unity 5 编辑器中的屏幕截图                                                   
Sebastian, Lu, 警卫
Jonas Törnqvist, Vincent Joyau, 以及Sergey Samuilov帮我们设计了Demo中的其他角色。


 Unity 5 编辑器中角色Sebastian与Lu的屏幕截图(Jonas Törnqvist, Vincent Joyau) 

 


在Marmoset Toolbag 2中Sebastian半成品的屏幕截图(Jonas Törnqvist, Vincent Joyau) 



 
在Marmoset Toolbag 2中Lu半成品的屏幕截图(Jonas Törnqvist, Vincent Joyau) 


为了保持世界观的连贯与一致,Sebastian与Lu的模型使用了Adam模型中的部分身体零件。

 
Unity 5 编辑器中警卫角色的屏幕截图((Sergey Samuilov) 
环境艺术

内部场景
我们为内部场景制作了一些独立的物体,例如门、管道、床等等,以及一些只需要平铺纹理以及几何贴花的资源。


 Unity 5 编辑器中牢房内景的屏幕截图



 
Substance Painter 2 中牢房管道的屏幕截图


Substance Painter 2 中牢房门的屏幕截图(基于Georgi Simeonov的高模)

 


Substance Painter 2 中地面的屏幕截图(基于Myles Lambert的模型)

 


Substance Painter 2 中地面的屏幕截图 

道具


我在制作“待撕开的”最初囚犯床铺模型VRay参考渲染图 

对囚犯床铺的设定如下:它们是存放囚犯身体的装置,且必须使用与囚犯包裹物相似的材质制作。我使用Marvelous Designer制作了基础仿真品,并将它们导入ZBrush进行最终打磨与细节处理。我制作了两个模型,一个是囚犯仍在其中的,一个是已开封的。在最终的影片中,我们只使用了第二个。
 
Marmoset Toolbag 2中的参考屏幕截图

 


Marmoset Toolbag 2 中最终确认的囚犯床铺的屏幕截图

 


Substance Painter 2 中在开场中禁锢Adam的金属框架预览

 


开场中连接到Adam背部的电缆接合状态示例。Marmoset Toolbag 2中的预览图(基于Zdravko Pavlov的高模)
外部场景
对于影片的外部场景,我们知道离摄像机很近的位置会有一些非常巨大的物体。因此,我们在一个基础纹理上使用了许多平铺纹理与贴花,以便这些物体在不同的镜头中能获得所需的分辨率。对于平铺纹理,我们主要使用了Quixel Megascans的数据,并使用自定义灰度遮罩将不同纹理进行混合,增加多样性。


 
Unity 5编辑器中的屏幕截图
这是一个完成的城墙示例,它使用了Substance Painter加工的基础材质及遮罩,Unity中的细节纹理数组,以及几何体贴花,最终得到了我们在Demo中大型资源所需的外观及足够的分辨率。

 
平台金属部分的基础模型由Tibor Toth制作

 


我们在Demo多个镜头中看到的平台混凝土基础例子 —— Unity 5 编辑器中的屏幕截图
对于平台混凝土地基部分,我使用了类似于城墙制作的方法:
  • 漫反射中使用基础纹理

  • Quixel Megascans制作的极端特写细节(在Unity标准着色器中平铺)

  • 最后添加破损细节几何体用于表现混凝土的风化边缘


 

Unity 5 编辑器屏幕截图中高速公路的几何模型由Ayi Sanchez制作,细节及纹理由Tihomir Nyagolov添加


后续计划

我们的Demo团队希望能尽可能地分享我们的工作经验与专业知识,希望展现尽可能多的内容。我们已经看到不少人在使用我们之前Demo中的资源,将其用于测试、原型制作、他们自己的成果展示、教程甚至研究论文等 —— 我们很高兴人们能让我们的作品在不同的领域大放异彩。
所以,我们现在正准备将“Adam”中大部分资源发布到资源商店,目标时间是秋季。虽然有些晚,但是敬请各位理解 —— 毕竟我们团队的3D美术只有我一人

  

关于《Adam》系列文章的资源创作篇就介绍到这里,如有疑问,请访问Unity官方中文社区。


延展阅读

《Adam》揭秘-产品设计

《Adam》图形技术介绍

Unity实时渲染动画电影《Gift》

Unity遇见《奇幻森林》(上)

Unity遇见《奇幻森林》(下)


我们还会分享更多Unity相关的技术内容在Unity官方中文社区(forum.china.unity3d.com),请保持关注!


点击“阅读原文”进入Unity官方中文论坛!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存