Animation Montage Overview

Describes how Animation Montage assets work and what they can be used for.

Windows
MacOS
Linux

An Animation montage (or montage for short) provides a way for you to control an animation asset directly through Blueprints or C++ code. With an animation montage, you can combine several different animation sequences into a single asset that you can break up into sections for playback either individually or in combination. You can also fire off events within a montage which can perform a variety of local or replicated tasks, such as playing sound cues or particles effects, changing player values like ammunition count, or even replicating root motion in networked games, provided root motion is enabled on the animation.

Example Montage

The following animation sequence of a character reloading a shotgun demonstrates a practical use case for montages:

In the video above, the character reaches for a clip, reloads and then returns to an idle pose. While this is perfectly fine to use as a reload animation, a montage will provide much more control. For example, suppose you wanted the character to reload a variable amount of bullets instead of always reloading the same amount. By splitting this animation up into three parts (grabbing a clip, reloading, and returning to idle) and combining those parts into a montage, you could section them off and selectively play any or all of those sections.

Below is an example montage used to handle the reloading of a shotgun, sectioned it off into three parts: Start, Loop, and End.

Montage Example

With Blueprints or C++, we can define that when the player presses a button, the animation is played, beginning at the Start section. The looping middle section, called Loop, immediately follows the Start section and is set within the montage to repeat indefinitely. If the player releases the reload button, or they've filled the shotgun with bullets, the animation will stop looping and can be set to jump to the End section to transition out of the animation as seen in the video below.

The reload motion is a little bit faster than the baked sequence, however you can adjust the play rate of your looping animation if desired. This gives you the ability to control when you want to break out of your reloading motion and return to an idle pose. A similar usage example could be an animation of a character jumping in the air, an animation loop of being in the air or falling, then a landing sequence. The amount of time in the air could vary, and you want to be able to break out of that portion of the montage at any point.

Some additional uses for montages include:

  • The ability to play an animation from within the Event Graph of an Animation Blueprint.

  • Chaining together a complex sequence of animations that you want to think of as a single animation.

  • Looping only a specific portion of animation (or animations) based on code, or a Blueprint script.

  • Handling event-based switching of multiple animations based on code, or a Blueprint script.

  • The ability to assign complex animation sequences to named slots that can be switched between in code, or with a Blueprint script.

  • Precise switching between various AnimSequences based on code, or with a Blueprint script.

Montage UI

After creating a montage and opening it inside the Animation Editor, you can use the Asset Editor section to define how your montage functions.

MontageWindow.png

The Asset Editor panel of a montage is broken up into the following primary areas:

  1. Montage

  2. Sections

  3. Element Timing

  4. Notifies

  5. Curves

Montage

The Montage area breaks down as follows:

MontageArea.png

  1. Sections - Shows any sections that have been created within the montage.

  2. Slot - Shows the animations that have been added to the current slot.

  3. Group/Slot - Shows the currently selected Anim Group and slot.

Sections

Creating sections provides a way to break a slot into multiple portions of animation. Each section has a name and location in the slot's timeline. Using the name, you can either jump directly to a particular Section or queue it up to play next when the current section is complete. In the Blueprint, you can query the current section, jump to a section, or set the next section that will play.

Another way to think of sections is like songs in a music playlist, with slots being the album. You may be currently playing a section (song), but you can queue up or jump to another section within the slot (album) when the current section finishes, or just jump to the one you want to play right now.

Slot

Within a montage, a slot is just a single track that can hold any number of animations. You can pick any name for a slot and use that name to blend to the animations within. Going back to the reload montage example, we could have different versions of the reload for when the player is standing and when they are prone. In this case, we could place animations for each player pose within separate slots in our montage (below) and use the slot node in the AnimGraph of our Animation Blueprint to determine which set of animations to use based on whether the character is standing or prone.

MultipleSlots.png

Above we use the DefaultProne slot for when our character is standing and reloading and the Prone slot for when our character is reloading while prone.

When multiple slots are assigned, you can click the Preview button for the slot you want to preview in the editor.

For the best results when using multiple slots, try to ensure that the timing of animations involved from end-to-end is the same length.

Anim Groups / Slots

Anim Groups are a collection of slots, and for each group you can only play a single montage. If you want to play another montage at the same time, you can create a new group for it. Anim Groups and slots are centralized within the Anim Slot Manager tab, which you can open by clicking the Magnifying Glass icon, and you can use the dropdown menu to choose between valid slots. When creating a new montage, slot nodes start out with a single Default Slot so that they are immediately functional.

Sections

The Sections area is where you can establish relationships between the sections you define in the montage area.

SectionsUI.png

  1. Create Default / Clear - Click the Create Default button to create the default associations between all sections, stringing them together one after another. Click the Clear button to wipe out all associations.

  2. Section Buttons - In this area, you will see all of the sections you define in the montage area that you can assign for Section Association.

  3. Section Association Tracks - In this area, you can visualize the relationships between animation Sections by clicking Preview All Sections, or see individual tracks by clicking Preview for that track.

Looping

Sections can be set up to loop indefinitely, which is extremely useful for any action that you need to repeat. By associating the same section more than once in a Section Association Track, you cause that association to run in a loop. The section will turn blue to show this. As an example, consider the animation in which a character is reloading a shotgun, one shell at a time. You could take just the section in which the character inserts a shell, and loop it. Then, by using Notifies, you could create Notify Events in the Blueprint that increment the ammo count each time the animation plays through. Once that count reaches a set number (full ammo), you could then switch to an animation of the character closing the receiver and returning to idle.

Element Timing

The Element Timing track takes information from the Montage and Notifies areas to help with the timing of different sections.

ElementTimingTrack.png

Each node in the track is given a number indicating the trigger order of that object within the montage, and is color coded as follows:

  • Red - This denotes Notifies, Notify States and Notify State ending markers.

  • Light Blue - This denotes Branching Points.

  • Green - This denotes a montage section.

Clicking the dropdown button on the Element Timing track presents you with options for showing/hiding additional information.

Notifies

NotifiesSection.png

Animation Notifies (or Notifies for short) are a way to set up events to occur at specific points in the animation. For example, in the image above, we have placed Notifies to play sounds in our reload montage for grabbing a clip each time the reload animation plays. We also call a custom event called SpawnClip that we can use to spawn a mesh in the world representing an ammo clip. Finally, we use a branch event during the looping portion to determine if we should exit the loop and move on to the End section of our animation where the character returns to an idle.

Curves

CurvesArea.png

Animation Curves provide a way to change the value of a Material parameter or a Morph Target while an animation is playing back. Their workflow requires that you designate the asset you want to modify (either a Material or a Morph Target), name the curve accordingly, and then adjust keyframe values across the duration of an animation.

Playing Montages

Montage assets can be played in a few different ways based on your needs. If you want a skeletal mesh to play the montage automatically, you can assign it as the Anim to Play for the skeletal mesh. If, however, you only want your montage to play when specific criteria are met, you may want to create Blueprint script that calls for the montage or sections within the montage to play using the Play Montage node. You can also tell Montages to play through C++ code based on your defined criteria.

See the Using Animation Montages page for more information.

Child Montages

Child Montages provide a convenient way to create animation variants without affecting gameplay, and without needing to recreate and maintain Notifies (or other details) across multiple assets. An example use case for this might be varying the auto-attack animations on units in a real-time strategy (RTS) game, or changing a character's idle animation in a role-playing game (RPG), or an action game, based on what kind of weapons or armor they are holding or wearing. A child animation montage can be created from an existing animation montage using the Create Child Montage context-menu option when right-clicking on an animation montage in the Content Browser.

ChildMontageOption.png

The new montage will have the same name as the original, but with "_Child" added to the end.

NewChildMontage.png

When opening a child montage, all elements within the montage will be grayed out and text will appear at the top indicating that it is a child.

GrayedOut.png

The Anim Segment in the Slot Track can be right-clicked and overridden with a new animation.

RightClickChange.png

In the Slot Track it is possible to substitute any animation for any other, even if they are of different lengths. The engine will automatically adjust the play rate, start time, and end time, of the replacement animation so that it uses the equivalent portion and runs at the same time as the original. Animations that have not been changed from the parent will be shown in green and animations that have been overridden will be shown in yellow.

ReplacedMontage.png

Above we have replaced our attack animation with a different attack animation.

Child montages cannot be used as parents for other child montages.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback