Download

Setting up paired animations (for example, grabbing another player)?

I am planning on grabbing players (and performing moves on them) to be a large part of my game and I was wondering how other people have approached this from an animation point of view.

Previously I have done it so each character has a sync bone which is at the root. I would then animate both characters together with the sync bone constrained to the other character’s root reference joint. In the game I would then have the receiving character move over a very few frames to the sync point when a successful grab is detected and start playing the animation based on the information from the giving character.

I know that there are other methods of doing this though and I wanted to know how other people have done this, specifically in UE4 (I’ve never done this in Unreal). Since synced animation seems to be a common thing in games I’m surprised that there isn’t that much information out there on other’s techniques.

I’m definitely very interested in other people’s approaches to this, so thanks in advance.

To my knowledge there isn’t really a standardized method for this sort of thing. I’d personally avoid moving the “target” but rather just adjust the instigator (e.g. in a GTA style game, I’d only adjust the player to get into position next to the car). If it’s a wrestling move the target character would merely need to be rotated in position. All of these adjustments I’d do over a short lerp (~0.3s). You could regulate the position offset via a bone, or alternatively, via a MoveOffset variable which tells you what position the instigator has to be in relation to the target when performing the move. A few restrictions apply though. In the two examples given, GTA and wrestling, you’d have to handle these things differently. In the former, the relative position of the player to the car is absolute. The player HAS to be to the left of the car, facing the door (with some leeway). In the wrestling example the player just needs to be a certain distance away, again facing the target.

At the end of the day the solution is “whatever works and doesn’t require you to do too much overheard work to implement”.

Hmm that’s very interesting. Yes I agree whatever works with least amount of overhead is the best way. My current way I feel adds too much of that. The reason for the extra joint was really just to make sure pairing is perfect, but I guess if I know that 100% of the time the receiving character will always be X distance and facing exactly at the root of the giver then I don’t necessarily need that joint. Saying that, your point about moving the giver rather than the receiver is also very interesting as that bizarrely hadn’t occurred to me haha. Funny how when your brain is stuck on something it’s easy to miss obvious alternative possibilities.

The problem I’ve also often faced is having the two animations sync up in time. Again, I’m new to Unreal and haven’t dug too much into the animation system yet, but I’m assuming this should be straight forward to do?

I’m currently working on a flying game where you play as a dragon and I want air born melee to be a big part of it however this presents a whole lot of potential complications… One move I think wold be particularly fun and dramatic is if two players could lock together midair giving them both partial control of movement. Any ideas how this might be achieved? I can see how it could be done if one player was completely dominant, that way the collision and movement of the one could be disabled and it could just follow the location and position of the other but is this a decent method?