Skip to content

Repository files navigation

PNA Viewer

WillPlus/AdvHD 引擎 .pna 立绘文件交互式查看器。

基于 WPF + HandyControls 开发,支持实时图层合成、差分切换、语义化命名和批量导出。

C# WPF HandyControls

功能特性

  • 🧩 智能分组 — 根据文件中的 Type=1/2 标记自动划分部件组,树形结构展示
  • 🎚️ 差分切换 — 在每个分组内自由切换不同的图层
  • 🔒 分组锁定 — 锁定分组后固定当前图层,批量导出时不参与排列组合
  • ✏️ 双击重命名 — 分组和图层支持语义化命名(如“身体”、“微笑”),一键恢复默认
  • 📦 批量导出 — 基于锁定状态自动生成笛卡尔积组合,支持预览、暂停/取消、进度反馈
  • 📁 语义化文件名 — 导出格式 {文件名}_{分组名}[{图层名]}_{分组名}[{图层名}].png
  • ✂️ 裁剪画布 — 自动裁剪到立绘实际占用区域,去掉多余空白
  • 🎨 自定义背景 — 设置窗口自由调整查看器背景颜色
  • ⌨️ 快捷键Ctrl+O 打开 / Ctrl+S 导出 / Ctrl+, 设置 / Ctrl+B 批量导出 / Ctrl+H 关于
  • 🔍 图像浏览 — 集成 HandyControls ImageViewer,支持缩放、平移、拖拽
  • 🖱️ 拖拽打开 — 直接把 .pna 文件拖进窗口即可加载
  • 📂 文件关联 — 双击 .pna 文件直接启动查看器并自动加载,也可拖拽至 .exe 上打开

截图预览

主界面与差分切换

主界面

重命名

重命名

批量导出

批量导出

设置

设置

关于页面

关于页面

快捷键

快捷键 功能
Ctrl+O 打开 PNA 文件
Ctrl+S 导出当前合成图
Ctrl+, 打开设置窗口
Ctrl+B 打开批量导出窗口
Ctrl+H 打开关于窗口

相关文档

快速开始

环境要求

  • .NET 10 SDK 或更高
  • Visual Studio 2026 / Rider / VS Code(推荐)

构建与运行

克隆仓库并进入目录:

git clone git@github.com:EienTokei/PNAViewer.git
cd PNAViewer

还原依赖并编译:

dotnet restore
dotnet build
dotnet run

或直接在 Visual Studio 中打开解决方案,按 F5 运行。

使用说明

  1. 点击 “📂 打开” 按钮或拖拽 .pna 文件到窗口
  2. 左侧 TreeView 显示所有部件组,单击切换当前编辑的组
  3. 下方 图层列表 显示当前组内的所有差分,单击切换选中图层
  4. 点击分组右侧的 🔓/🔒 按钮锁定/解锁分组(锁定后固定当前图层)
  5. 双击 分组或图层可重命名,右键或点击“恢复默认”回退
  6. 右侧画布实时合成显示所有图层叠加效果
  7. 裁剪画布 开关控制是否去除空白区域
  8. 📦 批量导出 自动生成所有组合并导出为 PNG

依赖项

通过 NuGet 安装:

dotnet add package HandyControls

验证情况

華は短し、踊れよ乙女

  • ✅ 全部 45 个 .pna 立绘文件(L/M/S/X 四档分辨率)均正常解析与合成。
  • ⚠️ 标题文件 SYS_Title.pna — 解析合成正常,但笛卡儿积的组合逻辑不太适合 UI 文件,若有反馈则考虑适配

宿りし乙女の誓いと魔法

  • ✅ 随机抽取的 ST03A_X.pnaST04B_X.pna 兼容。

贡献

欢迎提交 Issue 或 Pull Request。如果你发现了新的 .pna 变种,也欢迎提供样本以便进一步完善解析器。

PNA Viewer 目前由我一个人在维护,但它的方向不应该只由我一个人决定。

如果你在使用过程中遇到了任何问题、觉得某个功能用着不顺手,或者有新的想法想加进来,请一定提个 Issue 或建议。对我来说,每一条反馈都是继续优化这个项目的动力。

👉 提交 Bug 或建议

你的声音会被听到,你的需求会直接决定接下来版本里会出现什么功能。期待你的留言!

Roadmap

以下是我个人计划中、但暂不打算落地的功能方向:

  • 持久化重命名配置
  • Ctrl+C 复制到剪切板
  • 自定义图片背景
  • ......

💡 如果你对其中某个功能特别感兴趣,欢迎提 Issue 告诉我 —— 你的反馈会直接影响优先级。

许可证

GNU General Public License v3.0

联系

如有问题或建议,欢迎在 GitHub 上提交 Issue。


Happy viewing! 🎉

About

Interactive PNA viewer for WillPlus/AdvHD visual novels. Supports layered compositing, group locking & batch export | WillPlus/AdvHD 引擎 PNA 立绘查看器,支持图层合成、分组锁定与批量导出

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages