I’ll start from the beginning. I have two animations. One which has root motion and needs to be applied to the full bone hierarchy, and the other one which only needs to be applied to the upper body of my character.
I had the following setup in the Anim Graph using The Layered Blend Per Bone node.
The idea is to allow the slot to play its animation which has its blend weight set to 1. The problem that I noticed was that even if the UpperBodyBlendWeight was set to 0, the animation was still being filtered based on the BranchFilter which has skd_spine01 set as the Bone Name. Consequently, no animation coming from the FullBodySlot was being played on the upper half of the body of my character.
Now coming to the workaround. If I relay this logic through two nodes instead of one, I get the desired output.
first node as the filter set to skd_root, and the second one has the filter st to sk_spine01. The underlying logic remains the same but this setup works, and the branch filter is not taken into consideration if the Blend Weight of its Pose is 0.
Now unless I missed something obvious that might make me look like a fool, this behavior seems dodgy.