完善桌宠内核基础设施

This commit is contained in:
2026-05-28 21:16:08 +08:00
parent 6ff904c2df
commit 2d831fbc2d
21 changed files with 1190 additions and 100 deletions
+94 -10
View File
@@ -102,13 +102,25 @@ shiroko/
└── error/
```
每个状态当前包含 4 帧 PNG
当前素材版本:`2.1.0-stable`
当前帧数:
```text
idle 30 帧
talk 20 帧
think 30 帧
sleep 30 帧
happy 20 帧
drag 30 帧
error 20 帧
```
需要注意:
```text
1. character.json 中 base.width/base.height 为 627x627,超过原开发文档建议的 512x512
2. 原型阶段可以接受,但后续需要观察内存、缩放缓存和低配设备表现
1. character.json 中 base.width/base.height 当前为 512x512
2. 当前实现会预加载当前角色包的全部状态帧,后续需要观察内存和低配设备表现
3. 如果项目公开发布或推送远程仓库,需要确认 shiroko 素材版权和再分发权限
4. 版权不明确前,不应把它作为正式开源发布素材承诺
```
@@ -504,16 +516,88 @@ shiroko/
---
## 13. 当前未决问题
## 13. 当前项目进度
截至当前工作区,项目已经完成以下内容:
```text
1. 阶段 0 工程基础:
已有 .gitignore、CMakeLists.txt、main.cpp、src/、docs/、resources/ 等基础结构
2. 阶段 1 最小桌宠窗口:
已实现透明无边框窗口、拖动、右键退出、置顶切换
3. 阶段 2A 角色包最小读取:
已有 CharacterPackage / CharacterPackageLoader
能读取 shiroko/character.json 并收集状态帧路径
4. 阶段 2B idle 帧动画:
已新增 AnimationClip / FrameAnimator
当前实现会把当前角色包状态帧加载为 QPixmap 缓存,避免每帧读硬盘
5. 阶段 3 状态机初版:
已新增 PetStateMachine
已支持 idle / drag / think / talk / happy / sleep / error 的基础请求、拖动优先和缺失状态回退 idle
6. 阶段 4 基础设施的一部分:
已新增 PetView,拆分显示职责
已新增 TrayController,支持托盘显示、隐藏、退出
已新增 ConfigManager,保存窗口位置和置顶状态
已新增 Logger,支持文件日志和基础轮转
```
当前实现与计划仍存在差异:
```text
1. shiroko 角色包仍位于项目根目录 shiroko/,尚未移动到 resources/characters/shiroko
2. 当前未实现 AI 接入、AI 配置界面和 ChatBubble
3. 当前未实现 SettingsDialog
4. 当前 ConfigManager 只保存窗口位置和置顶状态,尚未保存缩放、性能模式、角色选择
5. 当前 Logger 只接入启动、退出、配置和角色包加载失败等低频日志
6. 当前 FrameAnimator 采用当前角色包全部状态帧预加载,尚未做懒加载
7. 本轮架构调整后尚未执行构建、编译或运行验证
```
---
## 14. 下一步建议
短期建议:
```text
1. 在用户确认后做一次构建验证
2. 修复构建或静态检查发现的问题
3. 补最小 README.md,记录当前开发状态、构建方式、素材版权提示
4. 确认 LICENSE 是否采用 MIT
5. 在进入 AI 前,做一次桌宠内核稳定性检查:
- 启动显示
- idle 动画
- 状态切换
- 托盘隐藏 / 显示
- 配置保存 / 恢复
- 日志写入 / 轮转路径
```
中期建议:
```text
1. 补 SettingsDialog 的最小框架
2. 补 ChatBubble
3. 再接入 OpenAI Compatible 非流式 AI 对话
4. AI 接入后再做 think -> talk -> idle / error -> idle 状态联动
```
---
## 15. 当前未决问题
后续开始写代码前,需要逐项确认:
```text
1. 是否创建 .gitignore
2. 是否创建 MIT LICENSE
1. 是否创建 MIT LICENSE
2. 是否创建项目根 README.md
3. 是否把 shiroko 移动到 resources/characters/shiroko
4. 是否使用 shiroko/preview.png 作为阶段 1 单图
5. 是否立即创建最小 Qt Widgets 工程
6. 是否将 build/、.vs/、CMake 生成目录全部加入 .gitignore
7. shiroko 素材是否允许提交到远程仓库
4. 是否保持当前“预加载全部当前角色状态帧”的策略,还是改成按状态懒加载
5. shiroko 素材是否允许作为正式开源发布素材继续保留在仓库中
6. 是否在下一步执行构建验证
```