在传统的游戏开发,尤其是开放世界游戏的开发中,白模的使用还相对较少,大家对白模的认识和作用也不确定。实际上,我们的工作已经或多或少受到了没有做好白模流程的影响;而且随着项目的推进,问题会越来越多……
1、什么是白模
所谓白模(BlockMesh),就是在关卡设计初期,使用极简模型搭建的示意,用来测试关卡的合理性和可玩性。这不是一个新概念,在众多高质量游戏制作中都是必不可少的流程。
这里我推荐一篇顽皮狗关卡策划 David Shaver 关于白模分享(原版PDF下载):
五分钟GDC 01:游戏Blockmesh关卡设计技巧——图文版 - 哔哩哔哩Hello 大家好,这里是五 分 钟GDC,今天给大家带来的是游戏关卡设计中Blockmesh 的技巧。首先,让我们先了解一下什么是Blockmesh。在关卡设计阶段,我们会先用引擎自带的组件来拼凑成一个简易的关卡,用它来测试关卡的合理性以及可玩性。在一般公司里,也会被称作灰盒 白盒,通常他们都包含了关卡需要的光源,以及单个颜色。而Blockmesh是在此基础上,添加了多种颜色。这样方便让美术知道,他们需要为关卡做哪些材质。比如说,绿色,他们需要做草的材质。接下来,让我们看看一般关卡设计的流水线https://www.bilibili.com/read/cv4204687/ 白模是在游戏基础世界观设计完成之后的一次简易实现,因此在白模之前已经先有了整体的世界观设计和关卡抽象概念。
这里我们取一张直观的图片来展示白模的效果:
可以看到,白模基本就是极简的、低多边形风格的简单模型(甚至可以使用Cube)拼接起来的场景,与制作完成的精美场景形成鲜明对比。
这样的场景显然只适合简单的交互逻辑,不适合对手感、体验进行调优。
那么程序、策划、美术费心费力做一个白模起到什么作用?对项目流程有什么帮助?
2、白模的作用
对于开放世界项目来讲,在制作白模之前,就已经完成了世界的概念设计(什么风格、地貌、高度差等等),之后根据设计概念来搭建白模场景。开放世界开放量巨大,显然不可能每一个细节都由人力精雕细琢,设计人员只能也只需要在地图关键区域着重设计,再将这个区域融入到大世界中。
2.1、确定交互功能
在关卡白盒搭建之后,就能确定在关卡(地图中的一个特定区域)内需要哪些交互功能。
如上图所示,在白模里就能清晰地展现一条玩家行进路线,并且通过此路线设计就能够明确游戏中所需要的功能(攀爬、跳跃)。
2.2、确定场景重点
根据白模的流程,可以提前确定一些美术的表现重点:
如上图所示,在关卡中玩家到某个区域时,会找不到重点,不知道下一步应该做什么(图左)。这时就可以在下一个区域制作一个地表(图右),达到暗示玩家的目的。因为白模关卡的设计,我们可以提前预判这个地表的大概形状、适用区域等,且在会对此场景的地形制作起到限制(比如不能有高大树林,场景设计上不能抢地标的关注度等)。

2.3、帮助关卡流程
对于开放世界,对玩家一大考验就是容易迷路,在地图里茫然闲逛、无所适从。如果采用强制引导的方式,对玩家的沉浸体验有一定破坏,最好是在场景、关卡设计中添加暗示性引导。
如上图所说的引导是一个方面,还有场景的一些细节定制:
如上图,这里场景上就需要定制一个细节(地面管道)以辅助流程暗示。当然,这种设计对美术制作来说也会增加一些限制,例如墙上画了指示性的涂鸦,那就不能在这面墙上种爬山虎。
对于这一块,这里不过多涉及,具体可以参考之前的分享的文章,里面有详细介绍。
2.4、限制其他玩法设计
整个游戏设计并不是孤立的,场景关卡设计直接就会影响到其他模块。
例如所有关卡中 Boss 战的区域最大为 20*20 m,那么在技能设计时,就需要考虑到这个范围。例如岛屿面积确定,玩家的移动速度就会直接影响流程长度,那么在设计时就需要考虑这些因素。
实际上,白模很多情况下都可以直接作为后续的开发蓝本。这里也不展开,在制作过程中大家都会过一遍白模,从而对自己的工作有预估。
3、对项目流程的帮助
白模的作用好理解,关键是对项目运行有什么帮助?
3.1、确定游戏体量
通过白模的搭建,我们可以知道的是:
-
有多少种场景交互功能?
-
整个关卡时长多少、面积多大?
-
有多少需要特别设计的区域?
-
有多少需要特别制作的模型?
类似于场景太大,导致流程过长的不合理设计,在白模阶段就能完全发现并避免。程序也对功能开发的数量有个大致评估。美术也能通过白模知道某个关卡需要制作的模型量,需要特别设计的区域面积等,也能更好的进行工作排期。
这对项目管理也有一定的帮助。
3.2、发现不合理设计
在游戏初期,我们会往关卡里加入各种功能。但是当回顾关卡的时候,我们发现有的设计体验并不好,或者使用频率过低。
例如设计了一个潜水的功能,但是最后关卡复盘来看这个功能只用到一次,也没有明显的体验提升;亦或是实现复杂,但是又可以用别的方案替代。那么就可以在白模阶段去掉此设计。也有可能发现关卡过大,为了体验就需要新增一些功能(例如传送、滑翔等)。
例如关卡设计之后,发现地图里元素过多、复杂度高,制作压力大。那么就需要更改设计,或者重新规划关卡排期等。
3.3、白模即逻辑
白模并不是说仅仅是辅助设计用的,程序的逻辑完全可以只依赖白模。例如寻路的数据、碰撞盒、关卡交互触发、怪物生成等直接可以使用对应白模(而不是美术后续做好的模型)。这样可以减少美术模型的干扰,也可以及早进入流程测试阶段。
除了流程上的优势,白模在逻辑上也有更高的性能和更简单的数据:
如上图,白模为斜坡,游戏里为楼梯。因此在逻辑上就避免了楼梯寻路的颠簸,使玩家移动更为平滑。同时,将楼梯简化为斜坡,在逻辑处理上更为简单。(贴地问题可以在表现层上单独处理)

