Categories
Complete Projects May 2021

Achilles Complete

05/06/2021 – The Achilles is the most ambitious project I’ve done as an amateur, and any time you push the limits you learn a lot. To keep it so the good stuff is up front, here’s links to three different p3d views of the fighter. The first two are with the wings open, in a dark space environment and in a lighter environment, and the third is with the wings closed. Click each thumbnail to be linked directly to the p3d! Do note that you can see through the cockpit floor through the bottom of the fuselage, this is a p3d bug not a feature.

The most important lesson I learned is that it is FAR easier to composite together multiple complete texture sheets like I did for the missiles than it is to unwrap and texture an object as complex as the Achilles in one go. When it came time to unwrap the main fighter itself my main goal was maximum quality – but I went about it all wrong. Let me break it down.

  1. I decided I wanted to maximize the amount of surface area on the unwrapped texture each component had. To do this I decided to split the fighter straight down the middle, unwrap one side, then mirror it across to get the other side. This meant giving up on any of the text decals I had so much fun with on the missiles. This is a bad approach because it leads to butterflying along the centerline. Much of that I was able to fix up but there’s still visible seams right down the centerline.
  2. I also wanted everything scaled properly to each other. This was an absolutely enormous delay, not to mention a task that sapped my desire to keep working on the project because it took ages to get Maya to unwrap without the program’s unwrap algorithm literally crashing. It would regularly reach some arbitrary limit for how many UV shells it could handle and then just dump the rest in a pile somewhere on the map.
  3. After that ordeal I decided I didn’t want to spend ages stitching together UV shells. I was anxious to get into Substance and start painting. From before I started doing anything in Substance to after I declared victory, I was still editing and fixing things in Maya as a consequence. Worst of all, Maya’s unwrap feature often splintered contiguous surfaces and scattered them around the map. In order to take advantage of modern textures’ mipmapping Substance will automatically grow the contents of a UV shell out to the boundary of the next UV shell. This would have been fine had all my UV shells been fairly comparable in size, but since Maya made lots of tiny splinters scattered around the ship often this meant dark regions were next to glowing regions. Also pursuant to point 1, I wanted to maximize my usage of space, so I told Maya to pack things with one pixel of padding between them. Maya’s smart, I thought. Maya can do that. That is a thing that can be done, I said confidently to myself.

Putting that all together, the ship is marred by a variety of obnoxious little flaws. If you look in the large open weapons bay you’ll see that meticulously modeled armature bizarrely speckling. That’s because of the issue I alluded to in point 3 above – a lot of those armature shells are next to glowing regions and they’re so tiny compared to the size of a pixel even on the Achilles’s gigantic 4k map, they get little bits of glowing blue on them. And this automatic spread between the shells is not something I can hardcode or edit, so the only way to mitigate it is erasing the blue on the neighbor that’s too close! While researching the problem I often found advice recommending padding distances of ten pixels between shells, as opposed to my incredibly optimistic 1 pixel boundary!

So how could I have done that better? What are the lessons to take home from this project?

  1. Once a complicated component is more or less finished – especially in a project like the Achilles with lots of transforming parts – it’s critical to consider unwrapping it completely and texturing it right then and there. This leads to enjoyable incremental progress and breaks the unwrapping step down into manageable chunks. I should have unwrapped the upper wing and lower wing together so that they were scaled correctly to each other. Then I could have applied what symmetry I wanted to and really gone to town on just those two objects. Then, once I had the engine modules, even though the upper and lower modules have different bases I could have taken the common geometry and unwrapped that, texturing that to completion. The success I had with compositing the missiles together into one texture sheet shows that getting perfectly accurate scaling between missiles or in this hypothetical example regions of the ship isn’t necessary – I guessed well enough with my texture sizes that none of the missiles look particularly low res compared to the rest. There’s no reason I needed to unwrap the internal structure of those weapon bays at the same time as the rest of the fighter as those will be rarely seen details.
  2. I should have broken apart the main body of the fighter in thirds. I should have mirrored the wings and the flat chassis of the fighter around a unified fuselage, instead of simple left/right mirrored symmetry. This would have been only slightly less inefficient than what I chose, and had I spent the time to stitch together the regions that Maya shattered that would have led to better results, without the obnoxious mirroring line down the center. It would also have given me a region that was not left/right symmetric to put plenty of the “danger” signs that I so enjoy.
  3. If I hadn’t done any of that, what I could have done is use Maya’s layout tool to generate square regions that were comparable to each other and then scaled them by hand. Again using the interiors of the weapons bay as an example, I could have just selected all those faces in Maya and used the Layout command to fill an arbitrary square sheet with them, then dragged them away from the rest of the fighter and simplify that way.

While working on the Achilles I regularly ran into problems with the ambient occlusion as well and that was because it will be in multiple different poses when fully implemented in Freespace, so the amount of light reaching a surface is not always consistent. I ended up saving out the ship with its wings closed or its missile bays closed and then generating fresh AO maps and hand compositing them together in a best-fit arrangement. Had I declared the wings “done” and then textured them in Substance and then moved on, they wouldn’t have the shadows cast by the rest of the fighter initially baked into them. This is a double edged sword and I suspect I would have needed to spend a few hours fixing up the same AO problems no matter what approach I had taken.

Final thoughts – I am incredibly excited to move on to something different. Having a detailed concept for the Ion Frigate will hopefully mean I spend less time trying to come up with interesting shapes within Maya like I did for the Achilles. It’ll also be a great testbed for the lessons I’ve learned from the Achilles, where I’ll want to split it in thirds and mirror the left third across the center third for an efficient but asymmetric texture. Plus Homeworld is how I got started with artwork so it will be an adventure – but that’s for later. For now, I’m thankful I aimed so high with the Achilles. I never would have really learned just how important it is to have semi regularly topology unless I’d tried to make it shiny like a car (or more accurately like its Tron inspirations). I never would have learned that there are serious practical limitations to Maya’s UV layout tools had I not relied too heavily on them for the Achilles. There’s a lot to be said for learning from others, but one of the best ways to learn is by trying on one’s own and I’m glad I did so for this project. Thanks for your patience!