This iExpression links arbitrary keyframed animations to a slider.
- keyframe an animation as usual
- Set the iExpression parameters Frame for Min and Frame for Max to the frames where your keyframed animation starts and ends, respectively.
- Optional: If the slider should have a different range than 0-100, set it in the iExpressions parameters Slider Min and Slider Max
- Create a slider (Effect->Expressions Controls->Slider Control) and connect it to the iExpression
- Apply the expression to all properties you keyframed in step 1
Now the keyframed animation is linked to the slider, i.e. when you move the slider from 0 to 100, the animation plays back (and if you move the slider from 100 back to 0 it plays backwards). This is like time-remapping the keyframes, but instead of time-remapping an entire video clip, it only time-remaps the keyframes of the properties that the expression is applied to.
This character is created with a single shape layer.
First we keyframed the face details to transition from a happy face to a sad face and linked those properties to a happiness slider. Then we used keyframes on the remaining shape paths properties to transition from a slim, bearded character to a fat one and linked those keyframes to a weight slider. Finally, we keyframed the transform properties (scale and position) of the shape groups to shrink the character and linked this animation to a size slider.
Note that each property can only be controlled by one slider. If you want to transform a shape based on multiple sliders, you can nest the shape inside multiple groups. Since each group has its own transform controls, nesting into multiple groups allows you to to link each group transform to a different slider. Similarly, if you want to move a layer based on two sliders, you can parent the slider to a null. Then keyframe the movement for the first slider on the layer itself and the one for the second slider on the parent layer.