Gabriel Salomone

Technical 3D Animator

Mecha FPS Project

This work-in-progress FPS game is a 2 person project where I handle the 3D animation and rigging pipeline for Unreal.




Mech Arms Rig

The arms are rigged to be fully feature-rich, with IK and FK systems, weapon socket points with swappable parents, and stretching capabilities. On top of that, for the "mecha" aspect of the arms, I also rigged the arms with some extra features, like rotating the forearm and extra parts without affecting the rest of the rig.

Here is a side-by-side of a test animation made in Blender before being exported into Unreal. As you can see, a lot of the same functionality makes its way to the final game!



Animation Syncing

On top of the base rig for the arms, I also built functionality to support multiple rig animations at one time. The arm's socket bones and weapon root bones are rigged to make parenting easier in a live game, making sure that all the animations align perfectly as they show up in Blender.

In this shooting animation, for instance, you can see that not only do the arms move, but the pistol properly slides, and the camera moves as well. To remind you, the arms and weapons are separate rigs, with the camera animation being exported out as a Camera Shake asset in Unreal.

To achieve this, I linked all of the animations into a data asset to quickly swap out the arm, weapon, and camera animations. Then, when the player shoots, reloads, or does any other action I want to specify, it calls a funtion to sync all the animations together, using the Montage Sync Follow node. Using GAS and data assets together in this modular format make it easy to swap out for other gun types, as well!



Unreal Animation Setup

Finally, for the player character's animation blueprint, I set up a state tree to check which weapon you have equipped for the arms (currently just the pistol and base arms), and created 2 additive blendspaces.
One of these blendspaces is an additive bobbing animation to simulate walking on the ground, and the other blendspace uses 5 different poses to determine where the player is currently moving.

And that's where the animations are at! In the future, I will be adding support for aerial movement such as jumping and landing, on top of some other animations like a "ready" or inspect for when you first pick up the gun. On top of that, with the way everything is set up, it should be much easier to create and implement other weapons and animations. It's good to think modularly!



Back to page