#1 2018-09-23 02:44:20


[Tutorial] Simple mapmodel creation with Blender

This tutorial covers creating simple mapmodels with Blender, and how to add them to Tesseract. I assume that you have very basic knowledge of Blender, nothing complex will be covered here. Also, ignore my half-way modded Tesse, it's functional, but unfinished... :d

Before we start, I would like to say that you should stick to cubes guys... Tesse derived from Cube Engine, so it naturally has better physics support for cubes, and easier editing of them than mapmodels. So, here are some pros/cons of using mapmodels:

- Rotating in all 3 dimensions, 0-360 degree...
- In-game scaling, in percentages (default 100/0)...
- You can't change them easily like cubes... If you make mistake, you need to export again...
- You need to be careful with collisions, you can edit them in .cfg of mapmodel

Now finally, we begin :)

1) You may want to open Tesse, and make cube of approximate size you want your mapmodel to be, this will help you with scaling when you export your mapmodel... Command for that is '/writeobj modelname', and modelname.obj and .modelname.mtl will be saved in your Tesseract folder. On Linux it's "/home/username/.tesseract", and on Windows it's "C:\\Users\username\Documents\My Games\tesseract". Lets say I want to create a box here, and don't forget to '/calclight', it helps with verts...


2) Now, we open up Blender (version doesn't really matter, all have .obj import/export), and we import our "modelname" model on File->Import->Wavefront. Here, you can see how big your model needs to be in Blender, and you don't have to bother with Scaling options in Export Menu. Now we edit whatever we want, like additional scaling, unwrapping, texturing, and if you really have to, baking textures. All of these are straight-forward, and there is ton of tutorials on Youtube covering this already. I simply exported back my original box, and I only used Smart UV Unwrap, and scaled it by 3...


3) Now, for exporting mapmodel, we simply go to File->Export->Wavefront, and we export model in our Tesseract folder in "model/mapmodel/yourname/modelname", and we name our mapmodel as "tris.obj"... So, in my case, I have folder "suiseiseki" with many mapmodel folders, and each has a name, this 1 would be "box" folder. In there we have now tris.mtl and tris.obj, where .mtl is material file and .obj is actual mapmodel. I don't have use of .mtl file, the way I make models, so I just delete it... As for skin, texture of mapmodel, we need to have it in same folder. You can bake your own skin in Blender, make 1 in GIMP, or use any other image you have, and do keep in mind unwrap of you mapmodel. I pasted 1 texture made by Rorschach. All you have to do is place it in same folder as your tris.obj, and rename it to skin.jpg/.png... Now, additional thing you could do it to make masks for mapmodel, but that isn't covered in this tutorial.


So, now we can open Tesse, go to '/newmap' and do '/mapmodelreset; mmodel yourname/modelname', in my case that would be "suiseiseki/box"... And we have our mapmodel here, we can scale & rotate it. Good thing to do is in every mapname.cfg to use "mapmodelreset" and "texturereset", and then to load mapmodels & textures you want to use on your map... It will shorten loading time (as far as I know), and it makes things more nice when you edit. One disadvantage of this is that map won't be "sendable" on server, but people should download maps from forum either way...


This is most simple way of creating mapmodels, and you don't have to bother with obj.cfg, masks, normal maps and multiple objects... For proper usage of mapmodels, and if you want to make better quality maps, you should learn CubeScript, how Tesseract & cubes (octree) works and "mdl/obj" commands, as well as .md3, .md5 and .iqm formats. But, this is good start that will, I hope so, make you more interested in Tesseract & modeling. I hope I'll have time to make more advanced tutorials on this, but they'll cover only stuff that I already have experience with.

Thanks to my cH'CoopHopes clanmates for support about this...
Cheers, Suiseiseki aka 7YearBitch ;)


Board footer