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:
And here are heatmaps for each of the two "bones".
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:
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:
- Create door mesh
- Add armature
- Move root bone to top of door.
- Duplicate root bone twice and place duplicates on either side of door
- 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.
- Parent the duplicates to the root bone, keeping the offset.
- Select door, then select armature.
- Ctrl+P to parent, as Armature Deform with empty groups.
- Select all vertices for the left door and assign to the Door.L bone VG (vertex group).
- Select all vertices for the right door and assign to the Door.R bone VG.
- Select all vertices and assign to the root bone VG.
Nothing too fancy. I just set up a basic armature.