# Welcome to MeshMaker General Information and Tutorial

By: Mychaeel

mychaeel@planetunreal.com.

MeshMaker Homepage

#

# What is MeshMaker?

MeshMaker is a Windows-based Unreal and Unreal Tournament editing tool that makes converting UnrealEd brushes (or, more precisely, prefabs) to decoration actors a matter of seconds.

#

#

# Why Meshes?

Meshes (or, for our intents and purposes, decoration actors) have some advantages over brushes where it comes to detail work:

- First and foremost, the engine can render much more raw mesh faces than brush polys. For comparison, an average player model (which is a mesh) has about 600 to 1200 faces, and the engine has no problems rendering scenes with many players in close view. That means that meshes can be much more detailed than anything you could create from regular detail brushes without a noticable slowdown.
- Because meshes aren't part of the BSP tree, they never cause BSP holes or hall-of-mirror effects. When designing a prefab that's supposed to be converted to a mesh, you don't have to bother with grid alignment; same applies for placing meshes in your map.
- The engine uses vertex lighting on meshes (as opposed to lightmaps on brushes). That's not necessarily an advantage since lightmaps are much more sophisticated than vertex lighting, but vertex lighting makes meshes appear smoother than brushes. Try that with a sphere, for instance.
- Decoration actors are much more versatile when it comes to interactivity in maps: With just a simple property change, you can make them pushable, floating on water, destructible, revolving and more.

But it's not all sunshine, of course. The advantages mentioned above come at a cost:

- Although meshes are rendered vastly faster than brushes, part of that advantage is sacrificed to the fact that meshes are always rendered as a whole when they're visible (as opposed to brushes whose individual surfaces are only rendered when they're in view). In virtually all cases it's still a big performance gain, though.
- Meshes only support an upright collision cylinder, while brushes have per-poly collision.
- The vertex lighting mentioned above is much less sophisticated than lightmaps. On the other hand, the difference is most obvious on large-scale objects which aren't suited for mesh conversion anyway, and occasionally the smoother vertex lighting even is a desired effect.
- Not more than eight individual textures are supported per mesh, and textures can't be tiled on mesh faces as they can on brush surfaces. (MeshMaker automatically adjusts texture alignment to work around that limitation.)

# Conversion Details

The converted prefabs retain their original size and orientation. Same applies to most static surface properties: Translucent, modulated, masked, unlit, two-sided, and non-smoothed. Mirror surfaces aren't supported by meshes, but MeshMaker converts mirror surfaces to environment-mapped mesh faces; it's a nifty effect, try it out.

You can always re-texture your converted mesh (or individual copies of it) by modifying the MultiSkins texture array in the Display section of the decoration actor's properties.

If you wish to embed the converted meshes in MyLevel in order to avoid to have to bundle an .u file with your map distribution, just type the following at the UnrealEd console before you add anything from that package to your map:

> `obj load file=SomePackage.u package=MyLevel`

# Common Pitfalls and Limitations

- Prefabs must be completely textured. Prefabs with untextured surfaces can't be converted.
- Meshes don't support more than eight individual textures (per mesh). Prefabs using more than eight textures can't be converted.
- Textures can't be tiled on mesh faces. MeshMaker will automatically adjust texture alignment to the closest possible representation of the original prefab's texturing.
- Unreal's software rendering mode has major problems displaying meshes; if your converted prefabs appear distorted in UnrealEd, don't worry and jump into the game to actually judge their looks. If the decorations seem to be strangely greenish, unselect them.

If something doesn't work for you that should work for you, it might be a bug. If you find a bug or some strange behavior that you suspect to be a bug, send me an email at mychaeel@planetunreal.com. Please try to provide as much information as possible; bug reports to the effect of "it doesn't work and you suck" are worthless and will be discarded. In any case, enclose the original .t3d file and the .u file MeshMaker produced if you're reporting a conversion-related bug.

Same applies to suggestions. I'm open for any suggestions you might have; I can't promise that I'll implement every suggested feature, but I'll definitely consider it.

MeshMaker Tutorial:

This quick walkthrough assumes that you know how to make a prefab from a piece of level geometry. If you don't, follow the link.

Step 1. Click the Browse button and select the prefab you want to convert. Alternatively, you can drag-and-drop a prefab file from Explorer onto the MeshMaker window, or you can simply enter the file name.

After you have selected the prefab file, MeshMaker will search all texture packages for the textures used by the prefab. This step is necessary because MeshMaker needs to know the size and package names of the textures used.

Step 2. MeshMaker lists the names of the textures used by the prefab and the packages that contain them. A green check mark shows up next to each texture MeshMaker was able to find, and a red cross is displayed next to textures that couldn't be found in any of the texture packages.

- If all lines show a green check mark, you're fine, and the Next button is enabled. Click it to proceed to the next step.
- If one of the lines shows a red cross, you have to manually find the texture in question; click on the line and select Browse from the popup menu. The Next button won't be enabled until all texture/package mappings are resolved.

The Status column in the texture listing displays in how many of the searched packages this texture was found. Normally, only a single package contains a given texture, so the Status column just shows "found." If, on the other hand, multiple packages contain a texture with the given name, MeshMaker picks the first one and shows "multiple" in the Status column; click on the texture or package name to preview all matching textures and to select the correct one.

| Step 3. In the Class field, specify an arbitary name (composed of letters, numbers and underscores; no blanks!) for the decoration actor MeshMaker will create, and enter the name of the package that will contain the new decoration in the Package field. Warning: If you specify an existing package, it will be silently overwritten. Check Generate collision hull to make the decoration solid.

Step 4. Select an option:

- The default setting of these radio buttons, Create a ready-to-use decoration, is usually fine. If you don't know what the other option means, leave the default setting and go ahead.
- If you're an advanced user and wish to add code to the decoration subclass MeshMaker is about to create, or if you wish to manually edit the exported mesh, click Export the prefab as a model instead.

MeshMaker exports the model anyway, regardless of whether you select one or the other option. The difference between the two just is that MeshMaker automatically compiles the package if you select Create a ready-to-use decoration.

Step 5. Click Next to proceed. If you selected Create a ready-to-use decoration, MeshMaker will display a dialog box showing the progress of the compilation process; it usually takes just a couple of seconds to complete.

# Congrats, you're done!

You just created your first decoration with MeshMaker.

To use it in UnrealEd, open the Actor browser, and open the new package file that contains the decoration MeshMaker just compiled for you.

After loading the package, your new decoration is listed in the "Decoration" subtree. Simply select it, right-click into any of UnrealEd's viewports and use Add MyPrefab (or whatever name you gave it) to add it to the world.

MeshMaker HomePage

# Download and Installation

MeshMaker is available for download as an automatic Umod installer and a simple Zip archive. Both versions contain the same files; they just differ in installation convenience.

| FilePlanet |  | Umod installer |  | (502 kB) |  | Zip archive |  | (505 kB)
| Link-M (Germany) |  | Umod installer |  | Zip archive

A note for webmasters: Please don't link to the individual downloads themselves; link to this page instead. The download locations might be changed or removed without prior notice.

# Copyright and Acknowledgements

MeshMaker is © 2001 by Mychaeel mychaeel@planetunreal.com. Free for noncommercial use. For any other use and distribution, please contact me in advance. Thanks.

Kudos go to the following individuals and organizations: Antonio Cordero, whose excellent (and free) Delphi unit for Unreal package access saved me an insane amount of research and coding; David Townsend from Legend Entertainment for publishing the source code of the 3ds2unr tool, which provided me with vital information about Unreal's mesh format; Exodus-R from the BeyondUnreal Editing forums for publishing a thorough listing of possible face flags in Unreal meshes; Steve Tack for valuable information about Deus Ex's mesh format; and last but not least my beta testers, ElBundee and WillySurvive.

Oh, and really last but definitely not least the nice folks from BeyondUnreal's Editing forums that offered kind encouragement when I asked whether a tool like MeshMaker might be useful.