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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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
Loading
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.