根因:normalizeBoneName() 只保留 a-z0-9,**中日文字符被整个丢掉**: '上半身'/'左ひじ'/'首' 归一化后都是空串,MMD 模型的骨名必然失配, humanoid 覆盖率恒为 0/22 -> 不可驱动 -> 只能回退交付 GLB 并标记不可用。 修复: 1. 归一化保留 CJK/平假名/片假名/长音符/々,并把全角 ASCII(足IK)折成半角; 2. 候选表补齐四类命名(22 根 x 8-13 个候选):VRoid / Mixamo / MMD 标准骨架(下半身/上半身/上半身2/首/頭/左肩/左腕/左ひじ/左手首/ 左足/左ひざ/左足首/左つま先)/ 常见中文名(臀部/头/脖子/左大臂/左大腿…); 精确匹配保证「左足IK」不会抢占「左足」; 3. Windows 客户端 humanoid_map.gd 的 CANDIDATES 由服务端表**生成写入**, normalize() 同步改造,parity 测试断言键/候选顺序完全一致; 4. 契约 skeleton-topology -> 0.2.0:新增 §6「内部动作标准与模型骨骼重绑定」 (三层标准、22/16 根骨、归一化与匹配规则、实测记录); 5. 新增 4 项测试;规模 17 文件 / 229 项。 实测:奥黛塔 PMX 0/22 -> 21/22、初音未来 PMX 0/22 -> 19/22,均 drivable=true 且产出 VRM。 版本 0.4.0。
30 lines
725 B
JSON
30 lines
725 B
JSON
{
|
||
"name": "opendance-admin",
|
||
"private": true,
|
||
"version": "0.4.0",
|
||
"type": "module",
|
||
"description": "OpenDance Studio 管理端(React + TypeScript + Vite)",
|
||
"scripts": {
|
||
"dev": "vite",
|
||
"build": "tsc -b && vite build",
|
||
"preview": "vite preview",
|
||
"typecheck": "tsc --noEmit"
|
||
},
|
||
"dependencies": {
|
||
"@pixiv/three-vrm": "^3.5.5",
|
||
"react": "^18.3.1",
|
||
"react-dom": "^18.3.1",
|
||
"react-router-dom": "^6.30.6",
|
||
"three": "^0.186.0"
|
||
},
|
||
"devDependencies": {
|
||
"@types/node": "^24.10.1",
|
||
"@types/react": "^18.3.31",
|
||
"@types/react-dom": "^18.3.7",
|
||
"@types/three": "^0.186.0",
|
||
"@vitejs/plugin-react": "^6.1.1",
|
||
"typescript": "^5.9.3",
|
||
"vite": "^8.3.0"
|
||
}
|
||
}
|