WECHAT

扫码添加微信

YoungFan 微信二维码
← 返回全部项目
游戏开发C++3D模型

LTB 2 FBX 模型转换器

将《CrossFire》的LTB模型格式转换为FBX、DTX格式纹理转换为TGA格式的一个小工具。

年份2023
LTB 2 FBX 模型转换器 项目封面

LTB2FBX

这是一个将LTB模型文件转换为FBX格式文件的命令行工具,同时也支持了将DTX格式图像转换TGA格式的功能。LTB和DTX都是LithTechJupiter游戏引擎的资源文件格式,LTB是二进制3d模型文件(LTA为非二进制版,即ASCII格式),DTX则是纹理资源。

项目中使用了部分LithTech源代码来加载LTB文件和转换DTX文件,主要参考了以下三个项目:

  • crskycode/msLTBImporter :这是一个MikeShape3D导入LTB格式文件的插件,里面包含了部分LithTech源码。本项目正是受到了这个项目的启发。
  • jsj2008/lithtech :项目包含较为完整的LithTechJupiter引擎源码和部分游戏源码。
  • giaynhap/LTB2SMD :越南小伙伴写的,将LTB转换为SMD格式的工具。我参考了其中读取LTB文件的部分。

模型导出使用的是Assimp库。由于部分游戏会对LTB文件使用Lzma压缩,所以还使用了Lzma库来解压缩。本项目主要使用FPS网络游戏《CrossFire》的资源来进行测试,目前还没有试验过其他使用LithTech引擎的游戏的资源。​

Building

    1、git clone –recursive https://github.com/YoungFine0825/LTB2FBX.git

    2、cd LTB2FBX

    3、cmake -S . -B build

    4、cmake –build build –target ltb2fbx

    构建完成后,会将可执行文件拷贝到Test目录下。

Usage

将.ltb/.dtx文件或包含.ltb/.dtx文件的文件夹拖拽到可执行文件图标上即可。
或使用命令行方式:
    ltb2fbx Model.LTB [Model.fbx] [option] [option] [option] ...
options:
    -singleAnimFile        每个动画导出为单个文件
    -ignoreMeshes          不导出网格
    -ignoreAnimations      不导出动画