11. 扩展:BelleIsle Map Dat格式解析

494 阅读3分钟

前面说到如果采用lithtech引擎的话,BelleIsle的所有资源已经解析完成。

如果我们采用ue或者u3d引擎呢,毕竟lt算比较老的引擎了。

模型和动作等我们已经通过 解压 FPSF和dat文件 ,形成了目录,并且将目录将目录中 dxg mrb dgp等格式进行了解析,而dxg mrb我们可以转成fbx,然后ue等直接使用fbx就行了,其他的如dds dtx等图片纹理资源可以用一些小工具或者自己写一个小工具进行转换。

而map dat格式是lt的地图格式, 我们需要进行一个转换操作。

这里其实不需要破解等过程,找到lt的源码核心是CD3D_RenderWorld类进行解析,然后进行对应转换就ok了。

现代化的地图其实用场景编辑器等来制作。

不可能是一整个地图转换为一个模型。因为我们没有原始文件,只能让渲染引擎进行地图渲染加贴图,然后将解析完的地图进行提取,甚至可以做进一步的模型修复,高模处理等等。

为了快速,我抠出来了lt中解析dat的源码部分,并且把做成3dsmax插件,解析东西插入到3dsmax中,然后从max中导出需要的格式。 我尝试整体导出到ue或者u3d中,其实都会因为过大,导致有些卡顿。 最好的办法,是模型出来进行仿制,把模型导入,然后在ue中通过射线等方式得到高度图,直接生成ue地图,贴图等用算法进行确认位置和纹理,这样做到高仿。 这之中需要处理老的游戏中 一些原山 水 树等效果,因为老的游戏中可能远处不可达的地方直接采用贴纸片的方式去描述树,而且无法飞行,所以只要城墙看不见的地方或者背面都为了性能和省事,直接镂空, 还可以进行多地图的拼接。

关于粒子效果, 资源中在FX目录中,直接可以查看,基本是一些参数,这个要结合lt引擎的粒子系统进行查看这些参数的效果,比如下雪、魔法火焰等等。 其实效果很粗糙,查看效果后可以用现代化引擎的效果去替代。 还有天空、天气,以及下雪下雨后的地面脚步效果,当时都是很费力的做多套素材,然后贴图时候贴不一样的。而现在可能大多是采用算法去模拟得更自然。

这个插件的源码地址:github.com/lang2858/wo…

关于如何使用3dsmax插件网上找下,属性中一些设置需要根据自己的情况更改 ,我使用的 是 3ds Max 2012。 sdk也是对应的 Autodesk 3ds Max 2012。 输出的 dli文件为目标文件,放置到 max的plugs目录后打开max 导入时候如下:

image.png

这样可以导入map下的dat文件。 导入一个:

image.png

在代码中导入的时候解析了dat中的纹理等,并且找到解压的texture目录中的资源进行了贴图处理。

这个地图是\Map\World\004\w_004_01_001.dat 叫 カルガレオン, 也就是 战士出生地 "卡尔加隆"。

这样后续动作在max中处理, 他的房屋等是 跟着地图一起渲染出来的,并且被切分的很奇怪,可能是因为dat目标文件的构成原因, 实际场景编辑的时候应该是地图高度图,然后房子等应该是一些地表装饰模型。 熟悉max的话应该可以从这之中导出fbx等格式处理,或者直接在里面进行 拆分合并处理,提取相关模型后重新对场景进行还原操作。

下一篇 对 map对应的地图信息进行下说明。