Skip to content

Commit

Permalink
Fixed repose ordering
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcusLongmuir committed Jan 21, 2024
1 parent 11f0b63 commit 2da4cd3
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,23 @@ export const reposeBonesCorrectionStep: Step = {
group.traverse((child) => {
const asSkinnedMesh = child as THREE.SkinnedMesh;
if (asSkinnedMesh.isSkinnedMesh) {
console.log("reposing", asSkinnedMesh.name);
const inverses = [...asSkinnedMesh.skeleton.boneInverses];
asSkinnedMesh.skeleton.pose();
asSkinnedMesh.skeleton.calculateInverses();
const newInverses = asSkinnedMesh.skeleton.boneInverses;
let allInversesEqual = true;
for (let i = 0; i < inverses.length; i++) {
if (!inverses[i].equals(newInverses[i])) {
allInversesEqual = false;
break;
}
}
if (!allInversesEqual) {
logs.push({
level: "info",
message: `Reposed skeleton for ${asSkinnedMesh.name}`,
});
}
}
});

Expand All @@ -22,7 +36,7 @@ export const reposeBonesCorrectionStep: Step = {
didApply: false,
topLevelMessage: {
level: "info",
message: "No geometries with duplicate material ids found.",
message: "No skeletons were reposed.",
},
};
}
Expand All @@ -31,7 +45,7 @@ export const reposeBonesCorrectionStep: Step = {
didApply: true,
topLevelMessage: {
level: "info",
message: "Merged geometry groups",
message: "Skeleton(s) were reposed",
},
logs,
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ export const rotatePelvisCorrectionStep: Step = {
pelvisBone.rotation.x += 0;
pelvisBone.rotation.y -= HalfPi;
pelvisBone.rotation.z += HalfPi;
} else if (isNear(pelvisX, 0) && isNear(pelvisY, -HalfPi) && isNear(pelvisZ, 0)) {
pelvisBone.rotation.x += 0;
pelvisBone.rotation.y += HalfPi;
pelvisBone.rotation.z += HalfPi;
const tempPosY = pelvisBone.position.y;
pelvisBone.position.y = pelvisBone.position.z;
pelvisBone.position.z = -tempPosY;
} else {
reposeSkinnedMeshes(group);
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ export const correctionSteps = [
levelOfDetailDedupingCorrectionStep,
mergeGeometryGroupsCorrectionStep,
boneDedupingCorrectionStep,
reposeBonesCorrectionStep,
rotateWholeGroupCorrectionStep,
zUpMeshCorrectionStep,
zUpBonesCorrectionStep,
fixMeshScaleCorrectionStep,
reposeBonesCorrectionStep,
fixBonesScaleCorrectionStep,
connectRootCorrectionStep,
rotateRootCorrectionStep,
Expand Down

0 comments on commit 2da4cd3

Please sign in to comment.