Jump to content

[WIP] Q3ME: a 3ds Max Level Design Plugin


Recommended Posts

So, have any of you ever thought "Oh I'd really like to design some levels for Jedi Academy" and then, when the realisation that you'll have to use GTK Radiant to make your map struck, you just noped out of the whole Idea?

 

NO MORE! Or rather soon we can flip Radiant off forever.

 

About 2 Weeks ago I have begun to code my own .map exporter for 3ds max, while there has been a number of .map exporters in the past none of them supported everything you needed to export a full map including entities etc out of 3ds max.

This is what started my Quest, originally I had just intended to write a simple entity exporter to export some misc_models and such when I realised that func_doors and triggers needed brushes to be supported, so I expanded my very crude and simple script to also write out brush data from simple 3d models. This does not mean that you can take any model out there and export it as a .map, a Brush is very different from models you may find nowadays and therefore there are certain limitations we can't get around.

 

As of now I can export: any 3d model that is a valid brush (purely convex shape made up from less than 128 planes) as brush geometry with default texturecoordinates and any assigned Textures, func_groups, misc_model entities and info_player_start entities. Support for more Entities will come soon, just "a bit" of coding work.

 

But for now I'll just drop you a few pictures:

 

Editing a misc_model entity in the map scene, the current Floating Dialogue for the plugin can be seen in the top left and the misc_model properties are stored in the Attribute holder modifier seen on the right.

DPBsDuTl.png

 

Checking the map for issues within GTK Radiant (bleh), a step that I hope won't be required anymore in a not too distant future.

qxTK9FXl.png

 

and lastly a shot of the map ingame!

shMxd4kl.jpg

Not the greatest looking map, I know - but it was just a test map.

 

Now comes the part where I beg you guys for assistance with this.

In order to add support for all antities I have to go back into radiant and grab all the key names and values for all Entities in GTK Radiant. I have done this for all MP Entities so far and it took me the better half of a day I could have spent eliminating bugs or writing new exciting features for my Plugin. So if any of you feel like helping me out by writing a few entity keys into an excel sheet, pm me or post here. For those interested, you can take a look at the sheet here

When the sheet is completed it's only a matter of coding the entity defs into my plugin.

 

I am currently trieing to get patches to work in a way that is not bullshit - but previewing those patches within 3ds max has proven quite difficult and so i'll need to get back to the drawing board with that.

At the same time I'm trieing to untangle the mess in my head that Is a potential concept for a function to get brush Texcoords from Polygon UV Coordinates, which is going to take me some more time but will eventually allow us to export Brushes with texcoords from 3ds max.

 

Besides these 3 current keypoints I am working on, I have a few Ideas for some Terrain creation/texturing tools that will to rapidly create and texture complex terrains, but if you have any suggestions for features or wishes - let me know, I'm open for anything with this (except going through the same hassle for Blender, you may bug @@SomaZ about that).

Link to comment

Maybe you should ask TTimo if the gtkRadiant C++ source codes neatly contain all the entity defintions and all their parameters in some of the source code files...

Only in the Entities.def Files that I am allready using to get my info

Link to comment

That is cool stuff! Thjere ae many ways to make terrain now. Now i found out how to use alpha shading on the terrain to make that smooth effect. 

I used the MD3 models with texture that has large resolution for better looking texture. It worked out very nice but i dont know if it is not memory consuming and not very optimazed.. Still amazed that there are more and more options to mod this game!

Great work @@AshuraDX

Link to comment

Maybe you should ask TTimo if the gtkRadiant C++ source codes neatly contain all the entity defintions and all their parameters in some of the source code files...

 

It may be too much to ask, but is there a chance to have something like this for Softimage?

Link to comment

It may be too much to ask, but is there a chance to have something like this for Softimage?

Not if you, @@ChalklYne or @@minilogoguy18 team up for it. You might even ask (bartering your modeling skills) "rray" or another Softimage plugin coder at

si-community.com in the programming forum if they would consider it. @@SomaZ is working on a Blender version-- if he is using Python perhaps you could adapt it for Softimage? But as for me... I have very little free-time now and need to get back to my 3dsMax projects (...in what little free-time I have). I still need to debug the XSI MD3 exporter cancel bug.

ChalklYne likes this
Link to comment

 

 

Besides these 3 current keypoints I am working on, I have a few Ideas for some Terrain creation/texturing tools that will to rapidly create and texture complex terrains, but if you have any suggestions for features or wishes - let me know, I'm open for anything with this (except going through the same hassle for Blender, you may bug @SomaZabout that). 

 

Its great your adding terrain creations since that is tedious by hand. Handshaping terrain isn't too bad for small areas but for what I want to do its a bit tedious. However, since this is for 3dsmax how many of us can afford it, unless there is a free version of somewhere.. *cough cough. 

 

That all being said, would it be possible to implement something where you could generate a grid of say, for example,  1024x1024 subdivided by X amount of vertices. Next, you can have something like a tool where you can highlight a section of vertices, like a circle 64x64 or 256x256 or whatever, controlled by the mouse. Then, assign a key to raise and one to lower that highlighted vertices. I always thought that would make a quick and efficient way to make terrain.

Link to comment

Its great your adding terrain creations since that is tedious by hand. Handshaping terrain isn't too bad for small areas but for what I want to do its a bit tedious. However, since this is for 3dsmax how many of us can afford it, unless there is a free version of somewhere.. *cough cough. 

 

That all being said, would it be possible to implement something where you could generate a grid of say, for example,  1024x1024 subdivided by X amount of vertices. Next, you can have something like a tool where you can highlight a section of vertices, like a circle 64x64 or 256x256 or whatever, controlled by the mouse. Then, assign a key to raise and one to lower that highlighted vertices. I always thought that would make a quick and efficient way to make terrain.

