全部模型资源
  • 全部模型资源
  • - 交通工具
  • - 动物昆虫
  • - 场景\道具模型
  • - 建筑模型
  • - 植物模型
  • - 武器模型
  • - 独家资源库
  • - 科幻模型
  • - 角色动画库
  • - 角色模型
  • 游戏开发知识博客

邪恶小丑角色:从 ZBrush 雕刻到虚幻引擎动画的完整拆解

我叫 Sia,学习 3D 角色美术已经有 3 年时间了。从小我就是那个一直在画画的孩子,但始终没能坚持下来——经常画着画着就觉得无聊,然后放弃,次数多到数不清。现在回头看,我其实一直都知道自己想做游戏:小时候我最爱的游戏是《模拟人生 2》(The Sims 2),我总是花好几个小时在那里面捏角色。后来某个时候,我还发现了《模拟人生 2》的 Body Shop 工具,于是开始在画图板里重绘贴图,制作自定义的服装部件。

我的家人并不支持我走艺术这条路,所以我后来读了一个公费资助的语言学本科。期间我也曾多次想扎进 3D 领域,但那台老旧的笔记本根本跑不动软件,所以一直没搞出什么名堂。2022 年底,我从一份技术招聘的工作中失业,当时我就下定决心:再也不做自己讨厌的工作了。2023 年 1 月,我开始学 Blender 做建筑可视化(ArchViz),但到了夏天就觉得无聊,于是决定专注做角色。那段时间《博德之门 3》(Baldur’s Gate 3)终于发售,它给了我巨大的启发,也成了我的榜样。

2024 年初,我参加了一个游戏开发 Game Jam,我们四人小队需要在三个月内交付一个游戏 MVP(最小可行产品)。我是这个项目里唯一的 3D 美术,而这段经历后来也帮我很快在一家手游公司拿到了实习机会。那是一段很有意思的经历,因为我们做的游戏在挑战手游的极限——一款第三人称、带卡牌战斗的 RPG,有角色自定义系统,画面也相当进阶。

但我的内心始终向往 3A/主机游戏,所以我一边全职工作,一边加入了 Think Tank Training Centre(思坦克培训中心),目的是打磨一份能帮我拿到下一个机会的扎实作品集。就在我最后一个学期开始前,我所在的那家公司资金耗尽、项目被迫关停,所以”导师指导学期”反而成了我唯一一段全日制学生时光。

邪恶小丑角色倚靠歌剧院栏杆的全身氛围渲染

 

邪恶小丑半身特写手持匕首面露诡异微笑

 

邪恶小丑角色黑色背景下的英雄全身渲染

 

邪恶小丑面部特写展示尖顶帽与面具细节

邪恶小丑

Evil Jester(小丑,以下简称 Jester)原本是我 Think Tank 时期的”皇冠之珠”。我对这个项目寄予厚望:我想做出复杂的布料结构、加一些盔甲,再塑造一个配饰丰富、视觉上很有趣的角色。直到最后一刻我才最终敲定概念图,因为此前没有任何一张能同时满足我所有的”硬性条件”。

在挑选概念图这件事上,我有个铁律——必须是我真心喜欢的。我在 Pinterest 上偶然看到了 Dariya R. 的 Jester 作品,结果发现这是一张实打实的手绘作品,而不是 AI 生成的”糊弄货”(AI slop),而且我一眼就爱上了它。我甚至都没先拿给导师过目,因为我对这个概念就是如此笃定。那天我直接就开始做块面(blockout)了,让他想拒绝都来不及。

邪恶小丑角色原始概念设计图线稿
由 Dariya R. 绘制的原始概念设计,展现小丑的完整服饰与武器设定。

