Join Craig Barr for an in-depth discussion in this video Tips for creating effective assets, part of Unreal: Architectural & Industrial Visualization.
- [Instructor] In order to create an effective visualization, some real thought needs to go into how to create proper assets that will be efficient and allow you to have good performance for your visualization, especially if you're going for an interactive, playable visualization, as well as if you want to expand this into virtual reality. These are some basic principles to adhere to to help you get the best out of your performance of your visualization. So for example, building your assets in quads, working with quadrangulated meshes, is the key to getting a good workflow.
Of course, at game time, it will be triangulated, and there's nothing wrong with working with triangulated meshes, but it's much easier when it comes to things like UV layout, and a lot of polygonal modeling tools now are more equipped to easily handle quads. There's a bigger array of tool sets for quads over triangles as well. So building quads, you can always triangulate it later. That's much easier to deal with. And of course, game engines automatically triangulate your meshes anyways. So build with quads, keep it light and clean, and you'll have a much simpler and easier workflow.
Of course, one of the things that you want to make sure is that your assets are clean and are nicely welded together. And what I mean by that is that all of the vertices are merged or welded together. Most 3D modeling packages, doesn't matter what it is, whether it's Maya, Max, Cinema 4D, Blender, you could go on and on, have the ability to merge or weld your verts together. And this is important when it comes to anything for, especially if you had something that was going to be deformable, but also if you have something that's carrying texture.
If you have cracks or seems, it can break apart the texture and become very noticeable and it can develop into all sorts of problems within your visualization space. Check the face normals often. One of the easiest ways to do this, in Maya, for example, is with a smooth mesh preview, and this is a way that it will right away show you if there are bad faces or reversed faces, for that matter. You can also display face normals rather quickly to be able to see all of the normals for the faces, and they should, of course, be pointing out.
Just make sure that your face normals are facing the correct way to prevent problems down the line, and that can be anything from bad-looking geometry in the actual game engine or bad UVs or improper textures within the game engine as well. So face normals are very important for having a good, clean, effective asset for your project. Another tip that I have is the way of displaying border edges, so if you have a model and you have areas on the model that represent the edge border or the border of a UV layout, for example, displaying those border edges can often show a couple of different things, especially when it comes to errors.
This is where you might see edges overlapping, you might be able to see some unwelded or unmerged vertices, but displaying the border edges will often reveal if you have bad geometry. You should see nice, clean border edges there. If you see them just kind of ending nowhere, there's typically an issue happening there, and that's a good visual cue of where that issue lies. Again, keep your meshes as low-poly as possible. There's nothing wrong with building anything nice and hi-res in detail, and then of course for detail, you certainly want to do that.
But at the end of the day, you want your lower-poly, game-version mesh that can take all of those details from the higher-res mesh. And this is where you could use something to bake the details between the two. But you want a nice, low-poly mesh, something that's clean, efficient, is light on the engine, that isn't going to bog it down with over-the-top amount of vertices. Keeping the triangle and ultimately the quad count when you start modeling, work with quads, knowing that simply that count will be in triangles is always the double the number of that, for obvious reasons, being a quad split into two tris.
You always want to keep your numbers as low as you can, low as you can meaning as low as you need it to be for your visual look that you're going for for your visualization. If you go ultra-low, things are going to lose their believability and they're not going to look as real as you may want them to look. So that is something you really have to gauge, depending on what your project is. But ideally, you want to keep the geometry on the lower end for weight and for overall performance, especially if you're building for virtual reality where it can really bog down the overall performance.
So keep them lighter, or towards the lighter end, and try to get away with using texture maps to showcase more of the details rather than the geometry where you can. A clean layout of UVs, so texture coordinates are very important when it comes to a good, effective asset for visualization. And the basic two reasons are right there. You want to have this for good, clean, effective textures and the ability to have good, clean light maps. Unreal Engine, if you want it to, will create light maps for you based on your UVs.
So this is where you want properly laid-out UVs. You don't want overlapping UVs. Don't do that, you'll certainly see that with the light maps, and your textures won't look as good as well. But having them laid out properly, avoiding things like overlapping UVs or UVs that go outside of the boundary of the texture space, these are problematic and you will see this within your visualization. So try to keep it clean and spread out and nice and uniform and you'll have an easier time with your textures and precomputed lighting as well.
Keep your textures nice and clean. And the basic ones that I'm outlining here are simple color maps, normal maps, any kind of occlusion maps, ambient occlusion or maybe a cavity map, like a cavity occlusion-type of map, and a specular map. Those are the four basics. Now, depending on what packages you're using, these can be referred to in different ways. Unreal Engine will work with reflectivity and gloss, and this is where your specular maps or your reflectivity maps or even your gloss maps all come in handy.
Using a specular map can actually stretch a long way in those ways as well. Another thing to note is the more maps you have linked into things like materials, the more the engine has to calculate and compute, so you really do want to try to be as efficient as you can with your texture maps. And that can be in the resolution or size. Being too big on the maps will bog down the engine. And too many different channels can also bog things down as well. So you really want to try to keep your geometry clean and as much of the model or the asset as can be shown with the geometry at a light level is best if you're going to be expanding to virtual reality.
So you can get into problems with normal maps in that area there as well. And then of course, keeping your maps looking as nice as they can, so when they're hooked up in Unreal, the asset looks as nice as it can as well. Another tip here for creating effective assets for architectural visualization, for example, is setting things to the origin. Unreal likes to work with things based on the origin, so when you build your assets, snap the origin of that asset to the world space origins so that everything is snapped at zero, zero.
And when you bring it in, everything plays friendly there within Unreal. So we'll take a look at that as we dive into actually working with assets in Unreal and how the origin is so important within the world of Unreal Engine.
- Defining project goals
- Creating an Unreal Engine 4 (UE4) project
- Adjusting first-person project settings
- Creating effective assets
- Exporting assets for UE4
- Importing assets into UE4
- Placing assets in a scene
- Adding and editing collisions
- Working with textures
- Creating a basic material
- Adding a post-process volume