T-WIN-013:API 升级与场景选择 - 契约快照同步到 rest-api 0.5.0 / data-models 0.7.0 / database 0.4.0 - catalog_types.gd 新增 SceneConfig(物理/环境/出生点/相机)与 Scene; CatalogBundle 增加 scenes[];from_dict 按契约 7.1 再收敛一次 (缺项默认、越界夹紧、非法枚举回退),与服务端 normalizeSceneConfig 同规则 - 新增 src/scene/scene_runtime.gd:GLB 载入 -> 碰撞体(mesh 三角网 / auto 命名约定 *_col、*_colonly / none 不兜底)-> 场景级重力(Area3D SPACE_OVERRIDE_REPLACE,不改全局 ProjectSettings)-> 风(每物理帧 apply_central_force,阵风正弦叠加,支持 local 坐标系)-> 环境光与雾 -> 出生点与相机(follow/fixed/orbit);无碰撞体时兜底地面 - CatalogStore 增加 scenes/default_scene/find_scene/ensure_scene_cached/ fetch_thumbnail(场景缓存带 sha256 指纹,避免换包后仍用旧 GLB) - 主界面改为 2x2 四个选择器(曲目/动作/模型/场景)+ 场景参数面板 (缩略图 + 重力/摩擦/弹性/碰撞体/风摘要) - 游戏界面载入场景并落地物理,角色落在出生点;场景缺失/下载失败/ 解析失败一律回退内置空场景并提示,不阻塞开始跟练 T-WIN-012:「关于」清单展示当前版本号 - 版本唯一来源为 project.godot 的 application/config/version(v0.2.0) - about_manifest() 输出版本/引擎/契约/协议/地址/隐私清单; 无头测试无 autoload,读取 AppConfig 走 get_node_or_null 容错 - Credits 的单个 CONTRACT_VERSION 常量改为 CONTRACT_VERSIONS 字典 (六项契约各自独立递增),并双向核对 contracts/VERSION T-WIN-014:发布必须是单个完整包 - build/package-release.sh 重写:只产出单个 zip + SHA256SUMS, 清理历史 .partN,超限时告警而非回退分卷;新增源产物与解压后完整性 自检(PE 头 MZ / pck 魔数 GDPC / exe+pck 同目录同名)与体积-上限对比 - deploy/proxy 相关的 Gitea IIS 256MB 上限说明见 opendance-web 测试:tests/test_scene_config.gd(12 例)+ tests/test_about.gd(4 例); 无头测试 687 通过 / 0 失败(10 个套件),verify.sh 全部通过
3.3 KiB
3.3 KiB
第三方开源项目声明
OpenDance Studio Windows 客户端 v0.2.0
本软件使用了以下开源项目,特此声明。完整锚点见 contracts/open-source-credits.md
(三端共用,任一端新增依赖须回到 opendance-web 更新该表)。
客户端「关于」页面展示同一份声明(见 src/ui/credits.gd)。
1. MediaPipe
- 版权:Copyright 2023 Google LLC
- 许可证:Apache License 2.0
- 源链接:https://github.com/google-ai-edge/mediapipe
- 用途:33 点骨骼拓扑定义(契约来源,本端不包含其代码)
2. Three.js
- 许可证:MIT
- 源链接:https://github.com/mrdoob/three.js
- 用途:Web 管理端 3D 预览
3. @pixiv/three-vrm
- 许可证:MIT
- 源链接:https://github.com/pixiv/three-vrm
- 用途:Web 管理端 VRM 加载
4. Assimp
- 许可证:BSD-3-Clause
- 源链接:https://github.com/assimp/assimp
- 用途:FBX/glTF 动作转换(可选外部依赖,在服务端侧使用)
5. Godot Engine
- 版权:Copyright Godot Engine contributors
- 许可证:MIT
- 源链接:https://github.com/godotengine/godot
- 用途:本客户端的运行引擎,包括内置 glTF/VRM 导入器与 WebSocket 实现
6. godot-vrm
- 许可证:MIT
- 源链接:https://github.com/V-Sekai/godot-vrm
- 用途:VRM humanoid 扩展参考实现。 本客户端未使用其二进制(该仓库不发布预编译产物),改为内置 glTF 导入器 + 自实现的骨骼名映射;此处按契约表保留声明。
7. NestJS
- 许可证:MIT
- 源链接:https://github.com/nestjs/nest
- 用途:Web 管理服务端
8. TypeORM
- 许可证:MIT
- 源链接:https://github.com/typeorm/typeorm
- 用途:Web 管理服务端 ORM
9. OkHttp
- 许可证:Apache License 2.0
- 源链接:https://github.com/square/okhttp
- 用途:Android 辅助 App 通信
10. bvh
- 许可证:MIT
- 源链接:https://github.com/aimoonchen/bvh
- 用途:BVH 解析参考实现
补充声明(实际引入的依赖)
11. React
- 许可证:MIT
- 源链接:https://github.com/facebook/react
- 用途:Web 管理端界面
12. Vite
- 许可证:MIT
- 源链接:https://github.com/vitejs/vite
- 用途:Web 管理端构建
13. CameraX
- 许可证:Apache License 2.0
- 源链接:https://developer.android.com/jetpack/androidx/releases/camera
- 用途:Android 相机采集
14. Jetpack Compose
- 许可证:Apache License 2.0
- 源链接:https://developer.android.com/jetpack/compose
- 用途:Android 界面
15. mysql2
- 许可证:MIT
- 源链接:https://github.com/sidorares/node-mysql2
- 用途:Web 管理服务端数据库驱动
许可合规说明
- 本客户端自身代码以 MIT 许可发布。
- 运行时依赖仅为 Godot Engine(MIT);其余条目为同项目其他组件或服务端依赖, 按契约要求一并声明。
- 本客户端未使用 SMPL 模型及其衍生拓扑,统一采用 MediaPipe 33 点拓扑, 以规避 SMPL 的非商用许可限制。
- 本客户端只接收 33 个关键点坐标,不接收、不存储任何视频画面。
- 本客户端下载并缓存的 VRM 模型来自部署方自建的服务端,其来源与许可由 Web 服务端的来源五元组字段管理并在界面展示。