So, I’ve admittedly got a bit of a strange setup going with my character models and how they are animated, so this might be far beyond the use-case of Unity’s animator but I’ll shoot my shot anyway.
All of the character models in my game have a script attached to them that (among other things) change the sprite of their face to one that matches the specified ID (stored as a public int, when it changes, the sprite changes)
This is the property in question, “Expression ID”
I’ve been animating this int through Unity’s built-in animation system and using “constant” on both tangents to make sure it’s going to the right IDs directly and not interpolating between them which was fine until I started using it to interpolate between animations in the animator.
This is how the animation curve for this property looks in the animator
This is the animator transition that’s interpolating between the two animations.
When it interpolates, if it’s interrupting an animation that had the face ID at 6, with one that has an ID of 0, it would quickly switch between 6, then 5, then 4, 3, 2, 1 and finally 0, all within the span of the transition duration, which is not ideal to say the least.
Basically, is there a way to set a bone or other animatable property to ignore the animator’s transition’s interpolation?
Worst case-scenario I’ll either just not interpolate any of the animations that have faces besides the default, but I’d like to solve this if possible.
I realize that this could probably be solved by using an enum for the value of the face, but because of the kinda funky setup going on that’s not really an option. (ID refers back to a scriptable object with a list of faces, this list is of variable length, so enums won’t really work)
Either way, thank you for reading and for your time!