另外,就实现难度来讲,让美术资源贴合逻辑比让逻辑去贴合美术资源,在实现上要简单得多、运行时代价也小得多。
3.3、自动检测、资源优化
在白模设计完成之后,我们能确定一个玩法区域:
在后续的工作中,我们可以根据这个玩法区域进行扫描。这样我们能找到哪些地方(例如极少能看到的区域)可以节省一些资源,甚至可以全部砍掉;哪些地方需要优先保证效果等等。
同时,白模可以离线对地图数据进行烘培、对场景资源进行分组等,使得运行时有更高效率。
3.4、流程并行
白模一大重要意义,在于实现流程并行。在传统流程中,通常是美术出初版的关卡,策划根据这个关卡进行玩法设计,然后美术、策划再进行迭代优化:
这种开发模式(一般称之为原型法)的好处是每个版本都会有一个大约可玩的内容,但是缺点就是总开发周期会变长,且各部门之间的耦合更严重,沟通成本大。
而改成白模模式之后,流程变化如下:
最大的优势在于美术工作和程序工作可以互不干扰地并行开发,如果接入了Houdini流程,策划的白模工作也能并行。但是这种开发模式是有条件的:需要概念设计上足够充分、且模块化。这种模式一般称之为 瀑布模型/改进瀑布模型。
4、白模对在 Houdini 工作流中的作用
我们项目计划使用 Houdini 做大世界,而白模在这个工作流中的应用非常重要。首先我们看看 Houdini 流程大世界制作的流程:
这里我们看到,策划设计的白模作为逻辑节点传到 Houdini ,与美术的设计节点是两个并行的流程。而在项目开发的初期,有很多试错的过程:程序编写的自定义节点并不能完善、美术需要调参、细节修改等。所以一个一开始确定的白模能直接固定玩法逻辑,避免其他玩法开发陷入停滞。
因为白模设计更为快速,所以策划在玩法上的调整也很方便。我们使用 Houdini 进行过程化地图生成,也能很方便地进行迭代。
对于 Houdini 流程来讲,白模的作用非常重要。因为对于过程化,更重要的是“有什么”,而不是“有多少”。而白模恰恰就能解决有什么的问题。
5、推进白模流程的建议
首先要确定白模有什么:
-
有少量能示意的模型
-
能在测试中通过代码生成直接呈现
-
挂载逻辑相关的组件(碰撞、门、绳索之类)
-
可供游览的测试移动人物
-
编辑工具
从游戏设计来讲,这些功能并不复杂,编辑工具也可以用很多 Unity 自带的编辑功能来平替。但是仍然需要有一定时间专人开发优化。
考虑到后面对 Houdini 的接入,简化程序实现,白模建议使用标准模型(例如4m墙,2m墙,45°斜坡等),在一开始由程序和策划设计统一标准。这样既方便摆放、也方便实现和过程化生成,同时在数据性能上也有很大优势。
最后,想要真正发挥这套流程的威力,需要所有同事、各个部门都认可、配合。这其中不免有难点和不便的地方,关键是适应和迭代这个流程,而不是遇到困难首先想到放弃。从我个人的经验来看,推行白模流程的难点向来不在这个流程之内,而在流程之外。