# 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` 与「关于」页开源声明