Join Adam Crespi for an in-depth discussion in this video Setting pivot points for buildings, part of Creating Urban Game Environments in 3ds Max.
- View Offline
Once we've gotten the building's design, ready we'd like to import it into Unity or a game engine. However, there is some final cleanup we need to do to make sure it's really ready for import. The first is this still a design model. There is lots of parts, nothing is named, there might be extra stuff and modifier stacks, it's messy, which is just fine for design. And we took some time to get the feel for this model and get it looking right and the unwraps right and everything works like the existing building. That's great! However, if I were to bring this across into Unity it would be another story.
I've done this as an example. Here in Unity I brought in the building and I've imported its materials as assets as well, applying them so I've got the upper floor and cornices. However, when I bring this in, everything comes with it. This is a bit of a mess. I'll open up the Project window as tall as it can go and open up that scene. As we can see we have several dozen objects and their mesh controllers and all sorts of stuff with it. This is messy. In Unity every object requires a draw call, every texture requires a draw call.
What I've done unnecessarily is put in maybe 60 or 70 objects for my game engine to think about as part of displaying one building instead of one object to come in with one texture to display on one building. So I'm possibly slowing down my gameplay. We want to streamline it before we bring it in. I'll go back to 3ds Max and show how to do this. In 3ds Max we want to look over our objects for any issues as much as we can. I'll look at this with an eye towards odd smoothing groups, odd shading, stretching textures etcetera, but I may see some minor issues here and there.
Part of getting this ready for export is to attach it together as one object, transitioning from a design model to an exportable model. I'll make sure I save the design model as a separate file first or save the export scene as a separate scene so I don't lose the editability in case I need to go back. These are instance objects. What I'll do is make this object unique. It doesn't really matter which one I start out with as long as I have one that is. Now I'll convert this to an Editable Poly by choosing Convert To Editable Poly.
I'll attach it to everything. Right-clicking and choosing the dialog next to Attach. In this dialog we can organize here. Right now I have a Display Geometry filter on. No other button is depressed, meaning I'm only showing the geometry. Additionally, I only have one object selected. I'm going to scroll down and make sure I don't see anything else odd and then in my selection filter I'll check Select All. Now it's going to attach everything to that object. When I press Attach it's gives me a warning.
How would I like to attach the Material IDs to the object? I can come back and deal with that one in a minute. I'll hit OK. I do see a little issue pop up on the side. Apparently, in the attaching I had some weird smoothing groups happen. Smoothing issues are noticeable by odd shadows or dark lines where they're really shouldn't be one on a flat wall. However, this is an easy fix. I know this is all flat. I made it so. I'll right-click choose Polygon and select this whole mass of polygons.
Then I'll scroll down to the Smoothing Groups and Clear All and that issue goes away. I'll right-click and choose Top-level. I'm just about ready. I could probably clean up my materials, although I will see some places in Unity to handle that. I need to name this. We'll call this Building01. That way I can find it when it comes in. In a city I may end up with Buildings 1 through 45 very easily. I also need to move the pivot to a place where placing in Unity is fairly straightforward. Right now the pivot is well up about the fifth floor and kind of in somebody's corner office.
Not the best place. To do this I'll go into the Hierarchy tab and check Affect Pivot Only. I'll also configure my snap by holding Shift+Right-clicking and making sure that Pivot and Vertex are both checked. I can use the Align tool or I can use Snap to move this pivot down where I need it. So if I am moving this building adjacent to a sidewalk I can put it precisely on. I'll show the Align tool as one method of aligning a pivot. I'll click Align and align the building to itself. The Align tool starts out with whatever settings were in there last.
What I'm going to do is align this from Minimum to Minimum or Minimum to Maximum until I get it where the pivot of the building goes down to the base. If I try a few options I'll find one that works. In this case, Y and Z from maximum to minimum seemed to do it. I'll hit OK when it's ready. When you align a pivot you want to make sure it's as close on to the place you're going to position the building as possible. I have it down on the floor correctly, but I need to move it over to that corner. I'll register my snap on it.
Notice the yellow ring on the pivot showing that it is snapping and I'll bring it right over onto that corner of the building. I'll uncheck Affect Pivot Only and now this is ready for export out. As a test if I press E for Rotate and spin the building, it does spin around that corner. So if I needed to flip this building 90 degrees to be on a different block to flesh out my city, it would be fairly easy. I can also snap it down to the sidewalk, again to avoid leaks in my scene. The thing to stress here and the thing you should watch out for is keeping your scenes clean and making it difference in your mind into the scene between a design model, where you maybe moving lots of elements around to get the feel of a place right, and the final model for export which should be as clean as possible so that we're reducing the number of draw calls leading to one building having one draw call and a better game.
- Understanding the design process and software requirements
- Analyzing concept art for texture and key shadow detail
- Planning differently styled buildings
- Laying out city blocks
- Organizing construction elements and models using layers
- Cloning geometry and texture
- Testing the module for correct floor-to-floor heights
- Arranging, aligning and cloning modular elements
- Building a texture library
- Creating stone, wood, and brick textures
- Constructing texture sheets
- Drawing detail
- Using occlusion as a foundation for dirt
- Preparing for Unity as a world builder