菜鸟学习OGRE和天龙八部之二: 天龙八部AXP数据格式搞定
2011-09-04 16:08
323 查看
站位编辑,过段时间再写...因为现在有大侠写了资源提取工具,我暂时不用自己去写了哇
-------------------------------------------------------------------------------------------------------
本来想偷懒的,但是不知道为什么OGRE的资源要一个一个写文件夹,很囧...那我要全部载入怎么办...
索性研究AXP格式,只载入AXP,就方便多了啊
用UE打开对比了一下,大概格式已经清楚了,
游戏的包文件其实都有一些共同的东西:文件头,文件索引表和文件数据。
文件头可以找到文件索引表的位置,
文件索引表一般每条索引会包含文件名、文件位置、文件长度三个数据。(但天龙的文件名没放索引表里面,而是放在AXP文件的末尾)
有了这个索引表,文件数据就可以读取出来.
总结一下寻找的过程就是:
文件头->索引表->文件数据
打开UE,按照下面的偏移地址(UE左边显示的地址)找对应信息就可以了哇,我直接给出比较重要的文件格式,
其他什么版本号,链表指针地址之类不重要的就直接忽略
偏移地址 数据类型 存储的数据的作用
0x10 UINT 存储的是文件索引表的地址 (就是00060028h)
0x14 UINT 资源的个数
0x60028 UINT 第一个资源数据的地址(就是00160028h)
0x60028 + 0x4 UINT 第一个资源数据的长度
0x60028 + 0x8 UINT 第一个资源数据的标志位,有0x00000000和0x80000000两个标识,应该是空闲/使用标志或文件是否存在的标志
0x60028 + (n-1)*0xC UINT 第n-1个资源数据的地址
0x60028 + (n-1)*0xC + 0x4 UINT 第n-1个资源数据的长度
0x60028 + (n-1)*0xC + 0x8 UINT 第n-1个资源数据的标志位,有0x00000000和0x80000000两个标识
数据的地址和大小都知道了,就可以读取数据了
但是还缺少数据文件的名字,
在AXP文件最最下面一个区域就是存贮的文件路径,文件名字和文件类型,文件大小等数据
而且都是按文件索引顺序排下来.
-----------------------------------------------------------------
文件头和索引表之间有一堆文件名表的东西,暂时不知道怎么用,反正文件名已经有了,无视
数据格式知道了,有空我再写载入程序.
-------------------------------------------------------------------------------------------------------
本来想偷懒的,但是不知道为什么OGRE的资源要一个一个写文件夹,很囧...那我要全部载入怎么办...
索性研究AXP格式,只载入AXP,就方便多了啊
用UE打开对比了一下,大概格式已经清楚了,
游戏的包文件其实都有一些共同的东西:文件头,文件索引表和文件数据。
文件头可以找到文件索引表的位置,
文件索引表一般每条索引会包含文件名、文件位置、文件长度三个数据。(但天龙的文件名没放索引表里面,而是放在AXP文件的末尾)
有了这个索引表,文件数据就可以读取出来.
总结一下寻找的过程就是:
文件头->索引表->文件数据
打开UE,按照下面的偏移地址(UE左边显示的地址)找对应信息就可以了哇,我直接给出比较重要的文件格式,
其他什么版本号,链表指针地址之类不重要的就直接忽略
偏移地址 数据类型 存储的数据的作用
0x10 UINT 存储的是文件索引表的地址 (就是00060028h)
0x14 UINT 资源的个数
0x60028 UINT 第一个资源数据的地址(就是00160028h)
0x60028 + 0x4 UINT 第一个资源数据的长度
0x60028 + 0x8 UINT 第一个资源数据的标志位,有0x00000000和0x80000000两个标识,应该是空闲/使用标志或文件是否存在的标志
0x60028 + (n-1)*0xC UINT 第n-1个资源数据的地址
0x60028 + (n-1)*0xC + 0x4 UINT 第n-1个资源数据的长度
0x60028 + (n-1)*0xC + 0x8 UINT 第n-1个资源数据的标志位,有0x00000000和0x80000000两个标识
数据的地址和大小都知道了,就可以读取数据了
但是还缺少数据文件的名字,
在AXP文件最最下面一个区域就是存贮的文件路径,文件名字和文件类型,文件大小等数据
而且都是按文件索引顺序排下来.
-----------------------------------------------------------------
文件头和索引表之间有一堆文件名表的东西,暂时不知道怎么用,反正文件名已经有了,无视
数据格式知道了,有空我再写载入程序.
相关文章推荐
- 菜鸟学习OGRE和天龙八部之二: 天龙八部AXP数据格式搞定(2009.10.19)
- 菜鸟学习OGRE和天龙八部之七: frame帧动画数据格式搞定,已修正关键帧
- 菜鸟学习OGRE和天龙八部之七: frame帧动画数据格式搞定,已修正关键帧
- 菜鸟学习OGRE和天龙八部之七: frame帧动画数据格式搞定,已修正关键帧
- 菜鸟学习OGRE和天龙八部之三: GridInfo和HeightMap文件的数据格式(已更正)
- 菜鸟学习OGRE和天龙八部之三: GridInfo和HeightMap文件的数据格式(已更正)
- 菜鸟学习OGRE和天龙八部之十: frame动画基本搞定,遇到点问题
- 菜鸟学习OGRE和天龙八部之六: 地表和水面的normal搞定,光照正常了
- 菜鸟学习OGRE和天龙八部之五: 水面TerrainLiquid基本搞定
- 菜鸟学习OGRE和天龙八部之五: 水面TerrainLiquid基本搞定
- 菜鸟学习OGRE和天龙八部之六: 地表和水面的normal搞定,光照正常了
- 菜鸟学习OGRE和天龙八部之十: frame动画基本搞定,遇到点问题
- 菜鸟学习OGRE和天龙八部之九: AXP档案的直接载入搞定
- 菜鸟学习OGRE和天龙八部之九: AXP档案的直接载入搞定
- 菜鸟学习OGRE和天龙八部之十一: ParticleSystem 粒子系统基本搞定
- 菜鸟学习OGRE和天龙八部之十一: ParticleSystem 粒子系统基本搞定
- 学习OGRE - 载入天龙八部AXP文件
- 菜鸟学习OGRE和天龙八部之四: 地表贴图的实现
- 菜鸟学习OGRE和天龙八部之十二: WCollision 地面碰撞搞定
- 菜鸟学习OGRE和天龙八部之十四: 修正水面算法的一些BUG