京歌游戏网
所在位置: 首页 > 攻略资讯 > 资讯新闻

如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

文章来源:网络作者:小编甄姬发布时间:2022-04-18 15:23:54

以下文章来源NExT Studios ,作者的动机全开


在最后一篇文章中,我们从地形、悬崖、植被、河流和道路五个方面介绍了NExT Studios 在使用虚幻引擎4开发重生边缘的过程中,尝试生成过程内容。


本文将如何为工具添加场景制作?解决新工具在实际工作中遇到的各种问题,分享一些实验性工作。


我是进度条


在生成过程内容时容易遇到哪些过程问题?


例如,生成的效果不能满足艺术的要求;工具的使用门槛太高,他们不想使用;工具不够稳定,他们觉得成本太高;或者涉及多人合作,程序员做,TA做,还是做关卡艺术?如何解决多关卡艺术的合作需求?只有解决了这些问题,才能算是合格可用的工具链。


基于之前的分享,相信大家也能看出我们的目的是:不追求全地图自动化生成,而是根据需要定制,提高生产效率。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

过程内容生成管道


如何解决自动生成内容与人工编辑内容之间的冲突?如何考虑生成内容之间的关卡划分?如何保证不同子关卡的稳定性?


我们总结了两个原则,一是生成的内容不能覆盖人工编辑的内容。二是尽可能独立地编辑和生成各个子级别。就像 Unreal 世界上的地图通常被编辑成多个子层次,以促进多种艺术合作。然而,也需要这样的支持来生成过程的内容。例如,它可以world composite支持地形自动切割到子关卡。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

子关卡自动切割


生成的内容(大量贴花、悬崖、河流等)之间也需要切入子关卡。只有分割子关卡,才能独立去除和 level streaming,它还支持不同的人编辑和生成不同的子关卡。


对于不同的子关卡,我们生成的限制是必要的确保结果的稳定性:无论是多块计算的结果,还是单块计算的结果,都应该是一致的。只有这样,我们才能确保按照子级别工作。


如何解决地形和建筑的稳定性?


我们不能很好地解决地形问题。因为关卡和关卡之间会有一个不可避免的交界处,如果只更新一个,另一个就不能连接。


虽然可以对整个地形进行整体侵蚀或美化,并进行全面更新,但这对整个开发来说是一种非常不友好的行为,因为所有的关卡文件都需要协调解锁。更实用的方法是局部更新,比如只更新刷mask的区域。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

局部更新mask


对于一些建筑区域,比如在某个地方盖房子,要求基础是平的。当地形形成时,我们不想改变地表,房子很可能会悬挂。我们可以用volume将区域框起来,跳过该区域的侵蚀。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

volume排除侵蚀区


如何解决与艺术编辑的冲突?


有时过程化生成的内容与艺术编辑的内容在同一数据集中发生冲突。谁用的?Unreal提供了Edit Layer的功能,它跟Photoshop同样的层,生成的层可以单独放置,人工编辑层,甚至打开更多的层,以便混合人工编辑和我们生成的数据,以获得预期的效果。但有时你可能不想混合效果,而是想替换效果(例如,河流可以替换原始地形)。我们又开发了一个Edit Layer覆盖混合模式,同时用来支持这样的需求,也扩展了Unreal绘制权重的工具,用来绘制mask,支持这种覆盖混合和多层表现。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

Edit Layer覆盖混合模式


还有一种常见的冲突,比如艺术把树放在某个地方,只只是用来装饰的,但当我们产生植被时,我们可能会产生这棵树,这不是他们想看到的。我们将标记生成的树木,每个instance会有一个特殊的属性,这样我们就可以区分哪些树是我们生成的,哪些树是艺术编辑的。当它再次生成时,你可以删除所有原始的树并进行全面更新,但艺术树不会被删除,你也可以选择避免它们。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

树很容易消失


如何处理数据导入导出的问题?


我们沿用了Unreal Landscape Spline曲线这些数据需要导出Houdini其实这也是对编辑操作习惯的妥协,也避免了新一套曲线编辑工具的开发。


我们把Unreal Landscape Spline算法重新量化,导出成 JSON,然后在Houdini提取这些关键点进行重建,以便基于此曲线实现算法。我们也加了各种各样的自定义属性,比如说曲线的类型,因为它会有不同的内容(路、护栏、河等),他们是属于不同曲线的。曲线的宽度还有优先级也都是通过这种方式添加到 JSON 文件里。


