Halloween Costume ideas 2015

AN / Loops, Beats, and Patterns 1



After a while, I realized that Procedural Animation is really different from Manual Animation. Both creates movements and beautiful visual that can entertain many, but the thinking is different. This is probably obvious for long time animators that got exposed to both. Not something that you need to think about, when working. It just happens.

What I mean by Manual Animation in computer is what is rooting originated from Traditional Animation, frame by frame, pose to pose. We can more about the pose of characters, or how non animated objects can tell story.

Procedural Animation, however, it is more like about automation. Generated. Sometimes accidental, sometimes complex to create. But more closely related to the beats of music.

NOTE:
If you happened to know any "Animation Mentor" students, they might mention "beats and rhythm in animation" while animating a character. It's advanced stuff.

I have personal interest in both manual and procedural animations. Sometimes I think manual animation is too tedious, some can be automated, like Walk Cycles. Currently the best usage of generated animation and real animation is in robotic or video games industry.

ELECTONIC MUSIC

Talking about beats of music, I think creation of procedural animation can learn by observing electronic music, sampling and loops.

Few apps for iPhone and iPad gave me this inspiration to write this article:

  • Auxy
  • KORG iDS-10 (like Nintendo DS one)
  • Loopy HD

Those example apps basically allow user to create musical loops. If you can get a hand on it, it's highly recommended. Watch some YouTube DEMO it will help you to understand what I am attempting to do here.

Apple's Garage Band does this too, although not so obvious. Basically any music apps or programs out there, for PC or Linux, that actually loops sampling and show MIDI UI is nice.

Some AN developers actually have similar ideas. But I think it's a pending task. Basically a way to make it easier to construct animation in Blender, using Animation Nodes, in a way we can create songs using MIDI apps. It's in the AN Github forum somewhere.
https://github.com/JacquesLucke/animation_nodes/issues/332

Which leads me to this forum thread: (but I have not checked it)
http://blenderartists.org/forum/showthread.php?378208-Add-on-AddMIDI

In short, I am attempting to visualize AN to use: BEATS and LOOPS and PATTERNS to MAKE PROCEDURAL ANIMATION.

PROCEDURAL ANIMATION LOOPS

Before I jump right ahead trying to build node tree of LOOPS that further LOOPS, and get complicated, I will start simple.

(Actually, this is my 3rd time trying to get my head around how I could write this and explain my thoughts. I make 3 different node trees trying to achieve similar thing.)

I need to make a very simple node looping thing.

Let say, create animation of a jumping / bouncing Suzanne head. All procedurally created, and the animation will simply loop. But the height of jump of Suzanne needs to be able to be controlled per beat or depending on pattern.

Do you reckon you can make this?

IDEA 1:
You can use some math expression to achieve bouncing effect. You learned this already if you happened to read my old, old article. It's using the SINE and ABS you can create this bouncing motion animation.

I did try it using AN Expression, the math.sin() formula is a bit strange that it ask for Radian... anyway, see the last image in this article to see my attempt.


IDEA 2:
To actually create and using Animation Curve. Wait... did you say Anim Curve? Isn't that a Manual Animation? Semi-Procedural animation, I think it's the most correct term.

I mean, creating certain animation Curve using Math Formula... c'mon, it is stupidly complex and unnecessary for artists to having to create formula for a curve. A much better thinking is to visually create the curve and further use it procedurally.

So in procedural animation, we should care more about animation curve in between keyframes and how we can break them into elements.

The node tree I built looks like below:



I really started from "Interpolation from Curve Mapping". That is my very 1st step.


I quite like this node. It is visual. Kind of like something that can be use to "Ramp" values and maybe to create random looking curve, and can be used for lots of things.

I think the node has a bug that is causing it so the first and last value has "jump". But if we use Debug Interpolation node as viewer, we can see the real value being sampled from 0 to 1.


Next thing I did is to use the Evaluate Interpolation node. It's obvious node to use for this case. We just want to "translate" that Anim Curve into animated value, that we can use to animate any object in 3D scene. Just the Translate Z value of an object, in this case.

You see how I use Time Info and Repeat Time (it's looping!) to control the looping jump motion. It's really easy up to here.

Next, I add some more nodes just to MIX thing a bit.


Above, I am using a simple list in "Text". The text looks like this:
1, 0, 1, 0 ....

Some kind of pattern value that generates number list to be used to mix and multiply the translated Anim Curve values.

This way, I can make the bouncing goes like this:
BOUNCE, OFF, BOUNCE, OFF.

If we use values like this:
2, 6, 3, 2, 2, 1, 2

It will translate to the jump so the jump heights changes depending on how it multiply the curve. Very neat actually!

START THINKING ABOUT LOOPS...

So.... from here, really you can sort of starting to get an idea how we can utilize LOOP to make animation that actually does look natural and believable and the cool thing about procedural animation, is we can quickly create variations.

I leave it here for now. But you go ahead.

Roughly, I think it's possible to create a "MIDI like animation loop" setup using AN, without visual. It's just by using that Text Pattern thing.

1, 0, 0, 1, 1, 0, 0, 1
1, 0, 1, 0, 1, 0, 1, 0
etc.

You can use this for many things:

  • to animate Lights in Cycles
  • to animate traffic lights
  • to procedural animate based on MIDI

I need to look for more inspirations around. Maybe by learning already existing works.

Few things I found during my study:

  • Blender's Time Line started from frame 1, start using frame 0
  • Start thinking about Length of animation for main loops, let say, we have the running timeline, which extend continously. But maybe our loop is 200 frames. Maybe our LOOP has 4 BEATS (it can be 4, 8, 12, etc) , each BEATS is 50 frames in length. 

ANIM CURVES or MDD CACHE?


Below is the big node tree I first built when I was marking around to get AN to repeat beats patterns and move every click and loop back.

One Loop can goes to the next Loop or branching. But then it started to become like game animation?

I think it can be simplified, really, become AN GROUP node that just does the job.

Here, all the loop is just a single value for an attribute. It's the most basic, elemental. Would be nice if we can utilize something like MDD animation or cached animation.

Or even Blender's own Action, if that's simpler for mind. 

I personally don't quite understand animation like NLE, or layering of animation. I sort of can think animation in term of BLOCKS, BLENDING, but maybe noding is needed too somewhat to have more control.

Mind you also that this loop business, it's really similar to programming too. But just a bit more visual and easy to understand that we use node. 


Silly attempt to try looping.

PATTERN GENERATOR EXAMPLE

This might be useful for you.




A CHALLENGE:
Animation spider legs procedurally using the method above?

Post a Comment

MKRdezign

Contact Form

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget