Skip to content

Commit d2d1e0b

Browse files
author
Yutaka Obuchi
authored
Merge pull request #367 from pixiv/fix-springbone-corrider
Fix some z-axis that was inverted
2 parents 2e73a4d + 00ea2d0 commit d2d1e0b

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/vrm/firstperson/VRMFirstPersonImporter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class VRMFirstPersonImporter {
4343
? new THREE.Vector3(
4444
schemaFirstPerson.firstPersonBoneOffset.x,
4545
schemaFirstPerson.firstPersonBoneOffset.y,
46-
schemaFirstPerson.firstPersonBoneOffset.z,
46+
-schemaFirstPerson.firstPersonBoneOffset.z!, // VRM 0.0 uses left-handed y-up
4747
)
4848
: new THREE.Vector3(0.0, 0.06, 0.0); // fallback, taken from UniVRM implementation
4949

src/vrm/springbone/VRMSpringBoneImporter.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,11 @@ export class VRMSpringBoneImporter {
7474
}
7575

7676
const stiffiness = vrmBoneGroup.stiffiness;
77-
const gravityDir = _v3A.set(vrmBoneGroup.gravityDir.x, vrmBoneGroup.gravityDir.y, vrmBoneGroup.gravityDir.z);
77+
const gravityDir = new THREE.Vector3(
78+
vrmBoneGroup.gravityDir.x,
79+
vrmBoneGroup.gravityDir.y,
80+
-vrmBoneGroup.gravityDir.z, // VRM 0.0 uses left-handed y-up
81+
);
7882
const gravityPower = vrmBoneGroup.gravityPower;
7983
const dragForce = vrmBoneGroup.dragForce;
8084
const hitRadius = vrmBoneGroup.hitRadius;
@@ -149,7 +153,11 @@ export class VRMSpringBoneImporter {
149153
return;
150154
}
151155

152-
const offset = _v3A.set(collider.offset.x, collider.offset.y, collider.offset.z);
156+
const offset = _v3A.set(
157+
collider.offset.x,
158+
collider.offset.y,
159+
-collider.offset.z, // VRM 0.0 uses left-handed y-up
160+
);
153161
const colliderMesh = this._createColliderMesh(collider.radius, offset);
154162

155163
bone.add(colliderMesh);

0 commit comments

Comments
 (0)