Creating assets designed to run in a game engine often requires many technical considerations that are not as prominent in other pipelines, such as film. Depending on the game engine and platform you’re designing for, knowing how to optimize assets can make the difference between a game that performs at the desired frame rate and one that performs sluggishly. In this series, we’ll create a jetpack model using Maya LT, while highlighting some modeling best practices to help optimize your game assets. To see how to integrate this jetpack into a game prototype, refer to the “Creating a mobile game prototype with Unity & Maya LT” series. Typically when modeling an object, you can either build it starting from a single polygon, or slice up a much larger polygon to match the desired shape. In this case, we’ll be taking the latter approach. Before we start modeling, let’s look at a high resolution version of this jetpack using FBX Review, which is available through the AREA website. This mesh was created and optimized for promotional imagery, not a mobile game. However, we’ll use it as reference to create a lower, more optimized mesh from scratch. If we break down this jetpack into its main components, we can see it features two sets of thrusters, a fuel tank on each side, and an air intake. The body shell that connects these parts together also acts as a containment unit that its operator, Sven, can use to store his weapon. So considering all these distinct pieces, we should ask ourselves whether we want to model each of them separately or as one mesh that combines them all. On one hand, modeling each piece separately would be simpler, and would make future updates to the model easier as well. On the other hand, combining these parts into a single mesh would streamline the process later on if we decide to texture and animate our object. Here, we’re going to take an approach that leverages both methods: we’ll first model all the parts separately, to better understand how they connect to one another, and then combine them as one mesh at the end. Start with a new Maya LT scene. The workspace area, where you’ll model your objects, begins in a perspective view that gives you full control over all the camera’s axes. Press the Spacebar to toggle between this perspective view and the top, front, and side orthogonal views. You can also use the Quick Layout buttons to swap between these workspace configurations. Since it’s always better to model using references, we’ll use image planes to display jetpack renderings in the top, front, and side views of the workspace. In the top view, go to View>Image Plane>Import Image. Open the “jetpack_top.png” image from the provided files linked below. The top view displays the reference image in the appropriate workspace. Repeat this step to create image planes for the remaining front and side views. Open the Outliner from the Window menu. The Outliner lists everything contained in your scene. Rename the new image planes according to their respective views. By default, Maya LT creates the image planes at the scene’s origin. Since they’ll get in the way of our model, let’s move them away 20 units in their respective axes. Finally, group them together as an “imagePlane_grp”. Now we can begin modeling the jetpack’s body shell. As you can see from the white outlines on the reference images, the shell has an odd shape that looks like a backpack with slanted sides to accommodate the connecting pieces. Unlike the thrusters and fuel tanks that remind us of spheres and cylinders, the shell is harder to categorize as one specific primitive. So let’s start with a simple cube and see where it takes us. Go to Create>Polygon Primitives, and turn off Interactive Creation. Then create a polygon cube. Adjust its scale in all 3 axes to roughly match the white outlines in the reference images. You can line it up more easily by turning on XRay mode in each view to see through the cube. To shape this cube into a jetpack shell, we’ll use the Modeling Toolkit, accessible from the top right. The Modeling Toolkit loads a side panel consisting of a set of selection and transform tools, as well as mesh editing tools. Click the Power button to activate it. This tells Maya LT to use this toolkit instead of its native transform and selection tools. To activate the Modeling Toolkit by default, enable Auto-Activate Modeling Toolkit in the Options menu. Since this jetpack is symmetrical, we can shave off some time by only modeling one side, then using the toolkit’s symmetry tool to mirror the result. To enable Symmetry on a model, you must first define a line of symmetry. However we currently don’t have a center edge on our cube so let’s create one. Make sure you’re either in Edge or Multi-Component selection mode. Switch to the front view, and then select all of the cube’s horizontal edges. Under Mesh Editing Tools, click Connect. A green line previews the new cut based on the tool’s options. Leave Slide to 0.5, Segments to 1, and Pinch to 0. Press Enter to create the new edge loop. Select any of the center edges you just created and click the Symmetry tool to activate it. Now if you hover over your cube, you’ll see the symmetrical vertices, edges, and faces highlighted in blue. Note that Symmetry works in all selection modes, which means that you can mirror vertices, edges, and faces separately based on the mode you’re in. Select the cube’s vertical edges and use the Connect tool again to create five new segments. Go to Vertex selection and use the Move Tool to adjust the vertices in all views to match the shell’s white outlines. With the limited number of vertices we have to work with, your shell might look more like a bean at this point. One of the keys to efficient box-modeling is to progressively insert new edges as you shape your mesh, in order to control your overall polygon count and ensure you maintain a clean, quad-based mesh topology. “Quads” refer to four-sided polygons, and are the preferred way to model your object, since they are better suited for subdivision if you need to add more details to your mesh. They can also be easily reduced down to triangles for additional optimization. If you aren’t careful, you can end up with over-subdivided objects, which in turn would require extra calculations from your game engine and impact performance. With hundreds of these objects populating your game world, it wouldn’t take long for your game engine to slow down to a halt. Use the Poly Count display to keep track of the number of polygons in your object and in your scene in general. You can toggle it from the Display>Heads Up Display menu. Another thing to factor in is how close or far this object will be from your camera in the game. After all, there’s no point using a highly detailed mesh if the camera is too far away to see it. We’ll address this point in a later movie when we look more at “level of details” or “LODs”. Turn on Preview Loop/Ring, then select a side edge. Maya LT highlights the possible edge loops or rings based on that selection. To select an edge loop, hold Shift and double-click a continuous edge. Shift + double-click the remaining edges at the top and bottom of the jetpack shell to complete the set. Click Bevel to apply it to your selection, then switch to the Offset attribute in the Bevel Options and drag in the workspace to adjust the bevel offset until you get a nice rim. Press Enter to confirm. Press the 1, 2, and 3 keys to cycle between your current mesh, a smooth preview of your mesh with low resolution cage, and the same preview without it. This can help you better visualize the impact of your modeling operations on the jetpack’s shape. Here, you’ll notice that this new edge rim helps to sharpen the front side. Now let’s create the containment unit that is part of this shell. Using either Multi-Component or Face selection, select the top 6 front faces, and then click Extrude. Extruding pulls new polygons out from the existing faces. This is a great way to expand your mesh in a controlled way. Set Local Z to -1.5 to push the extruded faces inside the shell, then use the Move and Scale tools to flatten them in Z and adjust their position in Y so the bottom faces are at a right angle to the opening. Next, we’ll extrude the bottom portion of the shell forward to create the pointy section that will attach to the main thrusters. However this time, we’re not going to extrude the remaining faces like we just did. Rather, using Multi-Component selection, select these edges and then click Connect. Reset the settings to only create one new edge loop. You can now drag the middle two faces forward to create the bottom shell section. However, notice how this last edge loop creates some triangles and five-sided polygons? While triangles are acceptable, these five-sided polygons, otherwise known as “n-gons”, are not. We need to convert them into quads. Select this vertex from the n-gon, and then Shift-select this edge from the triangle. Connect them together. You’re now left with only quads. Repeat this for the top faces of this section. To reposition the new vertices without affecting your mesh’s topology, you can constrain them to any edge or face as you move them. Under Transform Constraints, select Edge Slide, then move the vertices to create more uniform quads. At this point, you can continue aligning the remaining vertices to match the new shell sections. Lastly, for the top section, select both faces and click Extrude. Reset the settings, then enter an Offset value of 0.3. Create a new extrusion and extend the side faces to create little “ears”. This completes the body shell for now. We will come back to it later when we connect the other jetpack parts to it. In the next movie, we’ll model some of the remaining jetpack components.