第 16 章
杭州车间
立项决议只是一张纸。真正让那张纸长出骨肉的,是杭州。2017年末至2018年初,当冯骥在内部正式确认启动单机项目时,团队面对的并不是一个可以立刻铺开摊子的局面。
他们有钱,但不多——《战争艺术:赤潮》在2017年9月登陆App Store后获得全球一百五十四个国家和地区的推荐,带来了收入,也带来了信心,但这笔钱如果用来养一支大规模的单机开发团队,烧不了太久。他们有技术,但技术积累主要集中在手游和美术外包领域,做一部高品质动作角色扮演游戏,经验几乎是零。他们有人,但核心班底不过那批从《斗战神》时代一起走过来的老同事,彼此之间配合默契,却远不足以填满一个正经单机项目的岗位图谱。
最要命的问题是:人少、钱少、经验少,偏偏要做一件品质要求极高的事。这件事的根本矛盾,不在方向,在验证。方向已经有了——暗黑风格西游题材动作角色扮演,这个判断在2016年就定下来了。但“方向”是一个抽象的东西,它不告诉你哪条路走得通,哪条路会撞墙。
在真正把团队扩张到上百人、把开发周期拉到五六年之前,他们必须先搞清楚一件事:那些看似可行的假设,到底有几个能成立?杭州象山艺术公社的那间办公室,在2017年到2019年间,承担的正是这个功能。它不是生产线,而是一个探雷区。
团队在这里做的事,后来被反复讲述,但讲述的方式往往偏重结果——那些惊艳的画面、流畅的动作、精密的场景。真正重要的不是结果,而是过程:他们用最小成本,在两个多日历里,逐一验证了那些决定项目生死的核心假设。
这件事的本质,不是“做出来”,而是“试出来”。试出来的东西,不是成品,而是一张地图。地图上画满了标记——此处可行,此处危险,此处必须绕行。这张地图的绘制方法,比结果本身更应该被仔细审视。
第一个需要验证的假设,是视觉。这听起来像一句废话。任何游戏都需要视觉,何况他们要做的是高品质单机。但“视觉”在这个项目里的含义,远比通常理解的复杂。它不是一个美术风格问题,而是一个技术承载力问题。
彼时,虚幻引擎4已经是市面上最成熟、中国开发者最熟悉的商业引擎之一。它被大量用于欧美奇幻和科幻题材,在表现金属、皮肤、石块、火光这类材质上,有大量成功的先例。
但《黑神话:悟空》的题材完全不同。它要求引擎去渲染另一种东西:古刹的青苔、佛像的金漆、壁画上罩了层薄灰的颜色、石窟里被风化出纹理的岩壁。这些东西在真实世界里大量存在,在中国美术传统里被反复描绘,但在高精度实时渲染领域,却几乎没有现成的参考。
这不是一个可以被理论推导解决的问题。材质的光学属性、引擎的着色器算法、场景的光照模型,这些东西在技术文档里写得清清楚楚,但文档不会告诉你,当你把一尊扫描出来的佛像放进虚幻引擎4的场景里,在动态光照下,它看起来是“对”的,还是“像塑料”的。而“对”与“不对”,在很多时候只差一口气。
这口气,只能靠做出来看。团队的做法,是一边扫描,一边搭建。扫描的手段,在当时的条件下,简陋到近乎业余。
没有人去采购几十万一台的专业三维扫描仪,那种设备在2017年的中国游戏行业里,只有少数头部公司才会配置。游戏科学的做法是,背着相机,去山西,去那些有古建和彩塑的寺庙,一座一座地拍。
这听起来更像是游客的行为,而不是一项技术采集工作。一台民用单反相机拍出来的照片,分辨率和色彩都受镜头、光线、拍摄角度的制约,和专业扫描设备输出的点云数据完全不是一个量级。
但这里有一个被外界长期忽略的技术细节。专业三维扫描仪的优势在于几何精度,它可以用毫米甚至亚毫米的精度记录物体的表面形状。可对于游戏引擎来说,直接用这样的高精度几何体是不现实的——实时渲染有严格的面数预算,无论如何都要做减面优化。而在材质层面,扫描仪输出的色彩和纹理信息,同样需要美术手工修正,才能适应引擎的光照环境。
换句话说,专业设备提供的是一个极高的起点,但从这个起点到最终进入引擎的资产之间,仍然隔着大量的人工处理。
而相机拍照的办法,牺牲了几何精度,却提供了一种更重要的东西:视觉基准的真实性。当美术在引擎里搭建场景时,他手边有一组实物照片作为参照——柱子上的裂纹是什么样的,墙皮剥落的位置在哪里,彩塑褪色的层次是怎样过渡的。这些信息,不是从大脑里凭空构想出来的,而是在真实世界里有据可查的。
这一步的意义,怎么强调都不过分。传统游戏美术的创作方式,是从概念设计开始。概念设计师根据文本描述和参考图,画出一个想象中的场景,然后建模师根据概念图建造三维模型。这个链条里,每一步都在损耗信息:文字到图像有损耗,图像到三维有损耗。
而实景采集提供了一个截然不同的起点——不是从想象出发,而是从实物出发。它把“真实世界的某个东西已经存在”这个事实,作为整个创作流程的锚点。
第一批场景原型,就是在这样的方法论下产生的。团队在山西拍摄了大量素材,回到杭州后,将照片整理、分类,作为建模的参考基准。
同时,他们也开始尝试用照片生成纹理贴图——这在技术上并非新鲜事,但在当时中国的单机开发中,如此系统性地依赖实景素材来构建东方题材场景,极为罕见。这些原型并不是最终的游戏关卡,它们是语法练习:用这个办法,能不能造出一座看起来像真实寺庙、但又能服务于游戏叙事的空间?UE4能不能承受这种程度的材质细节和面数密度?灯光打上去,青苔的颜色会不会显得假?
答案不是简单的是或否。每一组原型的产出,都伴随着大量的回退和修正。某个场景在引擎里看着没问题,但动起来就暴露出贴图拉伸;某组材质的颜色在静态光照下很准确,一旦加入动态光源,高光部分的反射就不对。
这些问题的解决,不取决于灵光一现,而取决于反复试错和逐渐积累的工程经验。
美术们开始摸清楚UE4的材质节点在面对中国古建材质时的表现边界:金漆的反射率设多高才不显得油腻?旧木的粗糙度应该保留到什么程度才能兼顾质感与性能?石窟岩壁的法线贴图强度,如何调出那种“石头被风吹了很久”的微妙的平整感?
这些经验,后来成为整个项目视觉语言的技术基石。2020年那段轰动全网的十三分钟实机视频里,许多让观众觉得“对味”的画面——斑驳的佛像、阴翳的禅院、枯藤缠绕的石门——其最早的视觉原型,都诞生在杭州这间办公室里,诞生在这些看起来并不起眼的UE4测试场景中。它们不是最终的成品,但它们是最终美学标准的早期样本。
它们证明了一件事:UE4能撑住这个题材,只要方法得当。第二个验证,是动作。2016年的判断已经将项目定位为动作角色扮演游戏。这个品类,在Steam平台上拥有庞大的用户基础,《黑暗之魂》系列、《仁王》乃至更早的《鬼泣》和《猎天使魔女》,都在这个赛道上建立起各自的语法体系。但选择这个品类,本身不解决任何具体问题。它只是划定了一个竞技场,而真正困难的,是在这个竞技场里找到属于西游的动作节奏。
这里存在一个根本性的张力。魂系游戏的动作语法,核心是“代价”。每一次攻击都要消耗精力,每一次翻滚都有判定窗口,每一次贪刀都可能致命。
这种设计制造出了极高的紧张感和成就感,但它同时也规定了一种特定的身体感:沉重、克制、步步为营。而孙悟空的身体感,从小说到戏曲到影视,从来不是沉重的。他是灵动的、变幻的、带有强烈表演性的。他的战斗不是生死相搏的紧张,而是法力与机智的展示,是某种带有戏谑味道的炫技。
如果完全照搬魂系语法,孙悟空就不再是孙悟空,他会变成一个穿着中式甲胄的西方骑士——动作有力,但气质错位。可如果完全倒向中式武术的流畅感和表演性,又极有可能滑入另一个陷阱:割草游戏。割草游戏追求的是爽快,一刀下去扫飞一片敌人,视觉效果炸裂,但深度不足。它可以支撑十个小时的新鲜感,却很难撑起一部大型单机作品所需的长线游玩驱动力。
这个矛盾,必须在预研阶段被掰开揉碎地测试。测试的方法,同样受限于条件。没有动捕棚。在当时,一套专业的光学动作捕捉系统,价格动辄数百万,还需要专门搭建的场地和专业的操作人员。这个投入对于一支二三十人的团队来说,完全不可想象。他们的替代方案,是手机。
一个人拿起一根棍子,在办公室里做出挥棍、前刺、横扫、重击、闪避、翻滚的动作。另一个同事用手机在旁边拍摄。没有标记点,没有面部捕捉,没有实时数据预览,只有一段段的视频。
这些视频被导入电脑后,动画师逐帧观看,从中提取关键姿势和时间间隔,然后在动画编辑器里手动重建这些动作。这当然不是精确的动作捕捉。手机拍摄的视频,帧率有限,角度单一,无法记录精确的空间位移。
但它的目的本来就不是精确,而是节奏。棍子从举起到底端触达目标,这个过程需要多少帧?人的身体在做侧闪时,重心的转移速度是怎样的?一次完整的重击之后,需要一个多长的收势动作,才能让玩家在感觉上有“力道”,又不至于拖沓?
这些问题,不是靠理论计算能回答的。它们属于身体感觉的范畴,只能在反复的观看和调试中被逼近。
美术和策划一起,对着手机视频,一帧一帧地调动画曲线。调完在编辑器里跑一遍,觉得不对,再回来看视频,再调。这个过程极其枯燥,但极其必要。
它产出的产物,不是一套可以直接放进游戏里的动作资源包,而是一个被反复验证过的“节奏感模板”。
这个模板后来决定了《黑神话:悟空》战斗系统的底层性格。它的动作比魂系快,硬直惩罚比魂系轻,连段的自由度更高。但它又不是无脑的割草——敌人的攻击欲望、精力的限制、闪避的时机判断,仍然保留了相当的惩罚性。它试图在“重量”和“流畅”之间踩住一个点:让玩家感觉自己操作着一个有力量感、但又不笨拙的角色,一个可以连续出招但每一招仍需判断时机的角色。
这种设计,在2017年的杭州办公室里,并不是一项完成了的成果。它只是一个方向,一个被上百次手机拍摄和动画调试验证过的方向。
第三个验证,是最不性感、却最致命的一环:管线。“工业化管线”这个词,对于非游戏行业的读者来说,可能需要一个通俗的解释。
想象一个生产家具的工厂。一个人做一把椅子,从头到尾,怎么舒服怎么来,完全可以。但如果要生产一万把椅子,而且每把椅子都必须符合相同的质量标准,那就不能靠“怎么舒服怎么来”。
你需要定义每一道工序:木材切割的尺寸公差是多少,榫卯的角度是多少,打磨的粒度是多少,上漆的厚度是多少。你还需要定义检验工序的标准:什么算合格,什么算次品。
这套关于“怎么做”和“怎么查”的完整规定,就是管线。在游戏开发里,管线指的是从原画、建模、贴图、绑定、动画、特效到引擎集成的全流程规范。一个模型,面数上限是多少?低面数LOD从多少面开始减?贴图用多大尺寸,什么格式?碰撞体用什么形状,精度多高?文件命名是用拼音、英文还是中文混写?目录结构如何分层?
这些规定,在只有几个人的团队里,是多余的——大家坐在一起,喊一声就能对齐。在二三十人的团队里,它开始变得重要,因为口头沟通的效率已经在下降,信息开始出现错漏。而如果团队规模要扩张到上百人,这些规定就是整个生产体系能不能运转的生死线。
游戏科学在这个阶段,做出了一项反直觉但极其理性的决策。他们决定,在预研阶段就着手建立管线规范。通常的项目流程是相反的。
一般团队会先集中精力做一个垂直切片——也就是把游戏的一小段从头到尾做出来,证明这个游戏好玩、好看、能做。等到垂直切片通过了,再回过头来梳理管线,为大规模生产做准备。这个顺序的合理性在于,在垂直切片被验证之前,你甚至不知道你的管线需要服务什么样的产品。过早建立规范,很可能会做出错误的预设,导致返工。
但游戏科学面临的约束条件不同。他们必须用二三十个人来验证核心假设,这二三十个人本身,就是他们未来扩张的种子团队。如果在这二三十个人协作的过程中,没有建立起统一的标准,那么等他们验证完毕、开始招人扩张时,新来的人面对的第一个问题就是:这个项目怎么做?没有文档,没有规范,只有老人们脑子里的默会知识。
而默会知识是没法大规模传递的。新人的学习成本会高到无法承受,出错率会飙升,最终导致项目的质量控制彻底崩溃。
于是,在那个阶段,杭州办公室里出现了一种特别的场景。一边是美术在搭建第一批场景原型,尝试把山西拍回来的照片变成引擎里的材质。
另一边,同样这群人,被要求在做的过程中,同时定义和记录标准:这个场景里的岩石模型,面数设多少合适?命名规范是“rock_01”还是“岩石_01”?贴图分辨率是2048还是1024?碰撞体用简单盒体,还是用更精确但更耗费性能的网格碰撞?这些问题,没有现成答案。它们是在实际制作中,一个一个被讨论、被争论、最后被确定下来的。讨论的过程往往并不愉快。美术希望面数多一点,质感到位;程序说面数多了场景跑不动。
策划希望碰撞体精确一点,打斗的手感会好;程序说碰撞体太复杂会吃掉CPU预算。这些争吵,在大型项目里是家常便饭,区别在于,游戏科学在这个阶段,连吵架的资本都很有限——他们的每一块显卡性能、每一条程序员的工作时间,都必须精打细算。但恰恰是这些争吵,逼出了第一版管线规范。它不完善,甚至相当简陋。但它是存在的。它是写在文档里的,有明确的条目、参数和示例截图。
它规定了,以后这个项目里所有的岩石模型,面数不能超过某个值,贴图用某个格式,碰撞体用某个层级。新来的人,不管来自什么公司、有什么习惯,进了这个项目,就必须按这套标准来。这一版早期管线,后来被证明是整个《黑神话:悟空》开发过程中,最保命的一项基础设施。
当团队从二三十人扩张到上百人,当外包公司开始批量提交资产,当多个小组并行推进不同关卡时,如果没有这套提前定义好的标准,整个项目会在极短的时间内陷入资产混乱——模型格式不一致、贴图尺寸失控、命名规则冲突、工程文件打不开、性能预算崩盘。任何一项都足以把项目拖入泥潭。管线的存在,没有创造任何画面上的奇迹,但它防止了组织层面的崩溃。这三个验证——视觉、动作、管线——构成了预研阶段的主体内容。
但真正让这个阶段显得特殊的,是它的工作方式。“土法炼钢”这个词,放在这里,不是修辞。它的含义是具体的、可辨认的。没有专业扫描设备,就背着相机去山西。这件事的后果,前面已经谈了很多。
但还有一个后果,值得单独拿出来讲:它锤炼了一种工作方法。去现场的人,在取景框里决定拍什么、不拍什么、从什么角度拍。这个选择过程,本身就是一种艺术判断。它不是技术操作,不是机械采集,而是对中国古建和彩塑的视觉理解。什么东西值得保留,什么细节最能传达那种“味儿”,这些东西没法写在操作手册里,只能在一次又一次的拍摄中被积累。
后来,当项目获得更多资源,开始使用更专业的扫描设备时,早期这批“用眼睛选景”的经验,并没有过时。相反,它成为使用专业设备的前提——设备可以给出毫米级的精度,但只有人的眼睛,能告诉设备应该对准哪里。没有动捕棚,就用手机拍参考视频。
这件事的后果,同样不止于动画质量。它让动作系统的早期设计,始终和“人”保持紧密的联系。手机拍的视频,是一个人真实地在办公室里挥棍子,他的身体有重量,动作有惯性,发力有不完美的地方。这些不完美的、带有身体感的细节,反而成为动作节奏的重要参照。
如果一开始就用动捕棚,请专业武术演员来表演,动作可能会更流畅、更漂亮,但也可能丢失那种“一个真实的人在真实空间里做动作”的微妙感觉。这不是说手机比专业设备好。而是说,在特定阶段,这种简陋的手段,恰好保护了某种质朴的身体感。没有完整的编剧团队,就由冯骥自己一版一版地改分镜。这件事,是这个阶段所有“土办法”里,最容易被写成英雄叙事的一个。
但事实上,它的意义并不在于“创始人亲力亲为有多辛苦”,而在于一种作者控制的早期锻炼。分镜脚本不是小说,它是联结叙事和画面的中间文本。它要在有限的篇幅里,规定镜头运动、角色站位、对白节奏、关键特效的时间点。一个人反复修改分镜的过程,实际上是反复在脑海中把整个叙事跑一遍的过程:这个镜头切到这里,够不够有张力?这句台词在角色嘴里说出来,会不会显得不自然?
这种锻炼的结果,不是一份完美的分镜脚本,而是一个对叙事节奏极其敏感的创作者。当后来团队扩大、有了专业编剧时,这种敏感性成为冯骥能够给出精准修改意见的基础。
他不会说“感觉不对”,因为他在早期已经把自己的感觉,转化成了可操作的视听指令。这些“土办法”共同指向一个核心事实:预研阶段的真正产出,不是那些后来剪进预告片的惊艳画面。那些画面是验证的副产物,是探雷过程中被顺带收集到的战利品。真正的产出,是那张地图。地图上标注着:UE4能承载东方幻境,但有天花板;
动作系统可以在魂系和中式武术之间找到一条路,但需要更多打磨;管线规范必须提前建立,否则扩张就是灾难;实景扫描加手工建模的方法论是可行的,值得继续投入。这些认知,每一条都是用最小成本试出来的。
它们没有让游戏立刻变得好玩或好看,但它们让团队知道了,接下来应该往哪里走,不应该往哪里走。预研阶段在2019年渐渐收尾的时候,这张地图的轮廓已经相当清晰。清晰到足以支撑一项重大决策,也清晰到暴露出一系列无法回避的障碍。其中最大的一个障碍,恰恰藏在第一个验证的成功里。
团队证明了UE4能承载他们想要的中国古典神魔世界,但也在这个过程中,摸到了UE4的能力边界。中国古建的视觉复杂度,远超许多人的想象。一座寺庙里,飞檐、斗拱、窗棂、彩塑、壁画、须弥座、经幢,每一个单体都包含着大量的几何细节。
把这些东西放进引擎,意味着成百上千万的面数。在UE4的框架下,处理这么高的面数,需要美术手动制作大量的LOD——也就是为同一个模型制作多个精度递减的版本,在远距离时使用低面数版本,以节省性能。这是一个极度耗时且极其枯燥的工作。更麻烦的是,每一组飞檐和斗拱的LOD制作,都涉及复杂的几何减面决策,稍有不慎,就会出现视觉跳跃——玩家往前走几步,模型的细节突然变了,这种“跳变”对沉浸感的破坏是致命的。团队在2018年到2019年间,已经花费了大量精力在优化上。
但他们逐渐意识到一个事实:这不是人力可以彻底解决的问题,至少不是二三十个人的团队可以解决的问题。它是一个技术结构性的天花板。
引擎的底层架构决定了,在传统的光栅化渲染管线中,处理高面数场景的性能成本是刚性的。你可以优化,可以妥协,可以砍掉一些细节,但天花板在那里,碰得到。从海外传来的信息碎片,开始透露出一个令人焦虑的可能性。
Epic Games正在研发下一代引擎。2019年前后,有关新引擎将搭载虚拟几何体系统的传闻,已经在技术社区里若隐若现。据说,这项技术可以直接处理电影级别的高精度三维资产,无需手工制作LOD,引擎会自动管理几何体的流式加载。如果这是真的,它意味着困扰古建场景渲染的技术天花板,将被彻底移除。
但这只是传闻。新引擎何时发布,技术指标是否如传闻所言,迁移成本有多高,一切都是未知数。对于杭州办公室里的人来说,这些未知数太过昂贵。他们手头的任务,是用UE4把项目推进下去。换引擎这种事,不在近期的选项之内。然而,那张“可行性地图”的诚实之处,恰恰在于它会说话。它清楚地标记了,在UE4区域内,哪些路走得通,哪些路有障碍。
而这些障碍,随着时间的推移,正变得越来越具体,越来越棘手。当团队试图在UE4里把一座完整的寺庙场景跑流畅时,他们不是在处理一个抽象的技术问题,而是在处理一个非常实际的、每天都能在编辑器里看到的帧率数字。这个数字,在场景复杂度达到某个临界点时,会不可遏制地往下掉。
这就是预研阶段留给2019年末团队的真实处境:方向被验证了,地图画好了,路标插上了,可行路径和障碍物都一目了然。但同时,前方的障碍物中,有一座山,正挡在他们预想的路线上。翻过这座山,需要新的工具。而那工具,此刻还握在别人手里,且尚未公开。杭州的那间办公室,在2019年的冬天,安静地承载着这张地图,也承载着这个越来越清晰的困境。