我真的是越来越喜欢用 MetaHuman 管线(MetaHuman Pipeline)来制作我的角色了。它能把一切都整合在一起,在呈现方式上给了我更多自由,而且它本就是一款真正的游戏引擎,所以整个过程就像在做一个真正”可上线”的游戏资产。我先在 UE5.7 里做了一个 MetaHuman 角色——当时我并没太纠结它最终长什么样,只要它能大致交代我想要的造型、给我一个整体方向就够了。

我用 MetaHuman to Maya 插件把底模(basemesh)导出来,作为雕刻的基础。在这个阶段,我通常会把身体和头部合并到一起,因为分开的话在 Zbrush 里反而会出更多问题。同时,我也积极地尽可能多地为各个部件搜集参考图——当某个元素在逻辑上说不通时,有现实中的对应物作为参照总是很有帮助。我还很幸运地收到了原概念艺术家本人的回复,她针对几个我卡住的部件给了我一些很有价值的见解。

MetaHuman 基础头部模型白发暗唇面部特写

PureRef

之后我在 ZBrush 里做块面(blockout)。在这个阶段,我非常喜欢把 ZModeler(建模)、DynaMesh 和 ZRemesher(重拓扑)结合起来用——我倾向于尽早建立良好的拓扑(topology),尤其是针对硬表面(hard surface)部件。我的另一套常用方案是 ZBrush/Maya 之间的衔接流程(GN 工作流),因为我经常用它在 ZRemesher 之后进一步优化拓扑,这既能在后续的重新拓扑时省时间,也能保证高模(high-poly)有良好的细分表现。

PureRef 参考板汇集服装武器与面部素材
PureRef 参考板按匕首、手套、靴子、衣领、服装、图案、妆容、发型等分类整理。

随后,所有布料部件都在 Marvelous Designer(MD,布料模拟软件)里重新制作。做服装时,我通常会尽量去找现实中的版型(pattern)作为参考,但大多时候最终都会大幅修改它们。这个项目也不例外,我花了整整一周才把版型研究清楚。最难啃的部分是丑角袖(jester sleeves)、腰带(sash)和马甲裙(vest skirt),因为我特别想还原原概念图里的褶皱感。后来我还把手套和靴子也做了模拟,因为我想给它们再叠加一层真实感。

关于袖子,我始终无法还原概念图里那种效果,因为布条之间会不断互相冲突——既立不住形状,又会散架。于是我决定耍个小花招:在布条之间插入透明的织物贴片,把它们连在一起。我进行了大量的布料操控与模拟参数调试,虽然后续还在 ZBrush 里进一步优化了造型,但仅在 Marvelous Designer 里我就已经挺满意这个效果了。

ZBrush 中邪恶小丑服装块面模型旋转展示

 

ZBrush 上半身块面模型多角度旋转展示

对于腰带和披肩(shawl),我从一开始就打定主意要用蕾丝(lace),只是一直不确定是否要在高模阶段就把它做进去。最后我在网上找到了非常棒的复古蕾丝和披肩参考图,并用它们在 Photoshop 里制作了 alpha 贴图。对于披肩,我先把 UV 变形以贴合 alpha,然后进入 Substance 3D Painter,用自定义 alpha 作为笔刷,最终完成了披肩和腰带的装饰性边缘。

之后我把 alpha 贴图导出,再拿到 ZBrush 里使用。匕首(dagger)和颈饰(neck brace)的花纹也用了类似的流程——我根据从概念图里理解到的内容,在 Photoshop 里做了一批小 alpha,然后重新拓扑、展 UV,再把资产推进 Substance 3D Painter,在那里为 ZBrush 生成置换贴图(displacement maps)。

Marvelous Designer 服装版型与模拟过程

 

蕾丝花纹 Alpha 图案在软件中的绘制过程

 

邪恶小丑角色倚靠歌剧院栏杆的全身氛围渲染

 

ZBrush 雕刻的华丽衣领高模细节展示
ZBrush 中完成的衣领高模,展示复杂的花纹浮雕与金属质感。

