Advertisement

You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Skinny: Automatic Mesh Generation, Rigging and UV-Mapping

31

skinny.jpgLeif Dehmelt has been working on a Python script to create skinned rigs from an armature. The concept is simple: you draw an armature and the script will generate a cylindrical mesh around it.

Leif writes:

I am currently developing a little tool called 'Skinny'. The key idea behind this tool is to quickly generate rigged meshes ready for animation. The modeling process is reduced to the armature setup. The skinny script then generates a seamless, weighted mesh around the armature, resulting in a rigged figure ready for animation.

At the current stage, the script only supports flat (x,y) armatures with either simple connections or X-crossings. All bones receive the same number of vertices arranged around the bones in three segments of circular patterns. The circular patterns can have an arbitrary (but even) number of segments.

For the first release version of this tool, I plan to implement user defined segment density for each individual bone influence zone and automated UV-mapping according to the 'flow' of the armature. I also would like to implement user defined shapes to extend the standard circular pattern around the bone segments. I would like to hear any feedback, if such a tool would be useful, and what features would be most important.

This script is not as sophisticated as scripts like MakeHuman, but I think this is an interesting approach. I think it has potential to grow into something very useful.

Links:

About the Author

Avatar image for Bart Veldhuizen
Bart Veldhuizen

I have a LONG history with Blender - I wrote some of the earliest Blender tutorials, worked for Not a Number and helped run the crowdfunding campaign that open sourced Blender (the first one on the internet!). I founded BlenderNation in 2006 and have been editing it every single day since then ;-) I also run the Blender Artists forum and I'm Head of Community at Sketchfab.

