Using Blender to make Quake 3 maps

Discuss the construction of maps and the tools to create maps for 3D games.
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Using Blender to make Quake 3 maps

Post by goldenboy »

jitspoe wrote:I haven't tried q3map2 in a long time, but last time I tried to use it to make collision brushes out of a mesh, it did not do a very clean job of it. It made lots of tiny, thin brushes - like one for each triangle. Some of the brushes protruded through others, and there weren't clean edges.
That's why it's usable in some cases ("models with large, axial surfaces") and in other cases it's easier to just slap clip brushes over a model manually. Remember clip is semi-transparent in Radiant so you can see the surface of the model through the clip hull while you tailor it.

It's too bad that Quake 3 tech can't do the collision mesh trick, but it's not a critical flaw if you're good with Radiant. The fact that collision hulls don't need to be "airtight" (unlike caulk hulls...) means you don't need to LABOUR over it.

One of the Q3 based games (I forget which) extended the q3map2 autoclip algorithm quite a bit, allowing you to use different methods to generate a clipping hull, but I forget which Q3 game it was and I don't know if those extensions (basically additional spawnflags) found their way into "our" q3map2.
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: Using Blender to make Quake 3 maps

Post by leileilol »

What if I block out the map collision in QuArK (ew but I can't learn Radiant) and then export that to .obj with Noesis and import and model? Will the scale match when I export individual objects from that, origin corrected?
i should not be here
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Using Blender to make Quake 3 maps

Post by goldenboy »

Can't see why it wouldn't, if Noesis does its job correctly.
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: Using Blender to make Quake 3 maps

Post by leileilol »

Alright, now i'm attempting Q3 mapping with Quark (ew!) and Blender.


ASE exporting with specifying shadernames as materials is very convenient. I've busted out like 7 new mapobjects so far

I also got the hang of the (ew!) terrain maker stuff (with huge 512 unit terrain surfaces) and learned q3map2's alphaMod stuff - though I am only using the volume shader to make grass on surfaces.

Not going to make pyramid of magician-level stuff though, still targeting P2 300 with this map.
i should not be here
ceriux
Posts: 2230
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Re: Using Blender to make Quake 3 maps

Post by ceriux »

are your hills and stuff already triangulated before you export it to .map? to make hills ect in hammer/worldcraft. you have to use triangles/pyramids. so if they're still quads. that could be the problem.
leileilol
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am

Re: Using Blender to make Quake 3 maps

Post by leileilol »

Quark has terrain maker 'helper' functions that allow manipulation by pulling vertices which has an effective offset. It will also handle subdivision automatically.
i should not be here
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: Using Blender to make Quake 3 maps

Post by toneddu2000 »

I don't know if original thread's author is still interested but today I found this Quake 3 map exporter for Blender 2.71+. I used it and it works ok. It does not export materials but it's fine for my intent. For those interested you have to create a io_scene_map folder in your blender-XXX\2.7X\scripts\addons and put the 2 scripts (__init__.py and export_map.py) in there
Meadow Fun!! - my first commercial game, made with FTEQW game engine
Tr3B
Posts: 15
Joined: Tue May 13, 2014 2:24 pm

Re: Using Blender to make Quake 3 maps

Post by Tr3B »

Thanks for the link. I have been thinking about replacing the Doom 3 Radiant entirely with a new Blender workflow.
I still need to find a way to expose the entityDef entity key value pairs to the Blender GUI.
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Using Blender to make Quake 3 maps

Post by goldenboy »

If you use a .map exporter, you will be limited to shapes that would be legal brushes. Much of Blender's potential will be unusable.

In other words, if you inted to export to .map and compile to BSP, you might as well use Radiant.
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: Using Blender to make Quake 3 maps

Post by toneddu2000 »

Tr3B wrote:I still need to find a way to expose the entityDef entity key value pairs to the Blender GUI.
I think that's wasteful/stupid, sorry. You should take the best from every software. For entity placement (differentiating from point entities/group entities) and entities linking, NetRadiant is the best. With Blender you would just try to mimic a well oiled mechanism that already works perfectly in NetRadiant.

SetUp
Export .objs from NetRadiant
Image
Image
Import Obj in Blender settings:
Image
Make sure axis are set just like image above!
Blender grid space settings:
Image
remember! a 128x128x128 cube will be 1.28x1.28x1.28! So objects now are perfectly in scale between Blender and NetRadiant and you can import/export/re-import/re-export objects without losing scale! That's cool! :D
Blender .obj export settings:
Image
Important! Make sure scale and axis are set correctly. Also Objects a OBJ Groups is an important point!

So, imho, the best procedure FOR NORMAL STATIC MAPS (maps that are normally loaded as world) and if YOU USE A MODERN QUAKE ENGINE LIKE DP OR FTEQW is:
1) Create in blender the map structure, using uneven floors, vegetation, cracked and skew walls, dirty grounds.. in a word all the things YOU CAN'T DO in Radiant! Export it in models/whatever/level.obj
2) Create in Blender the hull cage structure, using only planes. Follow this tutorial I made (it's useless to do same soup everywhere) thanks to gb and Spike. It explains how to export collision meshes in DP and FTE. They have a different approach but it works in both cases. It's useless to use cubes, because polycount increases a lot. Just remembet to check normals. They have to point inwards for floors. Export the collision mesh in models/whatever/level_collision.obj
3) In NetRadiant load both level.obj and level_collision.obj as misc model and PUT them BOTH at 0 0 0 in world space
4) Create a decent entities.ent file in netradiantfolder/mygamename.game/data where you specify all the entities by SIZE and COLOR (spend some time on this part, it's important to help you keep things under your control)
5) Place your point entities and group entities in your map and compile

imho, the best procedure FOR DYNAMIC MAPS (maps that are loaded just like models at runtime in game, for example in a realtime generated dungeon-like game) and if YOU USE A MODERN QUAKE ENGINE LIKE DP OR FTEQW is:
0) (optional) create in NetRadiant a map structure that reveals map bounds and (if needed) doors / exits of the map. Export it in your source folder (a folder not present in game folders structure) as level_blueprint.obj
1) Import level_blueprint.obj in Blender and start modelling your level with creativity. Export the level model in models/whatever/level.obj
2) create your hull cage using ONLY PURE CUBES with ONLY AND NOT UNDER 6 faces. You can stretch them a bit but do not exaggerate too much, just avoid to mantain box proportions or problems will occur. Export it in maps/level.map
3) Open map just created and select all (A keyword) and assign a transparent material that make collision, for example common/weapclip. Insert a misc_model of models/whatever/level.obj. Don't add entities in the map because they won't be read (PLEEEASE Spike, make a feature that can read bsp entities directly from quakec setmodel command! :D ).
You can anyway bake lightmaps(yew!) if you need them(I didn't try, though).
4) Spawn ingame the map you just created

Code: Select all

void spawn_map()
{
	precache_model("maps/level.bsp");
	setmodel(self,"maps/level.bsp");
	self.solid = SOLID_BSP;
}
In this way you can have different sectors of a dungeon, for example, dynamically loaded at runtime.
Hope it helps.
Meadow Fun!! - my first commercial game, made with FTEQW game engine
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Using Blender to make Quake 3 maps

Post by goldenboy »

That's about right.

It's really not that hard. You make levels exactly the same way as for Unity etc.

- Create level geometry in Blender, UV unwrap and texture it

- Create simplified collision mesh in Blender, in case of FTEQW apply a meshcollide shader, not sure about DP

- Import both into Radiant as misc_model, place so they overlap exactly

- Seal the map in Radiant (caulk hull, can be a box)

- Place your entities in Radiant

- Compile with q3map2
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: Using Blender to make Quake 3 maps

Post by toneddu2000 »

yep thanks gb I forgot about sealing the map. In unity and UDK it's maybe easier because you can just create modular pieces, create prefabs (half staircase for example, that includes 10 modular pieces) DIRECTLY in editor and use them to compose the level. But the beauty of Blender pipeline is that you can create exceptional levels with a technology that is 20 years old! :lol:

[LITTLEOFFTOPIC]@gb: what abou SJ? did you find the engine you're going to use for the game? Such a pity you dropped FTE[/LITTLEOFFTOPIC]
Meadow Fun!! - my first commercial game, made with FTEQW game engine
goldenboy
Posts: 924
Joined: Fri Sep 05, 2008 11:04 pm
Location: Kiel
Contact:

Re: Using Blender to make Quake 3 maps

Post by goldenboy »

@toneddu: Currently aiming for UE4, doing art and design, saving up money. UE4 has high minimum system requirements.

Although if motorsep keeps drooling on about Unity, I might pop one of my levels in there and see how it goes.

Both Unity and UE4 are pretty cool engines.
toneddu2000
Posts: 1395
Joined: Tue Feb 24, 2009 4:39 pm
Location: Italy

Re: Using Blender to make Quake 3 maps

Post by toneddu2000 »

I see..well UE4 seems best engine avaible to everyone these days for its features. It just seems.. always work in progress.. functions / classes names change often, procedures change (I've seen youtube videos that explain something that now it's feasible in a completely different manner). But it's an awesome engine, no doubt! All the best gb!
Meadow Fun!! - my first commercial game, made with FTEQW game engine
gnounc
Posts: 428
Joined: Mon Apr 06, 2009 6:26 am

Re: Using Blender to make Quake 3 maps

Post by gnounc »

Tr3B wrote:Thanks for the link. I have been thinking about replacing the Doom 3 Radiant entirely with a new Blender workflow.
I still need to find a way to expose the entityDef entity key value pairs to the Blender GUI.
I've been waiting for exactly that. I hate mapping suites with a passion.
Make sure to give us an update if you come up with a solution, taniwha of quakeforge was talking about doing something
similar, but his interests lie elsewhere atm, you might pick his brain on the subject. gl.
Post Reply