Open squidge-in-the-fridge opened 7 months ago
I would also really like to see animation smooth/lerp and animation stacking as with just these two things a lot can be done with the animator. It would also open a lot more possibility for NPCs in worlds.
Is your feature request related to a problem? Please describe.
This feature request is related to a handful problems that exist with the currently onboard Animator component (as of version 2.12.1430). I'm doing some work in creating a realtime animation switcher for character and avatar animations, but the workflow process and the resulting quality of animation output can definitely be improved upon.
When a new animation is loaded to an Animator component, all animation drives (including nulled ones) load simultaneously, resulting in a lag spike while animation switching as many tracks are loaded at once (183 tracks in my use case).
The Animation component's fields are bound to the sequence of their field numbers, rather than being explicitly cast to the fields themselves. This means deleting a field (so as to reduce animation tracks loaded for faster performance) end up offseting and breaking the animation's original references.
https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/136508754/cdef52b6-3c65-4071-b611-d440802b4870
Animations flicker while transitioning between playing.
https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/136508754/7342cb32-339a-404e-b1f6-a1b2d98968d1
https://github.com/Yellow-Dog-Man/Resonite-Issues/assets/136508754/d4e25d17-4b7e-4e13-9bf0-333d54533e24
Describe the solution you'd like
I'd primarily like to see the the flickering on animation load be fixed, something to support the tweening and/or smoothing of animations be added, as well as an 'add animation clips to individual slots' import option mentioned later in this section.
In addition, some animation-related components and nodes could be added as well if desired:
StaticAnimationProvider can have an additional string field for the imported animation name.
An 'import animation assets to their own slot' feature on model import sounds like it can be useful. When the animations are imported, they are imported in the sequence that their actions are ordered in.
More labeled data on StaticAnimationProvider.
A model import option to auto add animations into their own named slots, based on animation name and import order.
Describe alternatives you've considered
One thing that's possible to fix lag spikes on animation load, one can use the SampleValueAnimationTrack node to only load specified nodes and channels:
It has also been mentioned by luxkitty that animation smoothing and potential anti-flickering can be made in game as well, but would require a pretty expensive setup to get working, both in performance cost and labor, that would require three animation rigs in total. One as a source animation, another as a destination, and the third as a result that actually drives the mesh transformation. This sounds like it can work but sounds like a pretty arduous workaround for something that would be much better natively implemented.
Additional Context
No response
Requesters
meeshuggah, luxkitty