Lewis Fiford explains the mechanics behind God of War's Leviathon axe throw and explains how to create the same animation using Unreal Engine and Unity.
Weight and power are the two keywords that come to mind when you think about the axe throw in God of War. It looks heavy, it looks solid, and this makes the whole move satisfying.
To demonstrate how the effect was created, Lewis Fiford used Gideon, UE4's free Paragon character, and made some modifications to the mesh using Blender so that the clothes would deform properly.
First, the character was set up for retargeting in UE4. The advanced locomotion system was added to set up movement for the character. The author then used the Layered blend per bone node to blend between the upper body animations and the locomotion animations on the lower body.
The move then was broken down into 5 parts. The first one is aiming. To aim the axe, the character's movement mode was set to walk only, and the player's rotation was set to follow the camera's rotation.
The second is the throw. As Lewis Fiford notes, in the game the axe flies smoothly straight into the center of the screen rotating at the same rate as it moves further towards the aim. To achieve this, the artist attached the mesh of the axe to two scene components, one for the axe to pivot around when thrown, and the other one to pivot around when it's launched into the object.
Another thing to take into account here is that in the first couple of milliseconds there is no gravity effect on the movement of the axe, but at a certain distance, gravity takes effect and the axe goes lower to the ground. Here we have to determine further behaviour of the axe depending on what it hits at the end of the flight. If that is an object that can break into a thousand little pieces we have to make sure it breaks in the desired direction, if the axe hits anything else, we stop it from moving further by deactivating projectile movement and stopping the rotation.
One more component to work on is the return. When the axe is stuck it either wiggles or pulls up towards the character. To get a return effect similar to the one seen in the game you need to set the position of the axe dynamically. You need to know the distance of the axe from the character. For the return itself, you need the starting position of the axe and the distance from the character's hand. You also need to create a few custom curves to have a nice tilt of the axe while it's flying back into the character's hands.
Finally, there is the catch at the end of the axe throw. This is one of the most impactful parts of the move and one of the tricks that can make it feel powerful is the good old camera shake.
Sounds and particle effects are an optional cherry on top of your creation that can make the axe throw even more epic. Lewis Fiford used a custom particle system for the particle emission effect as the character catches the axe.