Hi, i''m having trouble limiting the rotation of joints in a skeletal animation system. If I just decompose the local joint matrix, I get the euler angles around the parent''s axis''. But rotation limits are given around the joint''s relaxed orientation (that is the initial pose). The final matrix of a joint is created as follows:
this->matrix = (this->relaxed * this->offset) * parent->matrix;
(this->offset is the matrix that is animated)
So basically what i want is the euler angles that this->offset rotates about the axis'' of this->relaxed. As I said, just decomposing this->offset gives me the angles around parent->matrix... Can anybody help me here?
Transform a joint by it''s offset from the original relaxed pose and then apply the parent matrix. Why remultiply this->relaxed ? Your mesh that is to be deformed is already in the relaxed position (geometrically).