游戏狂人
 
- 贡献度
- 210
- 金元
- 7539
- 积分
- 1614
- 精华
- 2
- 注册时间
- 2006-4-19
|
===7月26日更新完美版小樱第二版======
修正了修改模型造成胸口处围巾略微错位的bug.
更新在33楼,点这里直达:
http://3dmgame.chnren.com/bbs/showtopic-783446-4.html#8256089
====7月25日更新完美版隆胸半透明小樱====
更新在33楼
====7月25日更新图文教程==========
图文教程在30楼,点这里直达:http://3dmgame.chnren.com/bbs/showtopic-783446-2.html#8244631
教程第二段,点击直达:
http://3dmgame.chnren.com/bbs/showtopic-783446-3.html#8266382
====以前的更新================
写在前面,这里所用的很多技术是Lotsbiss研究的,如果大家觉得好,有用,请也给Losbiss加点分~谢谢斑斑。
各位做mod的同学们!
相信你们都在为街霸该死的封闭式文件打包法头疼不已吧?
相信你们都正在为各种材质效果的不同却无法修改而烦躁吧?
相信你们都正在为图片尺寸大小固定了而叹息吧?
今天,这些都将成为过去,修改达人小L(论坛ID otsbiss,春丽瘦腿MOD作者)昨天彻底攻破了EMZ文件的格式,现在你可以随意修改了!
本人抵挡不住兴奋,在这里与大家分享.
PS1:说实话,我希望做MOD的都来看看涨涨基本功,因为很多图片MOD在我看来都惨不忍睹。
PS2:如果想偷懒的可以等小L写导入导出软件,他说会在近期内放出。
ok,废话了半天,下面言归正传。
做图片MOD,一般情况下,图片MOD需要完整的修改的图片有3张:1,漫反射贴图. 2,法向量贴图。3,高光贴图。
漫反射贴图修改,
漫反射贴图在街霸的 【安装盘X:STREETFIGHTERIVBattleChara角色缩写角色缩写_01_XX.col.emz】 下面,
XX代表第几个颜色。
提取方法:使用offzip.exe解压【缩角色缩写_01_XX.col.emz】,
命令:"offzip.exe -m 16 -a -z -15 缩角色缩写_01_XX.col.emz 目标文件夹 0"
然后你可以使用各种hex编辑软件如WinHEX搜索DDS字符提取出DDS贴图,或者使用Dragon UnPACKer 5。
提取出贴图后,使用photoshop软件修改,修改后保存的时候注意,如果没有特殊用途,比如改变衣服某部分透明或半透明,请不要改变DDS贴图格式,街霸4使用了2种DDS贴图,一种是DT1贴图,一种是DT5贴图。怎么分辨?很简单,导出的原始贴图带alpha图层的就是DT5贴图,没有alpha图层的就是DT1贴图。
对于修改贴图,切忌凭空想象去修改,不要想当然的去认为哪里就是人物的哪部分贴图。因为很多时候不是那样的。怎么制作精确地贴图,这里提供一种方法。(以下方法对于3d技术还没入门的有点吃力)
首先下载3D Ripper DX,3D Ripper是一款抓取dx9或以下模式运行中游戏模型的工具,用3D Ripper抓取有你想改的人物的场景,然后倒入到3dsMAX或者maya中,这里注意3dsMAX版本不能高于9.导入3ds的时候屏幕比例,4:3 16:9等等一定要选正确,不然人物就会变形。
然后我们打开材质球,选取正在修改的dds贴图,然后赋予导入后的模型,来确认你要修改的部位所使用的是哪块贴图。ok,现在我们每对dds做一下修改,都能在3ds里面非常直观的看到,而且还可以在【修改器-》展开UVW】这里看到精确的贴图位置。
修改完后在3ds里面觉得满意了,保存贴图,先放到一边。
法向量贴图修改。
法向量贴图就是我们俗称的法线贴图、凹凸贴图,凹凸贴图比法线贴图单纯一些,现在已经不多见了。但是他们的意义是一样的,就是色深来定义模型细节上的凹凸层次感。具体的这里不多说了。
首先用跟漫反射贴图一样的方法导出法向量贴图,法向量贴图的地址:【安装盘X:STREETFIGHTERIVBattleChara角色缩写角色缩写_01.cos.emz】。然后使用ps或者3dsmax修改。(跟漫反射贴图一样,法向量贴图也可以在3ds里面做直观的修改。)
一般情况下,做精确的法线贴图需要用高模向低模烘焙,直接生成法向量贴图。有3d实力的同学可以修改3D ripper导出的模型,然后以原模型为烘焙对象直接导出。
不会3ds的我们可以做不那么精确的法向量贴图。
直接用PS打开,然后选择: 图像->调整->去色
好了,现在你看到的是一张灰白色的图片,对应着漫反射贴图,我们把希望平坦的地方磨平,把希望有凹凸的地方填上凹凸感,完成后,导出为DXT5格式的DDS,而且在导出时候的对话框中,选择[normal map settings],勾上[cnvert to tengent space normal map],[4 sample][alpha feild--> height]其他默认就可以了。
修改好后保存,然后在3ds里面看看render后的效果,满意后,先放这一边。
高光贴图修改,
什么是高光贴图?就是决定这个物体是不是反光,反光强度如何,表面粗糙程度的贴图,街霸4因为本身是卡通画风格,所以这个高光贴图其实没有实质的图片让我们修改,他写在文件里面。用各种参数来定义,因此我们也只能根据他的原始定义来一块一块修改,有什么用处?举个例子,紧身衣你把它改成皮肤了,但是他的高光渲染定义还是衣服的,那么他始终会和皮肤有些不同,就算你在漫反射贴图里面修改的一个颜色,游戏还是有不同。所以这里我们需要把皮肤的渲染方式复制到衣服上。但是如果皮肤的代码比衣服的长,就会造成游戏出错,这个怎么办呢?
参阅EMZ修改详解。
透明度的修改,
跟高光贴图一样,一般复制eyefar的渲染方式覆盖原来的渲染方式即可,文件变长了,就会造成游戏出错,这个怎么办呢?
参阅EMZ修改详解。
重头戏来了,EMZ文件完全修改大法!
首先从EMZ是什么开始讲。
EMZ文件其实就是一个特殊压缩方式的压缩包,老外已经有了解压工具offzip,我们直接拿来用好了。
解开后,我们可以直观的看到一些关键字的定义:如EMB EMM DDS。以KEN_01_01.col.emz举例,他们之间是的关系如下图:
#EMB
┣#EMM
┣#EMB2
┃┣DDS1
┃┣DDS2
┃┣DDS3
┃┗DDS4
EMB是一个包裹,上图中,其实是一个EMB包着一个EMM和另一个EMB2,而EMB2包裹着4张DDS贴图,每个EMB和EMM字符后面都跟着一段包裹内容的代码地址,因此我们的贴图修改和高光渲染方式修改使得文件大小产生了变化,那么EMB和EMM后面对应的内容地址就会产生变化,如果不修正,进游戏就会报错。如何修正?请耐心往下看。
我们用16进制编辑器(Winhex)打开解包后的EMZ文件,offzip默认是00000010.dat,以ken的第一套服装第一种颜色为例,我们先修改文件名为KEN_01_01.col.emz方便复制回游戏测试。
打开KEN_01_01.col.emz,在文件头,我们看到这么一行代码;
23454D42FEFF2000,这里是文件定义,我们不管他,直接跳到地址(offset)0x00000020处。
代码为:20 00 00 00 44 87 00 00 68 87 00 00 30 58 15 00 C0 DF 15 00 D2 DF 15 00
这里就是定义EMB包裹下的EMM EMB2 和对应的内部名称的代码。一共有6段,我们一段一段来:
20 00 00 00代表EMM内容的16位相对地址,这里地址是倒过来的,20 00 00 00对应的16进制数字是00000020,因为是相对地址,所以要在原来的地址0x00000020上相加,得出EMM内容的起始地址为00000020+00000020=00000040,我们看看0x00000040的地方,正好就是EMM内容的文件头。
44 87 00 00代表EMM内容的长度,这里也是反着写的,44 87 00 00对应的16进制00008744,为了验证是否正确,我们来看一下EMM结束的地方。
用之前得出的EMM头地址0x00000040加上长度00008744,得出地址:0x00008784,我们看0x00008784处,后面不远就是EMB的开头。
68 87 00 00代表EMB2内容的16位相对地址,也就是0x000028+0x00008768.
30 58 15 00代表EMB2内容的长度:00155830
C0 DF 15 00代表的是emm内部名的绝对位置,也就是在0x0015dfc0处。我们跳转到0x0015dfc0处,看到KEN_01_01.obj.emm。
D2 DF 15 00代表的是EMB2内部名的绝对位置,也就是在0x0015dfD2处。我们跳转到0x0015dfD2处,看到KEN_01_01.col.emb。
EMB里面包裹的EMB2的定义跟EMB是一样的,也是 相对地址,内容长度,相对地址,内容长度,这么重复,这里不啰嗦了。
下面我们说下EMM是如何定义的。修改高光效果和半透明/全透明就在这里。还是以KEN_01_01.col.emz为例,我们跳转到地址0x00000040处。
代码如下:
23 45 4D 4D FE FF 10 00 00 00 00 00 10 00 00 00 18 00 00 00 64 00 00 00 30 05 00 00 FC 09 00 00 68 0F 00 00 5C 14 00 00 .....
前面的“23 45 4D 4D FE FF 10 00 00 00 00 00 10 00 00 00 ” 不用管它,从18 00 00 00开始。
18 00 00 00代表我们要修改的角色一共用了0x00000018个渲染器(10进制为24)
64 00 00 00第一个渲染器的起始相对于0x00000050的相对地址。
30 05 00 00第二个渲染器的起始相对于0x00000050的相对地址。
FC 09 00 00第三个渲染器的起始相对于0x00000050的相对地址。
.....以此类推.......
总结,EMZ定义图:
#EMB (EMM相对地址,长度),(EMB相对地址,长度)(XXX_01_01.obj.emm绝对地址)(xxx_01_01.col.emb绝对地址)
┣#EMM(数量,相对地址1,相对地址2,相对地址3)
┣#EMB (DDS1相对地址,长度),(DDS2相对地址,长度),(DDS3相对地址,长度),(DDS4相对地址,长度),
┃┣DDS1
┃┣DDS2
┃┣DDS3
┃┗DDS4
┗EMM内部定义名 EMB内部定义名
好了,今天就暂时讲到这里,现在大家不再受到文件大小的限制了。跟黑眼圈说拜拜吧~跟丑陋的512x512贴图说拜拜吧!
我的游戏我做住,谢谢大家!
本人比较懒,没有上图,请见谅!!
一些常用的软件可以来这里下载:
http://www.uushare.com/user/terryzxc/files/1823234 |
|