Initially, I wanted to write a blog each month. And now the snow has melted and spring has arrived, and it's been nearly 5 months since we last talked.
So before I show you screenshots of the game and explain the process of texturing a ship – or more specifically texturing this and all future Sails of War ships – I want to apologize. I have been very busy over the last few months and did not have the amount of time I would have wanted to work on the Sloop and Sails of War as a whole.
Though a positive news is that we have finally set up version control and other tools to help development and overall quality of life.
Without further ado:
All you see above is rendered realtime in Unreal Engine 4. The ship and her materials will very much appear just like this ingame, the flags and sails will change. Currently, they are not using any built-in simulation and are static. Once in the final product, they will change to dynamically fly in the wind.
Also, static are all ropes and rigging you see, I am looking into having at least some of them swing dynamically as well
Swaying motion will be very important for a believable ship and sail feeling – is however not necessary for a static screenshot.
Now you might be asking: “Hey that's pretty cool looking, how did you do that?”
Well, glad you ask! It actually took me the better part of half a year to get to this point. I had the overall shape of the ship done back in September of last year – believe it or not.
And don't think I have been lazy! As you can see a lot has changed since then. Water and sky are one large factor, the other, more obvious is the addition of sails.
But most of the work was done redoing the ships UV unwrap – two times. UV unwrapping – for those who don't know – is the process of translating the shell of a 3D object into a 2D plan. That information can then be used to display textures.
Initially, I was aiming for a tiling unwrap, where each material would be repeating. As you can see in the picture it didn't really read well. Or to put short: I didn't like it.
What it became (as you see it above) is still a unique unwrap, however, it gets overlayed by a unique texture which adds definition and darkness as well as dirt. Paint is now done dynamically via material, scratches, and variation derived from part normalmap part mask.
The ship material master is a highly customizable material which – thanks to switches – can become whatever part of the ship we need it to be. Some solid metals might not need a texture input – some details are not part of the unique dirt overlay. These inputs can then simply be turned off.
I went for using one master as it seemed easiest – thanks to UE4 you can create instances of a master and also of other instances: This means the red painted wood is an instance of the blue painted wood, which in turn is an instance of the unpainted wood which again is instanced from the master. This way changing one value at the root gets passed along to all connected children. Quite nice to work with. (but also as confusing as it sounds).
Sails and flags have their own material. UE4 has build-in subsurface scattering – perfect for cloth. This material – similar to the more complex ship master one – has multiple applications. For any sail an overlay may be added to add detail such as seams. The shading model also needs additional information for what colors to spread below the surface, all may be set within the instances.
Finally, tweaks to the water and sky materials were necessary to achieve the look I was aiming for. I won't get into to many details but one large factor was adding better foam caps onto waves.
You had a long wait for this, I hope I was able to make it worth it. I'd absolutely love to hear your feedback on look and feel. Any critique you might have is fully appreciated and welcome!
This was a beast to make – I didn't even get into redoing the ship model itself for better normals, applying face weighted normals and adding details. This really was the one to set the bar with, all following ships will now be easier.
I might also be able to reuse certain materials or speed up the process by only changing it slightly. The next ship I am looking to make is a smaller one, either inspired by HMS Nancy (1789) or Renard (1812), possibly either both or a hybrid their of. I am not entirely sure yet. Other ships I do want to make include USS Constitution (1797), Batavia (1628) and possibly HMS Victory (1765).
I know Batavia is a bit older than the rest but she serves as our concept art and due to a full-size reconstruction is rather known and has appeared (not herself but her shape) in other media such as film.
Which of these ships I end up making only time will tell – the names and list given is more of a “I'd like to make these”. So be aware that I might drop one or the other. We will have to keep game balance in mind as well!
That all said I am totally looking forward to making more ships and also in progressing with code.
So do keep an eye on my personal Twitter, Sails of War Twitter or follow us here. I will be dropping the monthly blog for a more flexible time schedule which will allow entries with more content! Let me know if that's okay with you.
Till then - Lukas