尝试导出Cities Skyline完整城市模型遇到的问题与解决

城市天际线是我最喜欢的游戏之一,可以搭建自己的城市,那我很显然一个想法就是把游戏里面的完整城市导出,并且加入到自己喜欢的游戏里面,比如自己搭建一个城市玩赛车游戏,或者在自己的城市里面玩吃鸡游戏,肯定非常爽。


然后我开始查找解决方案,首先肯定想查找MOD,毕竟MOD大佬那麽多,和我想法一样的人一定不少。但是只找到如CSL Map View导出平面图,或者如ModTool Extended Asset Editor,可以导出当个载具房屋的Asset,修改并替换。并没有导出整个地图的mod,众所周知,这个游戏出来时间不短了,MOD区大佬云集,这个想法也很自然,那居然没有人做这个功能,很可能是有难以解决的问题。

然后我打开了另一个神器,NinjaRipper,它是一个D站老哥在3dRipper基础上,可以对dx11游戏使用,从内存中直接提取模型和贴图的工具。NinjarRipper用来扒取内存中的模型和贴图文件,得到rip模型文件和dds贴图文件。Noesis是一个多格式解析的3d软件,在plugin文件夹中加入作者py文件之后可以读取显示rip,可以导出FBX。支持3dsmax和blender中打开。

经过内存文件爬取之后,得到了人物载具,房屋的模型,但是并没有道路的建模,只有一段一段的短小的路和铁轨,那么内存中没有只能说明一个问题。这个路网是使用过程proceduralModel程序建模模式生成的,在内存中只有路网数据和模板的road网格,直接传到GPU做渲染,那这个下想要复原道路的难度就很大了,但是现在我们起码有了一点眉目。

在另一个MoveIt的MOD中,可以导出类似这样的XML文件。可以看出道路信息类似这样的json文件保存,那想要复原这个道路,就需要在3d软件中读取json数据,在做一套路网的生成工具才行。

现在我们梳理一下思路,都市天际线的地图构成大约分成三块。
1.建筑,载具和人物的模型,在我从内存爬取的时候,必不会得到相同的人物模型,即使场景中有几万人,说明,内存中只有单个人物模型和一些参数(位置,旋转,颜色,等1).

2.Terrain,场景中只有一个大地形,应该是存储为81块高度图,我猜测,因为游戏最多可以解锁81个区块。

3.路网,最难的一部分,包括道路,高速路,铁路,地铁,运河,河岸,堤坝所有使用画线工具绘制的基础设施。他由一小部分的模型,和一大堆序列参数构成,用这些参数完成渲染。

I am working on it!

上一篇:【AT Keyence2019E】Connecting Cities


下一篇:Chrome及Firefox插件