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

119 lines
3.3 KiB
Markdown

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