Best way to go about believable 2 Character Grab/Lift animation?

alt text

I need to make a scene where I am chasing another character and they may not be in the same lane or height.
Both characters are dynamic with character controllers and have one being controlled by the AI. And I need to jump over/leap/tackle/hit or do much more and all should be dynamic and can fail midway if the collision fails due to changes in speed or other events.

I am using Mecanim state machines for all my animations.

Now the way I think they might have done it in subway surfers is actually create the Cop & the Player as 1 skinned mesh with animations for :

  1. Kid doing Graffiti
  2. Kid Running/Jumping/Rolling (without
    the cop inside the view)
  3. Kid Running/Jumping/Rolling (while
    being chased by the cop inside the
  4. Kid losing balance after almost
    crashing (with the cop appearing
    into the view for 2 seconds)
  5. Kid getting hit by train
  6. Kid crashing and getting
    caught/carried & lifted by the cop

Kind of like this : Subway Surfers Game Review - YouTube

So… how do you do it?
How do they do it in say Football games where one player can make the other one fall by pushing him? Or In some high-end RPG games where two characters exchange items by hand? Or wrestling games where people lift/grab each other?

Let me know please.


Usually they are 2 separate meshes/objects, not one. In wrestling games, for each attack there’s animation for the attacker and the defender. When the guy attacks, it adjusts his attack a bit - move hands to the body, etc., so it doesn’t matter where he’s standing and also forces to play the defending animation on the other guy. So basically - have 2 animations one for the cop and one for the runner. When the runner dies, wait until the cop gets to the player and then play both animations.