Question by
bouviervj · Jul 28, 2018 at 05:26 AM ·
quaternionsassignassign-variable
Quaternion modifed after assignment
I have an issue with a quaternion assigment to a bone transform:
Quaternion armup_rotation = Rotate(p1, p2) * armup_orientation[hand.type];
// Don't know what's happening here
animator.GetBoneTransform(armup_instances[hand.type]).rotation = armup_rotation;
Quaternion relRot = Quaternion.Inverse(armup_orientation[hand.type]) * arm_orientation[hand.type];
// when armup_rotation is reused it has been modified by the assignment
Vector3 p3 = arm_sizes[hand.type] * (armup_rotation * relRot * new Vector3(0.0f, 1.0f, 0.0f) );
This code works:
Quaternion armup_rotation = Rotate(p1, p2) * armup_orientation[hand.type];
// Don't know what's happening
animator.GetBoneTransform(armup_instances[hand.type]).rotation = armup_rotation;
// Reassign armup_rotation
armup_rotation = animator.GetBoneTransform(armup_instances[hand.type]).rotation;
Quaternion relRot = Quaternion.Inverse(armup_orientation[hand.type]) * arm_orientation[hand.type];
Vector3 p3 = arm_sizes[hand.type] * (armup_rotation * relRot * new Vector3(0.0f, 1.0f, 0.0f) );
I tested different combination to get to that conclusion, any one did experienced such strange issues ? Many thanks, Julien
Comment
Solved the issue, Rotate function, that computes a quaternion based on 2 vectors wasn't normalizing my quaternion !
Your answer
Follow this Question
Related Questions
Variable not assigned but is. 0 Answers
How to assign a variable(camera) to a prefab at start? (not an object) 1 Answer
Rotating transform more than 180 degrees 2 Answers
Giving Vertices a Rotation 1 Answer
Quaternion Angle 2 Answers