PS4游戏资源解析

大致流程

  • 1.获取游戏的数字安装包(.pkg 文件)
  • 2.解pkg文件,拿到游戏的PSARC文件
  • 3.PSARC解pak资源
  • 4.pak资源解模型贴图资源
  • 5.导到blender查看

1 获取游戏安装包

  • 直接pc光驱读ps4碟
  • ps外接硬盘,讲游戏拷贝到外接硬盘
  • 通过软件代理截取数字版下载地址

在获取游戏安装包的过程中,做了一些尝试。尝试了3条路子,前2条都被毙掉了,最后一条获取成功

1.1 pc光驱读加密ps碟

开始的时候想直接pc的光驱读ps4碟,这一步最naive,直接被干掉了,2个原因,ps4的碟容量较大,是蓝光碟,可能你电脑的光驱压根就读不了,就算能读蓝光碟,也没用。ps4的碟在生产的时候,每一张光盘的物理信息和数据都是独一无二的,查了下资料,这部分物理特征是记录在内圈的,用公钥加密这个物理特征放入数据区。

no  packages  found no packages found ps4_下载地址

然后ps4的机器在读取时数据区,然后用私钥解密数据区记录的物理特征信息,再量光盘的物理特征,比对光盘的物理特征是否和他记录的一样,来验证是不是正版碟(所以你基本没见过盗版的ps4游戏碟)。

1.2 ps4主机外挂硬盘

这里就要说到ps外接硬盘的格式要求了。普通的移动硬盘查到ps4上,他会要求你先格式化,才能使用。

ps4主机提供了2种格式化的模式

  • fat32、exfat
  • ps专用格式

这2种格式,我都做了下尝试,1 pc能识别,但是装不了游戏。2 能把游戏移动硬盘上,但是pc识别不了。

下面来说一下区别,fat32和exfat常见于u盘上,他有一定的限制,fat32限制了单个文件大小4G,exfat的出现解决了4G大小的问题。如果讲硬盘格式化成fat格式的话,只能存放媒体问题(影音、图片)。

ps专用格式,这个是ps4自己的格式,这种格式允许你把应用程序安装到移动硬盘上。但是pc是没办法识别这种格式的硬盘的。

no  packages  found no packages found ps4_no  packages  found_02

1.3 PSXDownload helper获取下载地址

主要用了这个软件 PSXDownload helper 下载地址

这个软件本质上是用来加速游戏主机(PS3/PSV/WII等)从商店下载游戏,软件以及升级系统的应用。通过他可以拿到数字版的下载地址,然后也就可以直接pc上下载数字版资源了

使用教程这里有个 演示视频

no  packages  found no packages found ps4_下载地址_03

2. 解pkg文件

通过上一步下载下来的文件,是sony商店放上去的.pkg格式。这个类型的文件,ps4主机可以直接安装,但是pc是没办法直接解压的,需要借助 一款软件 PS4PKGViewer下载地址 (目前出到了1.5版本)来做Extractor提取的操作。

补充一个新的pkg extract工具下载地址
下载地址

no  packages  found no packages found ps4_no  packages  found_04

使用方法:

  • 打开File->Open 选择游戏的pkg
  • Extra-> ListContent 显示文件目录
  • 目录结构下右键文件夹Extract to

提取完之后得到一系列文件,以神海为例,可以看出,他们的策略是每个场景用到的资源打包成了一个psARC文件,总共60个G。

3. 解PSARC文件

psARC文件一般默认是zlib压缩的。网上也有别人写好的提取psARC的文件。

PSARCTool下载地址

使用方法:

把psARC文件和PSArcTool.exe 放在同一目录下,选择.psARC文件拖动到PSArcTool.exe上,就会提取相应的资源到当前文件夹下。

也可命令行下使用,传参为需要提前的文件

\.PSArcTool.exe world-home.psarc

这一步得到了每个psarc解出来的具体的 pak文件。

no  packages  found no packages found ps4_数据_05

4. 解PAK文件

这一步也是最重要的一步了,大致就是根据具体的PAK文件,解析出对应的资源。.pak是各个游戏开发工作室chef出来的二进制文件,这个地方反解的话,自己摸索代价太大,建议可以去 XeNTaX论坛 搜对应的 游戏,看看有没有大佬提供的反解程序。

比如神海4,Tools for Uncharted 4 这个帖子就提供了反解Textures、Skeletons、model的程序

no  packages  found no packages found ps4_移动硬盘_06

no  packages  found no packages found ps4_移动硬盘_07

下载下来的Uncharted4.exe使用方法和 PSArcTool.exe类似,直接拖动.pak文件到Uncharted4.exe上即可,结束后,当前路径会输出这个pak解出来的资源,

  • .smd的动画数据(这个后面可以导入blender,最早是起源引擎做半条命用的动画数据)
  • .dds贴图文件
  • textures.txt 用到的贴图列表
  • .ascii配合smd使用的动画数据

no  packages  found no packages found ps4_数据_08

5. 导入到blender查看

这一步其实也是比较麻烦的一步,因为你要在几十个G的pak文件夹中找到自己想要的 资源,而且只能通过名字连蒙带猜。

这里配套放一个原作者录的屏,他演示了一下如果解神海的pak资源。并将动画导入到blender中

反解pak导入blender视频

blender我这里装的是最新版的,然后发现默认不支持直接导入.smd文件,查了下,需要安装一个
BlenderSourceTools下载地址

下好之后是一个zip文件,也不用解压,直接blender里面操作安装即可

  • Select Edit > User Preferences
  • Move to the Addons tab
  • Click Install... at the top of the window
  • Find the downloaded zip file

打开blender file->import->SourceEngine(.smd)

no  packages  found no packages found ps4_数据_09

no  packages  found no packages found ps4_下载地址_10