Synchronize two character's animations while colliding with objects

Hi everyone!

I’m working on the fighting game where you as a player can perform a grapple/counter/finisher attacks on enemies. Something similar to Batman, Mad Max, Sleeping Dogs games. I’m using root motion and rigidbody capsule to drive my all characters on the scene.

You can see some of the effects on my twitter profile:
https://twitter.com/jacobdzwinel

What I’m doing right now is I set characters in proper positions, rotations and I start animations for attacker and victim at the same time. That’s easy. Everything works great until one of my character during motion is pushed by other collider on the scene (like wall for example) and translate a little in other direction causing my character positions to desynchronize while still in animations.

I can disable rigidbodies detection or set them to kinematic but then my characters will move through any colliders on the scene that may cause some bugs.

I’m asking if anyone has any experience in this kind of situation? I have some ideas but maybe some of you can help me figure out how to do this proper way.

Thanks in advance!

Disabling physics during the interaction is pretty common as a simple solution. That’s what Dark Souls 3 does.

A more complex solution might use IK to ensure contact between key points and interrupt the animations if the characters get too far apart.