Files
zijunchiang 5581cbe05d feat(scene): 场景选择与物理落地 + 整包发布(T-WIN-012/013/014)
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 全部通过
2026-09-17 00:45:23 +08:00

3.3 KiB

第三方开源项目声明

OpenDance Studio Windows 客户端 v0.2.0

本软件使用了以下开源项目,特此声明。完整锚点见 contracts/open-source-credits.md (三端共用,任一端新增依赖须回到 opendance-web 更新该表)。 客户端「关于」页面展示同一份声明(见 src/ui/credits.gd)。

1. MediaPipe

2. Three.js

3. @pixiv/three-vrm

4. Assimp

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

8. TypeORM

9. OkHttp

10. bvh


补充声明(实际引入的依赖)

11. React

12. Vite

13. CameraX

14. Jetpack Compose

15. mysql2


许可合规说明

  1. 本客户端自身代码以 MIT 许可发布。
  2. 运行时依赖仅为 Godot Engine(MIT);其余条目为同项目其他组件或服务端依赖, 按契约要求一并声明。
  3. 本客户端未使用 SMPL 模型及其衍生拓扑,统一采用 MediaPipe 33 点拓扑, 以规避 SMPL 的非商用许可限制。
  4. 本客户端只接收 33 个关键点坐标,不接收、不存储任何视频画面。
  5. 本客户端下载并缓存的 VRM 模型来自部署方自建的服务端,其来源与许可由 Web 服务端的来源五元组字段管理并在界面展示。