I’ve created a single “rib” of a Japanese style paper umbrella, and rigged it with an armature so that when you move the slider, the umbrella opens and closes. The model consists of a pole, the slider, the action of the umbrella, attached to the slider, and then a straight rib for the top of the umbrella, attached to the action.
The rig has a bone for the slider and a child bone for the action joint. The slider bone uses copy location to follow the slider mesh, and the action bone uses copy location to follow the action joint and has the rib bone as a child. The action and rib bones use IK, pointing to a target at the centre of the top of the umbrella. The action mesh is parented to the action bone, the rib mesh is parented to the rib bone.
I’ve also added a simple plane for the paper on either side of the rib, which is parented to the armature and then used vertex groups and a couple of bones perpendicular to the rib to fold the paper as the umbrella closes, using a driver to convert the z location of the slider into rotation. So far, so good. However, I’m running into problems with the next stage, which is to duplicate this single rib to make the whole umbrella. There are 2 problems I’ve run into.
The array modifier seems to be the ideal way to create the rest of the umbrella, but I can’t add it to the armature. I saw a workaround that suggested adding a plane, parenting the armature to that, and then using array on the plane. This didn’t work for me though.
The second idea I had was to put the armature, action, rib and paper into a group and then use group instances to duplicate it. However, for some reason this method duplicates everything apart from the paper.
If anyone could suggest where I’m going wrong, I’d be grateful.