Cycling (looping) Animation

Cycling (looping) Animation

IMVU uses looping or cycling animations extensively, from simple tail swishes, to complex avatar and product interactions, all can be made to appear as though they are performing avatar or product motion that repeats infinitely or a fixed number of times depending on the settings used, and activated by an avatar or seat spot, or triggered typing a phrase or word into chat. In other words, looped animations are simply sequences that repeat, e.g. frames 1 » 60 » 1 » 60 and so on, the trick being to make the action loop smoothly across the start/end frames without hiccups, jumps or starts, or looking too much like it is in fact looping.

Download the example file here.

For more on Animating in Blender click here. Note also that setting up a Blender project to included looping animations follows the same principles outlined below regardless of the product type.

A looped animation in Blender needs to be set up so the start and end are the same

A looped animation in Blender has to be set up so the action repeats without any obvious flaws, similar to the way textures need to repeat without edges or tiling artifacts, so the start and end frames are typically exact duplicates of one another.

Sequence set up

When setting up a looping sequences it’s important to understand the start and end frames, e.g. frame ‘1’ and frame ’60’, won’t necessarily represent the start or end of the action performed (a walk cycle) but instead markers simply indicating a start and end point (the duration) of the linear sequence itself – a walk cycle might be captured or posed mid-stride at frames 1 and 60 for example, rather than there being a distinct start and/or end frame at those points.

The above is especially true of furniture or rooms set to loop other items that might carry other sequences that loop; when item A loops once, item B loops three times and so on.

The start and end frames of a cycling animation should be the same

The sequence that’s to loop is set up so the start and end frames are the same – the animation ‘blends in’ from frame 1 and ‘blends out’ at frame 40 in such way the transition across frames 40 – 1, the point of ‘repeat’, ‘cycle’ or ‘loop’, is not noticeable.

Looped Action

The easiest way to create an animation that loops in Blender is using the Action Editor where poses are represented by small markers in the editors timeline. First move the slider/scrubber to the frame that’s to be duplicated, e.g. first, this selects/sets the frame. Next, in the 3D View make sure the Armature being animated is in Pose Mode and all bones selected (they outline blue). Finally click the Copy button to grab the selected bones data, move the timeline slider to the frame into which the captured data will be dropped, e.g. last, and click the Paste button. The data will overwrite any existing pose information making first and last frames exactly the same.

Although not covered in this tutorial the Graph Editor provides a readable way to understand the underlying mechanics of a looping animation by the way the editors graph curves represent motion over time.

To copy one frame into another use the 'copy/paste' buttons

To make sure the start and end frames are the same, at the first frame select the entire skeleton in Pose Mode, copy the data then paste to the last, creating a duplicate.


Before exporting it’s important to check the animation has an Action sequence associated with it (click here for more). If an animation has been made using another of Blenders animation editor switching to the Action Editor will reveal an Action linked to the active sequence. With a sequence then available make sure the Armature is in Object Mode (switch from Pose Mode) and selected. From the File menu select Export then FBX (.fbx), that’s File » Export » FBX (.fbx). In the File Browser that appears, bottom-left set Selected Objects (Main), disable Add Leaf Bones (Armatures), NLA Strips and Force Start/End Keying (Animation). Change the file name and save location as needed then click the Export FBX button top-right to generate an FBX.

If export to FBX fails, as an alternative make sure nothing in the scene is selected then export to force Blender to include all the data it finds, which can then be sorted on import into IMVU. This may also need to be done depending on whether just an animation is being imported or an entire product, i.e. mesh, skeleton, materials and animation.

FBX export options for animations

Exporting to FBX ensure the Animation options are set correctly to force Blender to structure the file in a way that works for IMVU – NLA Strips and Force Start/End Keying can cause issues if enabled.

Once an FBX has been exported it can be imported into IMVU. Open a new derivable and click the fbx import tab to load the file clicking the + Load FBX button. Select the file and Open into the importer, make sure to select the assets needed then select Import.

Depending on the product type this will either load the file directly into the importer or present the Select Skeleton Root window, select the appropriate option for the product, i.e. the skeleton listed having 86 bones. For poses derive from the Empty Mood product, 10945930. For other product types derive as per product, i.e. furniture, room, accessory, pet, etc.

Make sure to select the correct skeletal structure on impoting the FBX
When importing an pose or avatar animation the Select Skeletal Root dialogue may appear. If it does make sure to select the listing showing 86 bones otherwise the imported sequence won’t work as expected.

Deselect all the meshes and materials leaving only the animation

Depending on how the FBX file was exported from Blender it may include mesh and material data. These can be ignored so deselect in Meshes and Materials leaving only the animation (in Animation).


As discussed above, the point about looped animation is to make something appear to repeat a number of times in IMVU. To do this an action needs to be created that’s set up to accommodate the looping characteristic of the sequence. First click the + Add button in the actions tab to create a new entry and in the Action Parameters section (pale-blue section) set the Trigger to use a word or phrase, e.g. loopyloop, or type stance.Idle to automatically play the animation as soon as the product loads. Set the number of times the action is to loop in # ensembles played, e.g. 20 – 0 loops infinitely; what the action does after playing the animation in After Playing, typically Pick same Ensemble; and Type to set the item the action applies to, Avatar or Room.

This first (upper) section establishes the basic properties of the action itself – animations can play through independently of the action containing them.

Set up an action with the imported animation

IMVU Actions comprise two parts, the overall Action and the Ensembles contained/controlled. The Action section sets the overall behaviour characteristics of the sequence – how it is activated, how often it plays etc…

Once the initial properties are set up the next step is to establish the animations behaviour. This is done in the Ensembles section (salmon/rust coloured area). In Skeletal Animation click the drop-down menu and select the imported animation. In Composition below select Replace to ensure the new sequences over-rides whatever might be playing when its triggered. In # loops type a numerical, this represents how many times the animation will repeat, e.g. 5 to play five times or 0 for infinite loops. Then optionally set the Loop start and end points to indicate where the animation should start and finish, e.g. frame 1 (start) and 60 (end) continuing with the example mentioned above. Once done click Apply Changes to see the animation in action – it will auto-play if set to trigger using stance.Idle, else type the trigger phrase or word, Save and then Upload to publish to the catalogue.

When play is clicked the animation will trigger

… whereas the lower Ensembles section define properties specific to the animation file – which one, whether it loops, and if there are any specific start/stop points.

Updated on July 21, 2023

Was this article helpful?

Related Articles

Discuss this!
Ask questions and get answers in our Creator Discussions.