Special Note: As this post came out late, we’re going to be post-heavy this week with releasing parts Three and Four Today, while extending entries for both until Tuesday October 20th! Why? I’m going to be on a plane next Monday for work. And Yes, you can enter on both posts 😉
This is part Four of a five-part series about Starship design in Star Trek Online with Thomas Marrone (@thomasthecat, @Cryptic_TtC) . Previous entries can be found here: Part One, Part Two, and Part Three.
Thomas joined Cryptic in 2010 as a web designer working for Cryptic and Atari. He moved over to STO in early 2011 as a UI artist and in November of last year moved over to ships full-time. Check out his portfolio, Tumblr, and many DeviantArt examples.
Q7: Building the 3D Model – Describe the process.
As I mentioned before, we use the 3D modeling suite 3D Studio Max to create ship models for STO. I am relatively new to 3D modeling, but I do know that different programs had different foundational metaphors when it comes to creating something in a digital 3D space. The program Z-Brush behaves more like a sculptor carving out shapes from a large block of clay. 3Ds Max is a bit of a mish mash in terms of how you can approach modeling but when it comes to ship modeling the method we use is often referred to as “polygonal” modeling.
While for some games 3D assets are modeled at a much higher resolution and then “baked down” to the final, lower polygon count before being imported into the game engine, the ships of STO are modeled at their final in-game level of detail. There are a variety of reasons for this that I might get into later, but suffice it to say that the modeling process, compared to some other 3D processes, is pretty straight forward.
While the metaphor for Z-Brush is “sculpting,” I prefer to think of how we build ships in 3DS Max as “construction.” We start with basic “primitives,” such as spheres and rectangles, and then break them down to a literal wireframe of edges that connect at points called a “vertex”. Three vertices connect to form a “triangle,” but many triangles can be grouped together in one “face”. Faces are contained by explicit edges the modeler connects between vertices. (Note that a face can be one triangle, that is: a set of three vertices connected, or it could be composed of many more vertices and thus contain many triangles. Faces are only defined by the edges that surround them.)
When we are building ship models, we are manipulating all three of these “subobjects”, vertices, edges and faces, moving them in 3D space, pushing them, pulling them, squashing them and stretching them. We might take a sphere and squash it and that’s how we get a Starfleet saucer section. Or we could take a cylinder and extrude faces along its edges to create the feathers for a Romulan Warbird. It is a long process that becomes intuitive the more often you do it. And certainly there are some robust tools in 3DS Max for powerful manipulation of these wireframes in very specific and technical ways. (Twisting, lathing, extruding, distorting, etc.)
Finished ship models will usually end up with dozens or maybe even hundreds of various elements fused together to create the illusion of a real spaceship. You’ll have the squashed sphere of the saucer stuck on top of a box that has been smoothed and skewed and chamfered to create a neck that joins to a cylinder that has likewise been manipulated to make an engineering hull, which has sticking out of the back of it more rectangles that have been sculpted into engine pylons which lead up to more cylinders that have been lathed into warp nacelles. On top of these large shapes lots of smaller shapes are added for things like phaser arrays, transporter relays, navigation lights, deflector dishes, etc.
These models, when they are done, need to have a texture applied. This process is called “unwrapping.” Think of it like unwrapping a birthday present, but carefully. Each side of the box has a flat piece of paper stretched over it, and when you “unwrap” a 3D model you are basically assigning sections of your flat texture (the wrapping paper) to corresponding faces on your 3D model (the present’s box).
Unwrapping can be seen as a tedious process because it is very important in adding a large amount of detail to what would normally be considered a low-poly model. The unwrapping process is when the artist decides which sections of the ship might be the normal gray hull color versus which sections might have paint patterns applied, or what kind of surface detailing the phaser strips might use, or where the shuttle bays are, or how the warp grills or navigational deflector look.
STO uses a pretty clever system where every ship material uses the same template – it doesn’t matter if the material is Romulan or Klingon or Starfleet or Ferengi, they all have the same sections in the same places. That is to say, the deflector array is in the same place, the primary hull color is in the same place, the torpedo launcher details are in the same place, etc etc.
This lets us ensure that any material can be potentially used on any ship, since they are all unwrapped to the same place on the material template. This is also why we can release new ship textures with each reputation and have these new textures look appropriate on existing ships.
After a ship’s model is finished and it has been unwrapped, the final stage is the lengthy process of data setup that is required for the ship to work as a playable model in game.
The artist positions special nodes called “mountpoints” to describe in 3D space where weapons fire from or various parts of the ship, such as the saucer, neck, pylons or nacelles, attach to one another.
If ship is brand new and not a variant of an existing ship, the artist must define the “skeleton” of the ship in a text file. The skeleton is a list of all the various parts, or “bones” of the ships. Bones are the major pieces of the ship that you see in the ship tailor, like “Saucer,” “Neck,” “Hull,” “Pylons,” etc. There are also “child bones” that must be defined separately, such as the windows and escape pods.
Once all the necessary text files have been edited the artist then goes into the in-game developer tools to finalize the import process. Ships are considered “costumes” by the game engine, so we use the developer version of the costume editor to create “geometry definitions” for each bone and child bone of a ship. These geometry definitions are data files that define a variety of properties for each piece of starship geo (the saucer section on the Galaxy class, for example.) Properties defined by these files include the materials it can use, which types of costumes the geometry is legal on, which child bones (such as windows or decals) it might use, what its display name is in the tailor, etc.
Geometry definitions must be made for each bone and child bone individually. Once that is done, the ship artist can save the final assembled costume as a preset that gets used when the ship is granted to a player once they first receive it.
Q8: On Twitter you commented: “Which means extra time on decals, surface details, name and registry number placements. All that stuff takes more work than you’d think.” How do you deal with the challenges in the details?
Decals, ship names, and windows/escape pods (all modeled together on one child bone called “winpods”) are child bones that are modeled completely separately from the hull. They are modeled separately so that they can use separate materials – this is why you can change the window styles in the ship tailor without it affecting the base hull texture.
Decals are the little Starfleet deltas and red pinstripes that you see on many Federation starships. They are heavily present on ships made in the glory days of Star Trek physical models and add a special level of heritage and authenticity to the new ship designs we add to the Star Trek universe with Star Trek Online.
You might also consider the ship’s name and registry number (NCC-1701) as decals, though for the purposes of building ships for STO they are a separate animal with separate materials. When I am building Federation ships I try to apply them liberally around the surface of the ship in similar places as seen on canon ships, such as on the fan tail, on the pylons or nacelles, below shuttle bays, etc. As I said, they use a special placeholder material that gets filled in with the player ship’s name and registry number. That text automatically scales to fit the width of the geometry it’s placed on, provided the ship artist has “unwrapped” that geometry correctly.
The process of adding all these finishing details gets really involved because all these extra pieces use different materials, which means that they have to be different child bones. So, for the Galaxy class saucer section, there is the main bone, the geometry of the saucer, and then four child bones: name, subname, decal and winpods. All five of these bones requires extensive data setup to work correctly, and each individual piece of the model might have the same number of child bones. All told the rebuilt Galaxy class model had 28 total bones and child bones!
Next Week: Our final entry in the series!
If you’ve read this far, you are also know that we’re giving away some cool ships and Zen at the end of this blog series on October 30th 2015. Full contest rules can be found here. We’re accepting entries after we post each blog for 24 hours only.
Question One: What is the name of the tedious process used to define details on the skin?
Question Two: What faction would you like to see added to Star Trek Online?
How to Enter:
- Subscribe to this blog, or to my twitter account. (pretty simple, 1 entry per, automatically every week)