Jul
14
2009
Thomas Viktil
Having fiddled around with modo 401 and all its new features, I soon came to experiment with the animation features, including the new IK system. It works like a charm and when you’re used to working with modo, it just feels natural. It was very easy to rig a mechanical object that didn’t need to rely on deformations of the mesh to look convincing. But when working with organic shapes, the IK system got a bit trickier, that was until I figured out how to skin the IK.
My example doesn’t give you a perfect character rig, but it shows the basic principle. To make the mesh deform properly, you should look into using morph maps. I haven’t done so yet, but will most likely do it sometime soon.
I stumbled across a discussion on the Luxology forum (Bone deformations in Modo 302) that gave me a clue of how to do it. At first, I tried different ways of parenting the locators, deformers, channel linking and so on. But nothing seemed to do the trick. That was until I read a comment by Michael Blackbourn.
You dynamic parent the weightmap locators to a control structure.
After bending my mind around that rather minimalistic and somewhat cryptic comment, I suddenly realized what Michael was talking about. And it’s bloody simple!
Here’s how I did it:
- Setup a chain of 3 locators, and apply IK to them.
- Build a mesh with enough polygons to deform properly.
- Setup 3 weight maps: one for each of the joints of the IK chain.
- Add weight map deformers for each of the weight maps.
And now comes the trick:
- Hit the Compensation button (found under the Animation tab) to prevent the mesh from relocating.
- Dynamically parent each of the weight map deformers to each of the locators of the IK chain.
That’s it!
Remember When dynamically linking an object to another you need to first select the child, and then the soon to be parent item.
I have made a short screen recording just to show how easy it is. Skinning IK in modo (About 20 Mb QuickTime) The example I show in the screen recording is not beautiful, but it shows the basic principle.
Happy animating!
2 comments | tags: 3D, 401, animating, child, compensation, deformation, dynamic parenting, ik, IK chain, inverse kinematic, joint, locator, luxology, mesh, michael blackbourn, modo, modo 401, parent, polygon, quicktime, rigging, screen recording, screenflick, skinning, weight map | posted in 3D, animation
Apr
11
2008
Thomas Viktil

Oh, how I love the sweet animations from PES! Beautifully made, and with lots and lots of charm. Just look at the stuff they used to make KaBoom!, and the witty RoofSex. And it must have been fun making the Human Skateboard.

Be also sure to check out their store, which features the best fireplace DVD I have ever seen. The fireplace DVD and a Flying Kong T-shirt for $24.99? It’s a bargain!
Technorati Tags: animation, inspiration, stop motion
1 comment | tags: animation, inspiration, stop motion | posted in animation
Apr
7
2008
Thomas Viktil
Interesting (and more than a bit annoying) observation; neither the property totalTime or the event MetadataEvent.METADATA_RECEIVED will trigger unless the buffer is full.
I just discovered this as I tried to dynamically set the bufferTime to be 30% of the total playtime (I calculate the bufferTime using totalBytes and bytesLoaded). But as I traced values like totalTime, I noticed it would stay at -1 until the video started playing (in other words; the buffer was full). Just for the sake of curiosity I set up an eventlistener listening for the duration property of the MetadataReceived event object. Interesting enough it wouldn’t trigger until the buffer was full.
It has been filed as a bug at Adobe’s Flex Bug and Issues Management System.
Possible workaround:
- set bufferTime to 0 at initialization (this would hopefully trigger the READY event (or MetadataReceived if you prefer)
- catch the totalTime value
- pause/stop the video
- increase bufferTime (or skip number 3 and go directly to number 4. It might work?)
Technorati Tags: flex, as3, actionscript, meta data, video, development
1 comment | tags: AS3, bufferTime, flex, MetadataReceived, totalTime, VideoDisplay | posted in AS3, animation, flex