I'm having trouble with understanding vertex weight influence. As you can see, I have the vertex group painted how I want it.

When binding the armature to the mesh, I used Armature Deform > With Empty Groups and assigned the vertices to the groups. Then I did the weight painting manually. A vertex with any weight, 0.000 - 1.000, is influenced 100%. I don't like this.

the piston in its default state

the piston in an extended state

It seems the vertex weight is being disregarded. It seems that a vertex with any weight on it at all is 100% influenced. (note: adding a VertexWeight Mod didn't help).

Lind to .blend

  • Can you post the .blend somewhere so we can view it? I'm not sure what the issue is. Normally, the weight will work by default. – CharlesL Apr 8 '14 at 18:58
  • Will do. Link is added to the main question now. – Ryan Lutz Apr 8 '14 at 19:09
  • Are the problematic vertices part of a single vertex groups only? AFAIK there need to be at least two assigned vertex groups, even if the weight is 0.0 for the other group. – CoDEmanX Apr 8 '14 at 19:26
  • I thought about that, And added another one opposite of it. No luck. Over in the right side there it shows six i think. They're all assigned – Ryan Lutz Apr 8 '14 at 19:30
  • I personally would not have done it like that. I'd rather separate each mechanical part in several objects and assign each bone to its solid part, except for pipes which require their own bones, with maybe a "spline IK" constraint... – Polosson Apr 8 '14 at 22:01
up vote 3 down vote accepted

The location that you have the issue is the barrier between what gets moved and what doesn't. The mesh faces in this section can easily get stretched too much with the motion of the attached pieces.

I would recommend using a curve object for the hose instead of a mesh. By giving the curve a full fill and a bevel depth and increasing the resolution you get a nice round hose.

enter image description here

To animate the hose you add a hook to one or more of the curve points. While in edit mode select one of the curve points and press CtrlH and select Hook to New Object. This will create an empty at the location of the curve point as well as add a hook constraint. in object mode when you move the empty the curve point will move with it.

enter image description here

The beauty of a curve in this scenario is it maintains the hose shape no matter how far you stretch the points from one another. Parenting the empty to your piston will keep the end of the hose in place.

while stretching the hose too far will create a noticeable distortion you may want to add more hooks to the next curve point and use a limit distance constraint so that the coiled hose picks up and follows the movement.

enter image description here

For the final animation you would want to animate some rotation on the empties to prevent kinks in the hose.

You can look at my simple example file here.

  • Yes! this will work brilliantly! Doesn't answer the question of the vertices. But sometimes its good to start somewhere completely different. I was using a curve with an array because I've only every used the bevel curve once and completely forgot about it :P This will be the answer i choose. – Ryan Lutz Apr 9 '14 at 13:22

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.