其他
如何程序化生成一个3D大世界?一文详解流程、技术与工具|元来是你001
「元来是你」技术交流平台
3D未来,将是技术革新的未来。「元来是你」平台将聚焦 3D 内容生产与消费的相关课题,邀请技术、美术、产品到投资领域专家,交流和探讨前沿技术革新与市场变化,共探 3D 未来。
元象自研的「端云协同」3D互动技术,能提供庞大、逼真、多人、轻量的次世代交互体验,「庞大世界」正是我们持续关注的课题之一。本文聚焦「如何用程序化生成一个庞大世界」,以巨型室外场景为例,全面介绍了背后的技术挑战,AI 驱动的解题思路、技术方法与工具。
这些方案适用于室外、室内和特殊风格场景和关卡设计,目前也在不断打磨迭代,之后将逐步开放给创作者使用,带来极高的自由度和便利性。
本文将介绍:
3D美术设计的工作流程对比:传统 vs 程序化方法。 如何设计场景proxy:手动、自动(GIS)到半自动(智能辅助)的三种方法。 如何将proxy转化为高品质资产:建筑、道路到地形等重点资产的转化工具。 如何添加装饰细节:从城市、生态到通用放置的三种工具。
1.1 传统方法
近十年来,计算机技术的发展与人类知识表达方式的演进,让游戏与电影中的世界变得日益庞大和复杂。这让内容产业在丰富用户体验时,也面临着成本不断上升的挑战。
以游戏行业为例,制作模型、地图、关卡等3D内容,占了制作成本很大一部分,业界开始逐步尝试用程序化方式加速3D内容制作,降本提效。
游戏目前的3D场景制作步骤为:
概念设计 | 确立游戏美术风格和玩法,完成原画设计 |
制作资产 | 以原画为指导,美术团队设计制作各类美术资产 |
场景设计 | 根据玩法设计场景和关卡,输出场景设计图或预览图 |
场景摆放 | 根据场景设计图,摆放各类数字资产,搭建整个世界 |
对个人或小团队:在制作美术资产方面,他们希望能够有足够多的现成资产可以直接使用。在场景设计方面:对主要场景,创作者希望设计大体走向,使用辅助设计工具填充细节。对次要场景直接全自动生成场景设计图。 在场景摆放方面,这一步就是按照设计图摆放各类已有数字资产,创作者更希望能够完全自动化。
对专业团队(如游戏工作室):在制作美术资产方面:会根据项目需求定制基础美术资源模块,然后进一步通过程序化生成的方式组合出更多样的资产。在场景设计方面:对主要场景手动设计,对于更多次要场景,创作者把控大体走向,程序化生成填充关卡细节。在场景摆放方面:尽量少手动操作,越自动越好。
制作资产 | 直接使用元象资产库 |
场景设计 | 场景用代理几何体(proxy)占位。元象可提供多种辅助设计工具,实现自动/手动/半自动(智能辅助)生成场景设计图,并转换成proxy占位 |
转换资产 | 使用元象的单品工具,将proxy转换成高质量资产 |
自动化细节 | 自动在场景中添加更多装饰,用道具增添细节 |
二、如何设计场景proxy
我们可以根据具体项目定制工具,加速美术资产制作。如下图展示了一个定制的小工具,作用是在生成室内场景的带吊灯的天花板,可以自由的改变天花板形状并更换吊灯模型。
一般我们会用一个立方体生成一栋楼房,用一条曲线生成一条道路(后文直接用proxy代指场景设计)。用这些简单形状的proxy做场景设计图,一是可以用proxy占位,方便创作者把控整体场景布局,二是proxy能用AI算法自动生成,非常高效。
我们提供了多种场景proxy的生成方案,包括:手动、自动(GIS)和半自动(智能辅助)生成,满足不同的创作者不同可控程度的需求。
如果创作者选择手动设计,我们提供了转换成proxy的工具。
创作者完全可以在我们的编辑器中手动摆放每一个proxy。但是为了方便版本迭代,我们更推荐创作者使用批量输入的方式来导入场景proxy。我们提供四种批量导入接口:
接口一:我们支持导入FBX/OBJ等标准美术格式,创作者可以在第三方软件(maya/3dmax等)中做好proxy导入(如图a是在blender中制作建筑物的proxy)。
接口二:对于地形,我们支持常用的图像格式,创作者可以自己在第三方软件(如world creator等)中做好地形图和对应的mask导入(图b)。
接口三:我们支持PSD文件格式的输入,创作者可以用不同的图层标记不同类别的proxy(如图c,每一个颜色是一个图层,对应不同的道路或建筑)。
接口四:我们也支持CAD格式的输入(如图d),创作者在不同的layer中存放对应的proxy信息。我们最推荐创作者使用CAD格式(矢量图,无损)。
创作者只想生成一个分布合理的大场景,不对具体细节有明确要求的话,可以直接使用GIS数据来生成大场景的proxy。
GIS(Geographic Information System)是真实世界的数据,典型如DEM(Digital Elevation Model,记录地形高低起伏信息)和OSM(Open Street Map,记录城市的房屋和道路信息)。
我们提供了完整的接口来支持GIS输入,创作者可以通过我们的接口指定经纬度直接拿到对应区域的GIS数据,也可以使用自行下载的GIS数据。下图展示了深圳市南山区的部分区域生成的proxy,包括地形(有平地海洋和山脉部分)和建筑物(图中彩色的box)和道路(图中蓝色的曲线)。
2.3.1 半自动生成(智能辅助)
创作者可以通过调节参数来增加多样性,也可以通过增多输入来减少自动补全的不确定性。
比如生成路网,创作者只需要简单几笔勾勒出道路的大体走向,我们就可以一键生成复杂的道路路网。如下图,左侧是创作者的输入,输入可以是在我们的编辑器中交互的完成,也可以提供PSD或者CAD的输入,右侧是输出的路网,生成的路网可以参数化的调整道路的密度长宽等属性。
接下来举一个实际案例来展示智能辅助设计一个带地形的大城市场景。限于篇幅,这里只重点介绍如何生成地形、建筑和道路这三部分。
为了展示我们的智能辅助场景设计的能力,我们没有简单直接使用GIS数据作为proxy,而是以GIS作为输入,通过智能辅助的方式来生成最终场景设计。设计结果和原始GIS进行对比,可以更好体现出我们智能辅助生成方案能够在保持原有输入pattern的基础上拥有更多的可调整性。
我们截取了深圳市南山区的一小块GIS数据,如图a所示。图b展示的是不带纹理的原始地形图,可以看出噪声很大,我们会对它做自动清理。图c展示的是简单的划分,包括山脉区域(紫色)、城市平地区域(棕色)和海洋区域(蓝色)。
建筑群里的每一个proxy都是代表一类建筑,包括但不限于居民楼、写字楼工厂等建筑,也可以是花坛雕塑等装饰用的特殊建筑,通过特定的tag来指定。Tag可以随机的生成,创作者可以调节各类建筑的比例,也可以进行手动指定。
我们最终得到完整proxy如下图a所示。和原始的gis proxy(图b)相比,智能辅助生成的proxy在保持原有输入pattern的基础上更加可控。
在整个场景设计的过程中,创作者只需要调节几个参数即复现上述的效果,其他过程都是自动的,从而让非专业的创作者也能非常容易使用。
三、如何将proxy转化为高品质资产
3.1 建筑工具
我们研发了一个通用的单品建筑物工具,输入一个简单几何形状的proxy,就可以生成一个高质量的房屋建筑资产。
我们研发了一个通用的道路工具,输入一条曲线proxy,就可以生成一段道路。如下图,输入的曲线是来自左上图,其中红色图层对应主路,蓝色图层对应辅路。
输出的结果如下图所示,其中主路和辅路用了不同的基础模型生成。可以看出,我们的道路工具能处理复杂的道路连接,也可以很好的处理转角和交叉路口。
我们研发了一个高效的地形生成工具和一个地形材质工具。
我们的地形生成工具提供了大量可以直接使用的基础地形模板。同时也支持通过各种噪声来生成基础地形,手动雕刻细节山脉,支持erosion和simulation。最终的结果可以导出地形图和对应的mask。
主要就是在场景中添加各种装饰用道具(如野外的花草树木,城市中的路灯花坛等)。通过添加这些装饰道具可以显著的增加场景的真实程度。
接下来我们着重介绍如何自动在城市和野外放置小道具,同时也会展示我们的通用放置工具。这些放置工具也会陆续开放给大家使用。
4.1 城市放置
我们开发了一个城市里放道具的工具。它会检测建筑物周边区域,根据预先设定的规则在不同类型的建筑物边放置不同类形的道具。工具还会自动的在道路两侧放置路灯,树木等。放置道具的密度可以参数化调整。
4.2 野外放置(生态系统)
我们开发了一个生态系统工具来实现在山脉上放置花草树木。我们会预设了多种常见植物的生态学属性,包括高度范围,年龄范围,生存能力(用于不同植物间相互竞争),生存环境(用于限制植物分布,比如趋水的植物放在河边等)。生态系统工具会自动根据地形工具中划分的mask和材质来判断地形,进而填充对应的植物。
4.3 通用放置
通过城市工具和生态系统工具可以填充整个场景80%的装饰道具。但是自动放置很难非常完美,在重点区域最好还是创作者手动放置。为此我们提供了一个通用的手动放置工具。创作者可以简单的拉曲线来限制一个区域,然后在区域中放置小道具。创作者可以选择要放置的素材,每类素材的比例和放置的密度,也可以随机设置每类素材的旋转平移和缩放。放置工具会自行检测并避开已有的建筑和道路区域,也可以自动投影并贴合地形走向。
五、进一步讨论
同时,文中展示的只是程序化生成能力的冰山一角。不局限于生成山水和城市等3D资产,通过引入更多的AI能力,我们也在逐步尝试去程序化生成角色(数字人),动作,声音,文本,乃至行为,从而通过这些更智能化的辅助工具来降低制作3D内容的门槛。
元象希望帮助每一个创作者创作3D内容更容易,无论是个人或专业团队,还是普通消费者,每个人都能受益于我们的程序化生成工具。
我们也会持续改进算法,积累更多素材,开发出更好的工具,不断降低3D内容制作门槛,并争取能尽快、逐步把工具开放给创作者,敬请期待。