Control End Animation Position with Slider
This After Effects expression is designed to control a property’s value using a slider based on the time between two keyframes. Here’s how it works step by step:
if (numKeys > 1) { key1Time = key(1).time; // Time of the first keyframe key2Time = key(2).time; // Time of the second keyframe key1Val = 0; // Value at the first keyframe (start) key2Val = thisComp.layer("Expression Controls").effect("Slider Control")("Slider"); // Value controlled by the slider sliderVal = ease(time, key1Time, key2Time, key1Val, key2Val); // Interpolation using ease function based on time between keyframes } else { value; // Return the current value if there's only one keyframe }
- Controller Setup:
- First, you create a new empty shape layer named “Expression Controls”. This layer will serve as the controller layer for any expressions in your composition.
- On this layer, you add a “Slider Control” effect. This slider control will be used to control the property value on another layer.
- Path Creation:
- Create a second shape layer and draw a path using the pen tool.
- Go to
Window > Create Nulls from Paths
, and select “Trace Path”. This action converts the path into keyframes on a null object. - Ensure the “loop” option is turned off for the path animation.
- Add a start point keyframe at 0% and an end-point keyframe one second later at 100%. This animates the path from start to finish over one second.
- Expression on Progress:
- Apply the expression from above to the progress property of the path animation
Explanation of Expression:
- The expression first checks if there are more than one keyframes (
numKeys > 1
). If not, it returns the current value (value
). - If there are two keyframes, it retrieves the time and value of each keyframe.
- The slider control on the “Expression Controls” layer determines the value at the second keyframe.
- Using the
ease()
function, the expression interpolates between the values based on the time between the two keyframes. This ensures smooth animation between the two values as the path progresses. - The interpolated value is then assigned to the
sliderVal
variable and returned.
Leave a Reply
Want to join the discussion?Feel free to contribute!