OSP Medieval 3D Art Narf's Men-at-Arms Armour Pack - UPDATE RELEASED 2016-09-19

Users who are viewing this thread

SacredStoneHead said:
I'm always amazed by how elegantly you manage to circumvent Warband's engine limitations and make everything look great.

Awesome job, as per usual!

The trick is not being aware of the limitations in the first place  :wink:  Thank you, means a lot coming from you.

kraggrim said:
Man, I wish I could do mail like you Narf, looks great :smile:.

I can explain how I made it if you want, it's not difficult.  I will include the texture in the pack as well.

yourxianda said:
And now I will notice all the mail in game are actually opaque. :shifty:

Funny, it's one of the things that all modelers are acutely aware of.  It dictates the way you have to make models, not just in this game, but any game.  That's why you usually see the ends of mail get tucked in to another bit of armour, or else get leather trim, or something.  Otherwise it looks so obviously fake, because you see it's just a texture where the mail gets chopped off.
 
kraggrim said:
Narf of Picklestink said:
I can explain how I made it if you want, it's not difficult.  I will include the texture in the pack as well.

Yes please :mrgreen:.
Slytacular said:
Narf, for the maille you just chop off half the rings and paint strands on the object in a 3D painter?

OK, here's the process I used.  I'm still experimenting to see what the best approach is.  I like having a separate mesh with transparency for the mail over an underlying model, but it does increase the poly count quite a bit, even when the model underneath is of a LOD2 quality.  A combination of that approach and just placing the texture on top of another in photoshop is probably the best way if I'm going to be concerned with poly count, but so far I've barely been counting, so why start now lol?

Basic mail texture (tileable)

1. In your preferred modelling program, create a ring.  I'm not sure what the exact dimensions should be, i just eyeballed it from some pics I googled.  I have seen the dimensions for a mail ring from an surviving (historical) hauberk listed as:
diameter .75 mm (original coil before manufacturing was 1 mm)
inner diameter of ring: 5-6 mm
outer diameter of ring: 7-8 mm

So basically the diameter of your ring should be about 1/5th the size of the inner diameter of the ring, or 1/7th of the outer diameter.  Don't make these with too many segments, you will end up with far too many faces to be manageable later on. 

2. Rotate the ring about 10 - 12 degrees on the Y axis (assuming your ring is oriented to be lying flat on the X axis).  If you're really anal, you can create a flat plane, lay your ring on it, make a copy and drag it over the edge of the first, then rotate and place it so it's sitting on top of that one.

3. Make a copy of the ring, and shift it horizontally till it is as far over as it can go without clipping. 

4. Make a copy of those two rings, and flip on the Z axis them so they are mirrors of the first two.  Move them up and over so they are in an interlocking position with the original pair.

5. Now you can make copies of these and shift them horizontally and vertically to make your basic mail part.  Use arrays or copy them, however you like to do it.  I started with an array that had around 30 x 30 links I believe.  I created a plane in the background and put the texture of my gambeson armour on it so I could get a good idea of the scale I wanted to make the array, because I intended to make a texture big enough to fit an entire 2048x2048 texture sheet without tiling.  In the end I had a HUGE array, really booged down my computer and took forever to render lol, but it was worth it.

6. Now for the tedious part.  You want to duplicate that basic array a few times, then go in and start rotating rings a bit to create some variation.  Don't go crazy, you don't want them too different or it will look sloppy and incongruous.  Just a few degrees to break up the pattern.  This is the step that makes the texture believable, so don't skip it.  Also, leave the top, bottom, and edges alone, as these will not tile properly if you start tweaking them. 

7. Once you are satisfied that your array is not too monotonous, export it into a sculpting program.  I used zbrush, so I can't speak for the process in scluptris or mudbox or whatever, but I assume it will work the same way.  Anyway, at the lowest subdivision level, use the move brush to start shifting your links around to create waves and such in the pattern.  The idea is to make it so the links aren't all perfectly straight, and to create parts of the array where the links are more crowded or more spaced out.  Again, don't go overboard, when mail is on a body it doesn't distort TOO much.  Again, you don't want to touch the top, bottom, or edges, as that will mess with tiling. 

