Torchflame rig for Max

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Search this Thread Display Modes
  01 January 2003
Post Torchflame rig for Max

I want to share a solution for a "automated torch" i came up to for my Animation Challenge Entry here.
Forgot to mention that you can find vid examples there.

First of all id like to thank ACFred who inspired me by the idea of making the flame with a script ( his Challenge Entry )

I used Max but the concept can be used in other apps i guess.

The idea is simple. I wanted a torch where the flame behaves similar to reality. The flame had to follow the torch with a delay, allways point to the sky and flicker.

First i created the segmented torchflame (segmented because of challenge rules) and the torch itself.
then a skelleton for the flame (each bone a flamesegment).

now the rootbone of the flame is linked to a helper as well as the torchmesh itself. This helper will be the controller. So by moving around the helper the flame behaves automatically.

now to make the movement of the torch possible the flamebones have two IKs assigned. One from root to the half and the other from the half to the top.

The MiddleIKGoal, lets call it IK01 has a "Position List" assigned as position controller.
The first controller in this list is "Position XYZ" to keep it's original position.
The next one is a "Position Script". Here we make the delay stuff. The idea is to make a 5 frame delay for IK01 and a 10 frame delay for IK02 to the position of the rootbone (+ the z value of the IK01 and IK02).

So actually the IK01 and IK02 have the same position as the rootbone + their z values.

The script looks like this:

timedelay = 5f
curposx = 0
(at time (currenttime - timedelay) curposx = $b_Torch_1.pos.x)
curposy = 0
(at time (currenttime - timedelay) curposy = $b_Torch_1.pos.y)
curposz = 0
(at time (currenttime - timedelay) curposz = $b_Torch_1.pos.z)

[curposx, curposy, curposz-436]  

The delay changes in the IK02 to 10frames. $b_Torch_1 is the rootbone.
The sick value of 436 is the z value to make the IK01 above the rootbone. By changing and evaluating you can get near to it (not the best solution but it works)

So what is actually happening? The script reads the position of the rootbone at -5 frames of currenttime and sets it to the IK (+ its Z value). You cant move the torch around to see the effect because it gets no old position of the rootbone. You see the delay first after making some keyframes.

The next controller is a noise position controller to make a flicker effect when the torch is not moving.

The same with IK02 but with delay = 10f and the other z value and another noise controller so they flicker seperatlly.

Hope this helps. Maybe someone will find a use in it or improve it. What do you think?

Here a scheme of the rig:
Attached Images
File Type: gif torch_rig.gif (9.4 KB, 85 views)
"If you can imagine it, you can animate it!"

Last edited by Milho : 01 January 2003 at 11:29 PM.
  01 January 2003
That is Awesome Thanks!
  01 January 2003
Yep, thanks for posting your methods here. Looking forward to your animation, too.

  01 January 2006
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 11:14 PM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.