se_EasyNow - Motion Grafickers second best friend

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

se_EasyNow - Motion Grafickers second best friend

#1

Post by SirEdric » Fri Nov 09, 2018 9:00 am

Back in 2001 a guy named Robert Penner came up with a bunch of easing equations,
which are still used in a wide range of products from Webpages to Animation.
Perfect for Motion Graphics of all sorts where a normal ease-in/-out is just not enough to please the spectator's eye.
And where there's hardly enough time to fiddle with keyframes on a frame-by-frame basis, just to get the motion right.
So wouldn't it be cool to have Robert Penner's bewties in Fusion as well?

Guess what? The wait is over.
Introducing se_EasyNow to turn this
ez_start.png
into this.
ez_inElastic.png
And here's how it works:

1) Setup your animation.
Go ahead. Animate whatever (currently only BezierSplines are supported) to your heart's content.

2) Save your comp!
At the end, this script will bake the animation frame by frame, so make sure to have a safety backup of your original work!

3) Now go easy.
Currently this script only works on the active tool in the comp.
So click on any of your animated tools and run se_EasyNow from your scripts:\comp\ folder.
View the Spline Editor.
Hit Play to see all changes you apply update in (more or less) real time, depending on the complexity of your animation.
Click on the Easing Method dropdown, select a function, or simply use the up/down arrows to step through the functions and see which one suits you best.

4) Buttons and stuff
ez_Interface.png

Live Update
Applies all changes on the fly.
Deactivate this for complex animations and press "Apply" instead to bake the animation.

Skip Static KFs
If two consecutive Keyframes on the same spline have the same value, no animation will be applied on them, thus saving superfluous keyframes.

Verbose
Verbose logging of stuff in the console

Tree View
Now we're talking. On the top level you see the controlID of each Control that is animated on the active tool.
Underneath each controlID there are the sections that are animated. A section is the range between two consecutive keyframes.
By (Un)Checking any of these you can determine where the currently selected easing function will be applied.
Meaning, you can bounceInOut the first section and then apply a different function to the next section.
To do so, select the desired section and the desired function.
When satisfied press "Refresh" to apply your choice to the animation.
Now select a different section and repeat.

All/None/Invert
Does things to the selection in the Tree View. Should be self explanatory...:-)

Amplitude/Power
A few of the functions have additional arguments for Amplitude and Power.
Use these sliders to alter those value or keep them at 0 to use the function's built in default.
You can use the left/right arrows to adjust these, once selected.

Bake Stepping.
By default the Script bakes every single frame.
Adjust the Steps to your liking while monitoring the spline view to make sure that you don't loose any bouncy details.

Apply
This ... well ... actually applies the selected equation to the selected sections.
Not needed when in Live Update mode.

Reset
Reverts everything back to the point where the script was invoked or Apply or Refresh was pressed.
(Basically one level of undo. But just one...:-))

Refresh
Reloads the modified Splines, or switches to another Tool, given you selected a different tool on the flow.
Allows to do other things on other sections/tools without quitting the script.

Close
Will create a huge Black Hole in the middle of your Desk and... no... wait... it just closes the Dialogue without further ado.

Hint:
When playing back your animation in Live Update mode you might want to consider to replace complex, heavily shaded objects
or stuff that requires a lot of upstream rendering with simple placeholders to get "real time"(*) feedback.

IMPORTANT
This is in Beta! Please do expect some things to just not work, and feel free to report them to me!
(e.g.: X/Y Paths on regular 2D Tools will currently just fail royally...:-))


This Script was a bit more labour intensive than others, and I plan to do more to it.
So, if you like it please feel free to buy me a [coffee|steak|car|boat|swiss chalet] by donating on https://www.paypal.me/siredric.

Have Phun!

Eric.


Easing CheatSheet:
https://easings.net/en

(*) I actually sort of hate that phrase, since stuff never *really* worked real time ever since that phrase was coined back in...phew...the mid 90's?
You do not have the required permissions to view the files attached to this post.
Last edited by SirEdric on Sat Dec 01, 2018 3:32 am, edited 7 times in total.

User avatar
SecondMan
Site Admin
Posts: 2806
Joined: Thu Jul 31, 2014 5:31 pm
Location: Vancouver, Canada
Been thanked: 114 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#2

Post by SecondMan » Fri Nov 09, 2018 10:06 am

Wow, Eric. Just wow.

This is terrific, and tremendous fun! Well done! :bowdown:

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#3

Post by SirEdric » Fri Nov 09, 2018 10:12 am

Thanks a lot, my friend! Glad you like it...:-)

User avatar
Kristof
Fusionista
Posts: 447
Joined: Thu Aug 07, 2014 1:30 pm
Been thanked: 6 times

Re: se_EasyNow - Motion Grafickers second best friend

#4

Post by Kristof » Sat Nov 10, 2018 1:34 am

Didn't try it yet, but it looks pretty nice. Thanks, Herr Edric.

User avatar
pingking
Fusionista
Posts: 689
Joined: Thu Aug 14, 2014 9:10 am
Been thanked: 16 times

