Skip to content

Conversation

@Lilaa3
Copy link
Collaborator

@Lilaa3 Lilaa3 commented Sep 30, 2024

Wouldn't it be funny if this was approved, just like, instantly
Based on prs: #449 , #393, #450

Fully rewriten animation exporter and importer, with some code I'm proud of and some code I probably kept from a year ago (be harsh as needed)

  • Redisigned to work with the combined exporter (unintentionally)
  • Support for everything and anything vanilla can do, all previous features and workflow carried over as best as possible without decreasing features for users who want everything
  • Supports C, binary and insertable binary for both imports and exports
  • Brand new workflow with table exports now being an (the default) option
  • DMA animations are now not a pain in the ass for either binary or C (you're welcome everyone that asked me to do it) (binary reimports the DMA table and exports with the new action, reordering everything that needs to be reordered and compressing)
  • All flags supported + custom, now per action
  • Enums (A bit proud of how well those work)
  • Multiple header (variant) animations
  • References (for animation data and table elements)
  • Easily replace vanilla animations
  • Binary now uses a behavior address with presets instead of animate and load command addresses
  • Custom loop points (start frame works wha!)
  • Quick data read for simple rigs (read from f-curve)
  • A lot of little quality of life improvements

anim_test_impor_allt_script.py for testing all import presets

TODO (up for review because code is "done" (as in if I keep trying to find issues on my own for the next months I'll cry)):

  • Finish docs

@avereyishere
Copy link
Contributor

avereyishere commented Oct 1, 2024

import c animations actually fucking work, i worship lila from now on, W Lila

@Lilaa3 Lilaa3 added enhancement New feature or request test please Ask that some other Fast64 dev tests the feature/... sm64 Has to do with the Super Mario 64 side codebase Code maintenance/cleanup labels Oct 1, 2024
Copy link
Contributor

@avereyishere avereyishere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Animation I/O works from C to Binary and the false bounds detection works

@Dragorn421
Copy link
Contributor

You mention this is based on other PRs, so are these other PRs to be merged first?

Copy link
Contributor

@YoshiMilkman YoshiMilkman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great. Been using it for DMA animation exporting with a custom Mario rig. Nothing else in Fast64 seems broken. Been using for a few weeks now.

@Lilaa3
Copy link
Collaborator Author

Lilaa3 commented Oct 14, 2024

You mention this is based on other PRs, so are these other PRs to be merged first?

Ideally, obviously no pressure since the smart includes pr is niche, i just incorporated it for the simple actor include write function (oh and the useful functions for the table update function!)

@Lilaa3
Copy link
Collaborator Author

Lilaa3 commented Oct 14, 2024

Also worth mentioning that I could always remove non animation data from the actor presets until we actually use them, I just thought scut would benifit from them in her importer pr #198
Test script uses them tho since it imports all animated actors' geolayouts and animations.

Copy link
Contributor

@Reonu Reonu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been on this branch for a while and everything seems okay, I used it to develop the entire desert mario 2 hack

Verbose documentation like docstrings is.. not my strong suite
@avereyishere
Copy link
Contributor

Why's this still not merged?

@avereyishere
Copy link
Contributor

.......

Copy link
Collaborator

@jesusyoshi54 jesusyoshi54 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically good, seems like people have tested it a bunch so that is a good sign that it works.


### Animating Existing Geolayouts
Often times it is hard to rig an existing SM64 geolayout, as there are many intermediate non-deform bones and bones don't point to their children. To make this easier you can use the 'Create Animatable Metarig' operator in the SM64 Armature Tools header. This will generate a metarig which can be used with IK. The metarig bones will be placed on armature layers 3 and 4.
### TODO: Link to animations docs
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When are you going to do this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jesusyoshi54 jesusyoshi54 added the merge soon Will be merged in a few days at most if nothing else comes up label Aug 18, 2025
@Lilaa3 Lilaa3 merged commit 8853a48 into Fast-64:main Aug 21, 2025
1 check passed
@Lilaa3 Lilaa3 deleted the animations_rework branch August 22, 2025 12:57
@avereyishere
Copy link
Contributor

yay!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codebase Code maintenance/cleanup enhancement New feature or request merge soon Will be merged in a few days at most if nothing else comes up sm64 Has to do with the Super Mario 64 side test please Ask that some other Fast64 dev tests the feature/...

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants