Class InterpSetting
Version added: before 9.5
To create a new object of this class, use the following:
- Local variable:
- Global (see Script Structure about conventions for naming globals):
val1 and val2 have specific meanings for different interpolation types:
INTERP_NOISY
val1 = noise amplitude: how far from the previous position the "jump" might be. (The magnitude and direction are random.)
val2 = noise scale: Whilst the UI refers to this as "Scale" it is better defined as "Frequency", i.e. how often a new position is created in time. The value in the API is the inverse of that presented in the UI. (e.g. UI says 10, script will see 0.1). Empirical observation suggests that the UI-number is the number of frames between position recalculation. IOW a script value of 0.1 is "recalculate every 10 frames". Fractional values do not appear to generate any sub-frame animation, but if an value of 0.1 is entered in the UI (or a script provides a value of 10), it appears that every frame the item actually jumps by the (vector) sum of 10 jumps.
INTERP_CYCLE - val1 = relative starting frame (count back this many frames and start again), val2 = absolute starting frame (count back to exactly this frame, use -1 to ignore this field)
INTERP_POSE - val1 = index to the pose
- Local variable:
local interp = MOHO.InterpSetting:new_local()
- Global (see Script Structure about conventions for naming globals):
XX_interp = MOHO.InterpSetting:new()
val1 and val2 have specific meanings for different interpolation types:
INTERP_NOISY
val1 = noise amplitude: how far from the previous position the "jump" might be. (The magnitude and direction are random.)
val2 = noise scale: Whilst the UI refers to this as "Scale" it is better defined as "Frequency", i.e. how often a new position is created in time. The value in the API is the inverse of that presented in the UI. (e.g. UI says 10, script will see 0.1). Empirical observation suggests that the UI-number is the number of frames between position recalculation. IOW a script value of 0.1 is "recalculate every 10 frames". Fractional values do not appear to generate any sub-frame animation, but if an value of 0.1 is entered in the UI (or a script provides a value of 10), it appears that every frame the item actually jumps by the (vector) sum of 10 jumps.
INTERP_CYCLE - val1 = relative starting frame (count back this many frames and start again), val2 = absolute starting frame (count back to exactly this frame, use -1 to ignore this field)
INTERP_POSE - val1 = index to the pose
Methods of InterpSetting:
Name | Returns | Description | Ver |
BezierInAngle BezierInAngle(component) | real | < 9.5 | |
BezierInPercentage BezierInPercentage(component) | real | < 9.5 | |
BezierOutAngle BezierOutAngle(component) | real | < 9.5 | |
BezierOutPercentage BezierOutPercentage(component) | real | < 9.5 | |
IsAdditiveCycle IsAdditiveCycle() | bool | Returns true if the cycle is additive. | 12.0 |
Reset Reset() | void | < 9.5 | |
SetAdditiveCycle SetAdditiveCycle(b) | void | Sets the cycle to be additive or not | 12.0 |
SetBezierInAngle SetBezierInAngle(component, angle) | void | < 9.5 | |
SetBezierInPercentage SetBezierInPercentage(component, percent) | void | < 9.5 | |
SetBezierOutAngle SetBezierOutAngle(component, angle) | void | < 9.5 | |
SetBezierOutPercentage SetBezierOutPercentage(component, percent) | void | < 9.5 |
Properties of InterpSetting:
Name | Type | Description | Ver |
flags | < 9.5 | ||
hold | int32 | how many frames to hold the previous value before interpolating to the next | < 9.5 |
interpMode | int32 | < 9.5 | |
interval | int32 | 1 to interpolate every frame, 2 to animate on 2's, 3 to animate on 3's, etc. | < 9.5 |
stagger | bool | Added in version 10 | 10.0 |
tags | int32 | Used for keyframe color, and possibly other stuff in the future. The color codes are the same as for bone tags. | < 9.5 |
val1 | real | < 9.5 | |
val2 | real | < 9.5 |