Animating a Tanks Thread


Hi Guys ,.

I need serious help here ,

What is the best way to animate a tanks thread ? while maintaining control on it (moves with the vehicle , ,slows down when the vehicle slows down , etc)

I tried the expression method but that doesnt give me any control and its choppy for some reason :frowning:

I would love to hear from someone who animated something similar before , or who can point me to any tutorials.

Thanks very much in advance.



again my dictionary gives me no real explaination to tank thread :smiley: could you please give me an explain . please :hmm:


sure ,


so you wanna have something like that ?

it’s 1.8mb big and soerensen 3 codec.


Leave it to the American to clear things up :wink:

Its a tank TREAD… not a thread. :smiley:


so guys i have the soltuion for the problem. i will post it in 5 min with an example scene. just need to clean up the things :slight_smile:


ok, it involves a few steps but i will go through all.

  1. i created the curve and a simple poly cube here as a reference
  2. animate - motion path - attach to motion path.
  3. right after that. go select the rotate attributes of the cube and break connection.
  4. the same thing for the motion path node the U Value (you’ll find it under the inputs of the cube in the channel box) break the connection on U Value
  5. create a control object for the rotation. as you can see i’ve done a star.
  6. next select first the curve and then the cube and do : constraint - tangent) you need to go to the constraint options in the attribute editor to get your desired result (simply change the aim and up vector)
  7. on the control star (name it ctrl) add an attribute called perc (simply float)
  8. right click on the new attribute in the channel box and select expression.

  1. this is the expression

// expression to drive the tread part via the ctrl

float $full_rotate;
float $int_rotate;
float $perc_rotate;

$full_rotate = ctrl.rotateX/360;
$int_rotate = ceil($full_rotate);
if($int_rotate > 0)
$int_rotate -= 1;

if($int_rotate > 0)
$perc_rotate = $full_rotate - ($int_rotate);
$perc_rotate = $full_rotate;

ctrl.perc = $perc_rotate;

  1. now we go and do a set driven key
    select the ctrl (the star) and then : animate-set driven key- set (option box)
  2. click load driver
  3. select the one tread (the cube we have) and go to the hypergraph. click the button for up-and-downstream connections.
  4. select the motionPath node
  5. click the load driven button in the set driven key window
  6. in the upper field select the attribute perc and in the botton part the UValue
  7. rotate your ctrl (the star) about 360 degress in X
  8. press key in the set driven key window
  9. now rotate the ctrl back to 0
  10. in the set driven key window click in the bottom part on the left side on the motionPath name
  11. in the channel box set the UValue to 1
  12. press key in the set driven key window
  13. do step 19 again
  14. open the graph editor and select the curve
  15. click the linear tangents button (the second one after the numeric fields)


if you rotate the ctrl now in X the one tread will travel along. the only little problem is that you can’t rotate in negativ the ctrl (star). this is just an expression thing i have to figure out.

for more tread do all the same steps but at the set driven key change the values, so that the second tread is behind the first one.

i know it’s a lot to do, but for now it works :slight_smile:
tommorow i will try to get the expression right and then write a little script that does that all for the other treads. but no garanty yet (i have a lot to do) :hmm:


so now theres a new version there. now everything is controlled by the expression only. no need for the set driven key anymore.

the only problem that now occurs (and it’s driving me crazy) is the flip like at the start/end of the curve. possible solution would be to hide that seem by a surface. but i will search for another solution.

look at the expressions. it drives now directly the uValue of the motionpaths. (just need to rearrange, so that i mooves them in the right direction)

--------- -=edited=- --------

ok, now it’s really done. the new file has something in the expression that fires away the flip problem. have fun with that.

--------- -=edited again=- --------
and now it’s really final. you can rotate them in any direction you want. even in the negative one. thnx for the task. was fun to play around :slight_smile:

here’s now the final file



Thank you very much Svenip!

it works like a charm!



jeez svenip- how long have you been working on Maya?


before learned walking :slight_smile: no just a joke

hmm let me think of. :hmm: since 3 years or something like that i learn and teach 3D and since 1.5 years maya. so, currently i’m finishing my studies and search for a place for my last internship i have to make for my studies.

uhh just forgot. originally i come from softimage and teached that also here.


what did I tell you… svenip knows everything about Maya…

BTW, sven… I have no idea how to make Sebulba’s whiskers sway with the method you gave… is there a way i can make them dangle when I move his head?


hmm, yes there would be a way, and this is dynamics (softbodies exactly). but always try to avoid dynamics in animation scenes. it’s bad. better is to “hand”-animate these guys with the skeleton idea i gave you in the thread. i will try to make an image which would be actually better to see what i mean.


oh i get it now… I asked for a non-keyframed method, which would be dynamics… now I get it!



why do you try to avoid dynamics in animation scenes?? Logically I would thing they’d be usefull. Is it the drag on resources or is there something else?


ok, there are some reasons for that.

at first there is the fact that it is “dynamic” means not evenly calculated. for instance if you animate and want to slide for and back in your timeslider then dynamic things will kill your scene (i mean that you will definitly get strange results). dynamics are very hard to control. so you really have a problem to predict the result. i had created a softbody solution for a skirt in the company i was working and it really worked well. but you’ll never know what they behave in your scene. are there any prenatation with other surfaces etc. so many things. in a real production you can use dynamics off course. but at the end these productions all end up fixing the scenes that haven’t worked out correctly or baking the simulations.

don’t get me worng. i really like to work with dynamics (mostly with particle systems) and tend to use there i can :smiley: . but for the task he has asked for it’s really really better to hand animate the motion. you can work out a system with only one control that drives all the guys a little bit differently etc. and it doesn’t take that long to animate this.

DYNAMICS ARE GREAT. especially in maya they are amazing. but as a fact that their “dynamic” they are a little bit hard to control.


the link to the file is broken, anyone have the file that they can post? I’m trying to do something similar but instead of a tank tread it’s a motorcyle chain. Sweet thread!