31 Comments

  1. Neat idea. I've seen a couple of scripts that try to use armatures to emulate ZBrush, but this one's the best so far. With a little work, I think it could easily be used to create ZBrush-like objects.

  2. Great script!

    Although I could not download the 0.9 version, the 0.6 version is already impressive.

    Saves heapes of work. Got the thing running in seconds.

    Keep up the good work.

  3. Great tool ! a lot of opening and idea to start simple object, or multires object from this basis.
    Even for modeling a tree it's interresting ( Unwrap a tree is ....argh ! ). And make tree posing for wind simulation or haunted forest ( lol )
    I will be happy to see it integrate in the bone edit panel into the next release.

  4. Very impressive!
    Would be nice to see the reversed thing too:
    You've a complete mesh, and, maybe via vertex group or -painting, you get a rig :D
    Can you adjust the shapes arround the bones? (If not, you may can add it :D)

  5. I get an error, un sure why, the console gives this output..

    Blender.Scene.getCurrent() is deprecated,
    use Blender.Scene.GetCurrent() instead.
    PupBlock returned 1
    Traceback (most recent call last):
    File "c:\Program Files\Blender Foundation\Blender\.blender\scripts\skinny.py",
    line 1673, in button_event
    run_skinny()
    File "c:\Program Files\Blender Foundation\Blender\.blender\scripts\skinny.py",
    line 1432, in run_skinny
    current_bone=bone_stack.pop()
    IndexError: pop from empty list

    here is the file.. http://uploader.polorix.net//files/144/Skinny_error.blend..

  6. Wow, this can help with so many things! Thanks Leif! Keep developing it.

    It would be even greater if users could, at some point during the workflow, specify the mesh type (sphere, cube, etc.) associated with each bone.

    It's extremely useful as it is, though. Thanks.

  7. hey! cool script. Nice work! I think this is something that could be very useful. Seems like it
    could accomplish the same task as Z spheres.

  8. Oh i see, You guys are just trying to skip the whole modeling step in the character process and go on to the
    armature step instead. How lazy!

    jk......it sounds like a cool idea to me.

  9. @Leif Dehmelt

    I've found a little drawback in the process.

    If you make a branch in your armature's, as described in the tutorial, then you get strange artifacts near the fork of the branch, once you rotate the whole branch 180 degrees it is gone.

  10. The Troll is back!

    This is a nice script,perhap it could be key for mucsel rig to
    mech? need to test more.

    Again good work!

  11. Flurp: I looked at your armature and found a few things that are not compatible with the current version of Skinny. There are a number of restrictions for how the armature has to be set. At first you might think that few armatures could be made based on these restrictions, but if you think and plan carefully, you can generate almost any type of armature. Check out the example file to see, how a mesh can be setup optimally for working with Skinny. In your particular case I noticed one major problem:

    The 3 central bones called 'Bone', 'Bone.007' and 'Bone.010' did not have any parent. I did not state this explicitly in the tutorial, but if you follow the rules set out in it, you would never arrive at such a constellation. Your Armature should only have one single bone, which does not have any parent ,which I refer to as the 'origin' bone. For any armature to be made with Skinny, you should start with the origin bone, and then add new bones only to the pointy part of the bone (in octahedron mode). If you want, you can assign the the name 'origin' to this first bone, which will tell the script, that no mesh segments should be made for this bone. Another way to describe what is wrong with this constellation, is that a connection between three bones can only have the shape of a straight connection (two bones with their pointed ends pointing in the same direction) and a branch from this straight connection to either the left or right side.

    You should also note that your armature could only be skinned with automatic mode, which is an inferior method considering the quality of the resulting mesh. You could setup this armature easily for the normal mode, if you restrict the armature setup to the x-y plane. You can rotate the bones afterwards using pose mode to get the constellation the you setup in this example.

  12. Eelko: You need to be careful in which direction you make the branch. If you start of from a straight line of two connected bones, a branching bone can either be oriented towards the right or left side of this connecting line. If the script produces an artifact, you can correct this by editing the bone properties using the Edit Bone button and assigning the letter 'R' for right in the orientation property. The default orientation is 'L' for left. The same applies for X-crossings, in which the first branching bone should branch of to the left side.

  13. Great Idea! I wanted to publish this as request feature (to edit bones as mesh) while ago. I didn't tried this script yet, but I wonder if it can be used also with more complex armatures too, like Mancandys with IK targets and constraints?

  14. Igor: there are restrictions to the armature setup, but as long as the basic rules are followed, armatures of any complexity should be possible. I did not test this exhaustively, but I do not think that there is any specific restriction on bone number. IK targets and constrains should not affect the script at all. But there are limits to the setup: 1) only one bone without parent, only simple connections, T-sections and X-crossings, i.e. no junctions with >4 bones connected to one junction. But, most practical armatures should be possible to make - like trees or bilateral symmetrical, segmented animals.

  15. cool script!

    this could be very useful for artificial life sims in blender.

    I'll make a lame feature request :) .. I'd love to see automatic muscle approximation in the mesh generation, ie: maybe bulge the mesh out near intersections of large bones, and take into account rotation contraints on the bones to decide how to model the muscle. Could be very powerful i think, for generating arbitrary, realistic creatures from just bones.

  16. kaeru:

    I did not know about Bbones before. Apparently, the skinny generated mesh deforms well with the Bbone adjustments without any further tweaking. It appears to me, that you ask for replacing the usual mesh that is generated by skinny with cubes based on the Bbones. I could not find a way to extract the positions of the Bbone cube objects through python, so I would not know how that could be done.

  17. http://terrymorgan.net/screenshotscurrent.htm

    The two shots at the bottom are my Skinny cave, I had to put it in Blender 242a
    and remove 423 verts to get an Ogre mesh out of it, nice job, Leif!

    Quote:
    You guys are just trying to skip the whole modeling step in the character process and go on to the
    armature step instead. How lazy!

    Unquote

    I'd like it to automatically generate vertex groups and UV coordinates and then produce a set of reusable animations, that's how lazy I am!

Leave A Reply

To add a profile picture to your message, register your email address with Gravatar.com. To protect your email address, create an account on BlenderNation and log in when posting a message.

Advertisement

×