You can get a Student version of 3ds max for free, regardless of wether you are a student or not - I have been doing this for years. Just update when your 3 years of usage have run out to get another 3 years :D

 

You mean like Paint deformation which 3ds max can allready do :P?

3ds max is a full-on modeling suite. You don't need petty features like that.

 

Take a look at this for example:

Smoo likes this
Link to comment

It's so easy to get a student license for Max or Maya. I also just suggest Mod Tool 7.5 because even being a bit dated in 2017 it still has more features than Blender and is totally free. Can do those things shown in the video but no export support unless like Archangel said, we get someone to develop something. Nice thing that even he mentioned when making the MD3 plugin for Softimage that the software was surprisingly easy to develop for since the SDK came with a lot of examples and documentation.

Smoo likes this
Link to comment

You can get a Student version of 3ds max for free, regardless of wether you are a student or not - I have been doing this for years. Just update when your 3 years of usage have run out to get another 3 years :D

 

You mean like Paint deformation which 3ds max can allready do :P?

3ds max is a full-on modeling suite. You don't need petty features like that.

 

Take a look at this for example:

 

Well I didn't know.  :P But thanks for the info.

That's why I ask questions.  :winkthumb:

Link to comment

I also just suggest Mod Tool 7.5 because even being a bit dated in 2017 it still has more features than Blender and is totally free.

Lol, tell me 5 features Blender doesn't have. I highly doubt this statement. If you haven't tried Blender in like 12 years you should try it again. ;)
Link to comment

It's so easy to get a student license for Max or Maya. I also just suggest Mod Tool 7.5 because even being a bit dated in 2017 it still has more features than Blender and is totally free. Can do those things shown in the video but no export support unless like Archangel said, we get someone to develop something. Nice thing that even he mentioned when making the MD3 plugin for Softimage that the software was surprisingly easy to develop for since the SDK came with a lot of examples and documentation.

 

 

Lol, tell me 5 features Blender doesn't have. I highly doubt this statement. If you haven't tried Blender in like 12 years you should try it again. ;)

@@SomaZ is right, Blender has come a long way regarding features and functionality. THe UI however is still allmost as bad as it was years ago :D

Link to comment

@@SomaZ is right, Blender has come a long way regarding features and functionality. THe UI however is still allmost as bad as it was years ago :D

This is also wrong. Just because you are used to 3dmax doesn't mean the UI is bad. It's just different. Maybe not as intuitive, but still, nowadays the UI is very organized and clean (getting used to max was a real pain in the pooper back in the days). Took me like a week to get used to blender. Now I don't want to go back. People tend to think that software that is opensource must be horrible to use. Use whatever fits your workflow best, but pls guys, stop spreading bs about something you never really worked with because you were lazy getting used to it... Ok, enough of this rant. :x
Daniel and Ramikad like this
Link to comment

I'm wondering if there's a way for you guys to create a single C++ library which each of the plugins can pull in to do what you want, instead of replicating essentially the same functionality across multiple plugins. For Blender you could write a Python wrapper around the C++ library. Just food for thought. I think you can save a lot of effort that way but it would take a bit more programming know-how.

Link to comment

I'm wondering if there's a way for you guys to create a single C++ library which each of the plugins can pull in to do what you want, instead of replicating essentially the same functionality across multiple plugins. For Blender you could write a Python wrapper around the C++ library. Just food for thought. I think you can save a lot of effort that way but it would take a bit more programming know-how.

I checked if this would be possible. Short answer, it is. This would be super nice of course, but I don't really have the time to read into this. This would save a lot of work long term and would also probably open doors to other modelling suites. Problem is though that the setup for 3dsmax is more complicated as for blender and I'm kind of lazy getting a fresh copy of max right now. Hm, will think about it.
Link to comment

Later versions of Max use python I think, if that helps.

Python support goes back to Max8. Blur Studios created plugins and support for Python (2.4?)... I have it all in my archives.

 

But Maxscript is probably easier. You can also create new C++ functions, using whatever C++ libs you want and expose that function as a new Maxscript function. I did this once... would require compiling against each SDK. Many free examples of this by denisT and Klvnk on CGTalk maxscript forum (they are called Maxscript extensions-- C++ plugins with .dlx extension).

 

@@Xycaleth-- you volunteering to create the C++ library? :winkthumb:

Link to comment

Update Time!

 

Besides numerous Bug and Error fixes, I introduced a new GUI to Manage Structural and Detail Status of Brushes aswell as an option to export a lowpol model as "PatchMesh" This option exports one patch per Quad or Tri face of whatever you tag with it while retaining Texture coordinates. This feature can be used to quickly make all sorts of structures with proper collision and precise texturing. The trade off being, that a large number of patches can lead to trouble ingame from what I gathered. But one of my more ridiculous Test maps with over 3000 patches still handles fine ingame.

 

Here are a few pics for you:

Rp9wE0Fl.png

62EpCznl.png

 

I'm nearing a state, where I can release an early alpha version of this into the public.

 

If anyone wants to help me out a bunch - I still need help with the entity definitions for SP and to list entities that are common between MP and SP ( using the exact same keys ).

Link to comment

Using a lot of patches together may introduce mesh holes when they switch LODS.

 

Why not just export them as ASE/MD3/OBJ to be misc_models?

1. These will not show holes because they are exported as falt 3x3 patches, which result in 2 tris per patch ingame. these will not become tesselated

2. a misc_model has to be clipped manually unless it's a large, fairly simple shape. Patches are solid by default. This feature could also be used to bring clip hulls for complex misc_models into the game.

 

The disadvantage of patches is that you don't get control over smoothing, unless you use different func_groups and phong shaders on them.

DT. likes this
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...