3
$\begingroup$

I have a door mesh that I am working on that needs to be able to swing open and closed (because it's a door...). I have finished modeling it, texturing it, etc. and now I am on to adding the armature and animations, but after adding an armature to the mesh, I'm getting some strange deformations.

Here is the door mesh:

enter image description here

Wireframe:

enter image description here


And here are heatmaps for each of the two "bones".

Right:

enter image description here

and Left:

enter image description here


So, as you can see, the bone on the left should move the entire left door with full weight, and vice versa for the door on the right. However, when I rotate the bones, this happens:

enter image description here

The door does not move completely with the movements of the bone. I want the door to move to the exact same position as the bone, but it appears to be lagging behind it and getting "squished" a bit. The effect gets worse as I turn the door even further.

How can I make sure that the door moves entirely with the bone and does not get "squished" like this?


Steps to recreate:

  1. Create door mesh
  2. Add armature
  3. Move root bone to top of door.
  4. Duplicate root bone twice and place duplicates on either side of door
  5. Move bone joints as shown in the picture, so that the base of the bone is at the hinge of the door and the tip of the bone is at the center of the two doors.
  6. Parent the duplicates to the root bone, keeping the offset.
  7. Select door, then select armature.
  8. Ctrl+P to parent, as Armature Deform with empty groups.
  9. Select all vertices for the left door and assign to the Door.L bone VG (vertex group).
  10. Select all vertices for the right door and assign to the Door.R bone VG.
  11. Select all vertices and assign to the root bone VG.

Nothing too fancy. I just set up a basic armature.

$\endgroup$
2
  • $\begingroup$ This can be caused by the non-zero weighting of the root bone (select it while in weight paint mode to check) $\endgroup$
    – Polosson
    Commented Mar 21, 2015 at 2:01
  • $\begingroup$ @Polosson Ah brilliant! Thank you so much! If you'll put that into an answer, I'll accept it. $\endgroup$
    – Liftoff
    Commented Mar 21, 2015 at 2:03

1 Answer 1

2
$\begingroup$

This is caused by the non-zero weighting of the root bone.

Select the root bone while in weight paint mode to check.

You can get rid of it by selecting the door, and remove the 'root' vertex group in the properties panel, object data tab.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .