Saturday, November 8, 2008

WMO to 3D Software - A short tutorial

Well it's time for a short tutorial.

The reason I wrote this tut is simple. After many hours of searching on the web I didn't find any description how to transfer the so called wmo (world map objects) into a 3D software like Blender, 3DSmax or Cinema 4D. So there must be need for this ;)

First of all one important notice. I'm no expert on 3D programming and also no professional user of 3D software. Most of my skill on these things came from learning by doing. So don't blame me for this, the goal of this tut is to reach average skilled users like me. Further don't blame me for my English, I'm not an English native speaker ;)

But: you need some experience in using 3D software and you need basic knowledge about the file types Blizz used and the way to extract them.

There may be other (better) solutions, so don't hesitate to comment or give me information about other ways of importing. I'm very interested in every other way of dealing with it.

Some theory and description:

In WoW you have several data types for the 3D objects:

- m2: this format describes all the models (e.g. charakters, mobs, etc.) you find in WoW and some further models like catapults, small buildings, etc.
- wmo (world map objects): wmo are bigger 3D models, used for big buildings, cities, dungeons, etc.
- WDT/WDL/ADT: theses files describe the maps (height maps, position of wmo's on maps, water, etc.)
- BLP: the Blizz format for textures
- MPQ: This is a package where Blizz stores all the files needed to execute WoW. On a simple point of view you can compare it with a ZIP or RAR package.

For detailed information take a look at:    

There are some furthers data type used by WoW, but they are are not important for our tutorial, so I'll keep the focus on the above mentioned types.


Based  on the workflow to import wmo's you need several programs:

MyWarcraftStudio - This is freeware and you need the software to read the mpq packages and export the files we need

Unwrap 3D - This software converts the wmo format to a format your 3D software can read. In this case I used C4D and the wavefront-file-format (obj). This is no freeware, so you have to buy a license for Unwrap 3D.

TaylorMouse wmo to ms.-script converter: This software you need to find the paths and the names of the texture files in the mpq. There may be a better way to find out this information, but I actually didn't figure it out.

Any 3D software like Blender, C4D, 3Dsmax: In this tutorial I use C4D. Solutions in other software are not tested, but depending on the huge amount of export formats in Unwrap 3D you should find the file type you need.

So let's go:

First of all choos a model you like to import. You may want to use the WoW Model Viewer unless MyWarcraftStudio doesn't support 3D viewing for the newer Versions of WoW.

For this tutorial I chose the Altar of Storms (short: AoS) Model. This is a small model with few meshes so the workflow keeps small and useable for a tutorial. Depending on the kind of model you use, the number of steps to get finished grow up.

In the first step you have to localize the wmo of the AoS in the WoW mpq.

So open WarcraftStudio and load the common.mpq from your WoW-folder.
Inside the mpq the path to the wmo is: World/wmo/Azeroth/Buildings/

Here you find two files:

- AltarOfStorms.wmo
- AltarOfStorms_000.wmo

Export both of them to your local harddrive.
(Warcraftstudio exports the whole path structure with folders and creates the same folders you found inside the mpq on your harddrive.)

Once you've exported you can cut or copy the two mpq's to a folder of your choice. Just keep in mind, to use the same folder the wmo are in for saving the further files we need in the next steps of this tut.

Now it's time for TaylorMouse' tool.

Open the tool click on the first Button "Load WMO...." and navigate to the folder your wmo's are located.

Choose the AltarOfStorms.wmo and execute.

Now the tool creates a file named "" in the same folder. Open the file with a text editor.

On top you'll find this:


These are all the textures you need for the mesh. 

Now you have to find the textures inside the WoW mpq by using MyWarcraftStudio. 
Notice: Depending on what kind of model you use the textures could be in several mpq's. You have to search and locate them for yourself.

Once you've found the texture (file typ BLP) mark it by clicking and choose "Save Image" on the new window menu. Choose jpg, tga or png as file type (not BLP!).
Save the image in the same folder as the wmo's!

After exporting all the textures open Unwrap3D.
Be sure to have the wmo-plugin installed (not delivered with installation, but you can download it for free from the homepage).

Choose "Open Model" from the menu and locate the "AltarOfStorms_000.wmo".

Important: Depending on the wmo you use there will be 1-n additional wmo-files (e.g. like building_000.wmo, building_001.wmo, ..., building_00n.wmo). These files describe the different parts of the model and can be very complex.

Advice: If you want to use huge models like a whole city, take a look at every additional wmo to understand the structure and choose the parts you really need by importing them in Uwrap without textures. You can only see the meshes but I helps to understand how the building was made. Some of the wmo might be the meshes for the buildings inside. If you only need an outside view of the model you don't have to use all the wmo's. This keeps your workflow smooth and avoids useless work.

Ok, let's go on:

A new window poups up and there you find an "Texture Options" function. Choose the "AltarOfStorms.wmo". This is the basic file where the information about textures is saved.

Click import and: there it is :)

Dont' worry if you will not see any texture yet. If you want to see the textures in Unwrap you'll have to export all textures in BLP-format too or manually assign them to the materials Unwrap uses for the meshes. I won't explain how to do this, if there is need for these steps just leave a comment and I'll add this to the tut (or read the fuckin' manual ;) ).

Now it's time to export.

Choose "File Save As" and export the model in Wavefront (obj) format.

Start C4D and open the obj-file you just exported.

You'll see the untextured model now.

The last step is to assign the materials to the meshes. Here you can use the texture files (jpg, tga or png) you've already exported by using MyWarcraftStudio. C4D already has all materials in the mat-manager the only thing you have to do is, choosing the right file and assign it to the material by changing the texture per mat (the mat's names are the same like the texture file's name, so it will be easy to handle).

Once you've done this for all mats you have a full textured model in C4D.

That's it. 

The workflow is a bit complex but at the moment it's the only way I know to import wmo's in C4D. I've tested a few models and everything worked fine. But there is no guarantee that it works with every model. Just try for yourself.

The tut works fine with C4D, I've not tested any other 3D software. I'm interested in experiences with e.g. 3DSmax or blender. Both programs should also work with obj files. 
So if you tried this tut with any other software let me know about your experiences. Leave a comment.

I hope you enjoyed this tutorial and learned a bit about my way with dealing on wmo import for machinima in C4D.

If you have any questions, suggestions or criticism for improving the workflow: Let me know :)

// Varath
Blackhand Pictures Machinima