How would I rig an engine motor belt to go round and round (and round and round)?

Would I set it up like this tank track tutorial? 

I imagine I could set up a chain of bones along a curve, weight paint the belt mesh to the corresponding bones, and set up a few constraints and drivers so they follow the curve when the motor engines rotate? I also imagine I could probably confine a driver to a displacement modifier (vertex grouped to the parts of the curve that are between the motors) to cause the curve to wobble ever so slightly?

I've just switched Blender off for the day so I'll have a crack tomorrow! But boy am I keen to work out how to make things work!

motor belt.png 

1 love
Reply
  • Harris Clook(Yeehawcowboyletsgo) replied

    Hang on, I can't add a displacement modifier to a curve. What else could I do to make it wobble in certain spots?

    1 love
  • Adrian Bellworthy replied

    You don't necessarily need to animate the belt, only loop the texture to give the illusion of the belt rotating.

    You could use a noise modifier in the graph editor if you want to add some wobble, you only need add a duplicate keyframe at the start and end of the timeline to add the modifier. You may want to consider wobble on the engine itself.

    1 love
  • Omar Domenech replied
    I guess if you use a texture trick, you're not going to get motion blur though. Maybe there is no animation per se needed. It feels like it can be done with a curve and the mesh just follows it none stop with a driver. Very tricky situation here, probably lots of ways to go about it and for sure you're going to have to go through a lot of trial and error. You think of an idea and in your head it works great, until you go to the practice.
    1 love
  • Dwayne Savage(dillenbata3) replied

    My first thought is a curve to use as a path. Then use hooks to bones of an Armature for the wobble. You can use empties, but then you have to manage all those actions if you later decide to expand your animation. Then use follow path constraint on belt mesh point it to the curve and check follow and offset. With offset you have a 0.00 to 1.00 range 0 being start of curve and 1 being the end of the curve. I personally would setup a driver using a bone, because I like to keep as much of the animation data attached to a rig. 

    1 love
  • Dwayne Savage(dillenbata3) replied
    I should probably mention that location as the driver is easier than doing the radian math for rotation. A trick to get around this is to have the driving bone's location controlled by another bone's rotation thru a transform constraint. In other words the driving bone becomes a MCH bone with a transform constraint that points to the control bone and map from it's rotation(min 0 to Max 359)  and map to location (min 0 to Max 1) using local space or it might be pose space. Sorry I don't remember. Then all you have to do is keyframe the rotation of the bone using vector handles while it's running and aligned handles when starting up or stopping. Then again if you're a mathematics person then radium math modulo between 0.0 and 1.0 could be easier. 
    1 love
  • Dwayne Savage(dillenbata3) replied

    Sorry to flood your post, but I just thought of an even easier way to setup a control bone. Instead of using offset(so uncheck that on the follow path constraint) use the time evaluation. By default the evaluation is 0 to 100. Click the curve/path then under curve/data tab of the properties editor under the path panel change time from 100 to 359. That way it goes from 0(start of curve) to 359(end of curve). Then in your driver you can use: 

    degrees(var)%360

    Where var would be the axis(X, Y, or Z) rotation of the control/driving bone.

    1 love
  • Harris Clook(Yeehawcowboyletsgo) replied

    Thanks guys! And Dwayne I encourage you to flood my posts, I really appreciate you providing all your knowledge whenever I ask something! I'll have a crack at your tips if I get a moment this evening!

    1 love
  • Harris Clook(Yeehawcowboyletsgo) replied

    dillenbata3 I haven't gotten to this yet, I'll refer back to your ideas when I do! I'll keep working the leg setups for the time being.

    I had another thought in regards to this though. I'm just watching through some of the videos in the offroad course. What I thought would be cool would be to set up something so I could essentially turn the engine on and have it stay perpetually on. The motors would spin, and the belt would loop around (with a little bit of wobble), and the engine itself would have a subtle gitter while it's in an idle state. Then as the legs start to move, I could increase the engine speed. 

    I'm just thinking aloud, but would I be better off setting up a custom property with a driver to manually adjust the engine speed (and all it's related components) as I see fit? Or would there be a way to use the animation of the legs to drive the speed? - This option might be too intense for my current knowledge of rigging, so for the time being I'll probably go with the first idea.
    Or, I animate the speed in the graph editor itself rather than restricting it to a custom property (I'm guessing the graph editor will give the animator (me) more freedom). 

    Again, just throwing ideas around, but is there a way to set something like this up? IE the engine speed varies by how much the legs are moving. Or is this a similar situation where I am likely to be over complicating things like in my IK properties question? It's also probable that the engine's animation isn't going to visible at all times anyway.

    I mentioned this to Wayne recently, but I think rigging might be where I'm having the most fun, and I'd like to push myself with it. I'm going to assume I'll have a good time with animating - and those two go hand-in-hand - so I appreciate you lending your thoughts!

    1 love
  • Dwayne Savage(dillenbata3) replied

    The answer is yes. As for overcomplicating it, I don't think you are this time. This is making animating the engine easier for the animator(yourself). I would go a different route. Use a bone as the single controller for engine running. It would drive and action constraint. Then just speed up or slowdown the bone's rotation to speed up or slowdown the engine. I'd also have separate controllers for wobble and engine shake. That gives more freedom and allows to add character to the engine. 

    Animation and rigging are different creatures that work together. Kind of like modeling and texturing. I love rigging. So in terms of workflow rigging is more rewarding and you have to do a lot of problem solving. Animation is more soul sucking and experimentation. In terms of output or results, rigging is kind of an all at once reward which can be very underwhelming. Animation has lots of check points with satisfying visual feedback. Plus it's what other people see and praise. 

  • Dwayne Savage(dillenbata3) replied

    Adjusting speed based on leg movement would require a lot of figuring out the mathematics then figuring out how to setup movement sensors or at least faking it. Can it be done? The answer is yes. The real question is it worth it to you? In a production the answer would be no. One it's a minor detail that most people won't notice. But! This isn't a production. It's your learning path. Do you want to go into the weeds of mathematics? Do possiblity want to learn geometry nodes(for the sensor) or learn Python to do the sensor? I think it might be possible with distance thru drivers(a smaller set of Python), but I'd have to do some testing to be sure.