高模(high-poly)阶段花了 10 周才收尾,这一次我决定把磨损(wear and tear)、缝线(stitches)等细节推到极致。这无疑是整个阶段里最”艺术”的部分。最终我借助 Photoshop 和 Substance 3D Painter 制作了自定义 alpha,布料的褶皱是 alpha 与手工雕刻的混合产物,而皮革则完全靠手工雕刻完成。

ZBrush 尖顶帽高模雕刻过程动画

 

邪恶小丑全身高模正反面旋转展示

面部

从一开始我就决定,Jester 的脸不会是这个项目的焦点,但我还是尽量让它有意思。我看到有人把 Jester 叫”他”,也有人叫”她”,这让我挺满足的,因为我刻意要的就是一种偏中性(androgynous)的气质。我选比尔·斯卡斯加德(Bill Skarsgård)作为面部结构的主要参考,主要因为他在电影《小丑回魂》(IT)里饰演的 Pennywise 小丑形象。雕刻时我相当”自由发挥”,毕竟面部相似度并不是我的首要目标。

ZBrush 中头部高模从基础到细节雕刻过程
头部高模雕刻过程,从基础面片到五官细节的逐步塑造。

Jester 的发型是个很有意思的塑造元素。从概念图里其实看不出头发该长什么样,所以我决定走”湿发、大背头”的路线。我希望每一根发丝都像抹了厚厚一层发蜡,而且由于找不到好的参考,我基本是靠想象完成的。我采用了基于发丝(strands-based)的毛发梳理(groom)方案,因为它在 MetaHuman 体系里效果最好,而且我已经在之前的项目里摸索出了最合适的工作流。

头顶有一大块”秃瓢”区域,因为它本就只打算从帽子下方露出,不过这块倒挺有”梗”的潜力!在 Unreal Engine 的搭建上,我大量依赖官方文档和 Andrew Giovannini 的教程,它们帮了大忙——他提供了为 Maya 改写的脚本,能自动完成最终 Alembic 导出前的一切准备工作。

Maya 中角色头部拓扑与毛发引导线制作
Maya 视口中的角色头部模型,展示拓扑结构与毛发引导曲线。

重新拓扑

在重新拓扑(retopology)这件事上,我一直尽量简化流程。就像前面提到的,我非常喜欢尽早建立良好的拓扑,这能省下很多时间。说到好的拓扑,我有个很喜欢用的小”捷径”,它同时也能保证我的网格(mesh)是动画就绪的。对任何哪怕只是略微贴身的部件,我都会使用身体拓扑来获得最佳的蒙皮(skinning)效果。

我始终心里装着优化,尽量把每一个三角面都用到位。我会删掉所有被遮挡的面、收拢边来封闭网格、在质量不掉线的情况下对资产做镜像(mirror)等等。我的角色部件非常多,所以必须理性地分配面数预算(polycount budget)。最终我把总面数控制在了 15 万以下。

手绘服装配色方案与色板对照图

展 UV(UV-unwrapping)对我来说幸运地从来不是什么大问题,我真的很享受这个过程,能让我放松一下。我的习惯做法是尽量按材质(material)把部件拆开,并把某些部分单独分离出来以图方便(我总会问自己:”这件能不能被隐藏?”或者”为了后续优化、替换等需求,单独给它一张贴图是否合理?”)。

Maya 中服装低模拓扑与 UV 展开过程
Maya 中的服装低模拓扑与 UV

不过在制作低模(low-poly)时,我还是遇到了一些麻烦。我把这套服装里最具挑战性的几个部分做了可视化拆解(breakdown),万一我的流程和思路能帮到别人呢。

邪恶小丑服装制作全流程拆解图
从参考图、版型、高模到最终服装的完整流程拆解图。

贴图

Jester 的脸基于一张 TexturingXYZ 扫描数据(而且我相当确定那是一张女性扫描),之后我再在 Substance 3D Painter 里进行精修。我本来就没打算把 Jester 以不戴帽子或面具的样子渲染出来,所以并没有太操心妆容。我想要的是一种做旧(distressed)的质感,以贴合角色的气质。这个造型的主要灵感来自比尔·斯卡斯加德的”乌鸦”(Crow)妆容,这其实是误打误撞——因为我直到贴图阶段才开始找妆容参考。

妆容贴图大概是整项目里最简单的一部分了,因为我可以随心所欲地画。我尽力让这个造型显得可信,它是绘画图层(paint layers)、曲率(curvature)、空腔(cavity)和色阶(levels)共同作用的结果。

Substance Painter 中角色面部贴图绘制过程
在 Substance 3D Painter 中绘制面部贴图,展示皮肤质感与细节层。

服装贴图到最后总会变成一场”试错”——我就是不断尝试各种材质,慢慢做出色彩变化(Color Variation)、粗糙度(Roughness)、高光(Specular)等等。贴图最关键的部分就是要有足够的参考,然后一层层堆叠做旧(grunge)质感,直到看起来可信为止。我选了天鹅绒(velvet)作为红色主面料,丝绸(silk)做白色面料,用了两种金属来丰富变化,并搭配多种皮革选项,让整体显得真实。

Substance Painter 中服装材质贴图完成效果
Substance 3D Painter 中的服装材质对比,展示从素模到完整纹理的变化。

 

Substance Painter 中靴子与腿部材质细节调试

动画

前面说过,Jester 是基于 MetaHuman 的,所以身体绑定(rigging)能省下大量时间——这几乎是”白送”的。但我仍需要给服装做绑定。说实话,最新版本的 Unreal Engine 提供了种类相当丰富的蒙皮工具,效果都挺好,很多时候已经不需要手动蒙皮(比如在 Maya 里做)了。

我发现最适合我这个角色的管线是:从 MetaHuman Creator 窗口导出身体的”合并骨骼网格体”(Combined Skeletal Mesh),把所有需要绑定的资产作为静态网格体(Static Mesh)导入,再转换成骨骼网格体(Skeletal Mesh),然后挂到身体的骨骼网格体上。接着我通常会做权重传递(weight transfer),再用手动工具进去修掉所有蒙皮问题。

虚幻引擎中 MetaHuman 绑定与动画设置过程

我其实不需要给任何模拟(simulated)部件做蒙皮。马甲、腰带、披肩和斗篷都被做成了 Chaos Cloth(虚幻的布料系统)资产,而锁链、绳索和皮带则完全没有蒙皮,因为我决定改用刚体物理(Rigid Body Physics)。我不是开发者,也不是技术美术(Technical Artist),但我心里有画面,所以必须想办法让模拟出来的衣服好看。我遇到过不少麻烦:我的网格没有合并,一旦模拟就会散架(马甲有系带、斗篷有镶边和毛皮),于是我决定使用代理网格体(proxy mesh)。

UE5.7 里全新的 DataFlow 系统并不是专门为这个场景设计的,我得自己琢磨怎么做。我能找到的最好参考,就是虚幻官方文档里提到的”用 LOD 作为代理”的做法,我就照着这个思路走了。为此我不得不重新调整拓扑,让它在模拟中表现良好——这意味着要把所有网格合并成一个连续的整体,并重新排布拓扑,使其能顺畅形变。经过一番测试,斗篷和马甲最终用上了和静态拓扑相当不同的”模拟拓扑”。

 

刚体物理(Rigid Body Physics)并不是什么新概念,早就存在了。像往常一样,我做了一番调研、想找些能直接用的内容,但大多数教程讲的都是旧版本引擎,另一些则没有覆盖 MetaHuman 蓝图(Blueprint)的搭建——而这对我恰恰是核心。所有工作都是在 Unreal Engine 里完成的。最终我做出了三个独立的资产:帽子配饰、带包和匕首的腰带系统,以及从靴子垂下的绳索。

接着,我为每个资产创建带新骨架的骨骼网格体,并手动为每个需要物理化的部件拼出一条骨骼链。随后相应地给资产蒙皮,并为每一个都创建了物理资产(Physics Asset,PA)。其实最耗时的步骤正是让 PA 真正”跑通”。我为每根骨头都创建了物理体(physics body),并合理地把其中一部分指定为运动学(Kinematic)、另一部分指定为模拟(Simulated)。腰带系统最难做,因为它既要和服装碰撞,又要和自身碰撞(包和匕首)。

在设置好正确的边距(margin)和容差(tolerance)之后,整体表现相当不错,可我还是不断碰到严重的穿模(clipping)和抖动(jittering)问题。我花了好几个小时反复调试,才把它调到自己满意的状态。PA 调好后,就该放到 Jester 的蓝图里测试了——我原本设想的运作方式是:把每个资产挂到角色的插槽(socket)上(比如帽子配饰挂到头部插槽),然后开启碰撞、把它指定为物理角色(PhysicsActor)。但我不知道的是,这种做法只对 MetaHuman 的头部有效。我的腰带系统和绳索始终纹丝不动。

我当时非常挫败,因为没人提过解决这个问题的办法,所以我只能自己想办法让它跑起来。这个修复纯粹是误打误撞——我没有把模拟用的骨骼网格体直接挂到插槽上,而是先放一个”场景(scene)”组件挂到那个插槽上,再把资产挂到这个组件上。不知为何,多了这一层”垫衬”就把问题解决了,我当时简直开心到不行。

 

为了展示我投入大量时间搭建的复杂系统,我知道必须做一段动画,而不只是某种默认动作。做”鞠躬”(reverence)这个想法对我来说很自然,因为它对这个角色再合理不过了,但我找不到任何接近我心里构想的参考。我没有动作捕捉(mocap)设备,而无标记(markerless)方案里唯一能用的就是 Rococo 的 AI 方案——我之前试过,对结果并不满意,所以没再深究。我过去曾用过一次 Cascadeur,很喜欢它整体的理念,只是当时担心重定向(retargeting)的问题。但当我真正开始研究这款软件时,我发现它有了面向 Unreal Engine 的新插件,能让你在 Sequencer 里以实时反馈的方式迭代动画,这对我来说再理想不过了。

我一度很担心自己动画的质量,因为除了个人项目里经常给角色摆 pose、做点简单待机(idle)之外,我没有任何动画基础。Cascadeur 有 AI 插值(interpolation)选项,但对这段特定动画来说,它反而比其它任何类型都更成问题——给我带来大量抖动和”瞬移式”卡 pose 的现象,所以我还是沿用标准插值类型。我有一段自己表演鞠躬的视频,所以除了想象之外,那便是我主要的灵感来源。这段动画起初看起来非常”跳”,但我最终还是让它契合了这个角色。鉴于角色本身的特质,Jester 能”糊弄”过去不少不自然的动作,反而让角色显得更神秘。

 

Jester 的最终电影感镜头(cinematic)是在我发布到 ArtStation 的前一天才做出的。这段 cinematic 其实包含两条独立的 Sequence(序列)。其中一条完全基于我此前重定向(retarget)到角色身上的 Mixamo 动画。我当时刚加上斗篷和毛皮卡片(fur cards),想展示它们,就那么对着那段视频发愁,不知该如何是好。

后来,在发布前一周,我得知 UE 5.8 里出了新的无标记动作捕捉(Markerless Mocap)插件,便决定试一试。这个工具让我印象极深,不试绝对不行。于是我录下自己表演鞠躬和待机的视频,通过插件处理,生成了一条 Sequence。我在场景上也特别走运——我手头正好有 RagTarock 制作的”歌剧院”(Opera)环境,和我的 Jester 简直是绝配。

 

灯光

