How do I synchronize animations in transition?

I have a walk and walkfire (walk and shoot) animations. Their speed is controlled by the same parameter. Leg movements for both are identical, hands are different. When transitioning between the two, legs don’t look perfectly synchronized. Below are full setups for states and transitions involved. Does someone know what could be the cause or in what direction should I look?

Update: I found what causes the issue. If transition to walkfire starts when walk animation is in the beginning or the end - it looks correct, otherwise it looks incorrect, with the worst result when walk animation is close to being halfway through. Which means, source animation is taken in its current phase, and target animation is taken with 0 phase. The question now is, how do I change a phase of a target animation to be equal with a phase of a source animation?

In case you haven’t resolved this or for anyone else.

I had a similar problem with a series of transitions Idle <—> Walk <—> Run, which also caused me some troubles with the legs movement.

I realized that a Transition is not the proper way to go from two similar state where the bones must be synced at the time of the transition.

The best way to achieve that is to use a Blending tree. I did mine using a Speed parameter which controls how much to blend from Idle, Walk and Run.

Then I created a second Blending Tree based on the same Speed parameters with the same Threshold values, but this time IdleFire, WalkFIre and RunFire.

Thus, since both use the same Speed value, I can now add a Transition from the NormalMovementTree to the FireMovementTree.

That way your animations won’t have those “Legs teleporting” effect during transitions.

The best way to do this is make 4 animation in you case and use animation layers
in base layer place run walk and idle animations y the new layer place idle and attack animation
In the new layer set the weigth upper to 0 and set the blending in additive mode