Up to this point, I have set up the animation. I used Blend Poses by Bool to differentiate between ADS, and Layered Blend per Bone to separate the upper body and lower body movements. AO_MF_Pistol_Idle_ADS is the aim offset, and BS_MM_Rifle_Jog_Leans is used to show the body leaning based on the direction while running.
Now, here’s the part I’m a bit confused about. I wonder if the leftmost node has the priority for the override, or if the priority is with the rightmost end (closer to the Output Pose)?
Since I’m still a beginner, I’m probably missing the correct terminology for this. For now, I’ll just refer to it as “override.”
From what I understand, the further to the right you go, the higher the priority for the override, and eventually, the output is shown in the Output Pose. But how is AO_MF_Pistol_Idle_ADS so perfectly applied only to the upper body?
You are correct, the nodes further on the right hand side have more “priority” over the nodes before them but that is because they have less nodes changing the animation.
Mainly because the locomotion and pistol animation were made to work with the upper and lower body split, If i remember correctly the lyra animations have the same movement on the lowerbody with both the unarmed and armed animations so the transformation happening on the upperbody is in sync.
That would be a mixture of the IK and AimOffset working together. The Lean Additive you have is only overriding the rotation of the spine bones. The IK is keeping the hands parented to the weapon while the AimOffset is telling the character where to aim so the transformations on the arms are being “override”
That is what I understand from the implementation of the nodes you have.
You mentioned “the same movement on the lower body.” Does that mean Unreal Engine is programmed to automatically ignore parts of the body that are same? Even if lower part is same, it’s considered part of the motion, isn’t it? That means that Unreal Engine automatically ignores same motion parts and overrides them with new motions?
How does ‘Apply Additive’ completely ignore the arm movements and take on the pistol-holding pose? Is it because of ‘Layered Blend per Bone’? If that’s the case, it should mean that ‘Layered Blend per Bone’ is prioritized, isn’t it? That’s why it could separate it and order, like ‘You go for the lower and I go for the upper’, no?
The layered blend per bone node takes in your base pose and a blend pose, you then specify from which bone or bones the blend pose should take over. So if you have a run animation plugged into the base pose and a armed run animation plugged into the blend pose and you have the layered blend per bone set to spine_01. The engine only uses the base pose to manipulate the bones lower than spine_01 (hips to root). The blend pose animation is used on the bones from spine_01 and up.
The pistol holding pose is there as a result your layered blend per bone node, after that you apply the additive node which uses the aim offset to rotate the bones in the direction you are aiming.
The apply additive node uses the delta transform(location, rotation and scale) of the bones in an animation. Additive animations are quire complex so I am not going to type out how it works, that can be a whole page itself but I will link a video that helped me understand it.
No, you’re teaching me diligently. The problem is just that I understand the concept differently. Let’s think about Photoshop. It’s easy to explain how I perceive the concept of these nodes. The way I understand this logic is similar to Photoshop’s layers. The layer on top covers the layer below it. That’s how I’m interpreting this logic.
Since AO_MF_Pistol_Idle_ADS is layered on top of Layered Blend per Bone, you can’t see Layered Blend per Bone, and only AO_MF_Pistol_Idle_ADS is visible. Of course, if there are transparent parts in the top layer, those would allow the lower layer to show through.
However, I never set the AO_MF_Pistol_Idle_ADS layer to have any transparent parts that would allow Layered Blend per Bone to show through. So, how is it that it covers only the upper body and lets Layered Blend per Bone show for the lower body?
Conversely, if Layered Blend per Bone was placed on top of AO_MF_Pistol_Idle_ADS, this would make sense. In that case, Layered Blend per Bone could be configured to show AO_MF_Pistol_Idle_ADS for the upper body and Locomotion for the lower body.
This is the structure through which I understand the Animation Graph in Unreal Engine. But from what I see, this way of understanding things might not be correct, right?
I understand what you mean here, however we should look at the task the the layer (node) is responsible for.
The AO_MF_Pistol_Idle_ADS is a Aim Offset and to understand what it does you need to understand what additive animation does.
Additive animations are animations that take into account the current animation given to it (the input pose, in your case the output from the layered blend per bone node) and finds the difference between the rotation from the additive animation (In your case the Aim Offset) then adds that difference to the input pose so that it blends the two animations. Additive animations do not completely override a input pose but change it a bit. Its a very hard to explain topic haha took me a few months to understand however I’ll link you a video so you can have visual representation of this.
Aim Offsets
PS* aim offset is not a single animation rather a type of blendspace that outputs a single animation based on the input given to it, it chooses and blends from the animation inside it.