出于渲染需求,我准备了三套互不相同的棚拍式(studio-like)灯光方案。我并没有搞什么花哨的,因为主要目标就是展示角色,所以必须把光打足、打好。

虚幻引擎中三点布光与灯光参数调整
虚幻引擎视口中的灯光布置与参数调整过程

我发现聚光灯(spotlight)对我来说效果最好;当然,要让材质在任意光线下都好看,里面有大量需要琢磨的细节。我总是先用主光(key light)打底,给后续整套布光定下基调。第二盏灯通常打在脸上,让它更”跳”;再来一盏补光(fill light)消除暗部。一盏摆放得当的轮廓光(rim light)更是能给整套灯光组(light rig)增色不少。在做 Jester 的过程中,我还发现了 False Color(伪色)——一个在专业电影摄影里用了很久的实用工具。

它能显示过曝、欠曝以及中间的所有区域,帮我省下好几个小时的画面开发(look development)时间,也消除了凭感觉瞎猜。静态图我一律用 EXR 格式输出,再推进 Photoshop;我用 Camera Raw 滤镜做调色和渲染微调,这对我来说已被证明是最佳方案。视频方面,我用 Apple ProRes 格式,再配合 Premiere Pro 剪辑。

虚幻引擎中邪恶小丑最终渲染动画展示
虚幻引擎中的最终渲染动画,展示角色在灯光下的动态效果。

结语

Evil Jester 花了四个月才完成,另外又用了两周来收尾所有的拆解图和电影感镜头。我有个毛病:在渲染阶段总会漏掉东西,或者干脆没注意到某些问题,所以往往要把渲染重做好几遍,非常耗时——说实话,我至今没找到对付它的办法。比如有段时间我把帽子配饰隐藏了,结果彻底忘了它们的存在,直到在”Evil Jester Demo — Final”视频里看到才想起来,只好把整段重新渲染。

我一开始就清楚这个角色会是个挑战,这也是我当初选这个概念的原因。我真正喜欢这个概念的地方在于,它能让我拆成”模块”来推进——即便时间不够,我也有清晰的计划。我的优先项是先做出一个基础角色——脸、头发、帽子、服装、匕首和包。下一个模块是不带毛皮的斗篷,再之后才是毛皮本身。唯一我决定放弃的元素是那根玩具马权杖(hobbyhorse staff)。我本来很笃定之后会补上,但最终还是放弃了,因为角色已经渲染、开发完成了。多加那件武器意味着要把一大块工作推倒重来,而它带来的提升却未必有多大。

如果要说这个项目最大的挑战,那我肯定选 Unreal Engine 的整合。我选择做这一切时,手头时间并不宽裕,没有真正的技术支持,只能靠自己的直觉。而且我其实”完全没必要”做这些——它们并不在我的作业要求里。我之所以去做,是因为我对自己的角色非常较真:如果连让它们”动起来”都做不到,我就会觉得自己做得不够好。仅仅渲染一个静态 pose,对我来说根本不够。

我非常幸运地得到了 arguably 业内最顶尖的 3D 角色美术之一——拉瑞安工作室(Larian Studios)的 Wayne Chu 的指导。他鞭策我做到最好,在我提出疯狂想法和奇怪管线时为我打气,在每个阶段都支持我,并且确保不让我太安逸;与此同时,他又不会替我把活儿干了,而是让我自己喘气、思考、突破。我也从 Think Tank 的同学和朋友们那里得到了很多支持,他们很喜欢看我做这个角色,也一直陪着我。

当我刚刚起步时,我曾受到众多 3D 艺术家的启发——我当时唯一的愿望就是把手艺练好,有朝一日能摸到他们的水平。而三年后的今天,我已经手握多个拿得出手的项目,准备好去征服世界了。我最大的目标,是参与一些能让我自豪、也能启发他人的东西。我真心希望行业里的每一位艺术家都不要丢失那簇火花,记得自己当初为什么开始做这一行。

评论留言