Download

Manually Extracting pose data from AnimComposite

Hi, I am writing an application that builds a UAnimComposite from a list of UAnimSequence and then analyzes poses from composite animations
Unfortunately, I have run into a confusing snag and the errors are not well defined for me to know what is truly wrong




        FCompactPose OutPose;
        FBlendedCurve OutCurve;
        Composite->GetAnimationPose(OutPose, OutCurve, FAnimExtractContext(InTime, true)); //Exception here



All I could get from the debugger was that
FAnimExtract had a null FBoneContainer

But the code I examples I saw on GitHub did not set up a BoneContainer

I tried to find out how the Editor played composite animations it seems to go through UAnimSequenceBase but I dont see where it builds an FBoneContainer

Here’s my error


Unhandled exception

UE4Editor_Engine!UAnimSequence::UseRawDataForPoseExtraction() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animsequence.cpp:5453]
UE4Editor_Engine!UAnimSequence::GetAnimationPose() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animsequence.cpp:1243]
UE4Editor_Engine!FAnimTrack::GetAnimationPose() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animcompositebase.cpp:561]
UE4Editor_Engine!UAnimComposite::GetAnimationPose() [d:\build\++ue4\sync\engine\source\runtime\engine\private\animation\animcomposite.cpp:75]
UE4Editor_SwiftMotion!UCompositeAnimation::ExtractMotionData() [E:\Unreal Projects\QuickAnim\Plugins\SwiftMotion\Source\SwiftMotion\Private\SwiftMotionSet.cpp:148]
UE4Editor_SwiftMotion!USwiftMotionSet::BuildDataForAnim() [E:\Unreal Projects\QuickAnim\Plugins\SwiftMotion\Source\SwiftMotion\Private\SwiftMotionSet.cpp:454]
UE4Editor_SwiftMotionEditor!FSwiftMotionToolKit::BuildCurrent() [E:\Unreal Projects\QuickAnim\Plugins\SwiftMotion\Source\SwiftMotionEditor\Private\Toolkits\SwiftMotionToolKit.cpp:391]
UE4Editor_SwiftMotionEditor!TBaseRawMethodDelegateInstance<0,FSwiftMotionToolKit,FReply __cdecl(void)>::Execute() [E:\Program Files\Epic Games\UE_4.22\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:458]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:293]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_6c1f6b862bcfb82ea6dcab28fbcc9463> >() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:271]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5598]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6203]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:6176]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1842]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2292]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1522]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:772]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\build\++ue4\sync\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:130]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3882]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll