Quake Map Exporter for Blender 3D — Quick Setup Guide

How to Use Quake Map Exporter for Blender 3D: Step-by-Step TutorialThis tutorial walks you through exporting Quake-style maps from Blender 3D using the Quake Map Exporter add-on. It covers installing the add-on, preparing geometry and materials, setting entity and brush properties, configuring export settings, troubleshooting common issues, and tips for optimizing your workflow. Follow the steps below whether you’re creating maps for Quake, Quake-compatible engines, or using the .map/.bsp formats for retro-style game projects.


What you’ll need

  • Blender 3D (recommended: latest stable release compatible with the exporter)
  • Quake Map Exporter add-on (a Blender add-on that exports .map or compatible formats)
  • A basic Quake map toolchain if you plan to compile .map to .bsp (e.g., qbsp, qrad, vis, or a modern packer like TrenchBroom’s toolchain)
  • Text editor for entity keys (optional)
  • Reference maps and documentation for the target engine (optional)

1. Installing the Quake Map Exporter add-on

  1. Download the exporter ZIP or Python file from its repository or distribution page.
  2. Open Blender and go to Edit > Preferences > Add-ons.
  3. Click “Install…” and select the downloaded ZIP or .py file.
  4. Enable the add-on by checking its box in the Add-ons list.
  5. Optionally set the exporter preferences (export paths, default format) in the add-on’s preferences panel.

2. Preparing your scene and geometry

  • Use Blender’s orthographic views (Numpad keys 1, 3, 7) and grid snapping to build box-aligned, BSP-friendly geometry. Quake map formats rely on convex brushes; model brush-based architecture using cubes, prisms, and boolean-friendly shapes.
  • Keep brushes convex. If you need L-shaped rooms, split them into multiple convex brushes.
  • Avoid non-planar faces and n-gons; use quads and tris where necessary but make faces planar.
  • Apply transformations: select objects and use Ctrl+A > Apply All Transforms to reset scale/rotation. This ensures faces align to grid and exporter reads correct normals.

3. Using brush primitives vs. mesh modeling

  • Preferred: Use the add-on’s brush primitives (if available) or Blender cubes scaled to grid units. These behave predictably and are easy to convert into brushes for .map.
  • If you model with meshes, convert them to BSP brushes by ensuring each object has planar faces and is composed of convex volumes. Use mesh editing tools to split and re-topologize as needed.
  • Remember: Quake engines expect brushes, not arbitrary triangle meshes. Complex geometry should be represented as structural brushes or as detail/func entities depending on the engine.

4. Setting up materials and textures

  • Create Blender materials named after the target Quake textures (for example, “GROUND/stone” or “common/wall01”) depending on exporter conventions. The exporter maps Blender material names to Quake texture names.
  • Assign a single material per face/brush where possible. Mixing materials on a single brush face can cause export issues.
  • UVs: For many exporters, texture alignment and scaling are defined with face attributes rather than Blender UVs. Check the add-on docs. If the exporter supports UV-to-shift conversion, unwrap faces and set UV scale to match Quake texture scales.

5. Marking entities and special objects

  • Entities in Quake (player spawn, lights, triggers, func_doors) are represented as Blender objects with specific naming or custom properties.
  • Common method: Name an empty or mesh with the entity classname, e.g., “info_player_start” or “light”. The add-on then converts that object into a map entity at export. Name-based entity mapping is often required.
  • For lights, set Blender object position where you want the light origin to be and use material or custom property to set light intensity/color if supported.
  • For func entities (moving doors, platforms), parent the brush geometry to an empty entity object or set a property that tells the exporter to mark that brush as a func_* entity.

6. Assigning entity key-values

  • Many exporters let you add custom key-value pairs to entity objects via Blender’s custom properties panel or a dedicated UI in the add-on. Use this to set properties like target names, angles, delays, or spawnflags.
  • If the add-on uses name-only mapping, include keys in the object name following conventions (check documentation). Otherwise, use custom properties: add keys like “target”, “health”, “spawnflags” with appropriate values.

7. Exporting the .map file

  1. Open the exporter panel (often in the 3D View’s side panel, or File > Export).
  2. Choose output format (.map, or engine-specific variants). Set the export scale and axis conversion if your Blender units differ from the engine (common: Blender Z-up vs. Quake Y-up).
  3. Select options: include entities, export selected only, merge brushes, apply transforms. For first exports, use default options to avoid surprises.
  4. Click Export and save the .map file to your desired folder.

8. Compiling .map to .bsp (optional)

  • Use your chosen Quake toolchain: qbsp -> qrad -> vis (order and tool names vary by engine).
  • Example command sequence (replace with your tool names):
    • qbsp level.map level.bsp
    • qrad level.bsp
    • vis level.bsp
  • Check compiler logs for brush errors, leaks, or texture issues. Fix in Blender and re-export if needed.

9. Common export issues & fixes

  • Leaks (map leaks to void): Check for unsealed geometry. Place a bigskybox or correct gaps between brushes.
  • Bad brushes (non-convex): Split or remodel brushes so each is convex.
  • Missing textures: Ensure Blender material names match Quake texture names and exporter texture mapping rules.
  • Wrong normals: Recalculate normals (Edit Mode > Mesh > Normals > Recalculate Outside) and apply transforms.
  • Entities not exported: Verify naming conventions or that custom properties exist on the correct object type.

10. Optimization tips

  • Mark small decorative geometry as detail brushes (if exporter supports it) so BSP splitters ignore them for visibility optimization.
  • Use grid snapping and consistent units to prevent micro-gaps.
  • Group static props into func_detail or prop entities rather than structural brushes.
  • Keep entity counts manageable and use targetname/target to chain logic rather than many unique scripts.

11. Workflow example (simple room with light and player spawn)

  1. Create a cube, scale to form room walls, split faces to make doorways. Convert to brush objects.
  2. Name one Empty “info_player_start” and place at spawn location.
  3. Create a small cube named “light” or add a custom property “classname” = “light” and set intensity.
  4. Assign wall material names to match target textures.
  5. Export .map, run qbsp/qrad/vis, open in Quake engine or map viewer.

12. Useful troubleshooting checklist

  • Are transforms applied?
  • Are all brushes convex and sealed?
  • Do material names match target textures?
  • Are entities properly named or have correct custom properties?
  • Is export axis/scale correct for your engine?

13. Where to learn more

  • Add-on documentation and repository issues page for exporter-specific quirks.
  • Quake engine mapping guides and BSP toolchain docs.
  • Community map-making tutorials and example maps.

If you want, I can tailor this tutorial to a specific exporter add-on (share its name or link) or to a particular Quake engine/compiler (e.g., DarkPlaces, QuakeSpasm, TrenchBroom toolchain) and provide exact export settings and compile commands.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *