Download

Additive animation broken?! how the heck do I make this work?

I hope someone can help!

I have root motion montage as a base, I am trying to add a movement animation (non root motion) over this as “Additive” by “Additive” I mean NOT absolute over a hierarchy of bones.

I tried “apply additive” node inside animBP but its not doing anything other than scaling and distorting my mesh entirely.

I tried setting Layer blend per bone with the blend pose animation set to additive but that also messes up the entire mesh.

What is going on here and why wont this work? Is there a step missing, what is the right process?

Guys allow me to be cynical. Please allow me to introduce to you the simplicity and the functionality, the way a human brain can perceive a user interface:

This is a screenshot of Unity’s animator, two options CLEARLY stand out, Click additive and ALL your layers regardless of masks, bones whatever Sh*t thrown at it, it just ADDS the animation on top and plays perfectly.

Can someone please explain to me how the all knowing all great Unreal engine can’t get this to either work or be as simple as that to be understood by us lesser beings (in case the user doesn’t know how to make it work) can someone also point out why the docs call absolute animation blend mode " additive"?

Still hoping and waiting someone can shine some light as how this works because i gave up after countless hours trying to make it work and looking everywhere to see how what works in 2 minutes in Unity WITHOUT looking at docs!!

Do excuse my french but this is not the first time i run into UI or other broken features in UE or features not straight forward from a User interface perspective.

Just because unity does it, it doesn’t mean what they do is viable for performance across multiple platforms when you use it.

In the example you bring, for instance, you would probably get Very poor performance after stacking together 4 or 5 different animation “layers”.

While you are absolutely correct that often enough the UI is lacking, and you are even more correct in that the docs are terribly out of date, and yet again correct in essentially saying that you need to do a heck of a lot of legwork to get things to work - the difference is that (at least in this case) you cannot end up with unusable trash as the end result when you are just starting out.

Now, back to your question at hand.
Could you provide some screenshots for people to have a graphical look at what you are experiencing?

also a better descreiption of what you are attempting in more simple terms (I’m trying to get my running state to look injured for instance) may help everyone point you to different solutions.

As far as I know - additive animation basically takes the values of the bones in animation A and adds the values of animation B to it. This can obviously lead to issues with mesh deformation since the values may resolve as out of range for the mesh and you would really have no way of telling until you check the result.

Anyway, share some screenshots, I’m sure someone can land a hand or ideas at least.

First thanks for taking your time to reply.

Regarding your first point about Unity, this is not correct, Layers are a fundamental part of Unity’s animation system and last I recall I had a dozen of them working on each of my three full 3d characters in full 3d environments facing off 30 units 5 years ago on a crappy mobile phone running butter smooth above 60 at all times. So I doubt there will be any issues with just ONE I want to get running for my purposes on a next gen desktop should I had chosen Unity for the task. (I did half of that even back then without docs just for the record).

Lets not forget the utterly poor implementation of root motion in UE4, (you can’t even get the capsule to align for rotation unless the root is absolute zero space!) took us 2 days of troubleshooting to figure that one out because no one tells you such a problem exists, or its in the dark web somewhere. In unity I throw it in there and it works, I don’t need to have all my rotations zeros out all the time, it corrects the alignment for you, also not to mention you need “Character class” in UE to make any root work when you just need pawn, talk about performance issues there and a waste of resources.

Back to our UE problem, I don’t know how else to explain it, I think it is pretty clear what “Additive” animation means, all I am looking for is how to achieve it step by step in UE4 if at all possible.

Imagine this:

1 - You have a walkcycle animation in root motion.

2 - You have a simple animation of the same character but only the upper body turns right and then left with the head.

I want to keep the walk cycle animation with all the animations intact and arms flailing, all I want to do is simply add the upper body movements of the second animation on top of the original without replacing anything of the original just the values get additively added and blended nicely.

That’s as simple as that.

Here’s a Video example of additive animation in Cryengine.

Ok, so by your description, you don’t really need Additive animation, you can just go and replace the top section of bones with the new animation.
I’m not positive this will work 100% with root motion, but I don’t see why it wouldn’t either. Afterall, it’s exactly the same thing you do for just about any montage.

In essence you just use the LayerdBlendperBone node to merge the 2 different cached poses.

Here are a couple of tutorials to follow (mind you they are for beginners so it can be boring stuff)


This link should be a decent place to start, the rest of the playlist is worth watching at least one time at x2 speed.
This is the actual video where he actually deals with the Anim BP https://youtu.be/6aZbnldZjeM

This one is a bit more intense to follow along on

It kind of covers a lot of different little things that will just make it easier to use the animation system as a whole - on top of getting you to create a turn in place system.

as you can see here:

The docs basically tell you to do the same thing - It’s not very additive in my opinion. but it does allow you to layer different parts together.

Hope that helps.
It’s not “black magic” but you are right in that it’s not as “instant” as it could be.

Thanks for trying to help but unfortunately most of these examples are not additive animation! They are “Absolute” Layered blend per bone which replaces the entire animation per bone with the new one and does not add the values, in other words all the base animation of the original layer is lost and replaced. This is not a desired effect.

I say most, because there is one part in a livestream that they speak of “Additive animation” they set “Local space” in “additive settings” dialog, unfortunately everything we try here our meshes inflate and scale up in weird ways breaking the entire thing, other times the mesh disappears as soon as anything is plugged as additive in animBP.

The mesh and hierarchy are clean and working they worked very well in other 3d engines trying the same thing.

We even tried using a node called “Apply additive” but whenever anything is plugged into it, it completely destroys the rig.

The example I provided in Unity and Cryengine work the additive perfectly. Notice in Cryengine version how the original base walking and upper body movements are preserved and the new animation just works on top.

I am hoping someone form Epic can join in here and provide us some insight since I looked everywhere online and I can’t find a single example about this.

And just for the record the way Additive is being attempted in UE from what I saw in the livestream is so convoluted I have no words to describe it, i’m sorry to say whoever is in charge of this at Epic should really reconsider their approach! I say this boldly. Even your lead animators who present these tutorials keep getting lost and sometimes even tell us to just try X or Y and see what happens.

I don’t want to sound that its all bad in UE I’m just saying that animation tools in particular have us holding our breath every time we import either root motion or have to try something with layers and the additive issue and the way it is handled or broken is just yet another frustration over all this. We have wasted more than 3 days already of our production schedule trying to figure out solutions and workarounds for something we know can be done in a second inside Unity and Cry and just work!
I know big studios don’t have half our problems, heck they probably are handed all the internal tools including the famous “animation warping” which was never released that solves many problems by itself.

But we have to deal with whats in the box for now for the most part.

I will stop nagging now and hope someone can shine some light as we move on.

Did you look into “Content Examples” package available to download from launcher??

Yes I did, I went through each one. No additive there just simple blend spaces. Unless I missed anything?

So, does that mean that once you layer blend per bone half the skeleton is at the center of the animation and the other half walks forward?
can you share a screenshot of that?
Or whatever else is happening…

There have been several AAA titles that used root motion, so it seems weird that something as basic as laying doesn’t work with it.
especially since movement is the top reason to use it.

No nothing like that, the hierarchy is always respected during any layered operations or at least it should be. But if you mean what is happening in UE4 during attempts at additive then yes the whole skeleton is blowing up, i’m not even sure i’m doing it right, but the live-stream suggests i may be, then again i’m not the only one experiencing a similar problem it seems, check this out and this. his mesh is scaling up deforming strangely while mine entire breaks apart or disappears.

Unfortunately I can’t share anything at the moment but all i’m asking is for someone to guide me to a source or tell me how additive animation is done inside ue4.

I don’t think root motion is the issue either I tried without it same problem.

Hum, If you can’t get a root motion montage to overly onto a regular animation sans root motion enabled then your asset is likely at fault.

It could really be due to a lot of things, the first thing you need to check is that the skeleton referenced is the same.
The editor would/should/could usually throw a fit if you attempt to mix/match skeletons when layering animations, but it could also not.

So, if your skeleton is the same on both animations, and the mesh is rigged correctly (which you would know if it’s not as it would decompose in all the animations you imported so far), then there’s one more option that may have been used to make the skeletons match and that’s Re-targeting.
If someone re-targeted the imported animation to the correct skeleton to get this to work, the re-targeting may be bad/the issue.

I would suggest re-importing the base mesh - sans animations.
This will create a new skeleton/asset - you can use the same materials and even replace the old PHAT if you have modified it - but for testing, we just really need to know the skeleton is clean.
Then import the animations
make sure to select the New skeleton during import and only add in the animations.

Once that’s done, you are 100% sure stuff is clean.
you should right away create a blank anim bp and test the montage slot situation.
You can right away just layerblend the 2 poses into the final pose, without any need for input or anything. Persona will compose the 2 and if any explosion/bloating happens you’ll see it instantly in the little preview window.

Now, assuming that works, the next step is to test it out by replacing one of the 2 animations to one that has Root Motion and the appropriately checked check-boxes for it.

I tried this in my current project - with just a simple “slide that root bone” animation, and the reloading animations/firing/etc. all play fine (though replication doesn’t work since it’s root motion).

Ok Seems that there is some misunderstanding. No, there are no re-targetings or any rig problems, I am using the same rig all is fine.

Attached below is a sample project with step by step description of the problem:

LINK to project file.


Here’s the same file in Unity demonstrating correct behavior with Additive:

AdditiveSample.gif

In the “animgraph” replace the blend node with “apply additive” node.

you can also change the additive animation to mesh space and use the add mesh space additive, not sure which is best for specific tasks?

I tried both plus everything in additive you mentioned, sorry to say its either the same result or worst.

The file is available please feel free to try it.

yeah I downloaded and tested first before saying anything… it works will post images brb

Okay i’m thrilled at the moment, local space actually worked mesh space distorts everything, I am not going to celebrate yet, I am sure i’ve tried this setup with apply additive mentioned previously in my post, on my previous rigs and it was never working I will triple check everything before I call it a day, meanwhile many thanks to you for taking the time to help out!

EDIT:

Oh man I discovered the problem! In my original setup (not the sample I provided) I have the “Additive” animation as a state machine, if I plug the state machine as additive everything messes up.

Edit* Discovered I had an idle animation inside the additive state machine that was not set to “additive” in the settings. Will do more tests to make sure.

Its a bummer. :slight_smile: But thanks again to the community here much appreciated.

  • I still stand by my claim that UE4 UI and way of doing such things compared to other software is a mess!

I still 100% agree with your claim that the UI is a mess.
Glad you got it sorted :slight_smile:

How to fix the mess?