I’m setting up a fairly simple cutscene where I rotate an object around a central point. Over the course of the cutscene, I want the rotation to speed up and slow down occasionally, for dramatic effect. However, “Rotate By” isn’t cross fade-able, so I end up with stuff like this:
I can adjust the easing used by the different clips, but it’s pretty difficult to smoothly go from one rotation speed to another, since the curves don’t smoothly connect from one clip to another.
So what I’m trying to do is rotate something over time, where the RPM of the rotation can gradually change.
I tried making a cross fading version of Rotate By, but I ran into trouble because Rotate By simply sets the rotation, rather than adding to the rotation, so I couldn’t find a way for two overlapping clips to both contribute to the rotation.
Is there some other approach I could take here to adjusting rotation speed, while still previewing properly in the editor?
Unfortunately clips like Rotate By (and similar) are not cross-fadable as you found out. That is because the clips are self-contained in what they do (eg rotate the object). That would also be the case if they were “adding” instead of “setting” the rotation however, since the rotation would need to be added on a “reference pose” which would only be able to set/store properly when the clip “enters”. I have already tried turning everything cross-fadeable in the past and it is much harder that is sounds to be honest (and required a heavy refactor to the core if to be done) for such clips such as Rotate By.
Thus, the best solution right now to achieve what you want, is probably to use the Animate Propertis clip and keyframe the rotation property of the object instead, using curves to fine tune the animation to your heart desire.
I was looking at this again after having worked with the Final IK extensions, and wondered why Slate didn’t include just a general purpose “Animate Transform” action clip. The downside to using the ultra-generic “Animate Property” to control position and rotation is that it doesn’t provide you with a position/rotation handles. Other clips, however, like “Look At”, or “Animate Biped Limb” nicely control position and rotation with convenient handles. I looked around, but I couldn’t find something like “Animate Biped Limb” that worked on plain old transforms.
So, I made this one, which is basically a mix of the approach from “Animate Biped Limb” and “Look At”. I posted it on the Custom Clips forum:
For how simple this clip is, I was constantly second guessing myself about whether it already existed in Slate. Please let me know if it does, or if you know of a reason why this sort of clip would run into problems.
Hmm.. As explained in your other post, the Animate Transform clip, does provide a 3D animation curve as well as handles in the Unity Scene View. Please note that the handles only show if the keyframe is set to be anything but auto though, since in Auto mode the keyframe tangents are automatically set.
Please let me know if that works for you. I will also take a look at your custom AnimateTransform more closely and see what the differences may be.