Importing Existing Animations

To import animations, you will need a rig. See the Importing/Exporting SM64 Geolayouts documentation or use the Example Mario Model

Enable “Show Importing Menus” in the “SM64 General Settings” panel.

SM64 Animation Inspector with the importing sub-panel opened

After that, the sub-panel “Importing” under “SM64 Animation Inspector” will be visible.

SM64 Animation Inspector with the importing sub-panel opened
Set “Type” based on your import goal and follow the relevant instructions:

Importing Existing Animations (C)

Presets:

  • Use the search button next to the “Preset” dropdown.

  • Enable “Read Entire Table” to import all animations (default), or disable it to select individual animations (use custom for a specific index).

Custom Presets:

  • Select “Custom”, choose a folder/file, or set the decomp path in the importer or general settings.

  • Enable “Use Custom Name” for original names.

See General Import Settings for more.

Importing Existing Animations (Binary)

Setting Up the ROM

You will need an extended ROM (unless you only want to import Mario’s animations, which are uncompressed).
For this, you can use ROM Manager or alternatively sm64Extend.

Enable “Show Importing Menus” in the panel “SM64 General Settings”. Then set the “Import ROM” to your extended ROM’s path.

Presets:

  • Use the search button next to the “Preset” dropdown.

  • Enable “Read Entire Table” to import all animations (default), or disable it to select individual animations (use custom for a specific index).

Custom Presets:

  • Select “Custom” in the “Preset” dropdown.

  • Configure the following options based on import type:
    • “DMA”: Import from a DMA table (Mario), you will need to set the “DMA Table Address” to the address in ROM.

    • “Table”: Import from a table, you will need to enable/disable “Is Segmented Address” and set the address of the table, set “Level” to a level where the table is loaded.

      To import the entire table, enable “Read Entire Table” (on by default), otherwise choose an index.

      Enable “Check NULL Delimiter” if the table’s last element is a NULL (0x00), otherwise set “Size” to the amount of elements if you have “Read Entire Table” enabled.

    • “Animation”: Import a single animation, you will need to enable/disable “Is Segmented Address”, set the address of the animation header and set “Level” to a level where the animation is loaded.

  • Enable “Ignore Bone Count” to ignore the bone count of the target armature, this is necesary for when headers have a different bone count than the target armature.

Importing Existing Animations (Insertable Binary)

There are no presets for this type.

Enable “Ignore Bone Count” to ignore the bone count of the target armature, this is necesary for when headers have a different bone count than the target armature.

Table Import Settings

When importing an insertable binary file of table type (4), the settings under “Table Imports” are used.

  • To import the entire table, enable “Read Entire Table” (on by default), otherwise choose an index.

  • Enable “Check NULL Delimiter” if the table’s last element is a NULL (0x00), otherwise set “Size” to the amount of elements if you have “Read Entire Table” enabled.

General Import Settings

The built-in animation f-curve decimate operator can be used to automatically clean up animations on import. Enable “Run Decimate (Allowed Change)” (on by default) to use it.
This is recommended for the ease of editing animations. The default error margin should keep the animation visually intact.
Be warned this can be a bit slow.
For armatures without actions, enable “Force Quaternions”, this sets all the animated bones in the armature to the quaternion rotation mode, which prevents gimbal lock.
Alternatively, enable “Continuity Filter” (on by default) to at least fix any existing gimbal lock in the animations.

Enable “Clear Table On Import” (on by default) to clear the table elements of the armature on import.

Finally, select your armature and click “Import Animation(s)”.