Codejie's C++ Space

Using C++

M2过程:Skin文件结构定义完成

    Skin文件即原来M2文件中的View部分,现在每一个View数据都单独保存在一个Skin文件中,这让M2文件变小了一些,当然了这点变化实际只是让View数据更加清晰,对于M2文件的大小影响实在么感觉,M2依然是那么大。这也么办法,M2文件定义的算比较通用,不论是什么模型,象人物,物品,武器,甚至天空等等,都使用M2来定义,这样每个M2都有相同的头部分,当然现在又都有了四个Skin文件,其大小是被模型自身的复杂度决定的。
    下面是Skin文件结构解析的定义,同样采用了template方式定义,只是这次没有使用“特例化”模版,因为。。如果就一种类型,特个头,完全没事找事作。Template用过了头也是自找麻烦。
Skin结构解析定义

    这里是M2文件结构解析的部分定义,让大家看看对ST_HEADER和ST_NAME的两个类型的“特例化”定义是不是没事找事...
M2文件结构解析定义

posted on 2009-04-03 14:25 codejie 阅读(787) 评论(9)  编辑 收藏 引用 所属分类: C++MPQ - WOW

评论

# re: M2过程:Skin文件结构定义完成 2012-11-21 12:41 kingnb

你好,C++方面一窍不通,如果您有时间的话,可以问您一些问题吗?
就是比如说,某个m2文件,例如:a.m2,那么,与之相匹配的skin文件就是:a00.m2,构成模型的其他blp贴图文件是怎么和m2以及skin联系起来的呢?
我个人感觉是skin文件来控制m2和其他blp之间的关系的。
如果是这样的话,请问,您知道skin文件要怎么来修改吗?很简单的修改就可以,比如说,我要把m2应用到的某个blp路径,替换为另一个。
如果不是的话,麻烦您可以告知一下是哪个部分的文件在控制他们之间的关系吗?
不尽感谢!  回复  更多评论   

# re: M2过程:Skin文件结构定义完成[未登录] 2012-11-21 13:47 codejie

@kingnb
..这个.M2早忘光光了...记得blp的路径方式有两种,通用的是用索引,特殊的是直接用文件路径了.好像一般建议修改路径或者索引对应的blp文件,而不是修改.M2文件.
实在不好意思,真的很久很久没看这个了...  回复  更多评论   

# re: M2过程:Skin文件结构定义完成 2012-11-22 10:42 kingnb

@codejie
感谢你哈!没关系的。
我再问详细一点以及自己试验的结果吧,如果您有印象或者还有兴趣的话,麻烦帮帮我,如果您比较忙就不麻烦您了,非常感谢!
就比如说,厄运水晶的那个通天光柱,然后我想按分类把光柱的颜色替换掉(贴图文件已经做好了),比如说,我要批量修改矿石、草药、宝箱以及一些重要道具比如龙蛋等。矿石用黄色光柱,草药用绿色光柱,宝箱用默认蓝色光柱,龙蛋用红的这样,但是发现替换M2和skin,就会默认读取原先的默认蓝色光柱。
然后只修改M2,skin用原有的,会出现皮肤很怪异,应该就是用的原来的皮肤文件,所以我才断定skin这个文件,是控制其所属m2组要读取的blp贴图路径以及数量等等。
不知道有没有什么程序之类的,可以把*.skin文件转码让它可以编辑,编程方面我一窍不通,用了好几款文本编辑软件,打开全部都是那些奇怪的乱码。。  回复  更多评论   

# re: M2过程:Skin文件结构定义完成 2012-11-22 11:34 kingnb

其实我之前想得很简单,就是想象中skin可以打开,然后里面是一些列表类的东西。
比如有几列分别为blp1、blp2、blp3的。
然后在他们下面一行分别是a\b\c\d.blp、a\b\c\e.blp、a\b\c\f.blp这样。。
但是发现压根儿就找不到可以编辑*.skin文件的软件,之前找了好些地方,据说“InstallShield”可以编辑打包皮肤就试了一下,发现不会弄,后来又查到“Microsoft Visual Studio”,可以编辑,但是也是乱码。。。
记事本和“UltraEdit”也是乱码。。。  回复  更多评论   

# re: M2过程:Skin文件结构定义完成[未登录] 2012-11-22 13:29 codejie

@kingnb
好久没弄,怕弄错..我乱说下,你就听听啊...我记得红光什么的,应该不是skin的一部分,算是'装饰',好像有专门的'段'存放这些数据,一般都是索引,不会想blp那样有路径存放的.  回复  更多评论   

# re: M2过程:Skin文件结构定义完成[未登录] 2012-11-22 13:38 codejie

@kingnb
skin文件是二进制文件,如果不解码,是没法直接'看懂'的,而且也不能直接修改,比如有文件长大检查等限制,应该算是WOW中只读文件.解码的应用现在应该比较多了,你google下. 我写的代码应该太旧了,只能访问TBC时期的文件,如果有兴趣,可以参考下 -- http://code.google.com/p/codejie/source/browse/#svn%2Fc%2B%2B%2Fstudio%2FDeWModel
不好意思,我真没搞过'修改'模型的时期..我的骷髅还原补丁都是网上下载的..  回复  更多评论   

# re: M2过程:Skin文件结构定义完成 2012-11-22 16:54 kingnb

@codejie
您太客气了,我的意思是,M2是一个模型的框架,然后BLP是那些贴图文件,他们之间的联系文件就是SKIN,这个SKIN决定了相对应的M2文件要读取的贴图数量、种类以及位置等等。。。
那个红光,我举个例子给您看吧:
a.m2对应的是a00.skin,a00.skin决定了a.m2要读取b.blp作为贴图,而我的目的就是,想要改动a00.skin的内部参数或者代码什么的,好让a.m2去读取c.blp这个贴图。
今天下午又尝试只改替换M2,然后用旧的SKIN,再改贴图。结果又遇见更难的问题了,这些贴图根本就组不到M2上,我尝试过拆解那个光柱的M2,底座是底座,光是光,现在只能把底座的贴图弄出来,光柱还是没有任何贴图。
另外,您的那个网址,我看不懂。。。。不好意思哈。。。
我再找找看有没有办法解码SKIN吧,十分感谢您!  回复  更多评论   

# re: M2过程:Skin文件结构定义完成[未登录] 2012-11-22 18:19 codejie

@kingnb
好强力,加油啊..M2搞起来很好玩的..只是太耗脑力了..  回复  更多评论   

# re: M2过程:Skin文件结构定义完成 2012-11-22 18:57 kingnb

@codejie
您太客气了,技术有限,屡屡碰壁。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