Weapon idle animations do not work properly
Just move around with weapon drawn in the 1st-person view. Occasionally you can notice abrupt transtions when player stops to move. That's because we still play weapon idles in background when player moves. This bug is present in 0.46 as well.
Interesting that we use such approach mostly because player's hand start to rotate when there are no active animations, what often happened with crossbows and spellcasting idles. I suppose it is because we treat current node transformations as base ones:
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{
osg::MatrixTransform* transform = static_cast<osg::MatrixTransform*>(node);
osg::Matrix matrix = transform->getMatrix();
osg::Quat worldOrient = getWorldOrientation(node);
osg::Quat orient = worldOrient * mRotate * worldOrient.inverse() * matrix.getRotate();
matrix.setRotate(orient);
matrix.setTrans(matrix.getTrans() + worldOrient.inverse() * mOffset);
transform->setMatrix(matrix);
traverse(node,nv);
}
In this example OpenMW rotates player's hands on mRotate
amount every frame.