Skip to content

Merged animations often have weird behaviour. (Axes wrong / bones twisted / etc.) #2

@0megaD

Description

@0megaD

If your animations look all messed up after using this tool, simply add a blendoverride to the layer.

Add this:
destLayer->BlendMode.Set(fbxsdk::FbxAnimLayer::eBlendOverride);

To the following function:

void CreateAnimation(FbxScene* destScene, FbxScene* srcScene, std::string const & name) {
	auto* srcStack = srcScene->GetSrcObject<fbxsdk::FbxAnimStack>(0);
	auto* srcLayer = srcStack->GetSrcObject<fbxsdk::FbxAnimLayer>(0);

	destScene->CreateAnimStack(name.c_str());
	auto* destStack = destScene->GetSrcObject<fbxsdk::FbxAnimStack>(destScene->GetSrcObjectCount<fbxsdk::FbxAnimStack>()-1);
	auto* destLayer = fbxsdk::FbxAnimLayer::Create(destScene, srcLayer->GetName());
	destLayer->BlendMode.Set(fbxsdk::FbxAnimLayer::eBlendOverride); //<-- CODE GOES HERE
	destStack->AddMember(destLayer);

	CreateCurves(destLayer, destScene->GetRootNode(), srcLayer, srcScene->GetRootNode());

	destStack->LocalStop.Set(srcStack->LocalStop.Get());
}

That fixed the issue for me.

Demonstration of the issue (note that the whole second animation looks completely abnormal):
https://github.com/user-attachments/assets/b8b8bfe2-7d15-417d-b5b1-310a1e3538ab

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions