works for two joints now

This commit is contained in:
amantley 2018-11-06 14:14:57 -08:00
parent f0c02bb49b
commit e52f2ab7d6
2 changed files with 3 additions and 21 deletions

View file

@ -252,30 +252,11 @@ void AnimSkeleton::buildSkeletonFromJoints(const std::vector<FBXJoint>& joints,
//QString parentIndex = getJointName(parentIndex);
AnimPose localOffset(jointOffsets[i], glm::vec3());
relDefaultPose = relDefaultPose * localOffset;
if ((parentIndex >= 0) && jointOffsets.contains(parentIndex)) {
// AnimPose localParentOffset(jointOffsets[parentIndex], glm::vec3());
// relDefaultPose = localParentOffset.inverse() * AnimPose(glm::quat(), relDefaultPose.trans()) * localParentOffset * AnimPose(relDefaultPose.rot(), glm::vec3());
}
}
if ((parentIndex == 13) && jointOffsets.contains(13)) {
if (i == 62) {
qCDebug(animation) << "the neck translation is " << relDefaultPose.trans();
}
if ((parentIndex >= 0) && jointOffsets.contains(parentIndex)) {
AnimPose localParentOffset(jointOffsets[parentIndex], glm::vec3());
relDefaultPose = localParentOffset.inverse() * AnimPose(glm::quat(), relDefaultPose.trans()) * localParentOffset * AnimPose(relDefaultPose.rot(), glm::vec3());
if (i == 62) {
qCDebug(animation) << "the neck translation redo is " << relDefaultPose.trans();
}
}
if ((parentIndex == 62) && jointOffsets.contains(62)) {
//AnimPose localOffset(glm::quat(0.7071f, 0.0f, 0.7071f, 0.0f), glm::vec3());
//relDefaultPose = relDefaultPose * localOffset;
AnimPose localParentOffset(glm::quat(0.7071f, 0.0f, -0.7071f, 0.0f), glm::vec3());
relDefaultPose = localParentOffset.inverse() * AnimPose(glm::quat(), relDefaultPose.trans()) * localParentOffset * AnimPose(relDefaultPose.rot(), glm::vec3());
qCDebug(animation) << "the head translation is " << relDefaultPose.trans();
}
_relativeDefaultPoses.push_back(relDefaultPose);

View file

@ -2077,7 +2077,8 @@ void Rig::setJointRotationOffsets(const QMap<QString, glm::quat>& offsets) {
int neckId = 62;
int spine2Id = 13;
if (true){ //neckIndex != -1) {
_jointRotationOffsets.insert(neckId, glm::quat(0.7071f, 0.0f, -0.7071f, 0.0f));
_jointRotationOffsets.insert(neckId, glm::quat(0.0f, 0.7071f, 0.7071f, 0.0f) * glm::quat(0.5f, 0.5f, 0.5f, -0.5f) ); //glm::quat(0.7071f, 0.0f, -0.7071f, 0.0f)
qCDebug(animation) << "multiplied quats are " << glm::quat(0.0f, 0.7071f, 0.7071f, 0.0f) * glm::quat(0.5f, 0.5f, 0.5f, -0.5f);
}
if (true){ //spine2Index != -1) {
_jointRotationOffsets.insert(spine2Id, glm::quat(0.5f, 0.5f, 0.5f, -0.5f));