I have asked this question before, and gotten very good answers on how to animate treads on a tank. unfortunately, I have NO idea what anyone meant. I have tried for WEEKS to understand the tutorials, and I can’t make sense of them. if anyone can post how I can get 50 rectangular prisms to follow a looping oval, please do.
I think I’ve created a very routh example of what you are trying to create. The steps I used were:
- Create a Bezier circle and give it a shape that you want.
- Model the tread object.
- Set the Bezier circle as the parent of the tread.
- Clear the treads rotation and location.
- Select the tread and go to the object panel (F7). Make sure “DupliFrames” button under the Anim Settings sub panel is activated.
- Select the Bezier circle. Under the editing panel (F9) go to the Curve and Surface panel. Turn on the CurvePat and CurveFoll buttons
- Re-select the tread. Go back to the Anim Settings sub panel and increase DupOff setting (it should initially be at zero) until the treads fit together nicly.
- Optional: Send the Bezier circle to a different layer so it won’'t be visible when rendering.
treads.blend (111 KB)
Set the Bezier circle as the parent of the tread. <== normal parent, right?
Clear the treads rotation and location. <== How?
But I think you wanted an animated version … not just a mesh version
- follow 1) and 2) above .
- then create a plane scale it down almost to the size of your tread mesh and apply the scale
- add an array modifier to the plane (use the default Relative Offset and pick the direction of the array as needed) using the fit to curve option with the name of your curve in the OB: field … which will give you a long row of planes straight as a board … so
- add a Curve modifier using your curve circle as the object - enable Edit Mode view of the modifier
- select the plane and tab into Edit Mode and scale along the axis that the array is directed to until you no longer have a gap in the array of the plane
- apply the array modifier and tab into Edit Mode and remove doubles
- select the tread mesh and then shift-select the plane and parent
- enable dupli faces (not frames) on the plane
- grab the plane object and insert a Loc key - advance a few frames and move the plane (along the same axis as the array direction) and insert another Loc key
- open up an IPO window and select the curve just created and from the IPO header Curve-> Extend Mode->Extrapolation
You can add a lattice with hooks to add additional animation as well as add a driver to control the motion of the treads .
here is an example file :
tank_treads.blend (173 KB)
thanks! i will get started on this right away!
okay… thought i understood it at first, but i cannot find the ‘scale applying’ part or the array modifier… :spin:
So are you having trouble with steps 5 and 6 ?
Basically all you are doing is creating a parent mesh for the actual treads … using the array modifier is to just generate a number of faces based on the curve length …
By scaling along the axis/direction of the curve rotation, what I mean is that initially you will get a gap in the start/end of the curve so you need to adjust the mesh so that gap isn’t so noticeable .
And actually if you manage to get the spacing pretty good you actually don’t have to remove doubles after you the apply the array modifier (I just like connected meshed - lower vert count) …
Here’s a blend just before you apply the array modifier with the front edge of the plane selected in Edit Mode (enable the Curve modifier in Edit Mode and you will see what I am talking about - just move the edge to get the start/end to space evenly) …
tread_mesh.blend (137 KB)
Sorry for asking so many (probably obvious) questions, but i’m having another problem. no matter what i do, (even remaking the other tread completely and assigning each a separate color) all of the treads from both tracks pack onto either the left or right track, depending which one i did something to last.
I’m not exactly sure what could be causing your problems … It could be IPO curves and/or linked data somehow …
Post a blend with the problem you are having .