Wrong mesh deformation

Hello everyone,

My model is made up of one mesh and 3 bones, and 3 vertex groups. First bone(main bone) has all of the meshes vertecis assigned to it. Other two bones are made with extruding from the first bone and then unchecking “Connected” property. One bone has right side vertecis assigned, made for stretching the mesh horizontally. The 3rd bone has uper side vertecis assigned to it, its made for stretching the mesh vertically. Second and third bones are both the child of the main bone. The problem is:

-if I have 2 bones(main + any other of those two bones), then if I move the second bone the mesh stretching is delayed(the bone moves faster than the mesh).

-if I have all 3 bones, then if I move second or third bone the mesh stretching is delayed, but also one side of the vertecis moves faster than the other.

Here are some pictures to illustrate what I am talking about:



Any help is greately appreciated!

EDIT:

I forgot to mention that the mesh has a Armature Modifier. Which has the following values: Object is set to Armature Object, and the Vertex Groups is checked. Also the bones are named just as the vertex groups.

EDIT2:

Heres the .blend file: http://www.2shared.com/file/tbnKTu7k/testObject.html

EDIT3:

Ok, just so you know, everything needs to work perfect because I need to export this model to .fbx and then use it in Microsoft XNA. Where I will programmaticly move these bones to stretch the object.

Bumping…

From your description I would bet that the problem comes from the way you have vertices assigned to more than one bone at once. It would help to be able to see the .blend though. It would also help to know what the goal is here. It’s a bit hard to tell you how to get it to behave “correctly” if it’s not clear what you’re envisioning as the correct behavior.

Well, the goal is to get rid of those problems I said above when moving bones: delayed stretching, and that some vertecis move faster than other. I uploaded a file as you requested. When you’ll have time try the same thing as I did: first moving left bone, and then adding the third bone as I did.

Thanks again for the help!

Anyone? Please help…

Here’s something slightly better than your file. testObject slight fix.blend (425 KB)

Yes it is better, it helped a bit, thanks. But still, if I move the bone, why does the bone move faster than the mesh? I mean, the bone doesnt stay always in the same part/place of the mesh. So, any other ideas?

You’ve got the same vertices attached to several bones so the influence is split.

Ah, so I can I fix this and still be able to use the same vertecis to “stretch” verticaly and horizontaly?

No, the influence will always be split if you’re using several bones for the same vertices. What you’re trying to do would really be better done using shapekeys (one basis key and two keys for the stretching) instead of using bones.

I dont think shapekeys can be used as bones(moving it would move the mesh, just like blender bones) in XNA, am I right? Theres gotta be some other way… Shape keys are used for animating? While I need to stretch the mesh in XNA to any value the user wants.

P.S

I am really sorry for my bad english :frowning:

bump. Ok if this bone thingie wont work on this particular object. Is there any other way to bind bones to vertex groups or place verecis some special way or something. And the object would have 3 bones(parent and two childs), parent would move the whole object, another for stretching the object horizontally, and one for stretching the object vertically?