设为首页收藏本站
机战Z2破界篇 星组汉化 下载

星组游戏论坛

 找回密码
 注册(QQ注册+邀请注册)

QQ登录

只需一步,快速开始

查看: 2525|回复: 8

[心得] PS3游戏《超次元游戏海王星》的PSSG文件结构说明 [复制链接]

Rank: 12Rank: 12Rank: 12

UID
63811
星币
17
积分
35
阅读权限
110
注册时间
2010-12-17
最后登录
2017-3-15
发表于 2013-3-25 13:56:38 |显示全部楼层
    首先废话几句,急性子的朋友们可以直接跳过本段。最近我朋友GP05研究了一下导出这游戏的3D模型,找了一些资料以及自己摸索后,算是对这种PSSG文件有点了解了。下面先放点文件做例子(这游戏的文件原来是打包成几个大的cpk格式的,我用了现成工具解包,基本上大家google一下能找到的)。  然后其实PSSG文件的读取工具,是有若干个现成的,如:RPE和PSSG Utility,前者对这个游戏兼容,于是我也用过它来帮助分析模型数据,下载地址如下:http://petar.outer-heaven.net/downloads/  。 还有要说的是解析PSSG的C#源码我也找到了一些过时的,不过由于现在已经有改动过了,已经不能直接使用,权当参考吧,地址: https://github.com/miek/dirt3-mo ... manager/PSSGFile.cs

    言归正传,下面是PSSG文件的结构说明。大体上如下图:
PSSG.png

     有点要说明的是,由于是PS3用到的文件,所以里面的整形、浮点数据并不是x86那样从低位到高位读入,而是从高位到低位读入内存。举个例子,下面附件里的model.PSSG, 04~07字节的数据:00 19 0E 31 ,这文件的实际大小就是0x190e31+8 。我们在PC上写小工具时,就要将高低位互换才能得到正确的数据,下面用一个读取无符号32位整形数据的c++函数来说明:
  1. u32   ReadPssgU32(fp)
  2. {
  3.         uchar   fmpc[4],tmpc[4];
  4.         fread(fmpc,1,4,fp);
  5.         tmpc[0] = fmpc[3];  tmpc[1] = fmpc[2];  tmpc[2]=fmpc[1];  tmpc[3]=fmpc[0];
  6.         u32  pssgu32 = *( (u32*)tmpc );
  7.         return pssgu32;
  8. }
复制代码
其它的short、float等类型的数据都是这样,将数据流倒序就行了。

     好了,我们读取完PSSG文件了,之后要干点什么呢?之后当然就是要获得我们感兴趣的数据啦,但具体哪些数据才是我们要的呢?这个嘛,当然是要自己来分析了,比方说我要从这个PSSG文件里导出3D模型,于是我在里面找到了某个DATABLOCKSTREAM结点,它有个属性renderType,其值是SkinableVertex,
数据0.jpg


而其兄弟结点DATABLOCKDATA里全是数据,
数据.jpg

我就可以推测这结点里的就是模型的顶点坐标数据了。于是结合其它结点的数据,导出来,放3D编辑工具里一看,就是这样的效果。
导出结果.jpg


      好了,现在总结一下思路。如果我们发现某个想汉化或者做MOD的游戏用到的是PSSG文件,那就可以1、先用RPE工具打开这些PSSG文件,看一下里面有没有我们感兴趣的数据; 2、归纳一下我们需要的数据的关键字眼,比方说我要3D模型,于是我需要这里面的renderTyper是 ST(UV纹理坐标)、Normal(法线坐标)、SkinableVertex或者Vertex(顶点坐标数据)、SkinWeights(蒙皮权重)、SkinIndices(蒙皮索引)的DATABLOCKDATA的数据据; 3、写工具将数据批量导出; 4、修改文件 ; 5、写工具将修改后的数据批量导入。  
     以上就是我朋友GP05摸索了一阵子的心得,希望对各位能有点参考作用吧。



0008_d.7z

774.81 KB, 下载次数: 36, 下载积分: 星币 -2

发帖际遇:srx-r2 在论坛发帖时没有注意,被小偷偷去了 1 星币.幸运榜 / 衰神榜
已有 1 人评分星币 收起 理由
绝世爱笑 + 1 这样才算爱过~

总评分: 星币 + 1   查看全部评分

星组汉化

破碎的影

Rank: 12Rank: 12Rank: 12

UID
23135
星币
12
积分
592
阅读权限
110
注册时间
2008-9-2
最后登录
2017-4-9
发表于 2013-3-25 13:58:03 |显示全部楼层
技术的理发师,膜拜宙宙~

星组汉化

男根!!

Rank: 12Rank: 12Rank: 12

UID
50567
星币
143
积分
189
阅读权限
110
注册时间
2010-3-4
最后登录
2017-3-23

STS-X-001 七芒星勋章

发表于 2013-3-25 14:00:41 |显示全部楼层
看不懂的表示压力不大,GP05怎么不见了!

管理员

勇者

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

UID
4
星币
389
积分
5105
阅读权限
255
注册时间
2007-6-30
最后登录
2017-9-21
发表于 2013-3-25 14:06:53 |显示全部楼层
沙发没了~~拍肩
星组游戏开发组 急招游戏画师美工~~~详见链接点我进入招募贴

Rank: 12Rank: 12Rank: 12

UID
95345
星币
84
积分
60
阅读权限
90
注册时间
2012-12-14
最后登录
2013-8-17
发表于 2013-3-25 18:08:02 |显示全部楼层
唔嗯,貌似很不错~

Rank: 1

UID
99703
星币
15
积分
1
阅读权限
10
注册时间
2013-7-24
最后登录
2013-7-24
发表于 2013-7-24 12:59:08 |显示全部楼层
可以請樓主發一下
3、写工具将数据批量导出; 4、修改文件 ; 5、写工具将修改后的数据批量导入。  
這三個步驟的工具嗎

Rank: 1

UID
102842
星币
18
积分
1
阅读权限
10
注册时间
2014-3-28
最后登录
2014-3-28
发表于 2014-3-28 22:45:18 |显示全部楼层
学习一下
发帖际遇:龙炎狸猫 打败野生的金属史莱姆,获得3 星币. 幸运榜 / 衰神榜

Rank: 4

UID
115225
星币
55
积分
302
阅读权限
40
注册时间
2016-7-25
最后登录
2017-9-22
发表于 2017-6-16 14:31:05 |显示全部楼层

Rank: 4

UID
115225
星币
55
积分
302
阅读权限
40
注册时间
2016-7-25
最后登录
2017-9-22
发表于 2017-9-12 13:49:20 |显示全部楼层

Archiver|星组游戏论坛 ( 京公网安备110403080002 )  

GMT+8, 2017-9-23 06:22

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部