ON THIS PAGE
Customisation - Adding CHARACTER ANIMATIONS
Version 2.1
Animations are split into two categories - Character Animations and Weapon Animations. Character Animations are played on the character mesh, while Weapon Animations play on the weapon mesh.
This tutorial will cover adding animations purchased from the Unreal Marketplace, as well as custom Character animations made using the recommended ik bone setup.
ADDING CHARACTER ANIMATIONNS
IK_HAND_GUN Explained
This section goes into detail about how the ik bones are used in FPS Animation Blueprint, and the differences between the included animations made using the recommended method vs typical Marketplace animations.
To skip to the instructions, go to Importing Animations.
The Epic Mannequin skeleton contains a series of ik_hand bones that are essential to the functionality in FPS Animation Blueprint. These are:
-
ik-hand_root
-
ik_hand_gun
-
ik_hand_l
-
ik_hand_r
-
-
When weapons are equipped, they are attached to ik_hand_gun. This allows for the weapon and both hands to be manipulated using only a single bone (such as during ADS or movement based lags, leans and sways).
The character's hands then follow ik_hand_l and ik_hand_r, as these bones are children of ik_hand_gun and so inherit its movements, maintaining a perfect grip on the weapon at all times. This also allows animations that have the hands leave the weapon to work correctly and maintain alignment, such as reloads. It's no good if the left hand is trying to insert a magazine if the weapon is swaying about without the left hand also following the movement.
With this in mind, animations are often made in one of two ways:
-
The recommended way with ik_hand_gun located at the weapon root and facing forwards
-
The typical way most animations found on the Marketplace are made, with ik_hand_gun simply attached to hand_r at all times.
The first method means when weapons are attached to ik_hand_gun, they will automatically be facing forwards, and the hands will grip the weapon perfectly. It ensures the weapon's position relative to the hands is exactly as it was when creating your animations, and no manual adjustments are required. Simply attach and go, no extra work is required.
ik_hand_gun is in the exact location the weapon needs to be, so when the weapon is attached, it already has the correct location and rotation.
The second method can work, but will require the weapon to be attached to a socket on ik_hand_gun that will need to be manually positioned in order to get the weapon to be held in the hands correctly. This needs to be repeated with a new socket for each weapon mesh you are using. This socket also needs to be set as the weapon's Attach Socket in the weapon's Data Asset under Animation Data.
ik_hand_gun has the same transform as hand_r. To make this work, a socket is created on ik_hand_gun, and a Preview Mesh is attached to this socket to aid in placement. Carefully rotate and position the socket so the weapon sits correctly in the hands.
Almost all animations found on the marketplace use this method as it is typically the default behaviour of these bones when animating in a standard setup.
Please note: Occasionally, some animation packs may not animate the ik bones at all, leaving them in the default A_Pose position. These animations will not work out of the box, and will need to be fixed outside of Unreal if you wish to use them. Be careful when purchasing animation packs.
An example of an animation that does not animate the ik bones at all. These will not work without being fixed.
IMPORTING ANIMATIONS
When importing custom animations, import them as usual, and select FPS_SK_Mannequin_Skeleton as the skeleton.
When adding Marketplace animations, either add them to the project via the Epic Games Launcher, or migrate them from another project. These will come with their own mannequin skeleton. Rather than go through the process of retargeting, just delete the extra skeleton. In the popup window the appears, in the bottom left, choose FPS_SK_Mannequin_Skeleton to replace references. This will essentially replace the deleted skeleton with the correct skeleton in all animations and other files without the need for retargeting.
Please note: I cannot guarantee perfect results when doing this for skeletons with very different proportions to the base mannequin skeleton, however it should be fine in most cases. See: The male vs female mannequin meshes used in this asset.
CREATING A BASE POSE
Every unique weapon mesh will need its own base pose. A Base Pose is a simple static 1 frame animation sequence that will act as the base for all the additive animations to play off of. This is what allows animations like walk/run, sprint, jump etc. to work with any weapon.
It is advised to create a base pose that matches how you want your weapon to be held when completely idle. If you are using an animation pack like those bought on the Marketplace, it is easy to create a base pose using something like an Idle animation that most closely resembles the pose you want.
Open the animation you will be using to create your base pose. If necessary, return the playhead to either the first or last frame of the animation, whichever has the character completely at rest. Click Create Asset, and choose Create Animation > Current Pose.
Choose a location and file name for your new base pose, and click OK. If you wish to follow it, the naming convention used for base poses in this asset is AS_Pose(WeaponName)Base.
Animations that come included with FPS Animation Blueprint also contain the FPS_ prefix, but this is not necessary to use for new animations.
PREPARING ANIMATIONS
All character animations except the base pose must be additive to work with this system. For animations to be used with weapons like Fire, Reload, Equip etc., these must be set to the following:
Additive Settings
Additive Anim Type
Local Space
Base Pose Type
Selected Animation Frame
Base Pose Animation
Choose the base pose that matches this animation. For example the Pistol Fire animation will use the Pistol Base Pose.
You can edit multiple animations at once by selecting all the animations for a weapon that require the same settings in the Content Browser, right clicking and selecting Asset Actions > Bulk Edit via Property Matrix…
In the window that opens, open the Additive Settings tab and set the settings as described above. Make sure to save all when you're done and close this window.
CREATING ANIMATION MONTAGES
Some animations that are triggered via gameplay actions such as fire and reload must have an Animation Montage. These animations can also trigger gameplay events by themselves, such as a reload animation refilling the weapon's ammo at a set point in the animation.
To create a montage, right click the animation sequence and select Create > Create AnimMontage.
Choose a name for this montage. If you wish to follow it, the naming convention used by these is AM_(WeaponName)(AnimationName). For example, AM_PistolReload.
Animations that come included with FPS Animation Blueprint also contain the FPS_ prefix, but this is not necessary to use for new animations.
Once your montage is created, it will need a few additions to work correctly. Firstly, your animation may look like it's playing incorrectly. Make sure the montage's Preview Base Pose in its Additive Settings is set to the same base pose as the Animation Sequence the montage was created from. So AM_PistolFire would use AS_PosePistolBase, for example.
Second, montages can play through something called Slots that allow them to be played selectively on specific parts of the character. By default, most weapon animations want to be played on both arms, and require the head and ik_hand bones to be included too.
To add these slots, find the section that says DefaultGroup.DefaultSlot. Click the Slot drop down on the right side and select Slot Name > DefaultGroup.Head.
Don't worry if it appears to break the animation. This is just a preview not updating, and will be automatically fixed in a moment. Click Slot again, and this time choose Duplicate Slot twice. Choose DefaultGroup.LeftArm and DefaultGroup. RightArm for each of these. You should now have three slots on this montage. The order they appear in doesn't matter.
Lastly, some animations require some additional steps, such as Unequip and Reload.
RELOADS - STANDARD
The steps required for reloads will vary depending on if this weapon uses a standard reload, or a staged reload that will loop a section of the animation.
Both reload types will need to add an AnimNotify to load the ammo into the weapon. To add this, find the Notifies section just below the Slots. Next to the section labelled "1", right click on the timeline and select Add Notify… > Skeleton Notifies > Reload Ammo.
Next, scrub the playhead to find the exact moment in the animation that the ammo count should be refilled. Then drag the ReloadAmmo notify flag to that time.
The montage will also need an Anim Notify State. Click the Track dropdown next to Notifies and select Add Notify Track.
Right click on its timeline and select Add Notify State > FPS_BP_WeaponPoseOverride. This ensures that the animation will play correctly regardless of the character's locomotion state, provided that the animation is allowed to play at all in that moment.
Drag the left side of the state to the start of the animation, and drag the right side to near the end, at the point where both hands are gripping the weapon normally again.
Standard reloads will be done here. Staged reloads that loop require the montage to be split into sections for the loop to work correctly.
RELOADS - STAGED
Once the previous section has been completed, find the Default section at the top of the timeline.
The names of these sections is important. You can rename this in the Details panel on the right side of the screen. Rename it to StartReload. Right click on the timeline next to the StartReload section and select New Montage Section. Name this one LoopReload. Do this again and name the last one EndReload.
These sections need to be placed very carefully to ensure the loop happens smoothly and without any pauses or jumps. The animation itself also needs to have been crafted with identical frames at the beginning and end of this loop, or it will not achieve the desired result.
For example, in the included FPS_AM_ShotgunReload montage, LoopReload is placed at frame 20, and EndReload is at frame 50. This is the point where the hand position match up, and allow the loop to start, repeat the loop section, and end, all with a single animation file. It will be up to you to find the appropriate points in your animation.
Once these are in place, go to the Montage Sections panel on the bottom right of the screen. Lick on the arrow next to LoopReload and select LoopReload as the next section. This will enable the loop. Your reload montage is now complete.
UNEQUIP
Unequip animations only require an UnEquipWeapon skeleton notify 1 frame before the end of the animation. This 1 frame buffer helps to prevent some situations where the pose may flicker for a frame during the weapon switch.
MELEE
Melee animations can use a BP_CameraShake_Notify at the point of contact with the target to add a little extra impact.
Melee animations that play independently of the weapon, such as the included left hand punch animation, also require a metadata curve called LeftHandBasePoseOverride.
GRENADE TOSS
Grenade toss require a SpawnGrenade skeleton notify at the point where the grenade projectile is created and leaves the hand. Like melee animations, these require the LeftHandBasePoseOverride metadata curve to work if the left hand needs to move independently of the weapon.
WEAPON ANIMATION SETS
Weapon Animation Sets are a preset of animations that can be created for each weapon. These include every animation that can be used while a weapon is equipped, including base pose, pose adjustment blend spaces, fire, reload, vault, sprint and more. These can be set in your weapon's Data Asset under Animation Data > Character Weapon Animation Preset. Choose the DT_WeaponAnimationSets data table, and select the row that most closely corresponds to your weapon.
These presets can also be overridden on a per animation basis using Character Weapon Animation Set Overrides. For example, if you have a Pistol Animation Set selected from the data table, but you have a second Pistol that only needs a unique Reload animation, you can choose to override only the reload in this specific Data Asset rather than create an entire new Animation Set in the data table just for this. This helps avoid unnecessary clutter in the preset data table, and allows them to be used as a base that can then be customised for each weapon individually.
Here we have a weapon that uses the Rifle Animation Preset. It then overrides only the Base Pose and fire animations, providing a customised Animation Set just for this weapon.
Once your animations have been set in your Animation Preset and, if needed, the overrides, all that's left is to handle the Weapon Animations on the weapon mesh.
Next: Weapon Animations