当前位置:首页 >教程首页 > Houdini >如何通过机器学习生成游戏地形

如何通过机器学习生成游戏地形

发布时间:2021-04-12 09:46:35

Hello,大家好,今天给大家带来机器学习生成地形的分享,我是神棍赵。近期机器学习或者说AI方面的内容又火起来了,找到一篇比较好实现的文章“如何通过机器学习生成游戏地形 ”分享给大家。

0.png

一、介绍

我叫FranciscoMúrias,最近,我一直在探索Houdini以及机器学习在内容生成中的潜力。我在波尔图大学(葡萄牙)攻读计算机科学学士学位,在那里我学习了编程。然后,在Teesside大学(英格兰)攻读3D游戏艺术硕士学位,在那里学习了Houdini,Unreal Engine等工具,并有机会在毕业论文期间探索机器学习在游戏中的一些应用。

1.png

二、机器学习与地形生成

机器学习就是使用样本数据来“训练”一个拟合的计算机算法,从而获得“映射功能”,该算法可以将一组输入大致的解析为有用的输出。机器学习在游戏和CG中广泛应用,艺术家和程序员不断为它寻找新的用途。节省艺术家的时间,专注于更有创造性的事情。

现实地形生成是一个非常复杂的问题,在过去的三十年中,研究人员研究了各种生成地形的方法,这些方法各有优缺点。我这个项目是探索如何仅基于简单的草图就可以实时生成详细的,带有实际腐蚀效果的地形。

地形在游戏中一般都是通过高度图来表示,非常适合机器学习。而且我们还拥有现实世界的地形数据,USGS拥有几乎整个美国陆地的准确地形高度图。所以这两个因素使它成为机器学习应用程序实验的理想用例。

使用工具生成的一些示例:

2-1.png2-2.png

三、GAN

GAN就是条件生成对抗网络模型,根据自动处理的真实世界地形数据(通过Houdini收集)进行训练,运行神经网络模型并在实时3D预览中展示结果。通过从训练数据中学到的特征来生成任意数量的真实虚拟地形,而无需手动定义任何过程规则或参数属性。

3.png

cGAN系统由两个相互竞争的网络组成:一个不断合成新地形的生成器,以及一个将生成的地形与真实示例进行比较的鉴别器。这两个网络相互竞争,学习如何制作更适合训练示例的地形。

4.png

为了收集用于训练模型的训练数据,我使用了Houdini 的PDG使该任务自动化。

1.读取设定的坐标

2.从USGS服务器下载文件

3.解压缩文件

4.将高度信息分成小块

5.处理每个图块以计算峰谷线

6.将结果映射到匹配的图像并保存

5.png

整个数据收集管道均基于SideFX的ML数据准备示例,该示例采用了一种出色的方法,并且可以教您如何使用PDG系统。

6.png

四、交互工具

我构建了一个自定义工具,使用户能够绘制峰谷线,机器学习算法会自动实时生成最终地形。

7.png

使用ModernGL开发的自定义3D预览器可以快速迭代和可视化结果。这是我的第一个主要Python应用程序,我发现Python是启动和构建这种自定义应用程序的绝佳语言。它拥有一个优秀的社区和一个活跃的Discord服务器,那里挤满了愿意帮助您入门的人。

最后使用Gaea生成细节,最后就可以将生成的地形导入任何游戏引擎,并用作3D地形的基础。

8.png

五、挑战

我相信该工具证明了ML应用在游戏中的巨大潜力。该项目未来开发的目标是概括同一网络中不同要素的地形生成,并在创作阶段用不同类型的草图区分它们。同时我会继续研究ML,并扩展ML在游戏中的使用。

六、总结

这位老哥用机器学习快速生成一个低精度的高度图,然后通过gaea的侵蚀获取各种分布图,值得学习借鉴,感兴趣的可以按照这个思路整一个。

来源:Thepoly公众号

嘉宾:FranciscoMúrias

访谈:Ellie Harisova

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答

微信扫码在线答疑

扫码领福利1V1在线答疑

点击咨询
添加老师微信,马上领取免费课程资源

1. 打开微信扫一扫,扫描左侧二维码

2. 添加老师微信,马上领取免费课程资源

×

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定