mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 01:57:00 +02:00
works for two joints now
This commit is contained in:
parent
f0c02bb49b
commit
e52f2ab7d6
2 changed files with 3 additions and 21 deletions
|
@ -252,30 +252,11 @@ void AnimSkeleton::buildSkeletonFromJoints(const std::vector<FBXJoint>& joints,
|
||||||
//QString parentIndex = getJointName(parentIndex);
|
//QString parentIndex = getJointName(parentIndex);
|
||||||
AnimPose localOffset(jointOffsets[i], glm::vec3());
|
AnimPose localOffset(jointOffsets[i], glm::vec3());
|
||||||
relDefaultPose = relDefaultPose * localOffset;
|
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 ((parentIndex >= 0) && jointOffsets.contains(parentIndex)) {
|
||||||
if (i == 62) {
|
|
||||||
qCDebug(animation) << "the neck translation is " << relDefaultPose.trans();
|
|
||||||
}
|
|
||||||
AnimPose localParentOffset(jointOffsets[parentIndex], glm::vec3());
|
AnimPose localParentOffset(jointOffsets[parentIndex], glm::vec3());
|
||||||
relDefaultPose = localParentOffset.inverse() * AnimPose(glm::quat(), relDefaultPose.trans()) * localParentOffset * AnimPose(relDefaultPose.rot(), 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);
|
_relativeDefaultPoses.push_back(relDefaultPose);
|
||||||
|
|
||||||
|
|
|
@ -2077,7 +2077,8 @@ void Rig::setJointRotationOffsets(const QMap<QString, glm::quat>& offsets) {
|
||||||
int neckId = 62;
|
int neckId = 62;
|
||||||
int spine2Id = 13;
|
int spine2Id = 13;
|
||||||
if (true){ //neckIndex != -1) {
|
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) {
|
if (true){ //spine2Index != -1) {
|
||||||
_jointRotationOffsets.insert(spine2Id, glm::quat(0.5f, 0.5f, 0.5f, -0.5f));
|
_jointRotationOffsets.insert(spine2Id, glm::quat(0.5f, 0.5f, 0.5f, -0.5f));
|
||||||
|
|
Loading…
Reference in a new issue