mirror of
https://github.com/overte-org/overte.git
synced 2025-08-04 03:03:35 +02:00
Merge pull request #15205 from amantley/rootTransBug
Fixed Bug For Old FBX Files That Have An Exported Pose Different From The Bind Pose
This commit is contained in:
commit
cee298acdf
1 changed files with 9 additions and 2 deletions
|
@ -443,6 +443,7 @@ HFMModel* FBXSerializer::extractHFMModel(const hifi::VariantHash& mapping, const
|
||||||
QString hifiGlobalNodeID;
|
QString hifiGlobalNodeID;
|
||||||
unsigned int meshIndex = 0;
|
unsigned int meshIndex = 0;
|
||||||
haveReportedUnhandledRotationOrder = false;
|
haveReportedUnhandledRotationOrder = false;
|
||||||
|
int fbxVersionNumber = -1;
|
||||||
foreach (const FBXNode& child, node.children) {
|
foreach (const FBXNode& child, node.children) {
|
||||||
|
|
||||||
if (child.name == "FBXHeaderExtension") {
|
if (child.name == "FBXHeaderExtension") {
|
||||||
|
@ -465,6 +466,8 @@ HFMModel* FBXSerializer::extractHFMModel(const hifi::VariantHash& mapping, const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (object.name == "FBXVersion") {
|
||||||
|
fbxVersionNumber = object.properties.at(0).toInt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (child.name == "GlobalSettings") {
|
} else if (child.name == "GlobalSettings") {
|
||||||
|
@ -1311,8 +1314,6 @@ HFMModel* FBXSerializer::extractHFMModel(const hifi::VariantHash& mapping, const
|
||||||
|
|
||||||
joint.bindTransformFoundInCluster = false;
|
joint.bindTransformFoundInCluster = false;
|
||||||
|
|
||||||
hfmModel.joints.append(joint);
|
|
||||||
|
|
||||||
QString rotationID = localRotations.value(modelID);
|
QString rotationID = localRotations.value(modelID);
|
||||||
AnimationCurve xRotCurve = animationCurves.value(xComponents.value(rotationID));
|
AnimationCurve xRotCurve = animationCurves.value(xComponents.value(rotationID));
|
||||||
AnimationCurve yRotCurve = animationCurves.value(yComponents.value(rotationID));
|
AnimationCurve yRotCurve = animationCurves.value(yComponents.value(rotationID));
|
||||||
|
@ -1335,7 +1336,13 @@ HFMModel* FBXSerializer::extractHFMModel(const hifi::VariantHash& mapping, const
|
||||||
xPosCurve.values.isEmpty() ? defaultPosValues.x : xPosCurve.values.at(i % xPosCurve.values.size()),
|
xPosCurve.values.isEmpty() ? defaultPosValues.x : xPosCurve.values.at(i % xPosCurve.values.size()),
|
||||||
yPosCurve.values.isEmpty() ? defaultPosValues.y : yPosCurve.values.at(i % yPosCurve.values.size()),
|
yPosCurve.values.isEmpty() ? defaultPosValues.y : yPosCurve.values.at(i % yPosCurve.values.size()),
|
||||||
zPosCurve.values.isEmpty() ? defaultPosValues.z : zPosCurve.values.at(i % zPosCurve.values.size()));
|
zPosCurve.values.isEmpty() ? defaultPosValues.z : zPosCurve.values.at(i % zPosCurve.values.size()));
|
||||||
|
if ((fbxVersionNumber < 7500) && (i == 0)) {
|
||||||
|
joint.translation = hfmModel.animationFrames[i].translations[jointIndex];
|
||||||
|
joint.rotation = hfmModel.animationFrames[i].rotations[jointIndex];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
hfmModel.joints.append(joint);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: shapeVertices are in joint-frame
|
// NOTE: shapeVertices are in joint-frame
|
||||||
|
|
Loading…
Reference in a new issue