ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

RePKG 实战指南:拆开 Wallpaper Engine 的 PKG,把 TEX 纹理转成可编辑的 PNG

RePKG 实战指南:拆开 Wallpaper Engine 的 PKG,把 TEX 纹理转成可编辑的 PNG RePKG 实战指南拆开 Wallpaper Engine 的 PKG把 TEX 纹理转成可编辑的 PNG【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkgRePKG 是一款用 C# 写成的命令行工具专门解析 Wallpaper Engine 的 PKG 资源包并把包内的 TEX 纹理转成 PNG 等通用图片格式。它面向壁纸创作者、素材收集者和想研究文件格式的开发者全程只需在终端里敲命令无需安装任何图形界面。先从收藏夹里的一堆 .pkg 说起很多人的 Steam 创意工坊目录下躺着这样的场景workshop/content/431960里按编号排了几十个文件夹每个文件夹里是scene.pkg、project.json、preview.jpg。壁纸在 Wallpaper Engine 里跑得好好的可你想把某张图的素材抠出来做二创双击 .pkg 却打不开——它是 Valve 生态里少见的专有打包格式。如果你同时遇到下面这些情况RePKG 基本就是为你准备的想提取 .pkg 里的贴图、模型、音频但找不到能解包的软件拿到 .tex 纹理Photoshop 和画图工具都不认攒了一堆壁纸包想知道每个包里到底装了什么、有多大想把 TEX 里的 GIF 动图还原成能直接播放的文件。RePKG 的核心价值就一句话把打不开变成一条命令的事。它到底能帮你处理哪几类事情能力说明对应命令解包 PKG把资源包内的文件按原始目录结构释放到本地repkg extract xxx.pkg还原工程连同 project.json、preview.jpg 一起拷出恢复可用的壁纸工程repkg extract -cTEX 转图把 TEX 纹理解码成 PNG动图还原成 GIFrepkg extract -t只取原文保留 TEX 原始字节不做任何转换repkg extract --no-tex-convert包体体检列出包内文件清单、大小、排序、过滤repkg info -e -s -b size十分钟跑通克隆、编译、验证RePKG 没有发布现成的二进制安装包拿到手需要自己编译一次过程不长git clone https://gitcode.com/gh_mirrors/re/repkg cd repkg dotnet build RePKG.sln -c Release三点需要提前知道目标框架CLI 工程面向 .NET Framework 4.7.2两个类库是 netstandard2.0。Windows 上装好 .NET SDK 即可编译Linux/macOS 上要编译 net472 目标需要额外引入 .NET Framework 引用程序集或借助 Mono最省事的做法是在 Windows 上编译、全平台运行产物。产物位置编译完成后可执行文件在RePKG/bin/Release/net472/下名字就是repkgWindows 下为repkg.exe。验证安装进入该目录执行repkg --version能看到版本号0.2.2即表示成功。建议顺手把可执行文件目录加进 PATH省得每次敲全路径# Windows PowerShell $env:Path ;$PWD\RePKG\bin\Release\net472# Linux / macOS export PATH$PATH:$(pwd)/RePKG/bin/Release/net472extract 命令的每一颗旋钮extract是主力命令既能解包也能转图具体行为由下面这些选项决定参数作用例子-o, --output输出目录默认是当前目录下的./output-o ./out-e, --onlyexts只提取指定扩展名的条目逗号分隔-e tex,png-i, --ignoreexts跳过指定扩展名逗号分隔-i model,mp3-t, --tex把输入目录下的全部 .tex 转成图片-t ./tex_dir-s, --singledir所有文件平铺到一个目录不保留包内路径-s-r, --recursive递归搜索子目录里的 .pkg / .tex-r-c, --copyproject顺带拷贝 pkg 旁边的 project.json 与 preview.jpg-c-n, --usename用 project.json 里的标题做输出子目录名而不是编号-n--no-tex-convert只提取原始文件跳过 TEX 转图--no-tex-convert--overwrite覆盖已存在的输出文件默认跳过并提示--overwrite几个容易忽略的细节解包时若条目是 TEX默认会自动转成 PNG并在旁边生成一份.tex-json信息文件宽高、格式、mipmap 数量等不需要额外操作-n依赖 pkg 同目录下的 project.json如果文件缺失就退回用编号命名目录作为输入时extract默认只处理直接子目录里的 pkg要扫更深层级的目录必须加-r。info 命令给资源包做一次体检info适合在动手提取前先摸清底细参数作用-e, --printentries打印包内每个文件的路径和字节数-s, --sort开启排序与-b搭配-b, --sortby排序依据name、extension、size默认 name-p, --projectinfo只输出 project.json 里指定的字段逗号分隔*表示全部--title-filter按壁纸标题关键字过滤只显示匹配的包# 看某个包里都有什么按体积从大到小排 repkg info -e -s -b size scene.pkg # 把 project.json 的字段全部倒出来 repkg info -p * scene.pkg # 在一堆壁纸里找出标题含 rain 的 repkg info --title-filter rain E:\workshop\content\431960需要提醒的是info的-t查看目录下所有 TEX 信息目前在源码里还是占位实现TEX 的信息主要靠 extract 时生成的.tex-json文件来读别在这上面浪费时间。三个拿来就能用的实战场景场景一单张壁纸素材抢救在创意工坊文件夹里找到心仪的壁纸把它完整拆出来包括工程配置和预览图repkg extract -c -o ./my_wallpaper E:\workshop\content\431960\123456789\scene.pkg完成后my_wallpaper里会有 project.json、preview.jpg、拆出来的贴图以及每张贴图对应的 PNG 和.tex-json相当于把壁纸还原成了一个可再次编辑的工程目录。场景二整库批量转 PNG把收藏夹里所有壁纸的 TEX 纹理一次性抽成 PNG平铺进一个目录方便统一管理repkg extract -e tex -s -r -o ./png_out E:\workshop\content\431960-e tex只碰纹理、-s去掉包内层级、-r递归扫子目录三步组合下来输出目录里就是干干净净的一堆*.png。场景三只想验证这包值不值得下先体检再解包避免白白占硬盘repkg info -e -s -b size suspicious.pkg repkg info -p title,type suspicious.pkg第一条看包内有什么、体积分布如何第二条看标题和类型两秒钟就能判断要不要继续。踩坑记录常见报错与对策现象原因处理办法提示Input file not found路径写错或文件不存在检查路径与扩展名pkg/tex 均可作为输入提示Unrecognized file extension传入了 pkg/tex 以外的文件RePKG 只认这两种格式先确认文件类型转出的图是黑图或尺寸不对TEX 用了较冷门的压缩变体或 mipmap 裁剪逻辑对不上先用--no-tex-convert拿原始 tex再用-t单独转换仍失败可到项目 Issues 反馈输出目录里很多文件被跳过默认不覆盖已存在文件需要强制更新时加--overwriteGIF 动图还原后帧序错乱部分包帧信息特殊旋转/裁剪推算有偏差属于已知的格式兼容问题保留原始 tex 以便后续重转大批量处理很慢每个 pkg 都要读入内存再写盘用-e过滤 -s平铺减少 IO 次数背后发生了什么从魔数到像素理解原理能帮你判断这个报错要不要管。RePKG 对两种格式做了逆向PKG 文件以魔数PKG!十六进制0x504B4721开头之后是条目表每条记录保存路径、长度等信息正文可能经过 LZ4 压缩源码里引用了K4os.Compression.LZ4。解包就是读魔数 → 解析条目表 → 按需解压 → 落盘。TEX 纹理的结构更讲究文件里依次是TEXV0005与TEXI0001两个魔数用来声明版本与类型头部TexHeader记录宽高、标志位是否 ClampUV、是否为 GIF 动图等图像容器ImagesContainer里面是若干 mipmap 层级帧信息容器FrameInfoContainer动图专用保存每帧的位置、尺寸、旋转角与帧间隔。TEX 内部常用的像素格式有RGBA8888、DXT1、DXT3、DXT5、RG88、R8六种。DXT 系列是压缩格式直接拿来当图片字节流是花的需要先解码成 RGBA——这段解码算法移植自开源库 LibSquish这也是项目仓库里THIRD-PARTY-NOTICES.txt存在的原因。转换流程大致是取第一张图的 mipmap → 若是压缩格式先解压 → 按头部的目标宽高裁剪 → 存成 PNG动图则遍历帧信息逐帧裁剪、旋转、设置帧延迟后拼回 GIF。源码地图三层各管一摊项目按职责拆成三个工程阅读源码时可以顺着这条线走工程定位关键内容RePKG.Core模型与接口ITex / ITexHeader / ITexImage 等接口TexFormat、TexFlags、MipmapFormat 等枚举RePKG.Application实现层PackageReader/PackageWriter、TexReader、各 Writer、DXT/RG88 解码助手、TexToImageConverterRePKG命令行入口Program.cs 解析参数Extract.cs 与 Info.cs 分别实现两个子命令命令行的入口在Program.cs它用 CommandLineParser 注册了extract和info两个 verb另外还藏了一个彩蛋——用repkg interactive可以进入交互模式逐行输入命令适合边摸索边试参数。从使用者到贡献者进阶路线想把这套工具用到更顺可以按下面的路线走先吃透命令在终端执行repkg --help、repkg help extract、repkg help info配合 README 里的 Examples 逐个跑一遍读懂数据流从Program.cs追到Extract.cs的ExtractPkg再进TexReader和TexToImageConverter整个读文件→解析→转图→落盘的链路就通了挑一个方向动手补全info命令里 TEX 信息的占位实现目前InfoTex是空的增加更多 DXT 变体或新压缩格式的支持把交互模式做得更完整或包一层图形界面优化大批量场景的内存占用与并发。仓库里的 LICENSE 与 THIRD-PARTY-NOTICES.txt 写明了许可与第三方依赖声明做二次开发前先翻一翻这两份文件。写在最后RePKG 的价值在于把 Wallpaper Engine 的资源从黑盒变成可读的普通文件。它解决的是格式壁垒问题至于素材本身请记住订阅者协议提取出来的内容建议只用于个人学习、素材参考或获得授权后的二次创作商用前务必确认原作者的授权条款。技术无边界版权有红线——工具让你做得到而分寸感让你用得久。【免费下载链接】repkgWallpaper engine PKG extractor/TEX to image converter项目地址: https://gitcode.com/gh_mirrors/re/repkg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表