轩辕春秋文化论坛 » 设计与修改 » 三国志系列图像文件格式浅析


2004-11-26 23:46 van
目录
三1~5,SanBF
曹操传地图
三八
三九

2004-11-26 23:46 van
最近在研究早期三国志的图片格式,发现其中头像的格式是完全一致的,介绍如下:
早期(san1~san5)的头像文件名基本上是kaodata,其中san1是picdata.dat,san2是kaodata.dat,san3就是kaodata.s3,san4里面有两个,一个是kaodatap.s4,另一个是kaodata2.s4(许多都是san3的,还有一些剧情人物),文件里没有任何格式信息,全部是头像数据。头像大小san1是32*40,san2是64*40(三2的显示模式里长宽比比较变态,实际的头像是扁的),san3~san5是64*80,也就是以后的标准大小。和三6等一样,读入的数据可以直接用stretchblt显示,只是需要预先处理一下。
大家知道,bmp格式只能处理2、4、16、256色等等,而在三国志里面是用8色的,所以是用每三个字节表示8个像素。比如说三个字节是11000000,11100001,00110101,则用相应位的三个组合在一起就可以得到实际的图像数据是6,6,3,1,0,1,0,3(注:三4加强版的头像文件的末尾还有附加字节,一共有701个字节(图片的总数目),表示头像是否被修改过)
下面是调色板(BGR十六进制)
san2:000000;ff5050;5050ff;ff50ff;50f850;fff850;50f8ff;fff8ff
san3:000000;ef3f00;004fef;cf4fef;4faf0f;efbf00;00dfef;efefef
san4:001f2f;7f3f1f;1f3faf;4f7fbf;1f6f3f;8f7f3f;7fafcf;afcfcf

早期三国的头像比较少,一般就两百多个,而且仔细看,其实许多就是一个模子里做出来的,光荣还特地把类似的头像放在一起,所以看上去特别明显^_^
因为san4有水浒人物,所以头像数大大提高,达到了700以上,看来光荣也很费了一番功夫,也算是一个飞跃吧,从此各代的规模也就大致如此了

三国志battlefield的头像在grp目录下,文件名是facedat.sog,它是沿用三8并对少数人物进行修改的基础上完成的,不过它的格式略有不同
与三国志系列不同,battlefield的头像用的是16位位图,不过前面的格式信息倒和三7没有分别
一开始4个字节是文件中的头像数,其后是头像数乘以16个字节的格式信息,接下来就是位图信息,2位一个象素
格式信息还是老样子,头4个是起始pos(第一个头像是0),然后四个是大小,接着就是宽和高
另外一个不同就是battlefield的头像文件里有空位,从1~520是三国人物的头像,接下来是一些8×8的填充字,然后才是诸如成吉思汗等的头像

2004-11-26 23:47 van
hm*的格式(由浮生宛若寄研究出来的,我结合自己的处理谈一下)
此文件内没有任何附加信息,全部是图像数据。这里图片不是整张存放的,而是以48*48为单位分块存放,从左上角按行一直到右下角。其中每个小块都是倒放的,具体读取可参考下面的例程:
ReDim Color(48 * 48 - 1)
For i = 0 To Height - 1
For j = 0 To Width - 1
Get #1, , Color()
StretchDIBits Picture1.hDC, j * 48, (i + 1) * 48, 48, -48, 0, 0, 48, 48, Color(0), bi, 0, vbSrcCopy
Next j
Next i

2004-11-26 23:48 van
最近研究了一下三九的图像格式,发现它用了三种存储格式,弄的我花了好久才搞清楚.它的一部分调色板结合到图像文件中去了,而前两代广泛使用的带s*后缀的bmp文件也少了很多.
s9素材方面最大的变化,我想可能就是音频和视频都开始使用压缩格式了,不过最关键的图像它还是以前的256色,虽然存储的格式代代不同,但还是万变不离其宗.而且它专门为图像处理编了一个dll(用了mmx,应该不再使用GDI了),可能是为了更好的渲染效果吧.它也开始全面步入DirectX,虽然从36起,它就有一个dll是专门用DirectSound处理声音,不过好像游戏里面没有用

