Commit Graph
30 Commits
Author SHA1 Message Date
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
opendance 47e11af7d0 chore(contracts): 同步 0.5.0/0.7.0/0.4.0(场景管理路由与 Scene 模型) 2026-09-17 00:27:08 +08:00
opendance 47fc8e76b7 chore(contracts): 同步 data-models 0.6.0(Motion 增 thumbnailUrl) 2026-09-17 00:21:00 +08:00
opendance 9ff5f2b302 feat(model): humanoid 骨名映射对齐 MMD/中文(契约 skeleton-topology 0.2.0)
- CANDIDATES 由服务端表生成写入(与 model-inspector.ts 逐字一致,parity 测试断言)
- normalize() 保留 CJK/假名并把全角 ASCII 折半角,修复 MMD 骨名归一化成空串导致
  humanoid 覆盖率恒为 0/22 的问题
- contracts/ 同步至 0.5.0 / 0.2.0
2026-09-17 00:10:07 +08:00
opendance efb2484125 chore(contracts): 同步契约 0.5.0(模型一律转 VRM,Model 增 usable/unusableReason)
来自 opendance-web 的契约变更,按 DSH 文档 7.2「先改 Web 端 contracts/ 再同步另两端」:
- model-formats.md -> 0.5.0:主力格式 VRM + humanoid 门槛与回退
- data-models.md -> 0.5.0:Model 增 usable / unusableReason
- VERSION 同步
2026-09-17 00:05:02 +08:00
opendance 4913760a8b docs: 消除 Gitea 模棱两可 Unicode 告警(全角标点紧邻 ASCII 时改为半角)
依据 Gitea v1.27.3 modules/charset/escape_stream.go 的判定规则
(analyzeDetectResults:仅当左右相邻字符都不是非 ASCII 时才标记,
且 _common 表恒定生效),把说明文档中会被标记的全角标点
(,:;?!() 等)改为半角,并保证成对括号宽度一致。
中文语境中的全角标点(左右均为中文)保持原样,不动代码与契约语义。
2026-09-15 21:45:51 +08:00
zijunchiang 8c1d24865c docs: 全角 | / ? 改 ASCII(Gitea 混淆字符检测的剩余触发项) 2026-09-15 21:36:41 +08:00
zijunchiang 68a5ca0a87 docs: 其余易混淆字符(x/>=/<=/~/OK 取代 × − ≥ ≤ ≈ ✓) 2026-09-15 21:34:50 +08:00
zijunchiang 9f7b926a9a docs: 新增「初次部署(从零跑起来)」;去混淆字符与真实内网信息
- README.md / README.txt 新增初次部署章节:前置条件、获取代码、首次运行、
  配置服务端地址(API 3000 / 管理端 3001 分离)、与 Android 的 WebSocket 联通、
  打包导出、自检清单、常见问题
- 三库同源契约:':=' 写法修回、去掉真实 MariaDB 版本串
- 全文去除易被 Gitea 判为「模棱两可 Unicode」的字符(- - ... -> 取代 — – … § →)
- 真实内网地址与库名改占位符
2026-09-15 21:33:27 +08:00
zijunchiang baec8fce97 chore(contracts): 同步 rest-api(新增 POST /api/models/{id}/reanalyze) 2026-09-15 21:18:21 +08:00
zijunchiang 5a13167739 chore(contracts): 同步契约到 0.4.0/0.3.0(GLB/VRM 主力格式、模型审核与骨骼分析) 2026-09-15 20:37:58 +08:00
zijunchiang c22790f3fe chore(contracts): 同步契约(默认模型改用压缩包 sha256 匹配,补 sourceSha256 与确定性说明) 2026-09-15 19:36:42 +08:00
zijunchiang f4cf2c70de chore(contracts): 同步契约到 rest-api/data-models/model-formats 0.3.0、database 0.2.0(模型压缩包转换与默认模型规则) 2026-09-15 13:55:59 +08:00
zijunchiang 8f303c0595 chore(contracts): 同步契约到 v0.2.0(rest-api / data-models / model-formats)
Web 端需求变更带来的契约字段级改动:
- MotionFormat 枚举新增 vmd(MikuMikuDance 动作数据)
- rest-api 服务地址说明改为双端口语义(软件 API 端口给客户端 / 管理端端口给浏览器)
- model-formats 新增 §2.3 VMD 解析约定(标准 MMD 骨架、腿部 IK/FK 判定、手性转换)

三库契约文件保持逐字节一致。
2026-09-15 08:45:06 +08:00
zijunchiang 3ba8103723 docs(contracts): 服务地址描述由 Docker 部署改为 Linux 业务服务部署(Web 端已去 Docker) 2026-09-15 01:27:50 +08:00
zijunchiang aef5f88083 docs(win): 用实现说明替换阶段二占位 README v0.1.0 2026-09-14 20:05:40 +08:00
zijunchiang c8dd6b2d4c chore(win): 合并占位说明与阶段二实现 2026-09-14 20:05:17 +08:00
zijunchiang fe9608eba7 chore(win): 提交 Godot 生成的 .uid 与资源 .import 元数据 2026-09-14 20:05:04 +08:00
zijunchiang a83e4f6a1f docs(win): 任务说明、DSH 约束与交付文档 2026-09-14 20:04:54 +08:00
zijunchiang 315cf79708 feat(win): T-WIN-011 Windows 打包与一键验证脚本 2026-09-14 20:04:54 +08:00
zijunchiang 13d6dc915d feat(win): T-WIN-008/009/010 主界面/游戏/结算/来源展示/关于页 2026-09-14 20:04:54 +08:00
zijunchiang 7776f68f0b feat(win): T-WIN-007 特征提取 + 流式 DTW 评分引擎 2026-09-14 20:04:54 +08:00
zijunchiang c092ed1628 feat(win): T-WIN-006 关键点 → VRM 骨骼重定向 2026-09-14 20:04:54 +08:00
zijunchiang 0ae1c101a7 feat(win): T-WIN-005 VRM 加载 + humanoid 骨骼名映射 2026-09-14 20:04:54 +08:00
zijunchiang 2e539c7fa6 feat(win): T-WIN-003 WebSocket 关键点接收服务 2026-09-14 20:04:54 +08:00
zijunchiang 787f1c0cd8 feat(win): T-WIN-002 REST 客户端与契约类型 2026-09-14 20:04:54 +08:00
zijunchiang ad62929f59 feat(win): T-WIN-004 239 字节关键点帧编解码 + 无头测试框架 2026-09-14 20:04:54 +08:00
zijunchiang 85a2568266 feat(win): T-WIN-001 Godot 工程骨架 + 4 个 autoload 2026-09-14 20:04:54 +08:00
zijunchiang 0b7083d026 chore(contracts): 引入 opendance-web v0.1.0 契约只读快照 2026-09-14 20:04:53 +08:00
zijunchiang 20f27271a8 docs: 初始化占位说明与契约依赖 2026-09-14 19:02:38 +08:00