fix: correct arm rotation axes and reset model orientation to default
Browse files
ui/vrm.py
CHANGED
|
@@ -230,10 +230,10 @@ def avatar_html(vrm_urls: str | list[str]) -> str:
|
|
| 230 |
let speechStartedAt = 0;
|
| 231 |
let speechDuration = 0;
|
| 232 |
const REST = window._REST = {{
|
| 233 |
-
leftUpperArm: {{ x: 0.02, y: 0.0, z:
|
| 234 |
-
rightUpperArm: {{ x: 0.02, y: 0.0, z:
|
| 235 |
-
leftLowerArm: {{ x: -0.12, y: 0.0, z:
|
| 236 |
-
rightLowerArm: {{ x: -0.12, y: 0.0, z:
|
| 237 |
leftHand: {{ x: 0.0, y: 0.08, z: 0.0 }},
|
| 238 |
rightHand: {{ x: 0.0, y:-0.08, z: 0.0 }},
|
| 239 |
}};
|
|
@@ -690,11 +690,15 @@ def avatar_html(vrm_urls: str | list[str]) -> str:
|
|
| 690 |
window._aikoVrm = vrm;
|
| 691 |
VRMUtils.removeUnnecessaryVertices(vrm.scene);
|
| 692 |
vrm.scene.traverse(o => {{ if (o.frustumCulled) o.frustumCulled = false; }});
|
| 693 |
-
vrm.scene.rotation.y =
|
| 694 |
-
const forward = new THREE.Vector3(0, 0, 1);
|
| 695 |
-
forward.applyQuaternion(vrm.scene.quaternion);
|
| 696 |
-
console.log('[aiko-vrm] model forward vector:', forward);
|
| 697 |
scene.add(vrm.scene);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 698 |
setExpression('relaxed', 0.25);
|
| 699 |
console.log('Available expressions:', expressionNames());
|
| 700 |
document.getElementById('loader').classList.add('fade');
|
|
|
|
| 230 |
let speechStartedAt = 0;
|
| 231 |
let speechDuration = 0;
|
| 232 |
const REST = window._REST = {{
|
| 233 |
+
leftUpperArm: {{ x: 0.02, y: 0.0, z: -1.28 }},
|
| 234 |
+
rightUpperArm: {{ x: 0.02, y: 0.0, z: 1.28 }},
|
| 235 |
+
leftLowerArm: {{ x: -0.12, y: 0.0, z: -0.08 }},
|
| 236 |
+
rightLowerArm: {{ x: -0.12, y: 0.0, z: 0.08 }},
|
| 237 |
leftHand: {{ x: 0.0, y: 0.08, z: 0.0 }},
|
| 238 |
rightHand: {{ x: 0.0, y:-0.08, z: 0.0 }},
|
| 239 |
}};
|
|
|
|
| 690 |
window._aikoVrm = vrm;
|
| 691 |
VRMUtils.removeUnnecessaryVertices(vrm.scene);
|
| 692 |
vrm.scene.traverse(o => {{ if (o.frustumCulled) o.frustumCulled = false; }});
|
| 693 |
+
vrm.scene.rotation.y = 0;
|
|
|
|
|
|
|
|
|
|
| 694 |
scene.add(vrm.scene);
|
| 695 |
+
// Add this after scene.add:
|
| 696 |
+
setTimeout(() => {{
|
| 697 |
+
const lUA = vrm.humanoid?.getRawBoneNode('leftUpperArm');
|
| 698 |
+
const rUA = vrm.humanoid?.getRawBoneNode('rightUpperArm');
|
| 699 |
+
console.log('[aiko-vrm] leftUpperArm rotation:', lUA?.rotation);
|
| 700 |
+
console.log('[aiko-vrm] rightUpperArm rotation:', rUA?.rotation);
|
| 701 |
+
}}, 500);
|
| 702 |
setExpression('relaxed', 0.25);
|
| 703 |
console.log('Available expressions:', expressionNames());
|
| 704 |
document.getElementById('loader').classList.add('fade');
|