Multiple parents for same child

Is it possible to create an object that has two unique parents controlling two different vertices of the object?

For example, let’s say there’s a scene with a cube, a cylinder, and an empty. I’d like the top of the cylinder to move when I move the cube, and I’d like the bottom of the cylinder to move when I move the empty. However, it seems that only the last parent set up is remembered, and the previous mapping is erased. Is it possible for children to have more than just a single mom or dad??

Thanks!

When you are using parenting to deform a mesh the right choice is to use the armature deform, it takes many possibilities into consideration and allows vertex groups and weight painting etc.

If you really want to use objects to control parts of a mesh you can however use Hooks. Select the object you want to hook to (parent) then select the child object go into edit mode, select the verts you want to hook to that parent and then from the vertex select hooks and the appropriate choice… If you use vertex groups instead and add the hook modifier you will have much more control because then the group of vertices is editable and weightable.

Thanks for the response!

I think I should have been more clear. I do not want deforming… which now that I think about it, makes the problem a little tougher. Let me rephrase:

I want to have 3 cylinders (separate objects) linked end-to-end in a triangle. When I move/rotate one, I want the other two to react to that movement as much as they can while still having their ends touching. If I dragged one cylinder way across the screen, the other two would follow. If I rotated one cylinder a little bit, the other two would rotate a little bit to keep in a triangle.

Is this possible?

Well, a triangle is a rigid structure so there’s no reason to not just join the cylinders into one object with ctrl J.

But you are now probably going to say that you want a general solution for structures of any number of elements and shapes. The best approach in rigging is to solve specific problems and not try to find some method that works for every instance… At least I need to think that way because of the restrictions involved in simulating the real world with a rig.

The overall goal is to have three separate cylinders: Two that have rigid body physics enabled and one that has cloth physics enabled (ie acts like a string/rope). This way the cloth cylinder would bend, thus making the triangle non-rigid. This also explains why I can’t just command+J them together.

Okay, I think I know what you’re looking for here, and I think that it can be accomplished using constraints on the cylinders and hooks.

First of all, position your cylinders in the form of a triangle, and then put three empties, one at each vertex of the triangle, all in a single plane.

Now, designate two vertex-groups on each cylinder … one at each end.

Next, add two Hook constraints to each cylinder, so that the hook at each vertex pulls on the closest vertex-group in each cylinder that is adjacent to it.

Finally, add Locked Track constraints to each cylinder, so that they always point to the empties.

I’m not entirely happy with this solution because the track-constraint can only rotate the object (as far as I know) around its center of rotation, instead of, as would properly be the case, the opposite end of the cylinder from the end that’s being moved. I’m mulling around with the idea of “how could we use an Armature to do this?”

Yes this is closer to what I want. Forgive me if this is a dumb question, but can you use hooks on vertex groups of other objects? I can either hook it to a different object, or a vertex group within the object, but not a vertex group in a DIFFERENT object…

Still no solution! :o

Here’s one more problem which requires a “multi child-parent” solution:
Assume you want to move a cube by rotating it about its corners, how would you achieve this?
If you think of rotating using 3d cursor then good luck with keyframes interpolation. It has to be achieved with some mahts OR “multi child-parent” technique.