From BlenderWiki

Jump to: navigation, search

Etch-a-ton or Bone Sketching

Mode: Edit mode

Panel: Bone Sketching (3D View window)

Hotkey: P

Menu: Armature » Bone Sketching

If you think that creating a whole rig by hand, bone after bone, is quite boring, be happy: some Blender developers had the same feeling, and created the Etch-a-ton tool, which basically allows you to “draw” (sketch) whole chains of bones at once.

The Bone Sketching panel in its default (inactive) state.

The Etch-a-ton tool is obviously only available in Edit mode, in the 3D views. You control it through its Bone Sketching panel (P, or Armature » Bone Sketching), and mouse (LMB Template-LMB.png to draw strokes, and RMB Template-RMB.png for gestures). Showing its tool panel won’t enable sketching – you must click on the Use Bone Sketching button to start drawing bone chains (else, you remain in the standard Edit mode…).

Sketching is done in two steps:

  1. Drawing some “smooth” and/or polygonal lines (called “strokes”). Each stroke corresponds to a chain of bones.
  2. Converting these strokes into real chains of bones, using different methods.

The point of view is important, as it determines the future bones’ roll angle: the Z axis of a future bone will be aligned with the view Z axis of the 3D view in which you draw its “parent” stroke (unless you use the Template converting method…). Strokes are drawn in the current view plane passing through the 3D cursor, but you can create somewhat “3D” strokes using the Adjust drawing option in different views (see below).

If you enable the small Q button of the Bone Sketching panel (top right corner), the two steps are merged in one: once you have finalized the drawing of a stroke (see below), it is immediately converted to bones (using the current active method) and deleted. Quick and efficient, but you lose all the advanced stroke edition possibilities…

Sketches are not saved into Blender files, so you can’t interrupt a sketching session without loosing all your work! Note also that the sketching is common to the whole Blender session, i.e. there is only one set of strokes (one sketch) in Blender, and not one per armature, or even per file…

Drawing Chains

Strokes example. From top to bottom:
*A selected polygonal stroke of four straights segments, oriented from left to right.
*An unselected free stroke of two segments, oriented from left to right.
*A selected mixed stroke, with one straight segment between two free ones, and oriented from right to left.
Note also that the armature being edited is empty (has no bones), so you can only see its object center (pink dot, at the bottom).

So, each stroke you draw will be a chain of bones, oriented from the starting point (the reddest or most orange part of the stroke) to its end (its whitest part). A stroke is made of several segments, delimited by small black dots – there will be at least one bone per segment (except with the Template conversion method, see next page), so all black points materialize future bones’ ends. There are two types of segments, which can be mixed together:

“Straight” segments
To create a straight segment, click LMB Template-LMB.png at its starting point. Then move the mouse cursor, without pressing any button – a dashed red line materializes the future segment. Click LMB Template-LMB.png again to finalize it.
Each straight segment of a stroke will always create one and only one bone, whatever convert algorithm you use (excepted the Template conversion method).
The first segment has be started (LMB Template-LMB.png click) and the mouse moved to its end point.
The first segment has been finalized by a second LMB Template-LMB.png click, which also started a new segment…
Repeating these steps, we now have a four segments polygonal stroke.
Drawing straight segments example.
“Free” segments
To create a free (curved) segment, click and hold LMB Template-LMB.png at its starting point. Then draw your segment by moving the mouse cursor – as in any paint program! Release LMB Template-LMB.png to finalize the segment – you will then be creating a new straight segment, so if you would rather start a new free segment, you must immediately re-press LMB Template-LMB.png
The free segments of a stroke will create different number of bones, in different manners, depending on the conversion method used. The future bones’ ends for the current selected method are materialized by small green dots one those segments, for the selected strokes only.
The free segment drawing uses the same Manhattan Dist setting as the grease pencil tool (User Preferences window, Edit Methods “panel”, Grease Pencil group) to control where and when to add a new point to the segment – so if you feel your free segments are too detailed, raise a bit this value, and if you find them too jagged, lower it.
While drawing a first free segment (LMB Template-LMB.png click and drag).
The first free segment finalized (releasing LMB Template-LMB.png).
If you now move the mouse without pressing LMB Template-LMB.png again, you’ll create a straight segment…
But if you immediately click again and drag LMB Template-LMB.png, you’ll rather start a new free segment.
Drawing free segments example.

You finalize a whole stroke by clicking RMB Template-RMB.png. You can cancel the stroke you are drawing by hitting Esc. You can also snap strokes to underlying meshes by holding Ctrl while drawing. By the way, the Peel Objects button at the bottom of the Bone Sketching panel is the “same thing” as the “monkey” button of the snapping header bar controls shown when Volume snap element is selected – see the snap to mesh page for details.

A stroke can be selected (materialized by a solid red-to-white line), or not (shown as a orange-to-white line) – see (Strokes example) above. As usual, you select a stroke by clicking RMB Template-RMB.png on it, you add one to/remove one from the current selection with a ⇧ ShiftRMB Template-RMB.png click, and A (de)selects all strokes…

Hitting X or clicking on the Delete button (Bone Sketching panel) deletes the selected strokes (be careful, no warning/confirmation pop-up menu here…). See also the gesture description below.

You can adjust, “redraw” your strokes by enabling the A button of the Bone Sketching panel (just to the right of the Use Bone Sketching one). This will modify the behavior of the strokes drawing (i.e. LMB Template-LMB.png clicks and/or hold): when you draw, you won’t create a new stroke, but rather modify the nearest one. The part of the old stroke that will be replaced by the new one are drawn in gray. This option does not take into account stroke selection, i.e. all strokes can be modified this way, not just the selected ones… Note also that even if it is enabled, when you draw to far away from any other existing stroke, you won’t modify any of them, but rather create a new one, as if A was disabled.

Adjusting a stroke: the gray part of the “unselected” (orange) stroke will be replaced by the currently drawn “replacement”.
Stroke adjusted.
Adjusting stroke example.

Finally, note that there is no undo/redo for sketch drawing…

Gestures

There quite a few things about strokes editing that are only available through gestures. Gestures are started by clicking and holding RMB Template-RMB.png (when you are not already drawing a stroke…), and materialized by blue-to-white lines. A gesture can affect several strokes at once.

Gesture.
Result.
Cut gesture example.
Cut
To cut a segment (i.e. add a new black dot inside it, making two segments out of one), “draw” a strait line crossing the chosen segment where you want to split it.


Gesture.
Result.
Trim gesture example.
Trim
To trim a stroke (i.e. cut out and delete one of its ends), “draw” a “L” (two straight lines at right angle), the first line crossing the stroke where you want it cut, and the second line more or less aligned with the part of the stroke you want to delete.


Gesture.
Result.
Delete gesture example.
Delete
To delete a stroke, draw a “V” crossing twice the stroke to delete.


Gesture.
Result.
Reverse gesture example.
Reverse
To reverse a stroke (i.e. that the future chain of bones will be reversed), draw a “C” crossing twice the stroke to reverse.


Gesture.
Result: the Action menu pops-up.
Action gesture example.

There are two other gestures, a bit more “complicated”:

The Action menu
To show the Action menu, “draw” a “C” crossing twice the stroke to affect, and ended with a small “pig tail” – the affected part of the stroke will be between the two crosses.
The menu has three options:


Before Flatten action.
Result: nothing visible!.
Flatten action gesture example.
Flatten
This should flatten the curved parts, I guess – but it seems to have no effect…


Before Straighten action.
Result: the “selected” part of the stroke has been straighten – note that the already straight segment is now very short…
Straighten action gesture example.
Straighten
This will make the “selected” part of the stroke straight (the segments are kept – but the already straight ones tend to be heavily shorten…).


Before Poligonize action.
Result: the partly “selected” free segment has been completely straighten.
Poligonize action gesture example.
Poligonize
This will transform all (partly) “selected” segments into straight ones – so this won’t affect segments already straight…


Gesture.
Result.
Convert gesture example.
The convert gesture
By “drawing” three straight connected lines, the third one crossing the first one, you will do the same as clicking on the Convert button of the Bone Sketching panel – you will convert selected strokes to bones. See below for details on converting strokes to bones process.
This is the only gesture which position has no importance, neither which strokes it crosses – only all selected strokes are converted…

Unfortunately, there is no direct way to cancel a gesture once you’ve started “drawing” it. So the best thing to do, if you changed your mind (or made a “false move”), is to continue to draw until you get a disgusting scribble, crossing several time your stroke – in short, something that the gesture system would never recognize!

Damned! I didn’t want to cut this stroke here!
Let’s doodle a bit…
Phew! That was close, but the stroke is still in one piece…
Canceling gesture example.


Converting to Bones

Once you have one or more selected strokes, you can convert them to bones, using either the Convert button of the Bone Sketching panel, or the corresponding gesture (see above). Each selected stroke will generate a chain of bones, oriented from its reddest end to its whitest one. Note that converting a stroke does not delete it.

The Subdivision Method drop-down list of the Bone Sketching panel.

There are four different conversion methods – three “simple” ones, and one more advanced and complex, Template, that reuses bones from the same armature or from another one as a template for the strokes to convert, and which is detailed in the next page. Anyway, remember that straight segments are always converted to one and only one bone (except for the Template conversion method), and that the future bones’ ends are shown as green dots on selected free segments.

Remember also that the roll rotation of the created bones has been set during their “parent” stroke drawing (except for the Template conversion method) – their Z axis will be aligned with the view Z axis of the active 3D view at draw time.

Fixed conversion
With this method, each free segment of the selected strokes will be uniformly divided in n parts (set in Num numeric field), i.e. will give n bones.
The Fixed conversion settings and its preview on selected strokes.
The Fixed conversion result.
Fixed stroke-to-bone conversion example.
Adaptative conversion
With this method, each free segment of the selected strokes will create as much bones as necessary to follow its shape closely enough – this “closely enough” parameter being set by the Threshold numeric field, higher values giving more bones following more closely the segments’ shape.
So the more twisted a free segment, the more bones it will generate.
The Adaptative conversion settings and its preview on selected strokes.
The Adaptative conversion result.
Adaptative stroke-to-bone conversion example.
Length conversion
With this method, each free segment of the selected strokes will create as much bones as necessary, so that none of them is longer than the Len numeric field value (in Blender Units).
The Length conversion settings and its preview on selected strokes.
The Length conversion result.
Length stroke-to-bone conversion example.
Template conversion
This is a more complex topic, detailed in its own page.