PDA

View Full Version : Complex Rig for Antique Seam Train.



stylus10
04-23-2015, 01:47 PM
Hi, Thank you for taking the time. I need to rig the wheels and pistons for a steam train. My biggest problem is getting a point on the outside rim of the wheel to control a piston moving forward and back. I was wondering if a system of nested nulls would work best or perhaps a bone structure. What is the best approach for this?

I am a win7 with 11.6.3.

Thank you for your help. D.

Chrusion
04-23-2015, 02:16 PM
Model everything longitudinally on Z axis. Model piston rod parallel to ground plane (not rotated to connect to piston). Move pivot point of layer to the end of the rod where it connects to wheel. Model piston with horizontal connecting rod on Z and move the layer's pivot point to the end of the rod where the piston rod connects. In Layout, create a Null. Parent it to the wheel where the piston rod attaches. Parent the piston rod layer to null. In Motion panel, set piston rod to target piston with horizontal rod assembly layer. Rotate wheel and the piston rod will move in and out of cylinder, but not at proper angles, because the piston assembly is not moving yet. To move piston assem., add channel follower (expression or plugin) to follow Z translation of null object. Piston will then move back and forth inside cylinder body and should "sync" with and "connect" to the piston rod following the wheel's rotation.

stylus10
04-23-2015, 02:43 PM
Thank you, very helpful. The channel follower was what i was praying for. Thanks!

Chrusion
04-23-2015, 02:54 PM
Hmmm... Z position of null doesn't change when parented to wheel, so channel follower and expressions won't work. I've got it somewhat working by adding a second null to the end of the piston connecting rod and IKing the piston to it, but it "breaks" joint as the wheel turns.

MonroePoteet
04-23-2015, 04:11 PM
William "Proton" Vaughan did a tutorial on a piston rig using IK a while ago which might be helpful:


https://www.youtube.com/watch?v=p1EPcTeqeuc

mTp

RebelHill
04-23-2015, 04:54 PM
Bones, nulls... makes no real difference, but its very simple, no need for complex setups with expressions and whatnot.

Chrusion
04-24-2015, 08:18 AM
Well, Rebel, such hasn't been the case for me. I didn't create bones, but used nulls and various combos of targeting, poles, IK, etc. Nothing worked without expressions. I had to resort to using motion mod. Follower on the null parented to the wheel so its rotation was zero (follow using negative pitch), because if not, then the piston connector rod, that is parented to the wheel null and then targeted to the piston, would flip 180 degrees on heading when pitch reached +/- 90 degrees. And then to get the piston to follow the other end of the connector rod, I had to do some fancy Null math to isolate the Z position of the connector rod and then compensate for Y offset by subtracting from Z the sin()/10 of the wheel's pitch rotation.

See scene (updated) attached...127974

RebelHill
04-24-2015, 08:30 AM
Did you see the scene I posted?.. No such problems and simple and clean.

As for having flips occur when using constraints, that's part of how euler rotations work (the domain constraint)... trying to "force" those to not occur is a wasted effort, and the far easier practice is to filter them after the animation is done, but even then, only if needs of animation curve export or motion blur (subframe) rendering require it.

Chrusion
04-24-2015, 09:10 AM
Alright, you win! <huff>. This can be done with objects, too, since bones are object entities and do the same motions and pivoting as objects, so it looks like what I was doing wrong was using a backwards hierarchy. Start from the piston first using IK and all will be great. Ugh. Like I've said before... I'm not a character rigger/animator.

Thanks for sharing... I'll update my scene for Stylus.

jeric_synergy
04-24-2015, 11:21 AM
... trying to "force" those to not occur is a wasted effort, and the far easier practice is to filter them after the animation is done, but even then, only if needs of animation curve export or motion blur (subframe) rendering require it.
In this context, does 'filter' just mean 'manually deal with it'?