• v0.4.0 9eae6f3e43

    zijunchiang released this 2026-09-17 00:10:07 +08:00 | 20 commits to main since this release

    OpenDance Studio -- Web 管理服务端 v0.4.0

    骨骼重绑定:让「一律转 VRM」真正可用(契约 skeleton-topology -> 0.2.0)。
    对应《DSH 开发文档 v1.6》4.10(T-WEB-013)。

    根因:MMD 模型 humanoid 恒为 0/22

    normalizeBoneName() 原先只保留 a-z0-9,中文/日文字符被整个丢掉:
    上半身 / 左ひじ / 首 归一化后都是空串,MMD 骨名必然失配 ->
    humanoidMapped=0/22 -> 不可驱动 -> 只能回退交付 GLB 并标记 usable=false。

    本次改动

    1. 归一化修复:保留 CJK / 平假名 / 片假名 / 长音符 / 々,并把全角 ASCII 折成半角
      (MMD 常写 足IK / つま先IK);精确匹配保证 左足IK 不会抢占 左足。
    2. 候选表补齐四类命名(22 根 × 8-13 个候选):VRoid、Mixamo、MMD 标准骨架
      (下半身/上半身/上半身2/首/頭/左肩/左腕/左ひじ/左手首/左足/左ひざ/左足首/左つま先)、
      常见中文名(臀部/头/脖子/左大臂/左小臂/左大腿/左脚 …)。
    3. 服务端与 Windows 客户端逐字一致:humanoid_map.gd 的 CANDIDATES 由服务端表生成写入,
      normalize() 同步改造;parity 测试断言键顺序与候选顺序完全一致。
    4. 契约 skeleton-topology -> 0.2.0:新增 §6「内部动作标准与模型骨骼重绑定」
      (三层标准:33 点关键点 / MMD 标准骨架 / 22 根 humanoid;22 与 16 根骨清单;
      归一化与匹配规则;实测记录)。
    5. 测试规模 17 文件 / 229 项。

    实测(重绑定后)

    样本 之前 现在
    【奥黛塔】_by_原神.zip(PMX 日文骨名) 0/22,不可驱动,回退 GLB、usable=false 21/22,drivable=true,交付 VRM
    模型_初音未来…zip(PMX) 0/22,不可驱动 19/22,drivable=true,交付 VRM

    未命中的 1-3 根均为非必需骨(upperChest / leftToes 等),不影响驱动与评分。

    升级后请重新导入模型

    材质/骨骼重绑定都在转换时生效:把 MMD 模型(.zip / .pmx)重新上传即可,
    此前标记「不可用」的模型重新导入后会变成可用并进入客户端目录;
    reanalyze-models.mjs 只刷新分析与缩略图,不会重转。

    校验

    opendance-web-v0.4.0.tar.gz sha256: 2c913c39a5feda918bdf144ffac773284d7bdb768a2da50877647ae63ceb40bf

    Downloads