对于生成的内容。我们也做了一个简单的热图扫描工具,任何一个都可以选择Unreal当中的某个stat,比如统计面数,生成可视化表现,方便艺术在生成或关卡编辑后进行性能自查。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

热图性能分析面板


一些实验性的探索


如果只针对前提下的功能,整个工作流可能是相似的,但每个项目实际上都有不同的需求。例如,有些项目根本不需要Houdini,全部生成算法Unreal里程序员自己实现了这一点。其他项目可能会选择整个关卡布局,因为他们不喜欢数据相互引导。Houdini当中进行制作,然后再导入Unreal,这个时候就不能改了。像我们一样,频繁导入导出需要大量的数据交换,所以我们需要程序员不断处理这些特殊需求。


所以我们在把这种工具推广到不同项目的时候,就需要重构整个管线。我们支持了编辑蓝图节点,让原来的Houdini的HDA生成蓝图异步节点的文件,所需的数据准备是通过蓝图(包括数据输出的后处理)进行的,这样就有了灵活性很高,能满足很多奇怪的需求。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

可定制的生成流程


生成后,我们可以给它一个 tag或者设置一些类似 的设置virtual texture然后生成一个属性actor,甚至改变它的材料。在这种机制下,解放了程序员的生产力,他们不需要专门开发特征。因为有时候我发现这些功能是无法实现的,但是艺术等不及了,或者用户等不及了。当他们反复折腾时,他们不想使用它们。


另外,我们抽象数据输入输出,比如抽象成图,或者曲线,或者一些点,然后抽象这些数据。这些数据可以通过网络传输,把生成的服务放在更强的位置GPU工作站上。而且数据抽象后,不限于只用Houdini为此,你可以建立自己的服务,使用 Maya或Blender也可以,因为数据交换变得非常简单。


如何用UE高效生成细节丰富的《重生边缘》野外场景(下)

生成服务器


我们也尝试了一些机器学习,比如基于GAN算法的现实世界诞生了成,或者是风格化迁移地表地形等等。另一个常见的问题是使用它Houdini在做这些工作时,数据的导入、导出和计算需要很长时间。一些团队倾向于在引擎中实现生成算法,我们在这方面也做了一些简单的尝试,参考了地平线:零黎明(Horizon Zero Dawn)的做法,使用GPU加速地表地形的产生和植被的分布。


应用探索


过程化内容生成的技术除了应用在游戏开发中,还有其他应用场景。例如NExT在与新华社合作的数字航天员小郑的火星视频中,我们使用过程内容生成的技术来模拟火星的地貌。UE5的Nanite在不限制三角形数量的情况下,可以做大量的几何细节,这也应该是后续游戏制作的趋势之一。

复制本文链接 资讯文章为本游戏网所有,未经允许不得转载。
相关攻略推荐
热门资讯
手机游戏
动作竞技
卡牌策略
模拟经营
赛车竞速
街机格斗
音乐舞蹈
找物解谜
飞行射击
体育竞技
生存冒险
角色扮演
关卡塔防
宠物养成
休闲益智
其他游戏
手机应用
视频播放
生活服务
新闻阅读
学习教育
手机办公
运动健身
丽人母婴
网络购物
旅游出行
主题美化
拍照摄影
小说漫画
k歌音乐
社交聊天
其他应用
游戏攻略
龙之谷手游刺客一转光明之怒暗之使徒全解(龙之谷暗之使徒加点)
魔兽世界:玩家将化身为龙!10.0新职业唤魔师8种战斗模式解析(魔兽世界召唤师职业)
剑侠世界手游家族福利 光有技能可不够
明日方舟4-7攻略 明日方舟4-7过关打法通关技巧分享(明日方舟4—7攻略)
《金铲铲之战:双城传说》“极客”羁绊,以小博大不是问题(金铲铲之战双城传说小小英雄)
剑光如霜!《地下城与勇士:决斗》剑影实机演示公布(dnf剑影决斗场)
DNF:深渊异界和团本,你的5000天专属关键词是什么?(dnf一百级深渊任务)
王者荣耀那些被打上演员标签的英雄们,一拿出来就要被歧视(王者荣耀遇到演员怎么骂)
小学生打牌拯救世界?《卡牌游戏Cardpocalypse》简评
《逆水寒手游》一测开放的游戏内容,二测少侠最想看到的职业(逆水寒手游什么时候内测)
精选专题
游戏专题
应用专题