Easier animation with Crashcore and additional scripts

Have you come up with a good Moho trick? Need help solving an animation problem? Come on in.

Moderators: Víctor Paredes, Belgarath, slowtiger

User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Easier animation with Crashcore and additional scripts

Post by Rasheed »

If you haven't done so already, I envite you to download the Crashcore scripts from the script forum (see this thread).

It is fairly easy to create this kind of animation:
Image

You just draw your shape in one vector layer, a motion curve in another vector layer, select that curve and copy it, using "CC: Copy Selected Curve", select your shape and using "CC: Paste Curve to Points Position" create the keys. Next you use "CC: Splat Layer Keyframes Interpolation Settings" to set the keys' interpolation type to step. Finally, tweak the bottom positions by using the modified Scale Points tool, to change the height, but not the volume and bottom position.

It seems a lot of steps, but try this manually and you'll see what a time savers these scripts can be.
macton
Posts: 93
Joined: Thu Aug 18, 2005 6:29 am
Location: San Diego

Re: Easier animation with Crashcore and additional scripts

Post by macton »

Just some clarifications...
Rasheed wrote: [...] a motion curve in another vector layer [...]
Is isn't required that the curve be in another layer. I just do it to keep organized.
Rasheed wrote: [...] Next you use "CC: Splat Layer Keyframes Interpolation Settings" to set the keys' interpolation type to step.
You only need to do this if you want stepped animation (e.g. "on twos"). If you want interpolated motion you can skip this step.
Rasheed wrote: If you haven't done so already, I envite you to download the Crashcore scripts from the script forum (see this thread).
I'm glad the scripts are useful enough that you would encourage others to try them! :)

:?: The following description was in a thread in the Bug Reports forum (Here: http://www.lostmarble.com/forum/viewtop ... 75&start=0) but I'm moving it here since it's more of a "tip" and is exactly what Rasheed is describing.
:?: You should also check out the thread on squash and stretch (Here: http://www.lostmarble.com/forum/viewtopic.php?t=2098) which has another good example by Rasheed using the modified scale tool

Image
Part One - Ball Bounce Timing
Image

:arrow: I have a ball and I already know the motion path I want it to travel along. It looks like this:
macton wrote: Image
:arrow: I want to emulate the effects of gravity while at the same time making sure the most important frames are rendered. The frames I want look like this:
macton wrote: Image
:arrow: I create three layers:
macton wrote: Image

1. A "Motion Curve" layer to hold the curve I want the ball to move along.
:!: The points on the curve correspond to the frames I want to render.
Image
2. A "Key Markers" layer to help me visualize the frames.
Image
3. A "Ball" layer
Image
:arrow: I select the "Motion Curve" layer.
:arrow: I select the curve.
:arrow: I use the "CC: Copy Selected Curve" script.
:arrow: I select the "Ball" layer.
:arrow: I select all the points in the ball shape.
:arrow: I use the "CC: Paste Curve to Points Position" script
macton wrote: Image
:!: Start Frame: I want the animation to begin at frame 1
:!: Step By: I want a keyframe every two frames
:!: Normalize Curve: I do not want to normalize the curve. "Normalize Curve" means to create "Key Count" number of keyframes at uniform distances across the curve. I want to just use the points on the curve, so I will leave this unchecked.
:!: Rotate to Face Curve: The ball is a circle, I wouldn't see the rotation so I don't care about it here.
:!: Position Offset: I want the shape centered on the curve, so I set the offset to X=0 Y=0 (i.e. Do not offset)
:arrow: Keyframes for the points have now been generated.
macton wrote: Image
:arrow: By default the interpolation is smooth and looks like this:
macton wrote: Image
:arrow: I want the animation to step "on twos". I'm mostly there at this point since I have the keyframes in the right places but I need to change the interpolation method for all the keyframes to "STEP". To do this quickly,
:arrow: I select the "Ball" layer
:arrow: I use the "CC: Splat Layer Keyframe Interpolation Settings" script.
macton wrote: Image
:!: Interpolation Mode: Step is what I want
:!: Source First Frame / Last Frame: I want the whole animation
:!: Only Apply to Selected Layer: I don't want to change any other layers
:!: Vector Layers -> AnimPos: These are the keyframes I want to change
:arrow: Now the animation is only updated every other frame
macton wrote: On twos: (Although it's a little hard to see in the GIF animation)
Image
:arrow: Here's the final flash animation: http://crashcore.com/public/moho/exampl ... rt_one.swf
:arrow: Here's the final moho file: http://crashcore.com/public/moho/exampl ... t_one.moho (You are welcome to use this Moho file for any purpose.)
:arrow: The scripts mentioned above can be found here: http://www.lostmarble.com/forum/viewtopic.php?t=2448
Last edited by macton on Wed Jan 18, 2006 10:06 am, edited 3 times in total.
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Thanks for explaining, macton. I hope people now realize how powerful these scripts can be and should really consider using them in their own projects.

At first, I was a bit overwhelmed by the thorough descriptions and not really sure if I'd really needed to download the zip archive containing all those scripts. Now I started using the scripts, I can see they make animating with Moho a lot simpler. And I wanted to share that experience with other forum users who haven't been visiting the scripts forum, perhaps because getting to grips with the principles behind the tutorials was just hard enough already.

Moho has so many useful features and now it seems you can add even more of those by yourself or by third party programmers. How neat is that for a shareware program?
macton
Posts: 93
Joined: Thu Aug 18, 2005 6:29 am
Location: San Diego

Post by macton »

Rasheed wrote: At first, I was a bit overwhelmed by the thorough descriptions and not really sure if I'd really needed to download the zip archive containing all those scripts. Now I started using the scripts, I can see they make animating with Moho a lot simpler.
That's the idea! :)
The more of the tedious work that can be automated the more time there is to spend on the more artistic tasks.
Rasheed wrote: At first, I was a bit overwhelmed by the thorough descriptions and not really sure if I'd really needed to download the zip archive containing all those scripts. Now I started using the scripts, I can see they make animating with Moho a lot simpler.
Your (shorter) descriptions give people another perspective and that can only be good... and I really like seeing your examples!

Image
Part Two - Ball Bounce In Perspective
Image

:!: Part Two builds on Part One. You should try that first.

:arrow: I have a background drawn in perspective that I want the ball to bounce in. The background looks like this:
macton wrote: Image
:arrow: I want the ball to bounce a little further than it did in Part One, so I will expand the curve a little bit. I'm also going to flip it and skew it slightly to taste. The new curve looks like this:
macton wrote: Image
:arrow: I rotate and translate the "Ball Motion Curve" LAYER until it is basically in the perspective and location that I want. The curve in the new position and orientation looks like this:
macton wrote: Image
:!: What I DO NOT want to do is use the perspective point tool since I actually want to keep the 3D information.
:arrow: I select the "Ball Motion Curve" layer.
:arrow: I select the curve.
:arrow: I use the "CC: Copy Selected Curve" script.
:arrow: I select the "Ball" layer.
:arrow: I want the ball to translate in 3D so I CAN NOT use the "CC: Paste Curve to Points Position" script.
:arrow: Because I want the ball to move from its center, I make sure that the origin of the "Ball" layer is at the center of the ball, like this:
macton wrote: Image
:!: It's not important where in the layer the origin is - it's only important where it is relative to the shape you want to move. Notice here that the origin is not in the center of the layer. That's no problem.
:arrow: I use the "CC: Paste Curve to Layer Translation" script.
macton wrote: Image
:!: Start Frame: I want the animation to begin at frame 1
:!: Step By: I want a keyframe every two frames
:!: Normalize Curve: Like Part One, I do not want to normalize the curve.
:!: Rotate to Face Curve: Like Part One, it's not important for a circle.
:arrow: Keyframes for the layer translation have now been generated.
macton wrote: Image
:arrow: By default the interpolation is smooth and looks like this:
macton wrote: Image
:!: Because the layer is only translating, it is always facing forward (default). By doing this instead of translating the points I don't see the ball edge-on.
:arrow: And without the motion curve:
macton wrote: Image
:arrow: Like Part One, I could (optionally) use the "CC: Splat Layer Keyframe Interpolation Settings" script to step the animation "on twos".

:arrow: Here's the final flash animation: http://crashcore.com/public/moho/exampl ... rt_two.swf
macton wrote: :!: Because the animation is limited to layer animation (no point animation) the result it very Flash friendly.
:arrow: Here's the final moho file: http://crashcore.com/public/moho/exampl ... t_two.moho (You are welcome to use this Moho file for any purpose.)
:arrow: The scripts mentioned above can be found here: http://www.lostmarble.com/forum/viewtopic.php?t=2448
Last edited by macton on Wed Jan 18, 2006 10:07 am, edited 1 time in total.
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Cool, macton.

I did a little of paste-curve-to-layer-translation of my own, using layers with an (invisible) circular motion curve that was turned in 3D along the X-axis, while the layer that was being translated was in the 2D plane:

Image
(2 MB QuickTime movie)

It simply means that you can animate your character with 2D animation while the character's path is in a 3D world. This makes mixing 2D and 3D objects much more easier, because you can draw the path of your 2D character in the XZ plane and the character itself in the XY plane.
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Here is an example:
Image
(1 MB QuickTime movie)

It seems to be essential to have the lowest point of the bouncing ball animation at the bottom of the visible screen. The bouncing was done using "paste curve to points position" and copying some keys to complete this part of the animation.

The animation along the curve was done with "paste curve to layer translation", using the curve I had drawn in the XZ plane.

This was only a bouncing ball animation along a curve, but I guess a walking character can be done as well using this technique. You can use switch layers to select the appropriate angle at which the viewer sees the character. In essence, you create several versions of your character moving, each version from a different angle (at least: front view, side views, back view).
macton
Posts: 93
Joined: Thu Aug 18, 2005 6:29 am
Location: San Diego

Post by macton »

Those are great examples Rasheed! Easy to understand.

BTW: If you ever want to host the Moho files and you need a place to host them, just let me know...
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Well, I thought the examples were so easy, that an example file wouldn't be necessary. And I think one learns more by experimenting for oneself.

I only wanted to point out that the "paste curve to layer translation" script can be used in 3D as well, if you make the layer with the motion curve perpendicular to the layer that has to be translated (i.e. the layer with the character or object in it).
Image
Walking or riding (moving in general) along a path in 3D was always a difficult thing to do. It still is character animation-wise, but no longer perspective-wise, because of this technique you can use for that.

So the trick is to combine layer translation with other types of animation (points translation, bone manipulation).

But your trick, simulating 3D by using multiple planes is another neat trick you can use in Moho animation.
Image

In both cases, you use a predefined path to move your character or object along and add additional animation to it through another animation channel, so both types of animation don't interfere with each other. This way you can easily change the path and only have to change parts of the character animation (e.g. through bones).
User avatar
ulrik
Posts: 1087
Joined: Thu Aug 11, 2005 10:32 pm
Location: Stockholm Sweden
Contact:

Post by ulrik »

I want to thank you macton for all very usefull scripts, it is indeed making a lot of work easier! I've been trying out this copy curve script and paste to points and layer scripts and they are very usefull and make thinking in 3d more intiutive and faster to try ideas out.
I also want to thank Rasheed for making all this, easy understandable, examples.
macton
Posts: 93
Joined: Thu Aug 18, 2005 6:29 am
Location: San Diego

Post by macton »

ulrik wrote:I want to thank you macton for all very usefull scripts, it is indeed making a lot of work easier! I've been trying out this copy curve script and paste to points and layer scripts and they are very usefull and make thinking in 3d more intiutive and faster to try ideas out.
That's great! Thanks!

Image
Part Three - Text Along A Curve
Image

:arrow: Part Three is a common problem - I have a curve and I have some text (or any shape) and I want the text to bend along the curve while it's moving. To start, I have this curve and text:
macton wrote: Image
:arrow: I select the "Text Motion Curve" layer.
:arrow: I select the curve.
:arrow: I use the "CC: Copy Selected Curve" script.
:arrow: I select the "Text" layer.
:arrow: I select all the points in the text shape
:arrow: I use the "CC: Paste Curve to Points Position" script.
macton wrote: Image
:!: Start Frame: I want the animation to begin at frame 1
:!: Step By: I want a keyframe every two frames
:!: Normalize Curve: I want a smooth uniform motion around the curve, so I select this.
:!: Soft Rotate to Face Curve: This is what I want - Soft Rotate means that the X of each point is its position along the curve and the Y of each point is its offset along the normal of the curve.
:!: NOTE: Your shape should be facing right with a horizontal baseline for this to work properly.
:arrow: Keyframes for the points' positions have now been generated.
macton wrote: Image
:arrow: The result with the motion curve:
macton wrote: Image
:arrow: And without the motion curve:
macton wrote: Image
:arrow: Again, I could (optionally) use the "CC: Splat Layer Keyframe Interpolation Settings" script to step the animation "on twos".
:arrow: Here's the final flash animation: http://crashcore.com/public/moho/exampl ... _three.swf
:arrow: Here's the final moho file: http://crashcore.com/public/moho/exampl ... three.moho (You are welcome to use this Moho file for any purpose.)
:arrow: The scripts mentioned above can be found here: http://www.lostmarble.com/forum/viewtopic.php?t=2448
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

That is really cool for fancy titles and credits :D

I really like it.
User avatar
Rai López
Posts: 2273
Joined: Sun Aug 08, 2004 1:41 pm
Location: Spain
Contact:

Post by Rai López »

I'M FASCINATED!!! Really you are provideing Moho with an incredible POWERFUL features! An EXCELENT WORK in all aspects!!! THANKS YOU VERY MUCH! :D :D :D
User avatar
ulrik
Posts: 1087
Joined: Thu Aug 11, 2005 10:32 pm
Location: Stockholm Sweden
Contact:

Post by ulrik »

Great! :)
User avatar
Rasheed
Posts: 2008
Joined: Tue May 17, 2005 8:30 am
Location: The Netherlands

Post by Rasheed »

Ramón López wrote:you are provideing Moho with an incredible POWERFUL features!
I think macton hasn't even scratched the surface of what is possible. When one combines Lua scripts with executable Python scripts and use MySQL databases, things really can get spectacular.

For instance, you could build a complete Moho animation system for animation studios, where each animator pulls stuff off the database, works on it and returns the updated version to the database system, so others can use it or comment on it (using Note layers). Truly distributed and cooperative.

And that's just an example of what is possible.
User avatar
jorgy
Posts: 779
Joined: Sun Sep 05, 2004 8:01 pm
Location: Colorado, USA

Post by jorgy »

Thanks again macton! Wonderful scripts, and even better, wonderful examples to help get us inspired!
Post Reply