ApplyEasing
From GECK
A function added by the ShowOff NVSE Plugin version 1.40.
Contents
Description
Applies an easing function to an input value (assumed to be between 0-1), to specify the rate of change of that input over time, and returns that eased value.
The easing function to use is specified via easingFuncName (which is NOT case-sensitive). Possible values are in Notes. easingMode is used to specify the mode of the easing function. Possible values:
0 = EaseIn 1 = EaseOut 2 = EaseInOut
Returns -1 if the operation was not successful (example: invalid easingFuncName string).
Syntax
(easedValue:float{0-1}) ApplyEasing input:float{0-1} easingFuncName:string easingMode:int{0,1,2}
Or:
(easedValue:float{0-1}) Ease input:float{0-1} easingFuncName:string easingMode:int{0,1,2}
Example
float fCurrentTime float fTotalLerpTime float blendX float fT float oldx float newX fCurrentTime += GetSecondsPassed if (fCurrentTime > fTotalLerpTime) fCurrentTime = fTotalLerpTime endif fT = fCurrentTime / fTotalLerpTime fT = ApplyEasing fT "Sine" 0 ; Ease in blendX = Lerp oldX newX fT
Example of using Lerp with this function to introduce a curve to the motion.
Notes
- Visual examples of each easing function available here. The same code from that resource is used here.
- Easing function names for easingFuncName:
Names (case-insensitive, only needs to match the start) |
---|
Sin |
Cub |
Quint |
Circ |
Elastic |
Quad |
Quart |
Expo |
Back |
Bounce |
See Also
- ApplyEasingAlt - same as this, but using an integer to specify the easing function.
- Lerp