Actions

Making Might and Magic maps with Trenchbroom: Difference between revisions

From MM6 Wiki

 
(43 intermediate revisions by the same user not shown)
Line 1: Line 1:
<seo title="Making Might and Magic Maps with Trenchbroom" metakeywords="Might and Magic, Trenchbroom, Making maps for Might and Magic" metadescription="Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. MMEditor which is used to edit Might and Magic maps can import 3D models in OBJ format, that means that any program that can export such models can be used for making objects or even entire maps for the game." />
<seo title="Making Might and Magic Maps with Trenchbroom" metakeywords="Might and Magic, Trenchbroom, Making maps for Might and Magic" metadescription="Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. MMEditor which is used to edit Might and Magic maps can import 3D models in OBJ format, that means that any program that can export such models can be used for making objects or even entire maps for the game." />


Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. MMEditor is used to edit Might and Magic maps. It can import 3D models in OBJ format. That means that any program that can export such models can be used for making objects or even entire maps for the games.
Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. [https://github.com/GrayFace/MMExtension MMEditor] is used to edit Might and Magic maps. It can import 3D models in OBJ format. That means that any program that can export such models can be used for making objects or even entire maps for the games.
[[category: modding]]
[[category: modding]]


Line 9: Line 9:
<br />
<br />


===Setting up the editor===
==Setting up the editor==




There are premade texture packs for Trenchbroom:
There are pre-made texture collections for Trenchbroom:


*[https://mm6.wiki/files/mods/trenchbroom/Might_and_Magic_Trenchbroom.zip Might and Magic VI]
*[https://mm6.wiki/files/mods/trenchbroom/textures/MM6_Trenchbroom.zip Might and Magic VI]
*[https://mm6.wiki/files/mods/trenchbroom/textures/MM7_Trenchbroom.zip Might and Magic VII]


The pack can be extracted anywhere, just make sure to note its location.
*[https://mm6.wiki/files/mods/trenchbroom/textures/Minecraft_Trenchbroom.zip Minecraft]
 
Select one of depending on the game. Then extract it somewhere.


''More information on how to make a custom texture pack can be found on the [[Talk:Making Might and Magic maps with Trenchbroom|Discussion]] page.''
''More information on how to make a custom texture pack can be found on the [[Talk:Making Might and Magic maps with Trenchbroom|Discussion]] page.''


====Trenchbroom configuration====
===Trenchbroom configuration===
By default it seems that BMP image support in Trenchbroom is not enabled. That can be solved by creating a custom game configuration file.
By default it seems that BMP image support in Trenchbroom is not enabled. That can be solved by creating a custom game configuration file.


[https://mm6.wiki/files/mods/trenchbroom/MM_Trenchbroom_gameconfig.zip Trenchbroom game config]
[https://mm6.wiki/files/mods/trenchbroom/MM_Trenchbroom_gameconfig.zip Might and Magic game config]


To add this configuration: extract the ZIP file into the '''Trenchbroom/Games''' directory.
To add this configuration: extract the ZIP file into the '''Trenchbroom/Games''' directory.
Line 31: Line 34:




Now Trenchbroom needs a path where the textures are stored. To set it, press the '''Open preferences...''' button. And set the path for '''Might and Magic''' to the folder that contains '''Bitmaps''' folder with the textures ('''Might and Magic Trenchbroom''').
Now Trenchbroom needs a path where the textures are stored. To set it, press the '''Open preferences...''' button. And set the path for '''Might and Magic''' preset to the texture pack (the folder that contains the '''textures''' directory).


<br />[[File:Mm6 trenchbroom configure engines.png|frameless|928x755px]]<br />
<br />[[File:Mm6 trenchbroom configure engines.png|frameless|928x755px]]<br />
Line 38: Line 41:
[[File:Mm6 trenchbroom adding texture group.png|alt=|right|frameless|973x973px]]
[[File:Mm6 trenchbroom adding texture group.png|alt=|right|frameless|973x973px]]


===Making a map / object===
 
After the path to textures is set Trenchbroom will be able to load all the texture collections within the directory.




Now creating new map with Might and Magic preset will be loading the project folder and the textures will be available. To proceed start a new map using Might and Magic preset.
The textures will be added once at least one texture collection is imported. Open the '''Face''' tab and in the '''Texture Collections''' section double click on any available texture collection. Once the texture collection is loaded the textures should be visible in the Texture Browser.




The textures will be available once texture collection is selected. Open the '''Face''' tab and in the '''Texture Collections''' section double click on the '''bitmaps\MM6''' collection. Once the texture collection is loaded the textures should be visible in the Texture Browser.
''From now on the process is very similar to making a custom map for Quake, so the general tutorials for Trenchbroom apply.''


==Creating maps with Trenchbroom==


''From now on the process is very similar to making a custom map for Quake, so the general tutorials for Trenchbroom apply.''
===Introduction===
<br />


====Limitations====
====Mapping limitations====


Might and Magic engine has its own limitations that are not present in Quake engine.
Might and Magic engine has its own limitations that are not present in Quake engine. Most of them are tied to texture mapping.


<br />
<br />
Line 61: Line 65:




None of that will be applied after the model is exported and will lead to inconsistent results between the editor and the game.
None of that will be applied after the model is exported. Importing a model like that will lead to inconsistent results between the editor and the game.
 
 
(As a workaround for all that a duplicate of the texture is usually created and altered in some editor to get a rotated / flipped / scaled version of the texture)
 


<br />To avoid some of those things untick '''Texture Lock''' and '''UV lock''' in the '''Edit''' menu:
<br />To get the most consistent results untick '''Texture Lock''' and '''UV lock''' in the '''Edit''' menu:




Line 70: Line 78:
[[File:Mm6 trenchbroom object ready.png|1899x1899px|frameless]]<br />
[[File:Mm6 trenchbroom object ready.png|1899x1899px|frameless]]<br />
<br />
<br />
====Optimizing the object with _Invisible_ texture====
When building with boxes (brushes) there are usually a lot of faces (segments) which are not necessary for the shape. The ones that are inside the object, or the ones that overlap. Generally these are the elements of the model that will not or should not be visible during gameplay. To remove them, they need to be marked with the texture named '''_Invisible_'''. The texture is already included in a premade texture pack, it is in a group named '''mmeditor'''.


====Making invisible walls====


''In Might and Magic engine if two model faces overlap each other they will blink / flicker and such. That effect is also known as Z-fighting. Face overlapping is very common when modelling with a Quake editor. That happens because instead of modeling with polygons directly, shapes are made using brushes / boxes.''
Hiding faces is a nice way to make invisible walls and movement helpers (like ramps for example). Marking faces using texture named "_Invisible_" will ensure that the face is not visible in the game. The texture is already included in the pre-made texture pack, it is in the texture collection named '''mmeditor'''.


''<br />''
''<br />''
Line 83: Line 88:
[[File:Mm6 trenchbroom object ready 2.png|frameless|1899x1899px]]
[[File:Mm6 trenchbroom object ready 2.png|frameless|1899x1899px]]


===Making outdoor maps===
Since MMEditor handles making terrain that is compatible with Might and Magic out of box then making outdoor maps completely in Trenchbroom is not really necessary. Instead it may be better to just make objects one by one and then import and place them using MMEditor. The example of pipeline will be something like that:
Make a house / building in Trenchbroom -> Import in MMEditor -> Place it manually -> repeat
Faces / segments of the object that are really close to each other will blink / flicker / disappear in-game. To solve that the colliding parts can be masked using _Invisible_ texture. More information can be found in the '''Making invisible walls''' section.
===Making indoor maps===


===Export to MMEditor===
===Export to MMEditor===


Once the object is finished export the model by using '''File -> Export -> Wavefront OBJ ...'''
Once the object is finished export the model by using '''File -> Export -> Wavefront OBJ ...'''. That will export the entire map regardless of what is selected.


Doing that will create 2 files: .OBJ and .MTL
Doing that will create 2 files: .OBJ and .MTL
Line 92: Line 106:
<br />
<br />


====Importing the model====
==Setting up MMEditor==


[https://github.com/GrayFace/MMExtension MMEditor] is used for editing maps in the game. Follow the steps for installation of MMEditor, afterwards run the game once to generate the required files and directories.       
[https://github.com/GrayFace/MMExtension MMEditor] is used for editing maps in the game. Follow the steps for installation of MMEditor, afterwards run the game once to generate the required files and directories.       
Line 101: Line 114:


needs to be placed at the '''/Scripts/General''' directory.
needs to be placed at the '''/Scripts/General''' directory.


Once the game is loaded press '''alt + F1''' and open any internal map.
Once the game is loaded press '''alt + F1''' and open any internal map.


===Importing objects (outdoor)===
To import the model click on the '''Import''' button'''.'''
To import the model click on the '''Import''' button'''.'''


Line 111: Line 124:


If the model was created not far from the center of coordinates in Trenchbroom it will be placed somewhere around 0,0,0 coordinates in the game, which is the center of the map. The newly imported object should be there.
If the model was created not far from the center of coordinates in Trenchbroom it will be placed somewhere around 0,0,0 coordinates in the game, which is the center of the map. The newly imported object should be there.


[[File:Mm6 trenchbroom mmeditor import.png|frameless|740x740px]]
[[File:Mm6 trenchbroom mmeditor import.png|frameless|740x740px]]


====Moving the object====
====Moving the object====
Line 144: Line 154:


[[File:Mm6 trenchbroom ingame.png|frameless|641x641px]]
[[File:Mm6 trenchbroom ingame.png|frameless|641x641px]]
===Importing objects (indoor)===
To import map geometry for indoor map just select import object (not rooms) and select the .OBJ file exported from Trenchbroom.
There are some drawbacks regarding this method:
1. The entire minimap will be revealed right away.
2. It can possibly result in lower performance than if importing rooms 1 by 1. Since that way the rooms are not being hidden if not visible.
====Room import====
As for now room import is a bit too convoluted since it will require a 3D modelling application like blender to merge all objects into 1 room since Trenchbroom exports each object separately.
==Sample maps==
===Minecraft===
<youtube>rBuNyAvVqfE</youtube>
[https://mm6.wiki/files/mods/trenchbroom/maps/Minecraft/minecraft.bitmaps.lod minecraft.bitmaps.lod] - LOD with map textures
[https://mm6.wiki/files/mods/trenchbroom/maps/Minecraft/map.dat map.dat] - MMEditor project file
[https://mm6.wiki/files/mods/trenchbroom/maps/Minecraft/Minecraft.map Minecraft.map] - Trenchbroom map file
Texture collection for Trenchbroom used to make this map can be found in the section above.

Latest revision as of 16:09, 26 July 2020

Making maps for Might and Magic is a little bit tricky since it requires usage of some 3D software like Blender or 3Ds Max. To make it easier map editor can be used. MMEditor is used to edit Might and Magic maps. It can import 3D models in OBJ format. That means that any program that can export such models can be used for making objects or even entire maps for the games.


Trenchbroom is a map editor for Quake-based games.


Setting up the editor

There are pre-made texture collections for Trenchbroom:

Select one of depending on the game. Then extract it somewhere.

More information on how to make a custom texture pack can be found on the Discussion page.

Trenchbroom configuration

By default it seems that BMP image support in Trenchbroom is not enabled. That can be solved by creating a custom game configuration file.

Might and Magic game config

To add this configuration: extract the ZIP file into the Trenchbroom/Games directory. If the configuration files worked then the new entry will be visible when creating a new map:



Now Trenchbroom needs a path where the textures are stored. To set it, press the Open preferences... button. And set the path for Might and Magic preset to the texture pack (the folder that contains the textures directory).






After the path to textures is set Trenchbroom will be able to load all the texture collections within the directory.


The textures will be added once at least one texture collection is imported. Open the Face tab and in the Texture Collections section double click on any available texture collection. Once the texture collection is loaded the textures should be visible in the Texture Browser.


From now on the process is very similar to making a custom map for Quake, so the general tutorials for Trenchbroom apply.

Creating maps with Trenchbroom

Introduction

Mapping limitations

Might and Magic engine has its own limitations that are not present in Quake engine. Most of them are tied to texture mapping.


  • The textures can not be rotated
  • The textures can not be flipped
  • The textures can not be scaled


None of that will be applied after the model is exported. Importing a model like that will lead to inconsistent results between the editor and the game.


(As a workaround for all that a duplicate of the texture is usually created and altered in some editor to get a rotated / flipped / scaled version of the texture)



To get the most consistent results untick Texture Lock and UV lock in the Edit menu:




Making invisible walls

Hiding faces is a nice way to make invisible walls and movement helpers (like ramps for example). Marking faces using texture named "_Invisible_" will ensure that the face is not visible in the game. The texture is already included in the pre-made texture pack, it is in the texture collection named mmeditor.


The texture itself can be anything, the only rule is that it has to be named exactly like that. The texture can be made in any image editor and then loaded within any texture collection.

Making outdoor maps

Since MMEditor handles making terrain that is compatible with Might and Magic out of box then making outdoor maps completely in Trenchbroom is not really necessary. Instead it may be better to just make objects one by one and then import and place them using MMEditor. The example of pipeline will be something like that: Make a house / building in Trenchbroom -> Import in MMEditor -> Place it manually -> repeat


Faces / segments of the object that are really close to each other will blink / flicker / disappear in-game. To solve that the colliding parts can be masked using _Invisible_ texture. More information can be found in the Making invisible walls section.

Making indoor maps

Export to MMEditor

Once the object is finished export the model by using File -> Export -> Wavefront OBJ .... That will export the entire map regardless of what is selected.

Doing that will create 2 files: .OBJ and .MTL


Setting up MMEditor

MMEditor is used for editing maps in the game. Follow the steps for installation of MMEditor, afterwards run the game once to generate the required files and directories.


For MMEditor to correctly process the model the following script: mtl.lua

needs to be placed at the /Scripts/General directory.

Once the game is loaded press alt + F1 and open any internal map.

Importing objects (outdoor)

To import the model click on the Import button.

Select Cancel when asked to delete models, that will keep the rest of the map intact.

If the model was created not far from the center of coordinates in Trenchbroom it will be placed somewhere around 0,0,0 coordinates in the game, which is the center of the map. The newly imported object should be there.

Moving the object

Many building in the game are considered to be a single object by the engine. Those had many shapes merged in one using 3D software. In Trenchbroom objects are built using brushes and usually there are many brushes that constitute one object. When Trenchbroom exports a model it keeps the shapes separate. That means that the object can not be selected all at once.

To move imported object:

  1. Click on any face on the model
  2. Press the Model button
  3. Hold the Left Shift key and select the other parts



Now there are 2 options:

  • Use arrow keys + Page Up / Down to move the object around
  • Move the party to the destination and press the Move To Party button

! Note that the Land function will not help to align the object to the ground since it will align every segment individually and not the entire group.

The result:


Importing objects (indoor)

To import map geometry for indoor map just select import object (not rooms) and select the .OBJ file exported from Trenchbroom. There are some drawbacks regarding this method:


1. The entire minimap will be revealed right away.

2. It can possibly result in lower performance than if importing rooms 1 by 1. Since that way the rooms are not being hidden if not visible.

Room import

As for now room import is a bit too convoluted since it will require a 3D modelling application like blender to merge all objects into 1 room since Trenchbroom exports each object separately.

Sample maps

Minecraft

minecraft.bitmaps.lod - LOD with map textures

map.dat - MMEditor project file

Minecraft.map - Trenchbroom map file

Texture collection for Trenchbroom used to make this map can be found in the section above.