Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
jashking committed Jul 30, 2021
1 parent f64c04e commit fb91e00
Show file tree
Hide file tree
Showing 20 changed files with 143 additions and 15 deletions.
158 changes: 143 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,144 @@
# UnrealPakViewer ##

![UnrealPakViewer.png](UnrealPakViewer.png)
可视化查看 Pak 文件内容,支持以下特性

* 支持树形视图和列表视图查看 Pak 中的文件
* 列表视图中支持搜索,过滤,排序
* 支持查看 UAsset 文件的具体内容组成信息
* 以百分比显示各个文件夹,文件,文件类型的大小占比
* 支持多线程解压 Pak 文件
* 支持加载 AssetRegistry.bin 资源注册表

## 功能 ##

### 打开 Pak 文件 ###

![OpenPak.png](Resources/Images/OpenPak.png)

或者直接拖动 Pak 文件到 UnrealPakViewer 窗口中即可打开,如果 Pak 文件是加密的的,则会弹出密码输入框

![AESKey.png](Resources/Images/AESKey.png)

输入对应的 AES 密钥的 Base64 格式后即可打开 Pak 文件

### 查看 Pak 文件摘要信息 ###

![PakSummary.png](Resources/Images/PakSummary.png)

* Mount Point: 默认挂载点
* Pak Version: Pak 文件版本号
* Pak File Size: Pak 文件大小
* Pak File Count: Pak 内打包的文件数量
* Pak Header Size: Pak 文件头大小
* Pak Index Size: Pak 索引区大小
* Pak Index Hash: Pak 索引区哈希值
* Pak Index Is Encrypted: Pak 索引区是否加密
* Pak File Content Size: Pak 文件内容区大小
* Pak Compression Methods: Pak 中文件所使用的压缩算法

### 加载资源注册表 ###

![LoadAssetRegistry.png](Resources/Images/LoadAssetRegistry.png)

Cook 完成后都会在 *Saved/Cooked/[Platform]/[Project]/Metadata/DevelopmentAssetRegistry.bin* 路径生成一份资源注册表信息,里面包含资源类型,引用关系等信息,可以通过 Load Asset Registry 加载进来分析各个资源类型的大小占比信息

### 文件树视图 ###

![TreeView.png](Resources/Images/TreeView.png)

以树形结构列出 Pak 内包含的目录和文件,以及目录大小占总大小的比例信息

#### 选中某个目录后可以在右边查看该目录详情 ####

![FolderDetail.png](Resources/Images/FolderDetail.png)

* Name: 目录名称
* Path: 目录路径
* Size: 目录解压后大小
* Compressed Size: 目录压缩后大小
* Compressed Size Of Total: 目录压缩大小占总 Pak 大小的比例
* Compressed Size Of Parent: 目录压缩大小占上级目录的比例
* File Count: 目录中文件数量

以及该目录中各个文件类型的占比信息(需要加载 AssetRegistry.bin 注册表)

![FolderDetailClass.png](Resources/Images/FolderDetailClass.png)

#### 选中文件后可以在右边查看该文件详情 ####

![FileDetail.png](Resources/Images/FileDetail.png)

相比目录,额外多一些信息

* Class: 文件类型
* Offset: 文件在 Pak 中序列化的起始位置
* Compression Block Count: 压缩分块数量
* Compression Block Size: 压缩分块大小
* Compression Method: 文件压缩算法
* SHA1: 文件哈希值
* IsEncrypted: 文件是否加密

如果选中的是 .uasset 或者 .umap 文件,还能查看该文件内部的序列化信息

![AssetSummary.png](Resources/Images/AssetSummary.png)

* Guid: 该资源的 Guid
* bUnversioned: 序列化时是否带引擎版本信息
* FileVersionUE4: 文件格式版本号
* FileVersionLicenseeUE4: 文件格式版本号(授权)
* TotalHeaderSize: uasset 的文件头大小
* PackageFlags: uasset 包标志
* ImportObjects: 导入表信息(引用的外部对象)
![ImportObjects.png](Resources/Images/ImportObjects.png)
* ExportObjects: 导出表信息(该资源内部有哪些对象),导出表的序列化大小即是对应的 .uexp 文件大小,可点击 SerialSize 和 SerialOffset 列进行排序
![ExportObjects.png](Resources/Images/ExportObjects.png)
* Names: 该资源相关联的所有 FName 信息
![Names.png](Resources/Images/Names.png)
* PreloadDependency: 依赖资源包索引信息
![PreloadDependency.png](Resources/Images/PreloadDependency.png)

#### 右键菜单 ####

![TreeViewContext.png](Resources/Images/TreeViewContext.png)

右键目录或者文件,会弹出右键菜单,功能如下

* Extract: 解压选中的目录或者文件
* Export To Json: 将选中的目录或文件信息导出到 Json 文件
* Export To Json: 将选中的目录或文件信息导出到 Csv 文件
* Show In File View: 如果选中的是文件,则跳转到该文件在文件列表中的对应位置

### 文件列表视图 ###

![ListView.png](Resources/Images/ListView.png)

文件列表视图以表格形式显示 Pak 中的文件信息,支持点击列标题进行排序

#### 类型过滤 ####

![ClassFilter.png](Resources/Images/ClassFilter.png)

按类型过滤列表中的文件

#### 文件名过滤 ####

![NameFilter.png](Resources/Images/NameFilter.png)

按文件名过滤列表中的文件

#### 右键菜单 ####

![ListViewContext.png](Resources/Images/ListViewContext.png)

选中文件后右键弹出右键菜单,功能如下

* Extract: 解压选中文件
* Export To Json: 将选中的文件信息导出到 Json 文件
* Export To Json: 将选中的文件信息导出到 Csv 文件
* Show In Tree View: 如果选中单文件,则跳转到树形视图中
* Copy Columns: 复制对应的列信息到剪贴板中
* View Column: 隐藏/显示列
* Show All Columns: 显示所有列

## 编译 ##

Expand All @@ -11,22 +149,12 @@
* 4.25
* 4.26
* 4.27

## 特性 ##

* 查看 pak 文件头信息
* 树形视图查看 pak 文件
* 文件夹大小占比进度条
* 列表视图查看 pak 文件
* 支持过滤
* 支持升降排序
* 多线程解压
* 4.28

## TODO ##

* 命令行程序
* support utoc, ucas
* commandline application
* Pak compare visiualize
* resource preview
* resource load heat map
* 文件列表视图里增加文件夹列表(通过选项开关,只显示文件,只显示文件夹,同时显示文件和文件夹)
* Load from json or csv
* 资源预览
Binary file added Resources/Images/AESKey.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/AssetSummary.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/ClassFilter.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/ExportObjects.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/FileDetail.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/FolderDetail.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/FolderDetailClass.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/ImportObjects.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/ListView.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/ListViewContext.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/LoadAssetRegistry.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/NameFilter.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/Names.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/OpenPak.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/PakSummary.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/PreloadDependency.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/TreeView.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Images/TreeViewContext.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed UnrealPakViewer.png
Binary file not shown.

0 comments on commit fb91e00

Please sign in to comment.