Re: se_EasyNow - Motion Grafickers second best friend

#5

Post by pingking » Sat Nov 10, 2018 2:10 am

Looks very helpful and amazing

Only suggestion from me: a nice trailer video and a video tutorial. You know (young) people don't read things they just look at YouTube how things work

User avatar
Dunn
Moderator
Posts: 468
Joined: Mon Aug 04, 2014 4:27 am
Location: Hamburg, Germany
Been thanked: 16 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#6

Post by Dunn » Sat Nov 10, 2018 3:38 am

Awesome man ! Just checked it out.

Hope you get it to work with the 2D Transform tools ;-)

mseredkin
One Hundred
Posts: 69
Joined: Mon Sep 15, 2014 9:57 am
Location: Moscow, Russia
Been thanked: 31 times

Re: se_EasyNow - Motion Grafickers second best friend

#7

Post by mseredkin » Sat Nov 10, 2018 10:08 am

An amazing instrument. For daily use in motion graphics. Thanks SirEdric.
P.S. X / Y Paths on regular 2D Tools crashes on any intervention, it looks like it's fusion bug.

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#8

Post by SirEdric » Sat Nov 10, 2018 12:08 pm

mseredkin wrote:
Sat Nov 10, 2018 10:08 am
P.S. X / Y Paths on regular 2D Tools crashes on any intervention, it looks like it's fusion bug.
Nope. It's the way they are connected.
On some controls (most 3D Tools, sliders, etc) the BezierSpline is assigned directly to the control.
X/Y Path is actually an *extra* Tool, connected to the Center control of a 2D Tool.
On that extra tool are then individual inputs for X and Y.
And (finally) the BezierSpline is connected to those...:-)

Added in 52 seconds:
pingking wrote:
Sat Nov 10, 2018 2:10 am
Only suggestion from me: a nice trailer video and a video tutorial.
Once I'm out of Beta...sure...:-)

Added in 1 minute 40 seconds:
Dunn wrote:
Sat Nov 10, 2018 3:38 am
Hope you get it to work with the 2D Transform tools ;-)
Man...the deeper I dig the more trapdoors I find.
Like SetKeyFrames() not working on CubicSplines and some other Splinetypes available in Fusion....:-/

User avatar
SecondMan
Site Admin
Posts: 2806
Joined: Thu Jul 31, 2014 5:31 pm
Location: Vancouver, Canada
Been thanked: 114 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#9

Post by SecondMan » Sat Nov 10, 2018 11:00 pm

For posterity's sake I thought I'd add a screen grab of Robert Penner's easing methods here (copied from his website):

RobertPennerEasingMethods.PNG
You do not have the required permissions to view the files attached to this post.

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#10

Post by SirEdric » Sun Nov 11, 2018 5:42 am

Soooo...a few nasty hacks later this should now work with the majority of 2D X/Y Controls as well....:-)
Currently fails if there is more than one X/Y Control animated on the Tool....:-(
ez_Interface_091.png
Enjoy!
You do not have the required permissions to view the files attached to this post.

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#11

Post by SirEdric » Mon Nov 12, 2018 7:17 am

Just as an update to all those who might be waiting for an update...
For the next few days I'm swamped with other stuff, so please expect a little delay....

User avatar
Dunn
Moderator
Posts: 468
Joined: Mon Aug 04, 2014 4:27 am
Location: Hamburg, Germany
Been thanked: 16 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#12

Post by Dunn » Tue Nov 13, 2018 12:41 am

SirEdric wrote:
Mon Nov 12, 2018 7:17 am
Just as an update to all those who might be waiting for an update...
For the next few days I'm swamped with other stuff, so please expect a little delay....

All good man ! Love the new update! Btw. that Bake Stepping feature is pretty cool 8-) , .. my curves love it too :oops:

zack4d
Posts: 1
Joined: Sun Oct 28, 2018 8:41 pm

Re: se_EasyNow - Motion Grafickers second best friend

#13

Post by zack4d » Thu Nov 15, 2018 1:57 pm

ort/Blackmagic Design/Fusion/Scripts/Comp/se_EasyNow.lua:687: attempt to index a number value

User avatar
SecondMan
Site Admin
Posts: 2806
Joined: Thu Jul 31, 2014 5:31 pm
Location: Vancouver, Canada
Been thanked: 114 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#14

Post by SecondMan » Thu Nov 15, 2018 2:40 pm

@zack4d welcome to the forum.

That must be about the most detailed bug report I've ever seen.

User avatar
SirEdric
Fusionator
Posts: 1222
Joined: Tue Aug 05, 2014 10:04 am
Been thanked: 108 times
Contact:

Re: se_EasyNow - Motion Grafickers second best friend

#15

Post by SirEdric » Thu Nov 15, 2018 9:17 pm

Hi zack4d.

Thanks for the bug report....:-)
While still in beta, line 687 is prone to trying to indexing number values.
This will be fixed in line 689.

Actually, why didn't you try the updated script?
The indexing in line 687 tells me clearly, that you are using version 0.9 as opposed to 0.91,
which already addressed that issue.