MeshMaker

News

January 30, 2002.  Jose "Pj" Navarro has contributed a Spanish translation of the MeshMaker walkthrough and has also agreed to provide a Spanish localization of the upcoming MeshMaker version itself.  Thanks!


January 5, 2002.  Happy new year everybody!  The upcoming next version of MeshMaker is still in the works and progressing nicely.  Stay tuned for more news.

As mentioned in the news post below, the next MeshMaker version will have a fully localizable user interface with German, Dutch, French and (new!) Swedish language packs included.  In addition, two people have been so kind to translate the MeshMaker walkthrough to French and Dutch—thanks a lot!  Check them out here:


December 13, 2001.  An update of MeshMaker will be up soon, featuring the following enhancements and fixes:

  • Localization!  Native English speakers won't notice, but MeshMaker will be easily localized to (almost) any language.  German, Dutch and French language packs will be bundled.  (If there's somebody out there who'd be willing to help me creating more language localizations, mail me—a simple text editor is all you need to use.)
  • Support for Deus Ex.  (Thanks to Steve Tack for pointing me to it.)
  • Support for multiple Unreal Tournament installations.  Right now, MeshMaker insists on using the last one you installed; in the new version, it'll take the one it's installed in.
  • Support for mods like Tactical Ops which place their packages in separate directories that are beyond the compiler's normal reach.  The lack of support for that occasionally was the reason for meshes that came out unskinned.
  • Fixed a texture readjustment bug that occasionally showed up when MeshMaker had to shift a texture a bit.
  • Fixed the lack of support for texture flags (as opposed to surface flags).  Previously, textures with special properties (for instance, masked textures) would come out as normal textures unless the surface they were applied on had the same properties.

I'm also looking into native .3ds model import support and an option to embed some or all of the used skins into the package file.  That will make it easier to embed meshes with custom skin textures in MyLevel (see the "Conversion Details" section below for an explanation).

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.

Have a look at the MeshMaker walkthrough to find out how it works.

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.)

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.

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.

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.

Conversion Steps