Here is my piston setup. There are mounts on each ends, and I want to create a setup where I can place/rotate these two mounts anywhere with the rest of the piston rotating to meet, like an actual piston. Here is a different setup working correctly.
I am using purely object constraints to get this to work, so I need only parent the ends to a bone or objects. Thie first setup however, seems impossible to do with object constraints alone, because I have to create a dependency cycle. I cannot figure out if there are empties that could resolve this, or if there needs a bone or two. The problem seems to be because there are two axis of rotation that do not intersect. Luckily, the dependency cycle only creates laggy movement with the piston, but I would still like to resolve it. Has anyone done something similar?
Your solution is similar to what I have, except instead of bones, I am using constraints. Sorry I could not upload files before, the website wasnt letting me because my account is new.
Both your solution and my solution have a dependency loop in it. I just tried your file with meshes on the other half of the bones you have there, and sure enough, the cylinders start to veer from each other. This effect is more pronounced the faster you move it, but that causes it to look weird in animation as far as i am aware. It may even be more pronounced with larger meshes, but I do not know much about this.
You can check for dependency cycles by hitting window → toggle system console.
Hi Trebleclef,
the dependency loop is created by the Locked Track constraints from “Cylinder.003” and “Cylinder.004” because they are tracking each other.
You simply have to change the target to the two “main cylinders” so to speak:
Hi Zebrahead,
I am aware of what is causing the dependency loop, but your solution does not work either. While it does not create a loop, it is looking at a different point, which does not move, and so if i rotate the bases, it cases the pistons to not work. While my solutions does not have this issue, because each piston is constantly looking at a moving point, that creates the dependency.