diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d6ea45 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +# opendance-windows + +OpenDance Studio **阶段二**:Windows 客户端(Godot 4)。 + +> **状态:占位仓库**。按《DSH 开发文档:OpenDance Studio》的开发顺序 +> (Web 服务端 → Windows 客户端 → Android 辅助 App),本仓库将在阶段一 +> (`opendance-web`)契约冻结后开始开发。 + +## 计划技术栈 + +| 组件 | 选型 | +|---|---| +| 引擎 | Godot 4 (MIT) | +| VRM 加载 | godot-vrm (MIT) | +| 多格式导入 | Assimp (BSD-3-Clause) | +| 通信 | WebSocket + HttpClient | +| 评分 | DTW + 关节角度差异 | + +## 计划任务 + +`T-WIN-001` 骨架 → `T-WIN-002` REST 客户端 → `T-WIN-003` WebSocket 接收 → +`T-WIN-004` 239 字节帧反序列化 → `T-WIN-005` VRM 加载 → `T-WIN-006` 骨骼重定向 → +`T-WIN-007` DTW 评分 → `T-WIN-008` 游戏 UI → `T-WIN-009` 来源信息展示 → +`T-WIN-010` 关于页 → `T-WIN-011` Windows 打包脚本 + +## 依赖的契约(已冻结于 opendance-web,v0.1.0) + +- `contracts/websocket-keypoints.md` — **239 字节关键点帧**与文本控制消息(本端为接收方) +- `contracts/skeleton-topology.md` — MediaPipe 33 点拓扑、父节点表、9 个关节角特征 +- `contracts/rest-api.yaml` — 曲目/动作/模型 API +- `contracts/data-models.md` — 资源字段与 **VRM 优先**的默认模型选取规则(§4.1) +- `contracts/model-formats.md` — 模型与动作格式、关键点序列结构 +- `contracts/open-source-credits.md` — 关于页必须展示的开源声明(三端共用) + +契约地址:https://gitea.kasugano.cn/zijunchiang/opendance-web/src/branch/main/contracts + +**任何跨端契约变更必须先回到 `opendance-web` 修改 `contracts/` 并提升版本**, +再在本仓库创建适配任务。 + +## 关键约束 + +- 客户端消费的目录通过 `GET /api/catalog/export` 一次性拉取,仅含 `status = published` 的资源 +- 默认模型直接用服务端解析好的 `defaultModelId`,本端无需自行实现优先级 +- 不使用 SMPL 拓扑 +- 发布产物必须包含 `THIRD_PARTY.md` 与「关于」页开源声明 \ No newline at end of file