rig soft forms in blender
Animate a lion’s mane jellyfish, derived from a looping installation originally created for an aquarium
So when a client comes to you asking for a seamless loop of a near photoreal jellyfish, to be created entirely in Blender, you know that you’re going to have to find some pretty smart solutions to some pretty big problems. like how do you begin to manually animate a thousand tentacles? (Because there’s no way to make a simulation that complex loop fluidly; not to mention how to manage all the intersection errors.) And how do you rig an amorphous blob to move in such a particular way? over the next 15 steps you will learn the over-arching principles and main techniques of how you can rig a jellyfish, or any amorphous blob, while still keeping the rig lightweight and kind to your CPU.
Do your homework and study references get to know the creature you’re rigging, and become familiar with how it moves. don’t just study a video, use Blender’s grease Pencil tools to rotoscope (trace) a video frame by frame. this not only gets you used to the undulating motion of the jellyfish, it can also be used as reference instead of the video, should the video playback prove too CPU heavy for your viewport. Vital to the success of a project like this is being economical with computer power. After all, if it doesn’t playback smoothly, it’ll be impossible to animate, and we don’t all have the luxury of working on super computers. Additionally, grease Pencil animations can be moved to wherever it is that you need them, making them rather versatile in projects.
Workbench setup tip if you fix a car you probably shouldn’t attempt to fix it while it’s still moving. it’s best practice to work on it in a garage. likewise, when you rig a creature, it’s good to set up a ‘workbench’ space. to do this, give the armature (and any separate or additional parts) a ‘child of’ constraint and point it to an empty or null. this masterempty is what you animate to move the creature around the scene. this way you can create a test animation with the rig and see it moving in situ. But then by sliding the ‘child of’ constraint’s influence to zero, you can have your rig in the centre of the scene with all its axis aligned to the scene and orthographic cameras, perfect for a clean and orderly way of modifying a rig. then with a snap of the influence slider you will be testing the modifications in situ once more.
Set up the workbench driver As the creature becomes more complex, you’ll likely need multiple ‘child of’ constraints for each part (depending on your hierarchy). so it’s a good idea to set up a custom property on your masterempty – the property should be called something like ‘parenting’ and have a range of 0-1. then we can add a driver to each of the ‘child of’ modifier’s influence sliders. now the ‘parenting’ property will affect all the ‘child of’ modifiers at once.
Bone setup let’s look at rigging the bell, the main section of the creature. We need bones, but we want as few controls as possible, to achieve maximum variance. We will create a chain of regular bones to guide a few ‘bendy bones’ to deform the mesh. Create an armature, call it ‘jelly_rig’. Create a ‘Root’ bone, pointing upwards. then create a bone a little below that, also pointing up called ‘bell_peak’. from the base of bell_peak extrude a bone along the -x axis (call it ‘Upper’), and another from the tip of that one (call it ‘lower’). from each of these extrude a small bone along the z axis. Call the one closest to the centre ‘upper_ctrl’ and ‘lower_ctrl’. Parent each of these to the ‘Root’ bone (keep offset), also parent (keep offset) bell_ peak to the ‘Root’, then Upper to ‘bell_peak’ (keep offset).
Create bone constraints give the Upper bone a damped track constraint and point at the ‘upper_ ctrl’. give the lower bone a damped track constraint and point at the ‘lower_ctrl’. the ‘bell_peak’ and ‘upper_ctrl’ and ‘lower_ctrl’ give you control over this armature. the ‘root’ bone lets you position the armature in the scene (this is mostly redundant due to using the child of and ‘masterempty’ as in step 2 but is useful for hierarchy as well as counter animating and fixing trouble during animation).
Deform bendy bones let’s extrude another bone from ‘bell peak’ (call it ‘upper.def’), going along the same axis as the upper bone and reaching the same point. extrude another from ‘upper.def’s’ tip, following the same axis and length as lower bone (call this ‘lower.def’). make both ‘bendy bones’ by adding six segments in the bendy bone options. give the ‘upper.def’ a stretch-to Constraint target the ‘upper_ctrl’ bone. give the ‘lower.def’ a stretch-to Constraint target the ‘lower_ctrl’ bone. these bones now flex and follow the angular bones, and can deform our rig.
Screw modifier and mesh deformer How do we use a single chain of bones to manipulate an entire mesh? start by creating a single vert a little above the tip of the jelly’s bell, (call this object ‘Jellymeshdef’) then extrude a line of verts around the ‘bell’s’ profile, a single edge of verts and edges. Add an armature modifier to this geometry, point it to our ‘jelly_rig’. then Weight Paint the verts to the bendy bones. this means adding vertex groups with names ‘def_upper’ and ‘def_lower’ and either painting in values in Weight Paint mode or selecting the verts that fall closest to the bone with a corresponding name and assigning a value of 1 to it. this line of verts and edges should follow the deformations of our armature. if we then add a screw modifier, to ‘spin’ the geometry around 360, we have a bell shape that deforms all the way around with only a single control arm. Add a mesh deform modifier to the main ‘bell’ geometry and ‘bind’ it to the spun ‘Jellymeshdef’ geometry. the single chain of bones controls the entire bell geometry.
Add variety with Wave modifiers to add some unevenness and break up the symmetry, we can stack multiple Wave modifiers on top of the mesh deformer. Remember the Wave modifier is particular about how it is used and along what axis it will work. fortunately due to our diligence in step 2, the modifiers will occur prior to the child of modifiers, enabling us to set up our geometry along the correct axis to make use of the Wave modifiers.
Create a Bézier curve, subdivided as much as you need and create hooks at each control point. these hooks will be how you control the tendril animations
Manual tendril system to make the tendrils, create lines of verts and edges with no faces (along the y axis so we can use them with the Wave modifiers later). Have ten to 20 of these lines in a single object and sculpt them to look like a slightly wavy group of hairs. Call this object ‘tendrils’. Create a circle mesh and extrude out some faces. Call this ‘tendrilcollar’. then create a Bézier curve, subdivided it as much as you need and use Cmd/ctrl+h to create hooks at each control point. these hooks will be how you control the tendril animations. Keep in mind that the more you subdivide, the more options you will have, but also the harder you will have to work to animate it. We settled for five control points on our curve, with more of them close to the start of the curve to avoid mesh intersections.
Create parenting tendrils the first of these hooks should be parented to the tendrilcollar. the remaining empties and the tendrilcollar, tendrils and Bézier curve will all need a ‘child of’ constraint (as in step 2). give the tendrils a Curve modifier and point it to the Bézier curve. Reposition the tendrils to fix the offset. the tendrils should now deform along the curve when you move the empties. (once the mane is complete we will reparent the collar).
Modifiers for tendrils to give it some movement, add two Wave modifiers before the Curve modifier. set one to work the x axis and one to work the y axis, set both to global and give them a cloudy texture. this should create broad swaying motions to emulate the undercurrent of the ocean. experiment with them to get the effect you want. Crucially, we now need a displace modifier after the Curve modifier, again use a cloudy texture and set to global and ‘rgb to xyz’. this will create a turbulent effect as the tendrils move through space.
Finish the tendrils in order to keep the Wave and displace modifiers in check, Weight Paint a vertex group so that these modifiers don’t affect the roots of the tendrils. We can then add a subsurface modifier to the stack to smooth the tendrils out. We now have undulating tendrils that can be animated manually. However, as they have no faces they won’t render, so add a screw modifier set to 0.4 degrees to extrude out some faces, then add a solidify modifier to finish off the effect.
Duplicate the tendrils duplicate the entire mass of tendrils (except the collar) to another layer, reparenting the first hook to a different section of the collar. do this as many times as required, remembering you have to manually animate this… about ten of them did the job for us. this should result in a full mane of tendrils that can be manually animated, with a great deal of procedural details.
Put your creation through its paces, particularly if you are creating the rig for someone else. no animator wants to experience a nasty surprise halfway through a project!
Attach to the main rig now your mane of tendrils is complete, attach them to the main rig. Put the rig in ‘workbench’ mode (parenting to Zero) and going back to the ‘Jelly_rig’, add a bone (called ‘skirt’) just below the ‘bell_ peak’ and parent it (with offset) to the ‘bell_peak’. this will now prevent the tendril roots from penetrating the bell geometry, and follow its undulation as you animate it. Be sure to test that you haven’t ‘orphaned’ or ‘double parented’ anything. this means that when you adjust the ‘parenting’ value, orphaned objects will not move and double parented objects will shoot off randomly. orphans need parenting or ‘child of’ modifiers, whereas double parents probably have a ‘child of’ modifier (or Curve modifier) as well as a parent, so its inherited translation (movement) is doubled. to fix this, try unparenting it.
Test and test again! Put your creation through its paces, particularly if you are creating the rig for someone else. no animator wants to experience a nasty surprise halfway through a project! it may be prudent to lock the locrot and scale of any values of any object in the rig that you don’t want to be tampered with. now’s a good time to review what you want to achieve with your rig and consider adding, or even scrapping parts of the rig that don’t fit with your workflow. You can also think about changing bone shapes to make the controls easier to recognise.