New Thing: Drakes!

I released a pair of new things recently, a Spitting Drake and a Rending Drake!  You may recognize the basic technique that I used to create these guys from my Giant Viper post, and that's because I used the same basic technique here as I did there!  I've decided to write about it though, because I've learned a lot about how to use Blender since I made the Giant Viper, and so my workflow has become more elegant (which allowed me to make more complex models and preserve a lot of flexibility, allowing me to change the model around to go from the Spitting Drake to the Rending Drake).

I started this process in pretty much the same way as before - I designed a single scale.  Just like before, I made a very basic scale shape and used a subdivision surface modifier to smooth it out a bit, but since I knew that I'd end up with a lot of these scales (and that each one was going to be fairly small), I didn't make them too smooth.  That done, I put an Array modifier on the scale and gave it an arbitrary number of scales, something like 10 (this will be adjusted later).

My next step was to make an overlapping row of scales that was offset from the first.  Instead of applying my previous modifiers, duplicating my scales and sliding them around, I decided to add another Array modifier to my object.  This time, I used an offset on two axes - one to move the scales upwards (but not a full scale length upwards, as I wanted overlap) and one to move them sideways (I offset it by 1/2 my scale width, so that the peak of one scale would overlap the valley of the two scales underneath it).  That gave me two rows of scales with a nice overlap; it's starting to look draconic!

With my scales built, my next step was to put them on a circle.  So, I hit shift-a and added a bezier circle, then scaled it up to something that resembled my drake's average cross-section.  I then put the Curve modifier on my scale, applying it to the circle.  This game be a nice scaled ring, and is so far very similar to how I made the Giant Viper.  When doing this step, make sure that the scale object and the circle object have the same origin, otherwise the Curve modifier will freak out.  Do do this, select the circle and then press shift-s and select Cursor to Selected.  Then, select the scale and press shift-s and select Selected to Cursor.

Here's another point where where my process changed a bit.  With the Giant Viper, I applied the modifiers and started deleting scales to make the belly.  In this case, I just adjusted the number of scales in my first Array until there was a good, belly sized gap in them.  This kept my modifiers in place, which made it easier to adjust things later on in the process.  I then added another Array modifier (this is the 3rd one on my poor little scale object), this one offset on the Z axis enough to make the additional rows of scales overlap the existing rows correctly.  You can either futz this distance, or calculate it as (the z offset on the previous array) + the height of the scale.  I just made a bunch of them with the array, like 50 or something.

That gave me a nice tube of scales, with a gap along one side (to eventually receive belly folds).  Since this tube is all defined from a single scale with a bunch of modifiers, it was really easy to increase the radius of the tube or the size of the belly gap or whatever as I continued working on the model.

With my scale tube created, my next step was to put it into a nice draconic shape.  So, I hit shift-a and added a bezier curve, then moved the control points around to make a nice squigly shape.  First, I tried making an S, then I tried a more different S...

With my bezier curve looking good, I went back to my scale object and applied another Curve modifier to it.  Yeah, that modifier stack is looking pretty intimidating at this point, but that preserves a lot of flexibility!  I assigned that squiggly bezier curve as my Curve object, and my scale tube immediately conformed!  Now, depending on how accurate my guess on Array 3 was, my scale tube would either be too short to fill up the bezier curve or too long (so it would have a long straight bit sticking off the end).  At this point, I adjusted the number a bit to make it look good.  There was still a lot of work to be done, but I found it helpful to have the scale tube resemble the final product, so that I could more easily see what I was doing.

In my old Giant Viper model, I applied most of my modifiers to my scale tube so that I could scale up individual rings or rotate them to get them looking good on the bezier curve.  Now, I know better!  It turns out that each control point on the bezier curve has a bunch of properties, two of which interest me: Tilt and Radius.  After I got my dragon's body shape in place, I used those variables to adjust the details.  I used Tilt to get it rotated so that the dragon's belly was where I wanted it to be, and I used Radius to make the dragon thicker in the middle and thinner out towards the tail and neck!

Next, it was time to make the belly of the snake.  To do that, I just duplicated the ring that defined my first scale row, hit alt-c to convert it to a mesh, and then took that duplicate into Edit mode.  In there, I extruded it upwards a fair amount (as large as I felt a belly roll should be), then hit ctrl-r to put a ring cut in the middle.  With that ring cut selected, I hit s and scaled it up slightly.  Then I deleted the top and bottom faces and put a Subdivision Surface modifier on it to smooth it out.  Then, I did an Array modifier (with Merge enabled, so that it would actually combine the arrayed instances into a single water-tight tube) and did a Curve modifier, following the same bezier curve as the scale tube.

That gave me an assembled dragon body, but the whole thing is just a single scale and belly segment.  All of the cool details come from modifiers that are applied to it, meaning that I can easily change the pose by adjusting the bezier curve or any of the other factors that define this guy!  To make the arms and the legs, I just duplicated the original scale and bezier circle, then tweaked their settings to get a good arm-scale-tube and leg-scale-tube, then made new bezier curves to give them their shapes and jammed them into the body.  To help with printing, I went ahead and added a smooth "belly" cylinder inside each arm and leg, so that the slicers would read each as a watertight object with a bunch of overlapping watertight objects... instead of a bunch of mildly overlapping water-tight objects that are arrayed around a void.

After that, it was time to sculpt!  I didn't do anything particularly special when making the dragon's head/hands/feet/spine ridges, just a lot of trial and error sculpting.  After that was done, I shoved everything together and started running test prints.  When they had problems that required adjusting the pose (those of you who follow my Patreon will know that I had to do a major redesign on the spitting drake after my first test print), I was able to make those adjustments without too much pain, because the bulk of the drake was so programmatically defined.  When I had to do a ground-up redesign, I really just ended up making a new (larger and more angled) scale, then tweaking the numbers on the arrays to adjust to that new larger scale size!  It was then relatively easy to take that adjusted Spitting Drake model and turn it into the Rending Drake model!

Comments

Popular posts from this blog

How Much Filament Do I Have Left

Prusa MK3 Stringing at .05 mm Layer Height Resolved!

Using PrusaSlicer to Design Tree Supports for FDM Prints