Finally, we arrived to "animation" topic! EXCITING!
So far, YOU should be more familiar with how AN nodes can custom control your 3D object:
- Tranformation (translation/position, rotation, scaling)
- Loops
- Numbers
- Text / String
- Instances
All these components and concepts not easy, but once understand everything makes sense. You could skip previous articles, and make this article your start, however I want you think as a whole.
SIMPLE ANIMATION SETUP
Above is my recommendation for absolute beginner node setup to create animation using AN. Imagine a single 3D object transform that you will control using AN. Later on, you will learn how to control and animation ANY attribute of an object.
(I am actually very curious how AN will handle Blender Bones / Armature Skeleton, if it gets developed into that area. We will wait and see.... it's my wishlist for Jacques and AN developers :D)
OK let's break down the network above.
Our main focus node is "Animate Matrix" node. It has every INPUT slots we need for now.
If you Ctrl+A and search-create AN node, it will give you list of nodes that deal with animation.
- Animate Matrix deals with whole transform (translate, rotate, scale)
- Animate Vector deals with vector / 3 values.
- Animate Float deals with a floating value.
- Animate Color deals with color.
- Animate Euler and Quaternion, my guess, is dealing with angle.
Like mentioned in previous blog post, animation will deal with Time, Start, End, Interpolation and Duration. All those data will be handled by AN animate nodes to create animation.
TIME: For Time input, we can just plugin the "Time Info" node. That is the simplest. However, I like to use "Repeat Time" node as well, so that we have more control on the behaviour of animation. I set it to "Loop" so that the animation will loop overtime.
START and END: For "Animate Matrix" node obviously we will need Matrix start and Matrix end, so we use "Compose Matrix" node. Don't be scared by the name, just think of this as a node that will provide a transformational data for an object. Think: translation, rotation, scale.
INTERPOLATION: You can use your own curve drawing using "Interpolation from Curve Mapping" node. Or for simplicity, you can use Blender's own interpolation curve presets shown under "Construct Interpolation" node.
Now, the Curve presets we have are like below:
I am very tempted to try to describe each and every curve interpolation preset here, but it is best when you view it yourself animating the object.
I will create Animated GIF to give example result.
ANIMATION GIF EXAMPLES
(I will add GIF later... maybe)
The idea is really to "trace" or project a single motion of attribute, and so you can really see how the curve actually looks like, to cause a particular motion (fast, slow, slowing in, bouncing, etc) when the value travel over time.
Of course, if you are animating a character, your pose, silhouette, you probably care less about the graph or animation curve between keyframes. However, for lots of procedural animation, this basic curves are something you want to know really well.
In the meantime, there is this really beautiful GIF animation from this website:
http://1ucasvb.tumblr.com/post/44666043888/easing-functions-are-an-immensely-useful-tool-for
Borrowed from http://1ucasvb.tumblr.com |
DEBUG INTERPOLATION
You see,"Debug Interpolation" node here is also used so that we can see the resulting anim curve in a bigger picture. For interpolation such as "Bounce" we can have the effect for both at the easeIn and easeOut, OR either easeIn and easeOut.
Remember to think simple for now:
ANIMATION = INTERPOLATION between 2 VALUES over TIME.
Happy animating...! 🤓
Post a Comment