NiRollController does not work for sheath meshes
A Daedric Creascent sheath mesh from Weapon Sheathing mod has an animation based on NiRollController. Since 0.48 release, it does not work because we reset all controllers for attached meshes:
void ActorAnimation::resetControllers(osg::Node* node)
{
if (node == nullptr)
return;
std::shared_ptr<SceneUtil::ControllerSource> src;
src.reset(new NullAnimationTime);
SceneUtil::AssignControllerSourcesVisitor removeVisitor(src);
node->accept(removeVisitor);
}
An intended behaviour was to reset morph controllers (so ranged weapon meshes can be used as a fallback if there is no sheath mesh), but a current implementation has an oversight and always reset all controllers.
A suggested solution is to replicate an approach used by MWSE's version of Weapon Sheathing - reset controllers only for ranged weapons (both when _sh
mesh is used or the weapon's mesh itself).
Edited by Andrei Kortunov