The beauty of this is that zbrush will pull the verts evenly and keep them from clipping.  This should take only a couple minutes, whereas moving them manually in Max or whatever would take an eternity, and would result in tons of clipping.  I'd tried my hand at making a mail texture in the past, but for whatever reason it never occurred to me then to take it into zbrush, and the texture never worked without this step.  So I'm thinking this is the crucial step.

8. Now export a high poly version of your mail and bake your maps in your software of choice.  I use xNormal, and create a normal, occlusion (set background colour to black), and base texture map.  The reason I make the third is because I can paste it into the alpha channel and use it for transparency.  (You can also generate this in Photoshop from your occlusion map, for example by adjusting the contrast and then going Select > Color Range > Shadows, and deleting the black parts).

9. Now in photoshop (or whatever you use), create a grey background, put your occlusion map on top (I like a combination of multiply at about 50% and overlay at about 15%, but it depends on how your maps come out), put a bunch of overlays on top of that for extra extra variation, and you're done the diffuse.  The normal map can be placed on top when you need it, don't just generate it using a plugin (won't be as accurate).


Customise it to your model

Along the edges of the map you'll have your open rings.  You can align your texture to that for a quick and dirty way to get the bottom of a shirt or sleeve right.  It won't work for everything or fit every model though, so here's the next phase of the process: customising it to the model. 

1. Open the low-poly version of the mail that you exported from zbrush, and create also an image plane with the UVs of the model you are working on.  Position the mail so it fits the image plane.

2. Delete the rings that you don't want so that the rings fit inside the UVs.  To cut down on rendering time, delete everything except a few rows around where your UV borders are. 
ynD05Rh.png
6SFKXne.png
3. Subdivide the mail model until nice and smooth, export and re-bake.  Once you have your new maps, just put them over the previous ones and use a layer mask to blend them in.  As long as you are using the same settings for the bake, they will match exactly.  Don't forget to update the alpha channel.

Finally, you will want to bring in the model to zbrush (not the mail, but the actual armour model) and sculpt it to give it the proper shape.  The normals/occlusion you get from this can then be blended with the mail texture.
 
Great guide, thanks very much Narf. Have a couple questions if that's alright:
6. Now for the tedious part.  You want to duplicate that basic array a few times, then go in and start rotating rings a bit to create some variation.  Don't go crazy, you don't want them too different or it will look sloppy and incongruous.  Just a few degrees to break up the pattern.  This is the step that makes the texture believable, so don't skip it.  Also, leave the top, bottom, and edges alone, as these will not tile properly if you start tweaking them. 
Rotate along a particular axis, or just pick at random? Want to make sure I'm not missing something obvious here :grin:.

Finally, you will want to bring in the model to zbrush (not the mail, but the actual armour model) and sculpt it to give it the proper shape. The normals/occlusion you get from this can then be blended with the mail texture.
For the normals, how do you go about this? Had a go at it fairly recently and didn't really get anywhere.
 
kraggrim said:
Great guide, thanks very much Narf. Have a couple questions if that's alright:
6. Now for the tedious part.  You want to duplicate that basic array a few times, then go in and start rotating rings a bit to create some variation.  Don't go crazy, you don't want them too different or it will look sloppy and incongruous.  Just a few degrees to break up the pattern.  This is the step that makes the texture believable, so don't skip it.  Also, leave the top, bottom, and edges alone, as these will not tile properly if you start tweaking them. 
Rotate along a particular axis, or just pick at random? Want to make sure I'm not missing something obvious here :grin:.

Finally, you will want to bring in the model to zbrush (not the mail, but the actual armour model) and sculpt it to give it the proper shape. The normals/occlusion you get from this can then be blended with the mail texture.
For the normals, how do you go about this? Had a go at it fairly recently and didn't really get anywhere.

I'd stick with rotating them on the Y axis.  It would probably look very unnatural if you rotated on X, and Z would hardly be noticeable.  But by all means experiment, maybe it will look good.

To blend normal maps, you would place one map over top of another, set it to overlay, then neutralize the blue channel (various ways to do that, I just double click the layer and untick B under blending options). You then use the xNormal Normalize tool once you've flattened the layers.

Honestly, I forget to do that part very frequently, and the maps are fine, but the blue channel will get washed out if you don't do it.  Some people are really anal about the math and follow a few more steps (google it, there are probably a thousand threads on the subject), but I can't see the difference - at least not in Warband.  I don't really know how important the blue channel is, as it seems to me the red and green have the info between them that the blue would contain, but I don't have a very deep grasp on the technical side of this stuff.

Edit- here's what I mean about the extra steps.  https://forums.epicgames.com/threads/960569-Tutorial-How-to-merge-normal-maps-in-Photoshop
 
Narf of Picklestink said:
I don't really know how important the blue channel is, as it seems to me the red and green have the info between them that the blue would contain.

The channels represent which axis a given texel is pointing to, but since it's relative to the normal of the polygon, the blue channel determines the "slope" of the texel. Hard for me to explain properly so here's a diagram:

example.normals.rgb.png

Bad blending can result in illogical values (like something that faces both X and Y but is completely flat against the Z normal) and warband handles them really poorly. For chainmail who cares because it's a noisy texture anyway, but for more important large-scale normalmaps you can end up with weird lighting effects quite frequently.
 
The way these are made is that the parts fit together seamlessly (well, that's the goal at least), and are meant to be interchangeable.  They also fit with Native models, mostly.  If I didn't worry about making them fit with Native and my old models this would have been much easier and probably look better. 

The point is that even if I don't release that specific armour, you will be able to put it together in OpenBRF yourself. 
 
Wow, Narf I love your work so much and I can't wait to see it implemented in the Mercenaries mod. You truly are skilled.
A question: will you be making 3d models on Bannerlord too?
 
Sorry, I thought I'd have this done by now, but RL (work mostly) got way, way busier instead of quieter like I'd thought.  Spent all last week chasing down an IPv6 multicast storm.

Anyway, I'm going to get back at this I hope.  I have enough to release even if I don't get around to the extras I'd planned.  I'll make the call by the end of the month one way or another.

Flintlock longbow said:
Wow, Narf I love your work so much and I can't wait to see it implemented in the Mercenaries mod. You truly are skilled.
A question: will you be making 3d models on Bannerlord too?

From what I've seen of Bannerlord, it's well above my current level.  They have a very pro team doing it.  Not that Warband isn't pro, but when I started doing this I was only trying to keep up with Armagan, who was almost single-handedly creating all assets and code for a small indie game.  The bar is quite a bit higher now.  But then, so is the potential, so you never know.

 
Narf of Picklestink said:
Sorry, I thought I'd have this done by now, but RL (work mostly) got way, way busier instead of quieter like I'd thought.  Spent all last week chasing down an IPv6 multicast storm.

Anyway, I'm going to get back at this I hope.  I have enough to release even if I don't get around to the extras I'd planned.  I'll make the call by the end of the month one way or another.

Flintlock longbow said:
Wow, Narf I love your work so much and I can't wait to see it implemented in the Mercenaries mod. You truly are skilled.
A question: will you be making 3d models on Bannerlord too?

From what I've seen of Bannerlord, it's well above my current level.  They have a very pro team doing it.  Not that Warband isn't pro, but when I started doing this I was only trying to keep up with Armagan, who was almost single-handedly creating all assets and code for a small indie game.  The bar is quite a bit higher now.  But then, so is the potential, so you never know.

Yea, there's a ton of potential for Bannerlord and the Bannerlord modelers only make the general stuff. It will always be up to the modders to catch up and make the niche stuff like these armor sets that I've always liked(14th-15th century).
 
Back
Top Bottom