Making Chainmail in Blender

Hi everyone - this week I came across an awesome technique for making repeating patterns on a mesh in Blender.  Given that I'm currently working on an armored headless horseman model, this struck me as the perfect way to make some chainmail.  Check it out:

This is cool because that chainmail is a repeating pattern of intersecting rings.  Well, it's specifically a repeating pattern of the intersections between a bunch of rings, but you get the point ;)

So, how'd I turn that little chain intersection bit into a bunch of chainmail for my model?  I used the Tissue Addon, that's how!  I watched a great video by Default Cube on turning objects into woven baskets, and I thought to myself, 'this would work fantastically for chainmail!"

So, first, what's the Tissue addon do?  Basically, you give it two meshes, call them a host mesh and an object mesh.  It then puts a copy of the object mesh onto every face of the host mesh.  So, in my case, I created a mesh of my guy's torso (with fairly large quads) as the host mesh, and I created my chain link intersection as my object mesh, then used the Tissue addon to tile a whole bunch of chain links all over the torso!

So, to make my host mesh, I had to make a simplified version of this guy's torso.  The Tissue addon requires quads, so I used cube extrusion and ring cut techniques to ensure that every face would remain rectangular.  In fact, the addon works best with square faces (since it stretches the object mesh to fit the faces on the host mesh), so I did my best to make them all square during the modelling process.  Here's what I came up with:

As you can see, I literally built this host mesh around my existing model's pose geometry (and under the armored plates that I had already built).  Each of those faces is designed to host the intersection of a chainmail link, so that meant that I had to figure out how to make those intersections.  It was a bit of a brain bender, but after a lot of trial and error, I eventually figured it out.

To make my ring intersections, I started with a Torus (shift-A -> Mesh -> Torus).  Each torus here is going to represent a single ring in the chainmail armor, so I made it really low resolution, with only 12 Major Segments and 8 Minor Segments (it'll be quite small on the finished model anyway, so it'll be fine).  I also increased the Minor Radius to 0.4 so that the ring would be nice and beefy.  If this chainmail is going to be printable on an FDM printer, we're going to need fairly thick rings.

The Tissue addon is all about making tiling objects, so it doesn't allow for any sort of overlap (at least, not that I saw).  That means that I need to focus on the overlap of the chain links myself and model that part, rather than a bunch of whole links.  To better understand that shape, I made a bunch of chainmail links by hand... but I'll write down what I learned here so that you can skip that learning process!

Our intersection is going to have 4 links, one going each cardinal direction, but we need to model exactly 1/2 of each one.  We need to have open ends facing each of those directions, and the bits are going to have to line up for tiling.  The first thing that I did, was make one of the half-link bits.  I hit tab to go into edit mode, then pressed z and selected wireframe so that I could see all of my geometry.  I pressed 1 to change to vertex mode, just to help me better see what I was doing.  My goal was to delete half of my torus, so I pressed b to go into box select mode and selected half of the vertices, avoiding the ones in the very middle.  With only half of my torus selected, I pressed x and selected vertices to delete the selected vertices.  I then hit z and went back into the solid view so that I could better see what I was doing.  That left me with a nice, half torus with open ends:

I did a lot of tweaking of my chain link angles, and I found that easiest to do while in Object Mode so that each segment could have its own adjustable rotation (and local Z axis, which is really helpful).  So, I pressed tab to get back to Object Mode.  My next goal was to angle my half-torus and duplicate it to make it tile-able.  I selected my ring and hit r y 25 to rotate it 25 degrees along its local y axis (ensure that your transform orientation is set to local for these steps to work).  I then made my duplicate by pressing shift-d r z 180.  This duplicated my half-torus and then rotated the duplicate around its local Z axis 180 degrees.  I then pressed g x x and slid the duplicate along the global X axis (that's why I pressed x twice in a row) until the two halves overlapped nicely, as you see below.

That gave me my ring segments for my East/West link, so it was time to make the ring segments for the North/South links.  To do this, I selected one of my half torus objects, then hit shift-d enter alt-r to duplicate it and then clear the rotations from that duplicate.  I then hit r z 90 to rotate it 90 degrees on the Z axis (so that it would face the North/South direction), then I hit g shift-z and dragged it so that the open ends were just past the bottom of the other two objects and so that it was centered between them.  It doesn't need to be perfectly centered at this point, but the closer you can get it now, the easier things will be later.

With my first North/South chain piece in place, I had to rotate it.  This was totally counter-intuitive to me, but this piece needs to be rotated along the same global axis as the other two pieces in order to make a good interlinking chain object.  I think that the easiest way to get this angle correct is to hit numpad-1 to change your perspective to the global Y axis (which is what we've done all of our rotation along so far), then hit r and just rotate it by hand until it looks right.  Notice that my new link is running through the centers of the existing links, instead of going through the solid edges outside of them.  There's also some clipping between the links; I think that's actually a good thing for 3D printing, as it'll ensure that the chainmail is more printable/solid.

With that first North/South link in place, the next step is to duplicate it for the other side.  We'll use the same technique as earlier, so just select that object and hit shift-d r z 180 to duplicate it and rotate that duplicate 180 degrees along its local Z axis.  It should line up to make a perfect torus with the existing one at this point, which we don't want... so hit g y y to move it along the global Y Axis and scoot it up until it's in position.

There's a really important detail about this Y axis positioning.  Notice that my North link is the highest object along the Y axis and that my South link is the lowest object along it.  That's super important because these are eventually going to tile and, there'll be gaps if those links aren't on the very extreme edges of the object that we're building.

Having said that, you might have noticed an issue that we have.  Our North/South borders are great for tiling; they're nice flat lines with the North/South links positioned on them.  Due to the rotation of our chain links, the East/West borders are problematic though.  If this tiles, we're going to have gaps where those edges don't line up.  Fortunately, because of how small these are going to be, we can fix this really easily.

Just select one of those pieces (I've got the West one in this screenshot) and press tab to go into Edit Mode.  Then press 2 to go into Edge Select mode and Alt-Click on one of those edges to select the whole ring.  Then, shift-alt-Click on the other one to select the second ring.  With them both selected, press s x x 0 to scale them to 0 width on the global X Axis (making them a perfect line).  Once they're nice and flat on that axis, just hit g x and drag them along the X Axis until they are the western-most part of the object.  Once you've fixed one of the East/West links, just repeat this process on the other one to make that shape that I showed near the start of this post!

Now that we've got all of our chain linkages laid out correctly, we've got just a bit more prep work to do.  First, we need to select them all (I like to hit b and use box select, but you do you!) and hit ctrl-j to join them into a single object.  After you do that, you'll notice that the object's axes are the axes from whichever object was active, which isn't quite what we want.  So, hit ctrl-a and select rotation to apply the object's current rotation, which will basically reset its axes to match the global axes.

And that's how I made my tiling chain-link piece!  Of course, it's not much good without the Tissue addon, so you'll want to go to go to Edit -> Preferences -> Add-Ons and search for Tissue to install it.  Once you have it installed, it'll add a new section to the Edit menu on the right-hand side of the workspace that's called Tissue Tools, with a few interesting buttons.  Go ahead and add another Torus, but this time we want more faces.  I found that 48 Major Segments and 16 Minor Segments worked quite well for me in that it gave me relatively square faces.  I then scaled it up a bunch so that I'd be able to actually see what I'm doing ;)

With the test torus in place, I then selected my chain link bit and used shift-click to also select my new test torus (this clicking order made the test torus the active object, which is important).  I then hit that awesome Tessellate button on the Tissue Tools section.  I enabled the Merge option, then hit OK, and voile, I had a chainmail torus!

When I made the chainmail jacket for my Dark Rider proxy model, this is exactly the technique that I used!  Just, instead of tessellating my chainmail intersections over a test torus, I tessellated them over the torso model that I made =)





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