Skip to content

CamelKing1997/WallpaperEngineDecoder

Repository files navigation

Wallpaper Engine Media Extractor hero banner

中文 | English | 日本語

Wallpaper Engine Media Extractor

从 Wallpaper Engine 创意工坊目录中提取图片与视频资源的桌面工具。
面向本地归档、素材整理、纹理研究与媒体导出,而不是复刻 Wallpaper Engine 播放运行时。

Windows 10+ Electron Rust Apache 2.0

为什么会有这个项目 · 核心能力 · 界面预览 · 工作流 · 快速开始 · 项目结构

为什么会有这个项目

Wallpaper Engine 创意工坊的很多壁纸资源并不是直接平铺在文件夹里,而是混合了 project.jsonscene.pkg.tex、预览图和视频文件。
这个项目的目标很明确:

  • 扫描本地 Steam 创意工坊中的 Wallpaper Engine 项目目录
  • 尽可能提取其中真正可用的图片与视频素材
  • 在桌面应用里直接预览提取结果
  • 对单个媒体文件做导出,减少手动翻缓存目录或回到命令行的负担

其中 431960 是 Wallpaper Engine 在 Steam 创意工坊内容目录下使用的应用 ID。
实际路径并不固定在某个盘符上,通常是某个 Steam 库下的 steamapps/workshop/content/431960;如果你把 Steam 库或创意工坊内容放到了其他磁盘,这个上层路径也会随之变化。

当前项目聚焦“媒体提取与导出”。
它不是 Wallpaper Engine 的运行时替代品,也不是完整的壁纸播放器。

核心能力

能力 说明
创意工坊扫描 扫描本地 Steam 库中的 steamapps/workshop/content/431960 目录并建立可浏览库,431960 为 Wallpaper Engine 的应用 ID,盘符和库路径可自定义
场景包解析 解析 scene.pkgPKGV000x 结构并提取包内资源
TEX 解码 对常见 TEXV0005 纹理执行解码,输出可直接使用的图片文件
媒体预览 在应用内预览图片与视频,不需要手动翻缓存目录
单项导出 右键导出某一个媒体文件,适合做素材整理
多语言界面 当前支持中文、日文、英文切换,默认中文

界面预览

当前 README 中展示的界面截图来自项目当前版本,而不是早期原型。

Current desktop application workspace

上图对应的是当前已经收缩后的主线形态:

  • 左侧是创意工坊库
  • 中间是媒体工作区
  • 右侧是媒体预览
  • 交互重点放在媒体提取、预览与导出

工作流

下面这张图概括了当前版本的核心工作流:从扫描本地创意工坊目录,到提取媒体、预览结果,再到导出文件。

Workflow illustration showing scan decode preview export

典型使用流程:

  1. 扫描本地创意工坊库
  2. 选择一个 scenevideo 壁纸
  3. 解包资源并解码可提取媒体
  4. 在应用内预览图片或视频
  5. 导出单个媒体文件用于归档或二次整理

支持范围

当前版本重点支持这些场景:

  • scene 壁纸的 scene.pkg 解析与媒体提取
  • 常见 TEX 纹理资源转可视图片
  • 直接存在于工坊项目中的图片和视频媒体
  • 本地缓存目录中的快速复查与导出

当前不以这些能力为目标:

  • 不尝试还原 Wallpaper Engine 的完整播放效果
  • 不以运行 web/application 类型壁纸为主目标
  • 不追求把所有未知包字段都变成最终用户可见功能

技术实现

项目采用桌面壳 + 解码核心分层:

  • Electron + React 负责桌面界面、预览、导出和工作流交互
  • Rust 负责包解析、索引、缓存和 TEX 解码
  • Playwright + Vitest 负责桌面冒烟和前端/主进程测试

这种分层让界面可以持续演进,同时把真正复杂的二进制处理放在更适合做解析和性能控制的语言里。

快速开始

普通用户下载

不需要安装 Node.js、Rust 或源码。直接从 GitHub Releases 下载最新版:

  • WallpaperEngineMediaExtractor-*-setup.exe:安装版,适合长期使用
  • WallpaperEngineMediaExtractor-*-portable.exe:便携版,下载后可直接运行

运行环境

下面内容只面向想从源码运行或参与开发的用户:

  • Node.js 22+
  • npm 11+
  • Rust stable toolchain
  • Windows 10/11

安装依赖

npm install
cargo test --manifest-path crates/decoder-core/Cargo.toml

启动开发环境

npm run dev

常用命令

npm start
npm run build
npm run dist:win
npm run typecheck
npm run test:renderer
npm run test:main
npm run test:e2e
cargo test --manifest-path crates/decoder-core/Cargo.toml

更多开发说明见 docs/guides/development-setup.md

项目结构

.
├─ crates/
│  └─ decoder-core/        Rust extraction and decoding engine
├─ docs/
│  ├─ assets/readme/       README illustrations and screenshots
│  └─ guides/              Contributor-facing setup and usage docs
├─ resources/
│  └─ icons/               Desktop app icon assets
├─ src/
│  ├─ main/                Electron main process
│  ├─ preload/             Secure preload bridge
│  ├─ renderer/            React renderer app and static assets
│  └─ shared/              Shared TypeScript contracts
├─ tests/
│  ├─ e2e/                 Playwright desktop smoke tests
│  ├─ fixtures/            Small committed fixtures
│  └─ renderer/            Renderer test setup
└─ .fixtures-local/        Large local-only wallpaper corpora (ignored)

开源说明

  • 大体积的本地壁纸样本应放在 .fixtures-local/,不要提交到仓库
  • 构建输出、缓存、测试报告和本地 IDE 状态文件都已通过 .gitignore 排除
  • 项目当前可用,但仍处在持续打磨的阶段,欢迎围绕“媒体提取质量”和“导出体验”继续改进

法律与归属说明

本项目与 Wallpaper Engine、Steam 或其所属公司没有官方关联。
仓库中不包含 Wallpaper Engine 创意工坊内容本身;用户应只对自己合法拥有或有权处理的本地资源进行分析与导出。

License

This project is released under the Apache License 2.0, which permits commercial use.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors