Hi, i've been trying to mimic overgrowth's approach to animations in unity (you can find the explanation here) and i was wondering if uMotion could help me in achieving that.
In short what this method involves is having very few keyframes and interpolating between them using curves, which is perfect for prototyping. For example a walk loop can be done with only 2 frames.
At first i got this done by splitting keyframes into animations (thus animations with only 1 frame), putting them in a blend tree and switching between them using a script. This however has a few issues: the mecanim graph becomes exceedingly complex over time, i need a script to handle the animations and animation speed is ignored (as the script sets in which point of the animation i'm at every frame).
Using transitions isn't a good solution either since it only provides linear interpolation.
So the only solutions i'm left with are baking keyframes into an animation and dealing with the playables API.
The former method would be handier as it'd allow for quicker development by letting the animator see the changes very quickly when making changes, plus having the final output be contained in an animation file means it's possible to make it work with mecanim as well.
The issue is that each property has its own curve, both in uMotion and in unity's own animator window, meaning that in order to do an "ease in" curve (as an example) i'd need to change the right tangent of every property for the specified node, which for a humanoid character can easily mean changing 50+ curves, while more complex curves would be essentially impossible.
As for using playables, clips do support ease in and ease out curves which can be used alongside single frame animations to get the desired result, but i'm still clueless as to how that would work when putting everything together (such as using them in blend trees for example) and i've yet to see examples of characters controlled via playables that don't involve janky scripts.
The ideal solution would be to have a single interpolation curve within uMotion itself. In a new or imported animation it'd just be a line going from 0 (start of the animation) to 1(end of the animation). It might be better/worse to have a curve for each keyframe.
Or alternatively a "speed" curve that in a new or imported animation would sit at a value of 1, allowing for a very similar effect but in a way that is probably easier to execute (as it'd be a matter of changing how long each frame lasts based on the curve).
In both these cases it'd be possible to quickly create more natural animations (for example making a decent looking jump animation becomes trivial with this approach) while possibly leading to a fully finished animation (overgrowth's character animator uses less than 20 keyframes!) just by refining it.
Is this already possible with uMotion in some way?
If not, would you consider adding this feature? And do you know how i could tackle this animation approach (either through playables or with other software that has the feature i'm looking for)?
Thank you in advance! :)
Customer support service by UserEcho