How to: Post Process Animation Blueprint?

Hello there,
With UE4.14 Epic added these PostProcess Animation Blueprints.
I have absolutely no Idea how to create them. Does someone here know how to create these BPs?

Greetings
RRe36

I have them working. There is one bug to be aware of - once you have set a post process animation blueprint, you can’t clear it. I have reported that.

For the post process blueprint, you have to start with a “Sub-graph Input” node, otherwise you will just receive the base pose. The sub-graph input node receives the results from the normal animation blueprint.


That is the start of my post process anim blueprint which has my Anim Dynamics in it.

-Brian.

Everyone else who answers: please do it here: https://answers.unrealengine.com/questions/524386/a-few-questions-considering-post-process-animation.html#answer-526900
Don’t want to mess with two questions considering the same thing.

I figured that “post process” meant that this would fix the lag problem you get from basing IK on socket transforms from a frame ago. Is anyone seeing evidence that this is or is not the case? It could be something I’m doing but it seems to not be working as I had hoped.

Yes that seems to be fixed

And the post process blueprint is set on the skeletal mesh asset, on 4.20 at least. Might seem obvious but my old brain was trying to figure this out today so thought I’d record it here.

talking about post process animation blueprint , now i was checking the metahuman face post process blueprint which i see whatever connection before control rig node its blocked , and after control rig is free to apply some transform bone but only one by bone , i wonder if can use additive pose with some custom joints animation to make the control rig skeleton get that additive animation positions , but for now i get weird results , its impossible to do this? imagine just have the metahuman project normal face and want to move ear joints , but not using a one by one node , just using other animation blueprint saying where u want joints to move

1 Like

Hi, I know this is an old post but it seems to be the only one related to Post Processing Animation Blueprint. I can’t really find a proper description of this and how things really works.
Like @shutupidontcare I have noticed that those are used on Metahuman, so it seems to be still supported.

Going back to my problem:

I would like to set the PostProcessAnimInstance at runtime.

Further details:
I am spawning at runtime an empty actor with a SkeletalMeshComponent (all in c++).
In the code I am setting both:
(1) the animation instance (with a correspondent Animation Blueprint) and (2) the post processing animation instance ( with a second Animation Blueprint).

What is weird is that both of them seems to be instantiated correctly:

  • I do check if they are valid and of the correct type
  • I untick the “Disable post processing Blueprint” bool

But at end only the animation blueprint has an effect on the final motion,
and there is no sign of the Post Processing Animation Blueprint.

So my question is, it is actually possible to set PostProcessingAnimationInstance at runtime?
If yes, how?

thanks in advance

update:

I have to say I am not an expert on this, but I got to this conclusion:

It seems like that normal AnimationInstances can be both set and modify(with modify I means access and change variables values) at runtime obtaining a direct effect on the motion.
On the other hand, post-Processing AnimationInstances can also be set and modify at run time, but all the updates will be ignore by the animation pipeline.

I think there are two possible outcome here:

  1. I am missing some parameter or function to force the animation pipeline to update the post-processing animation instance.
  2. Post-processing animation instances are not supposed to be modified at runtime.

If someone know the answer please let me know (In the meantime I am considering the option 2 as valid, and changing my approach)

thanks

1 Like

Did anyone have solved this stuff? I have the same problem like shutupidontcare and Ceriatinho :frowning:

1 Like

Unfortunately, I just gave up, and used another approach,
sorry,
hopefully someone will help.

Hello Ceriatinho.@ Ceriatinho
It’s too late but maybe helpful.
I do the similar work in my pinch project based on metahuman, all with c++.

First:

  1. UPinchHuman, derived from UActorComponent
  2. UPinchFacePostAnimInstance, derived from UAnimInstance
  3. FAnimNode_ModifyBonesInComponentSpaceExtend, derived from FAnimNode_Base, is a custom node placed in AnimBP of UPinchFacePostAnimInstance
  4. FPinchHumanJointDataArray, a struct, used to modify joints of metahuman face in UPinchFacePostAnimInstance

Then:

  1. UPinchHuman have a field of FPinchHumanJointDataArray, will be setting by UI
  2. UPinchFacePostAnimInstance also have a field of FPinchHumanJointDataArray, will be updated by the function of NativeUpdateAnimation.
  3. Making the FPinchHumanJointDataArray working in the node FAnimNode_ModifyBonesInComponentSpaceExtend.
  4. Placing the node after ControlRig

Also, i have tested that : setting the FPinchHumanJointDataArray of UPinchFacePostAnimInstance directly in UPinchHuman, casing crash.
I dont know why, but the above is working both in PIE and Runtime

1 Like

Not sure about setting it, but there is a relatively simple workaround that might work:
Use a linked animation layer in your post process ABP and set it as post process ABP on the skeletal mesh. Then you can link any other ABP implementing that layer into your post process instance.

1 Like