How to rig up/bone this sort of creature in blender?

Hi there, I am trying to create the Minecraft Creature known as a Magma Cube within Blender, I have no problem making the actual mesh and texturing it, but it’s movement is quite odd, see the below video:

The main issue I’ll have is how to make it “expand” in that very accordion like manner. I think I may need to add two bones for the model, a main one at the bottom, then a child which controls the top layer, and has a decreasing amount of influence over the layers below (scaling down to zero). Is this possible, if so, how? Or if not, is there a better/easier way of producing this behaviour?

You’ve got the basic idea right, see attached file. In this file you’ll find a cube cut into 5 ‘layers’, or 5 vertical sections. There are 5 bones in there as well, only 2 bones are animated, “base” and “top”. When in pose mode and you move the ‘top’ bone upwards, the 3 middle bones (green in color because they have constraints on them) move proportionately. The trick is the 3 middle bones have copy location constraints on them at varying levels of influence.

Here’s how I did it: I added in the first bone at the base of the cube, then add a 2nd bone at the top. Select the first bone ‘base’ in edit mode and duplicate it, (shift d) and right click to confirm. Now in pose mode, go to the bone constraints panel and add a copy location constraint, choosing the ‘top’ bone as the target. The bone should snap to the ‘top’ bone, now adjust the constraint’s influence until the bone moves down to the middle of the 2nd vertical section. Go into edit mode, select the ‘base’ bone and again duplicate it, add the constraint, adjust as needed for the middle section. Repeat for the next to top section, new bone, constraint, etc… All bones need to be children of the ‘base’ bone. Now when ‘base’ is moved, all other bones move with it. When ‘top’ bone is moved up, the middle bones move at varying levels of influence and work as you want them to. Now it’s a simple matter of parenting each section of the mesh - each section of the mesh must be a separate mesh object and selectable in object mode - to the bone that controls it.

Quick and dirty method that took me 15 mins to make. A better way would be to create all 5 bones at their proper location, add the copy location constraint to the middle 3, and adjust the influence until each bone moves back to it’s original location. Then parent the mesh objects to the bones. Thought of that as I was writing this and it would give you a easier to edit armature. In my example file, if you select the armature and enter edit mode, it kinda collapses and would be difficult to edit later if needed.

Randy

Attachments

minecraft_example_rig.blend (455 KB)

For simple animation like this, you can get away with using Shape Key. Just make the base stack geometry. Create Shape Key. Move the plates to expanded position. Go back to object mode to record it.

Thanks revolt, I’ve tried to do as you say but cant figure it out. Am i creating one armature for the very top layer, and then a second armature for the lower levels? Because i’d prefer to do it all in one rig if possible. I tried to, however when I have created the bones, and go into POSE mode, I cant add any constraints copying, theres no option to add. I CAN get that option in edit mode, but as soon as i select the rig, the “copy location” box (where you select the object it copies from) goes red. Theres no sub-option for selecting individual bones.

Ridix, your method sounds simpler, but unfortunately i dont know the first thing about shape keys or how to make them :confused:

Thanks again for your help!

Scrap that, I’ve figured it out, i was going to the main CONSTRAINTS panel, not the BONE CONSTRAINTS one further along.

I’m still frustrated though. I have got as far as parenting the bones to the base bone. That SEEMS to work, but theres no relationship dotted line between them. However the bones move as intended, so all seems good. HOWEVER when i start assining the middle boxes to their bones and press tab to get out of edit mode, they move upwards out of position.

I have attached the file of my test model. Note that this one has 8 layers if it makes any difference. Please someone tell me what i’m doing wrong. Currently theres only the bottom (base) bone and the next level up (which is the one thats snapped out of position).Constraints_Fail.blend (523 KB)

Edit: comment removed, I posted as crazycrinkle was posting…

OK, glad to see you got this figured out:

Scrap that, I’ve figured it out, i was going to the main CONSTRAINTS panel, not the BONE CONSTRAINTS one further along.

So far so good, up next is this:

I’m still frustrated though. I have got as far as parenting the bones to the base bone. That SEEMS to work, but theres no relationship dotted line between them. However the bones move as intended, so all seems good.

This is not correct, to make a bone a child of another bone, you assign it a parent in the bones panel, under relations:

HOWEVER when i start assining the middle boxes to their bones and press tab to get out of edit mode, they move upwards out of position.

To solve this, select the box you are trying to assign to the bone, in the modifiers panel, remove the armature modifier. Then in the 3d view, with the box selected, do alt-p -> clear parent. Now the box should return to it’s correct position. Now select the box, then shift-select the bone, enter pose mode. ctrl-p to parent, and choose the option ‘bone’.

Randy

Attachments

Constraints_Fail.blend (478 KB)

Ahhh i figured out another way of making it work, fairly bizzare, but it guess theres more than one way to skin a cat model. What i did was create the boxes for the Base and Top bones. Then make duplicates of the “Base” box and not move them anywhere (so all in same space). It was offsetting them from the positions i had put them by a factor of how far the middle bones were from the sub bones. So by leaving them there, it offsets them into the correct position. I think i’ve got this now, thanks for your help randy!

So true, you could have even just used 1 mesh object that consisted of your 8 meshes, and 1 armature modifier with vertex groups and accomplished the same thing. By this, I mean in object mode you’d have 1 mesh object, but in edit mode, you’d have 8 meshes. All the verts of each mesh would belong to a vertex group named for the bone that would control it’s movement with a weight of 1. This object would then have an armature modifier on it set to use vertex groups, which is the default set up when adding the modifier. This approach would actually be better now that I think of it.

My first post, I was just thinking about rigging it up. Using 8 mesh objects means when you get to texturing it, you have 8 mesh objects to unwrap and map to the same image. This could get tricky. But if you have just 1 mesh object, you’d only have to unwrap the 1 mesh object. Would be easier to UV map and the fact that it is a cube would make this super easy to do.

If you want to go with this method, post up the .blend file after it’s fully rigged, and I’ll describe to fix it up in this manner and give you a quick example of how to uv unwrap it.

Randy

Thanks Randy, I’ll stick with what i’ve got for now, as it works well. Just to show off I very quickly composed an animation showing the finished character in action: