Additive Animations For Root Bone of a Retargeted Animation as of 4.10.1 Crashes Engine

Good Evening,

As of 4.10.1, if I open an animation after retargeting for one of our characters, move the root down, and hit the key button from the toolbar to realign the root, the engine immediately crashes requesting that I send a crash report. Prior to 4.10.1, no problems with this.

Your help on fixing this bug is appreciated! Thanks.

Hi cornwell,

I’m having trouble reproducing this here. What are your additive settings? Is there any root motion in the additive animation already?

Could you copy the callstack from the crashreporter window, paste it into a txt document, and attach it here?

If we can’t lock down a repro, I might ask if we can get your two skeletal meshes and the animation.

-.

Hi ,

Thank you for looking into this. I’ve attached the callstack and a picture with the settings and setup. I pulled the root bone up along the z axis about 6 inches, then click the Key button, then it crashes. Everything else is at the default settings.

Thanks.

It could have something to do with your root(Bip01) not being at 0,0,0 (it’s located at the pelvis), but I just made a rig with that same setup (and threw a really long animation on it like you have), but I was still unable to reproduce this. Looking through our crash reports, your project appears to be the only one that has ever gotten this crash.

I’d like to reproduce this crash before entering it into our bug tracking system. Would you be willing to send me the fbx for the skeletal mesh and the animation? You can upload it to a file sharing service and PM me the link on the forums. Please include a link to this Answerhub thread in the message.

-.

Just sent you a link to the fbx file.

I’ve been unable to get it to crash with the fbx files. This is after retargetting the animation from the fbx in the second message to the skeletal mesh of the first message, then moving the root and keying it. I tried a few other things, but I can’t seem to repro.

Are you using a github build or a luancher build? Have you made any code changes to the engine?

If it is just a standard launcher build, it could be a compatibility issue, but the callstack doesn’t seem to indicate that. Could you attach your dxdiag anyways?

Lastly, could you migrate the animation (and it’s skel mesh) along with the target skeletal mesh to a blank project and send that? Make sure you attempt to reproduce the crash in a blank project yourself as well.

-.

Thank you for your time. I just sent you a new project that I tested in advance for the crash. This should help you recreate it.

I’m using the launcher build, no code changes to the engine.

Hope you’re able to recreate it with this!

Hey cornwell,

I was able to repro with your project (Hooray!). I’ve entered UE-24585 and attached this project to it for repro purposes.

Unfortunately I was unable to find a workaround for you. If this is a blocker for you, I’d suggest reverting to a previous version of your project.

-.

Awesome! Thanks! If you think it will be addressed in the next minor release in a couple weeks, I can work around it until then. If it may be a while, (i.e., a month, or two, or more), is there a way to revert the engine back a minor version to 4.10.0 before it was a problem?

Thanks again for all your help on getting this resolved into the future.

I don’t know how quickly it will be resolved, but I wouldn’t count on anything being a quick turnaround. The only way to grab 4.10.0 is from github. You’ll need to sign in to github to view that link

-.

I know it’s been like 4 years, but was there any resolution for this? I am running into exact same issue in 4.23.1 re-targeting a SK for an additive animation.

Error message: “Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 614] Array index out of bounds: 57 from an array of size 57”.

This is nearly identical to OPs logs. I was really hoping for a solve here.

In-case anyone comes across this, I found a hacky solution. It seems like an Editor issue so I’m not too concerned. Basically add a bunch of virtual bones to the target (the sk re-targeting to) such that there a greater than or equal to amount of bones than the source sk. Open up an animation already associated to each SK and look at Animation Tracks count to see what I mean.

I had debug symbols loaded and inspected the call stack during a crash and it’s going through UAnimSequence::GetBonePose which has a

#if WITH_EDITOR
	// this happens only with editor data
	// Slower path for disable retargeting, that's only used in editor and for debugging.
	if (bUseRawDataForPoseExtraction)
	{
           BuildPoseFromRawData(...) <-- CRASH HERE

The problem I found was that my target had less bones than the source , and when looping through bones of source sk, it’ll reach an index that is out of bounds on target. Not sure why it’s doing that but there doesn’t appear to be any issues in the resulting re-targeted animations.