Bifold door modelling/rigging

Hi,

I’m not sure whether this is better placed in the modelling or animation forum, but here goes:

I’m trying to work out the best way to model/rig some bifold doors so that they all move together to open/close. Simple Blend attached showing the kind of doors closed, opening and open.

If someone can point me in the right direction as to what to research to do this, or if there’s a tutorial that will help, that would be much appreciated.

Mike
BifoldDoor.blend (200 KB)


1 Like

How complex do you need to be? The simple answer is just to use Armatures or bones. Start to the right of the screen and extrude (E) each bone to your door shapes and turn on auto Ik. This will get close. The last bone will be your Master or Controler bone. Then you can just turn off auto IK and position any out of place bones. (insert key frames for these…) anyway one bone will control the rest. This may be to simple of an answer for you though…

I thought this was such an interesting rigging application, I gave it a go before I realized you posted a .blend!

The key’s to realize that one section or pair can’t move without all the others moving. Knowing this, using ‘hinge’ and an Action constraint will work. There might be a way to make the control bone a ‘handle’ at the end of the doors (maybe?), but this uses the control bone’s scale.

Attachments

folding_doors.blend (148 KB)

Um. Ok. Thanks. Pretty much all of what you both said just went whizzing waaaaay over my head for now. It’s pretty clear I’m going to need to do a lot more reading and playing around to understand even half of that.

Bunny, thanks for taking the time to post that blend. I’ll try to rummage around in there more to work out what you’ve done.

Thank again.

Mike

I believe that the last example (expanding arm) from this link should help you. This should be just the principle you need.
http://wiki.blender.org/index.php/Doc:Tutorials/Animation/Armatures/BSoD/Some_Beginner_Rigs

Ummm. Thanks JiriH. It might be slightly more helpful if that example was actually finished!..

But I’m persevering. Kind of.

Mike

I realize this is a 10+ year old question, but I wanted to do exactly the same thing and I found a solution that is much easier than making use of rigging. The desired behaviour can be created using object parenting and rotation constraints. I’ve modified the blender file to demonstrate. Unfortunately I’m a new users on this site, so I cannot attach it, but I’ve uploaded it to Google Drive and shared it with this link:

https://drive.google.com/file/d/1wxuBS0Q8vNdk_oDoIFfS4uxKjXUeW0co/view?usp=sharing

If you select the right-most door in the sequence and rotate it around the z-axis, then all the doors fold up against it toward the right hand side.

Here’s how to do it:

Move the object origin of each door segment.

The origin needs to be on the right hand edge of the door. For each door you’ll want to alternate placement of the origin on either the inside edge or outside edge of the panel. If you look at the hinges of real bifold doors, the hinges alternate in this way. The origin acts as the pivot point of the door, so we place them where the hinge would be.

For each door:

  • Select the door
  • Tab into edit mode
  • select a vertex on the right hand side (alternating inside and outside verticies)
  • <shift>-s, 2 to move the 3D cursor to the vertex
  • <tab> into object mode
  • Object->Set Origin->Origin to 3D cursor

Set the parent of each door to the door to the right

  • Click to select a door
  • <shift>-click to select the neigbour to the right
  • <ctrl>-p object to set the parent

Now if you rotate the rightmost door, the entire set of panels should move; but not the way we want

Add a “copy rotation” constraint to the first 4 panels

For each panel 1-4, select the panel and look in the Object Constraints Properties tab

  • Click “Add object constraint” --> “Copy Rotation”
  • Change the target to the 5th panel object
  • On every second panel check the “invert” checkbox for the z axis

Limit the rotation of the final panel so that the doors don’t move too far

For panel #5, in the Object Constraints Properties tab

  • Click “Add object constraint” --> “Limit Rotation”
  • For the z axis, set the min to ‘0’ and the max to ‘90’

That should give you the behaviour you want.