[Bf-funboard] IPO Interpolation
Robert Wenzlaff
bf-funboard@blender.org
Wed, 01 Oct 2003 10:55:29 -0400
At 12:18 AM 10/2/03 +1000, you wrote:
>I agree that the IPO's overshooting is very annoying (particularly when it
>involves an object's position). The default shouldn't do that...
>BTW, you can press "V" to adjust the IPO's as well...
>- Luke.
I've been thinking more about my method (even though I had the hotkey
wrong, I might be thinking Shift-S-H, which would select the Horiz. member
by name instead of number).
Changing the default behavior of auto handle could potentially break older
.blend files. (ie; user struggles to kill overshoot by hand, and we change
his handles and it now undershoots).
So there are three ways of tackling this. Either a new handle type, which
exhibits bezier ("B") behavior on constant up or down slopes, (
consecutive increasing or decreasing Y values), and Horizontal ("H")
behavior on peaks or valleys. This is not backwards compatible, since
older revs won't know what to do with the new type of handle.
Two, change the default behavior of adding new IPO points to alter the
behavior of the points based on the delta Y of the points to either side.
This has the advantage of backwards compatibility since it introduced
nothing new. However it doesn't handle editing a curve ("B" point in
middle of two "H" points (HBH) is dragged to become peak. It should be
HHH*, but stays HBH).
*actually the outer points now depend on the two points outside that
depending on whether they now form a peak or a constant up/down slope. But
there's too many combos to list here.
A third way of handling this would be to make an "Ease in" flag in the IPO
data, and change the handle types on the fly when editing. This stays
backward compatible, since older revs will ignore the extra flag, but the
handles are saved as their last B or H state. Forward compatibility is
handled with revision codes, old .blend file IPOs have this flag
cleared. Even though the default should be to have it set, IMHO.
Bob Wenzlaff
(aka Det. Thorn)