简要的介绍一下三9的图像文件格式,希望对想利用三9资源的朋友有一点帮助
调色版(P开头的)
第一个双字是调色版总数
之后每1064个字节是不同的调色版,其中前40个是相关的信息,可以忽略,之后即是调色版数据,仍然是bgr格式存放

图像文件(G开头的)
一共三种格式,但仍然没有存放所使用的调色版的信息
第一种(类似于以前的格式):第一个双字是图片总数,从第五个字节开始存放的是图像数据的起始pos,之后即是图像数据,每个图像均有16字节的前导信息,分别是图像数据的长度(包括16字节前导信息),宽,宽(宽存放了两次),高
第二种:第一个双字是该文件的总长度.之后即是图像数据,每个图像数据也有16字节前导信息,格式同上
第三种:同上,只是文件开头包括了调色版文件,接下来就是第二种的数据(但没有总长度那个双字)

一般图像的调色版是递增的,图像文件使用的调色版文件一般与其名字差不多,但不是很有规律.

一些参考
G_still:宝物事件图片
G_ikki:单挑的场景,小人等
G_lbuild:大地图上的建筑
G_units:大地图上的小士兵

2004-11-27 08:35 Maxwell
van终于发言了,一发言还是重量级的,欢迎欢迎,这下有了san9的图像格式我就可以做头像编辑器了

2004-11-27 09:36 东方无翼
van出手,果然非同凡响。加精!

2004-11-28 19:00 gameplore
强,顶一下

2004-12-19 20:40 楚啻
对于类似我这样的菜鸟来说
最好的
莫过于制作成成品的修改器了……

如果曹操传也能做出类似英雄无敌3一样的编辑器就好了。

2004-12-20 14:23 金圭子
[quote]原帖由[i]楚啻[/i]于2004-12-19, 20:40:05发表
对于类似我这样的菜鸟来说
最好的
莫过于制作成成品的修改器了……

如果曹操传也能做出类似英雄无敌3一样的编辑器就好了。 [/quote]
除了曹操传哪些做出来的?

做这些现在主要的难点是什么?

2004-12-20 17:00 晨山尚书
看的不懂,不过楼主的修改器我是从不落后的。

2004-12-20 17:17 van
没人做而已,原理并不复杂。就像那个新武将登陆器一样,目前也就有出过一种

2004-12-21 11:16 金圭子
是因为大多数人delphi、vc或者jb的基础知识还没有呢?还是因为懒??

2004-12-21 12:38 van
懒吧,或者没花时间研究过

2004-12-23 21:30 snowny
[quote]原帖由[i]Maxwell[/i]于2004-11-27, 8:35:09发表
van终于发言了,一发言还是重量级的,欢迎欢迎,这下有了san9的图像格式我就可以做头像编辑器了  [/quote]
呵呵,期盼中,希望能够早点用上san9的修改器

2004-12-31 21:23 陈珺
我是根本不想改游戏,而是喜欢自己做游戏的

2004-12-31 22:15 Maxwell
[quote]原帖由[i]幽人独往来[/i]于2004-12-24, 0:42:19发表
问各位大大
我完全没有计算机编程基础,(偶学的是文科~~~~)
请问学哪一种语言比较好(通俗易懂,容易上手且在曹操传等修改方面用得上)?
另外该怎么入门呢?看那些书呢(纸质)?推荐一下吧!
师傅领进门,修行靠自身,
还请师傅领我进门啊~~~:) [/quote]
那用delphi吧,功能强大还不难学。

2010-3-16 17:05 田建享
呵呵 懂一些

2010-5-8 19:37 gaoyanan
V大一向可好,好久以前看到V大提取光荣的图像资源,一直想深入了解,也没有时间。

遥想当年,
恍惚昨天,
五载岁月,
弹指瞬间。

蹉跎华发,
何似从前,
亚男拜山,
笑看云天。

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.