Movement over Time is a high level library for creating any kind of transition that takes place over time. Movement over Time is kind of like a tween system, but it is designed from the ground up to work in 3D environments. Traditional Tween systems like iTween and DoTween cannot produce free movement in three dimensions, since the idea was originally designed for cartoon animation.
Movement over Time is a more grown up version of a Tween system, and it's built on top of MEC which allows it to run a lot faster, allocate hardly any memory, and give you complete control to customize every aspect of every movement.
A free version of MEC is included in this package. It can be updated to the latest version or replaced by MEC Pro. It is also compatible with the other plugins for MEC.
Movement over Time allows you to hook into any object and run any value attached to that object through a sequence of changes over time. All you have to do is define the effect and then call Movement.Run.
Movement over Time also allows you to take any sequence and change that sequence's concept of time independently of all the other sequences. You can also run a sequence backwards in time, even looping in reverse. You don't need to know the rate of time that you want the sequence to run in in advance and you can change it on the fly. Running the rate of time of one sequence through it's own sequence based on custom logic is also possible.
Movement over Time can change the position, size, color, or rotation of any object. It works on UI objects like buttons, sliders, or panels, as well as game objects like balls, characters, or doorways. It can hook into and change the public variables of shaders, camera effects, animations, arbitrary scripts, or behind the scene data objects.
If you can access a variable from your script then it can be run through a sequence using Movement.Run.
How It Works
It works like this: You declare a variable that define the key connection points for what you want to move. You then package these references inside a container class. Then you pass the class into the MoT framework and forget about it. The framework then keeps track of the task across multiple frames and does all the math necessary to make a pleasing effect.
Examples
When you want to change a value on a script over time whenever a particular button is pressed.
When you want to move a GUI element across the screen, then make it double in size, and then make it spin cartwheels and turn 20% transparent.
When you want to apply a constant push to an item in your world for 10 seconds, then let it taper off, then do nothing for a random amount of time, before starting the effect over from the beginning.
When you finally find the perfect shader that does exactly what you want it to do, but then you realize that you really need a fade effect between your existing shader and this new one.
Now you can do it, often using a single line of code!
Imagine the possibilities..
Check out this demo scene, which is included in the basic package. Note: The demo scene is compiled in WebGL, so it runs about twice as fast on Firefox as on Chrome.