Cleanup loadRules method, smooth animation transitions game.rst docuemntation

animationblending
Sam Hellawell 1 month ago
parent b9772d68ac
commit 768df54829

@ -58,7 +58,7 @@ namespace Resource
osg::ref_ptr<const AnimBlendRules> AnimBlendRulesManager::loadRules(std::string_view path)
{
const VFS::Path::Normalized normalizedPath = VFS::Path::Normalized(path);
const VFS::Path::Normalized normalizedPath(path);
std::optional<osg::ref_ptr<osg::Object>> obj = mCache->getRefFromObjectCacheOrNone(normalizedPath);
if (obj.has_value())
{
@ -67,15 +67,7 @@ namespace Resource
else
{
osg::ref_ptr<AnimBlendRules> blendRules = AnimBlendRules::fromFile(mVfs, normalizedPath);
if (blendRules == nullptr)
{
// No blend rules were found in VFS, cache a nullptr.
osg::ref_ptr<AnimBlendRules> nullRules = nullptr;
mCache->addEntryToObjectCache(normalizedPath, nullRules);
// To avoid confusion - never return blend rules with 0 rules
return nullRules;
}
else
if (blendRules)
{
// Blend rules were found in VFS, cache them.
mCache->addEntryToObjectCache(normalizedPath, blendRules);
@ -83,7 +75,10 @@ namespace Resource
}
}
return nullptr;
// No blend rules were found in VFS, cache a nullptr.
osg::ref_ptr<AnimBlendRules> nullRules = nullptr;
mCache->addEntryToObjectCache(normalizedPath, nullRules);
return nullRules;
}
void AnimBlendRulesManager::reportStats(unsigned int frameNumber, osg::Stats* stats) const

@ -541,3 +541,14 @@ In third person, the camera will sway along with the movement animations of the
Enabling this option disables this swaying by having the player character move independently of its animation.
This setting can be controlled in the Settings tab of the launcher.
smooth animation transitions
---------------------------------
:Type: boolean
:Range: True/False
:Default: False
Enabling this option uses smooth transitions between animations making them a lot less jarring. Also allows to load modded animation blending.
This setting can be controlled in the Settings tab of the launcher.

Loading…
Cancel
Save