Tweens

Tweens

carl_joseph_younger
Observer Observer
169 Views
1 Reply
Message 1 of 2

Tweens

carl_joseph_younger
Observer
Observer

Tweens (easing functions) are essential for animating anything in a realistic, convincing or visually pleasing way. In Fusion, animations are basically all linear.

 

Note: It's possible to achieve custom (non-linear) animations using a Motion Study, but it's clunky and limited.

 

It would go a long way if the devs added a dropdown menu to the Transform dialog (inside the Animation Workspace) that allowed the user to select from the most common easing functions. However, it would be especially useful if we could extend that list with custom functions, defined using the API.

 

I'd like to suggest support for a new type of Python program, called a tween. Tweens would function like scripts and add-ons, but with a different entry point and lifecycle (and their own directories within the filesystem).

 

A tween would define a single entrypoint named f that is expected to be a pure function that implements a mathematical easing function (so it takes a normalized x-value, and returns the corresponding, normalized y-value).

 

Fusion would be free to instantiate f and invoke it as required, and to memoize results.

 

Naturally, the Motion Study UI would also be updated to allow the user to apply a tween to a line there too.

 

Note: Easing functions could also be defined by simple expressions (like x**2) inside textfields within the UI.

0 Likes
Accepted solutions (1)
170 Views
1 Reply
Reply (1)
Message 2 of 2

MichaelT_123
Advisor
Advisor
Accepted solution

Hi Mr Carl_Joseph_Younger,

 

Such functionality can already be achieved. How?

  • define the base unitless userParameter ... e.g. call it t0
  • in successive order, define 'sibling' unitless parameters as a function of t0 (and some) ... e.g., t1 = t0^2
  • and another...  e.g., t2 = a*t0 + b*t1
  • and another ...
  • Once satisfied, you can use ts to drive Fusion entities you want, and not necessarily in a linear fashion.

 

Regards

MichaelT

MichaelT