Map2dif madness--can it work reliably...?
by Lee Latham · in Artist Corner · 10/20/2006 (4:04 pm) · 23 replies
Or am I just an idiot?
I've been trying to make dif shapes in 3DWS, Hammer, Quark, and Cshop for about six months now, and I'm losing my mind. It doesn't seem to make any sense how flaky it is, and I DEARLY hope someone can tell me something braindead I'm doing.
For example, right now I'm trying to make a ceiling fan. When I make one of the blades, it exports via map2dif_plus just fine (fyi I'm using both TGE and TSE versions for testing--my goal is TSE):

(actually, before I carved the curve on the bottom it converted to DIF without complaint, but after the carve at the bottom, it complains about one of the brushes at the TOP. er?)
So that comes out okay. So I add a couple more pieces, and it's still fine:

But then I have the audacity to copy/paste the fanblade assemby three times:

And crashola. TGE map2dif, map2dif_plus, TSE map2dif and map2dif_plus all crash with different error messages. The TGE versions crash with no message. TSE map2dif thinks there oughtta be a slash in there somewhere! (thanks for the helpful hint!). TSE map2dif_plus just dies. They do all seem to be dying at the parsing stage. Edit: No, TSE map2dif_debug crashes in the Creating BSP stage.
I've had this with all different kinds of objects and situations. I built a simple cabinet, for example, and when I deleted some of the temporary pieces I used for carving and stuff it would crash. If I left them in there, it worked fine. Mind you, these were separate objects not occupying the same space as the main cabinet, just floating off somewhere.
I'm getting the same problems with all the editors I mentioned, except Quark, which can't carve to save its life.
HEPL!
I've been trying to make dif shapes in 3DWS, Hammer, Quark, and Cshop for about six months now, and I'm losing my mind. It doesn't seem to make any sense how flaky it is, and I DEARLY hope someone can tell me something braindead I'm doing.
For example, right now I'm trying to make a ceiling fan. When I make one of the blades, it exports via map2dif_plus just fine (fyi I'm using both TGE and TSE versions for testing--my goal is TSE):

(actually, before I carved the curve on the bottom it converted to DIF without complaint, but after the carve at the bottom, it complains about one of the brushes at the TOP. er?)
So that comes out okay. So I add a couple more pieces, and it's still fine:

But then I have the audacity to copy/paste the fanblade assemby three times:

And crashola. TGE map2dif, map2dif_plus, TSE map2dif and map2dif_plus all crash with different error messages. The TGE versions crash with no message. TSE map2dif thinks there oughtta be a slash in there somewhere! (thanks for the helpful hint!). TSE map2dif_plus just dies. They do all seem to be dying at the parsing stage. Edit: No, TSE map2dif_debug crashes in the Creating BSP stage.
I've had this with all different kinds of objects and situations. I built a simple cabinet, for example, and when I deleted some of the temporary pieces I used for carving and stuff it would crash. If I left them in there, it worked fine. Mind you, these were separate objects not occupying the same space as the main cabinet, just floating off somewhere.
I'm getting the same problems with all the editors I mentioned, except Quark, which can't carve to save its life.
HEPL!
#3
Takes me back to the old days of modding half Life and all the rest....
okay.. this may not be relevant, but... when I was doing that these were the rules...
Rule 1) NEVER use Carve.. Carve can often move vertices slightly in totally unrelated parts of the model and cause floating point errors in the export...
Rule 2) See Rule 1
Rule 3) Always build and vertex edit to shape objects
Rule 4) See Rule 1.
Carving usually stuffs something even if its a rectangular block through a rectangular wall to create a door or window.
Regards
Graham Evans
10/20/2006 (5:13 pm)
Greetings.Takes me back to the old days of modding half Life and all the rest....
okay.. this may not be relevant, but... when I was doing that these were the rules...
Rule 1) NEVER use Carve.. Carve can often move vertices slightly in totally unrelated parts of the model and cause floating point errors in the export...
Rule 2) See Rule 1
Rule 3) Always build and vertex edit to shape objects
Rule 4) See Rule 1.
Carving usually stuffs something even if its a rectangular block through a rectangular wall to create a door or window.
Regards
Graham Evans
#4
10/20/2006 (5:42 pm)
Nothing wrong with using carve, you just have to use it RIGHT.
#5
Thanks for the info though...seemed to me that the tool (3DWS, Hammer, etc) should figure that stuff out for you. But oh well!
It is still rather exceedingly odd to me that when I do one fan blade it's okay, but 4 is not.
10/20/2006 (6:51 pm)
How do you use carve RIGHT?Thanks for the info though...seemed to me that the tool (3DWS, Hammer, etc) should figure that stuff out for you. But oh well!
It is still rather exceedingly odd to me that when I do one fan blade it's okay, but 4 is not.
#6
That's really a shape best done in a Mesh Modeller like Max, Maya, Milkshape, etc. It's going to be extremely performance heavy for such a little shape. :(
10/20/2006 (8:01 pm)
When your rotating it, it's actually snapping the copied pieces to a grid when your moving them into place which is creating little overlaps and cracks between and with the copied brushes, which is confusing Map2DIF.That's really a shape best done in a Mesh Modeller like Max, Maya, Milkshape, etc. It's going to be extremely performance heavy for such a little shape. :(
#7
10/20/2006 (8:03 pm)
Here the rule of thumb. If you going to walk in it or on it then it should be a dif. All others should be a dts. Why in the world would you make fan model a dif? You cannot animate dif, you can animate dts. You just get lucky with one.
#8
Guys in general: It's a big fan. You're a small player. Can you dig it? :-)
Absolutely must be collideable in detail.
Or...one thing I'm not clear on...is it possible to have a simple bounding mesh, as opposed to a bounding box, around a DTS?
10/21/2006 (6:16 pm)
Timothy--thanks for the insight! I'm fiddling with grid stuff now and making a little progress. I wonder which of these tools will let me turn off snap-to-grid for a while. Hmm or perhaps I could do some copy/ transforms in the map file with a script....Guys in general: It's a big fan. You're a small player. Can you dig it? :-)
Absolutely must be collideable in detail.
Or...one thing I'm not clear on...is it possible to have a simple bounding mesh, as opposed to a bounding box, around a DTS?
#9
It ain't rounding, and it ain't concaveness. It's map2dif.
Isn't it?
10/22/2006 (9:39 pm)
A little more data if anyone is interested. If I take that fanblade, copy/paste it and rotate 180 degrees, it crashes map2dif. If I delete the ORIGINAL, it compiles just fine with only the copied/pasted brushes.It ain't rounding, and it ain't concaveness. It's map2dif.
Isn't it?
#10
If you want to get somewhere then you have to learn how this stuff works. Don't just give up and excuse yourself with that the tool is broken.
What you are doing is like.. painting a house with a pen instead of a brush pencil. Hundreds of people are using map2dif without problems, because they know what to expect and they use the tool for what it was meant to be.
If you rotate the blade and get it to fall out of the grid (which unfortunatly is possible in some of those editors you mentioned) then map2dif does not know where to place it and there is no proper assertion for this so it crashes.
I wonder why it works if you delete the original mesh, though.
*1. Can you upload the blade so someone can try to export it?
*2. Have you tried to convert the blade to a detail entity?
*3. Run the blade trough Hammer's "Check for problems" tool, does it report any errors? It should.
10/23/2006 (1:54 am)
Lee,Quote:I'm not sure why you are insisting map2dif is broken when you are the problem. A brush was never meant to do what you are doing, which is why you have meshes (like in Lightwave, 3D studio MAX, MilkShape, Maya).
It ain't rounding, and it ain't concaveness. It's map2dif.
Isn't it?
If you want to get somewhere then you have to learn how this stuff works. Don't just give up and excuse yourself with that the tool is broken.
What you are doing is like.. painting a house with a pen instead of a brush pencil. Hundreds of people are using map2dif without problems, because they know what to expect and they use the tool for what it was meant to be.
Quote:
A little more data if anyone is interested. If I take that fanblade, copy/paste it and rotate 180 degrees, it crashes map2dif. If I delete the ORIGINAL, it compiles just fine with only the copied/pasted brushes.
If you rotate the blade and get it to fall out of the grid (which unfortunatly is possible in some of those editors you mentioned) then map2dif does not know where to place it and there is no proper assertion for this so it crashes.
I wonder why it works if you delete the original mesh, though.
*1. Can you upload the blade so someone can try to export it?
*2. Have you tried to convert the blade to a detail entity?
*3. Run the blade trough Hammer's "Check for problems" tool, does it report any errors? It should.
#11
By understanding the limmitation of brush based tools, and being aware of what you are doing when you use carve.
You're trying to put to much detail in the fan if you wish to use DIFF. (The angles you are attempting)
Other than that, im not sure why you are still using a DIFF for this. You can't animate it.
You have invalid brushes in the fan. (From the looks of it)
Please upload it for us to look at and help your further.
Something people do not realize when they read that the collision box on a DTS must be convex is.
You can have more than one physical "box" or shape being used as the collision box on a DTS object.
That meaning, you have one box or at least convex polygon for each blade that tightly resembles the blade itself. Giving you the highest level of collision possible with DTS if constructed correctly.
Don't confuse a bounding box with a collision box, two separate things. Depending on the 3d tool you are using, you don't even have to worry about the bounding box.
10/23/2006 (8:25 am)
Quote:
How do you use carve RIGHT?
By understanding the limmitation of brush based tools, and being aware of what you are doing when you use carve.
You're trying to put to much detail in the fan if you wish to use DIFF. (The angles you are attempting)
Other than that, im not sure why you are still using a DIFF for this. You can't animate it.
You have invalid brushes in the fan. (From the looks of it)
Please upload it for us to look at and help your further.
Quote:
Or...one thing I'm not clear on...is it possible to have a simple bounding mesh, as opposed to a bounding box, around a DTS?
Something people do not realize when they read that the collision box on a DTS must be convex is.
You can have more than one physical "box" or shape being used as the collision box on a DTS object.
That meaning, you have one box or at least convex polygon for each blade that tightly resembles the blade itself. Giving you the highest level of collision possible with DTS if constructed correctly.
Don't confuse a bounding box with a collision box, two separate things. Depending on the 3d tool you are using, you don't even have to worry about the bounding box.
#12
10/23/2006 (8:41 am)
Unless it's going to chop off the character's head, why even put a bounding box around it in the first place?
#13
(all files now here: www.cm4msaa7.com/fanblades.zip)
FYI, both Hammer and Quark find 1 invalid brush, a tiny one near the tip of the blade. And again, the single blade exports fine except for that. Copy/paste it one time, rotate 180 degrees and map2dif* crashes. Delete the ORIGINAL blade, and map2dif likes the new single blade fine.
Stefan: I assure you I am not trying to blame anything--merely dispassionately trying to isolate the problem. Ok, maybe a little passionately. That's only because I have found mapping to be needlessly difficult ever since Doom 1. In fairness, though, it is only in the last year that I've gotten serious about it, so I know I have PLENTY to learn. Seriously, I'm a blank slate, here. And I'm certainly not giving up and excusing myself--I need results, and all the excusing myself in the world won't help to get results! :-) (And I dang sure ain't giving up, either).
For example, could you explain how a detail entity works? I've done quite a bit of searching on the subject, and I don't understand it. I have not done this. I have the impression it might be very helpful?
Allyn: So you can understand my stubborness on this, the reason I feel like this needs to be a dif is because the player will be very small, and interact in detail with the object. Perhaps a more sophisticated DTS is the better solution, but I've thought I understood that DIF is easier on the framerate, and I'm planning on a lot of objects on this scale. I've been doing some forum searching on the subject of DTS collision and I should probably leave that discussion for another thread after I've given it a more serious crack.
10/23/2006 (3:28 pm)
This should be a link to the map with one blade:(all files now here: www.cm4msaa7.com/fanblades.zip)
FYI, both Hammer and Quark find 1 invalid brush, a tiny one near the tip of the blade. And again, the single blade exports fine except for that. Copy/paste it one time, rotate 180 degrees and map2dif* crashes. Delete the ORIGINAL blade, and map2dif likes the new single blade fine.
Stefan: I assure you I am not trying to blame anything--merely dispassionately trying to isolate the problem. Ok, maybe a little passionately. That's only because I have found mapping to be needlessly difficult ever since Doom 1. In fairness, though, it is only in the last year that I've gotten serious about it, so I know I have PLENTY to learn. Seriously, I'm a blank slate, here. And I'm certainly not giving up and excusing myself--I need results, and all the excusing myself in the world won't help to get results! :-) (And I dang sure ain't giving up, either).
For example, could you explain how a detail entity works? I've done quite a bit of searching on the subject, and I don't understand it. I have not done this. I have the impression it might be very helpful?
Allyn: So you can understand my stubborness on this, the reason I feel like this needs to be a dif is because the player will be very small, and interact in detail with the object. Perhaps a more sophisticated DTS is the better solution, but I've thought I understood that DIF is easier on the framerate, and I'm planning on a lot of objects on this scale. I've been doing some forum searching on the subject of DTS collision and I should probably leave that discussion for another thread after I've given it a more serious crack.
#14
Kind of a "Hunny i shrunk the kids"?
Ill be looking at thies shortley.
10/23/2006 (5:06 pm)
So, your creating an enviroment using DFF's that the player will climb around in somewhat like an ant?Kind of a "Hunny i shrunk the kids"?
Ill be looking at thies shortley.
#15
Can you just E-mail the files to me in zipform, and dont forget to include textures if there are any.
Check the profile.
10/23/2006 (5:07 pm)
Errr.....Please sign in to your eSnips account.Can you just E-mail the files to me in zipform, and dont forget to include textures if there are any.
Check the profile.
#16
In any case, all files (and the texture, too) are now here:
www.cm4msaa7.com/fanblades.zip
And to answer your question, yes, it's like "Honey I shrunk the kids" hehe. Good way of putting it.
10/23/2006 (6:23 pm)
Gah! How deeply lame. I apologize for the inconvenience. In any case, all files (and the texture, too) are now here:
www.cm4msaa7.com/fanblades.zip
And to answer your question, yes, it's like "Honey I shrunk the kids" hehe. Good way of putting it.
#17
10/24/2006 (10:13 am)
What version of 3dws are you using?
#18
Glad to hear you refuse to give up :) It will pay off. Mapping really is a different world than creating normal meshes.
I do not know all the details (pun!) of detail entities, but I know they are less heavy for the computer to deal with. They do not process shadowmaps in the same way and you might find that they are useful when you have light leaks. When something is very small or does not make up the core of the structure (ie, not your typical wall), I usually make it a detail entity.
DIF's are not really easier on framerate, it really depends. DIF's calculate more complex collisions than DTS shapes, and they cannot be too small or map2dif will mangle it (this is a problem with map2dif or possibly the technique as a whole).
If Hammer finds something invalid in your map, it is almost always a concave brush. These are sometimes exported, sometimes not. Sometimes you can even get into your game without crashing, but sometimes you do not.
10/24/2006 (10:24 am)
Lee,Quote:
Stefan: I assure you I am not trying to blame anything--merely dispassionately trying to isolate the problem. Ok, maybe a little passionately. That's only because I have found mapping to be needlessly difficult ever since Doom 1. In fairness, though, it is only in the last year that I've gotten serious about it, so I know I have PLENTY to learn. Seriously, I'm a blank slate, here. And I'm certainly not giving up and excusing myself--I need results, and all the excusing myself in the world won't help to get results! :-) (And I dang sure ain't giving up, either).
Glad to hear you refuse to give up :) It will pay off. Mapping really is a different world than creating normal meshes.
Quote:
For example, could you explain how a detail entity works? I've done quite a bit of searching on the subject, and I don't understand it. I have not done this. I have the impression it might be very helpful?
I do not know all the details (pun!) of detail entities, but I know they are less heavy for the computer to deal with. They do not process shadowmaps in the same way and you might find that they are useful when you have light leaks. When something is very small or does not make up the core of the structure (ie, not your typical wall), I usually make it a detail entity.
DIF's are not really easier on framerate, it really depends. DIF's calculate more complex collisions than DTS shapes, and they cannot be too small or map2dif will mangle it (this is a problem with map2dif or possibly the technique as a whole).
If Hammer finds something invalid in your map, it is almost always a concave brush. These are sometimes exported, sometimes not. Sometimes you can even get into your game without crashing, but sometimes you do not.
#19
Stefan: Thanks for that. So is it merely a matter of "tying" the brushes to a detail entity? I'm finding this awkward to do, ie. the entity isn't listed as an option in Hammer, despite it being present in the entity list. What mapping tool do you use? May I ask how you do it in that tool?
10/24/2006 (2:16 pm)
Allyn: I'm using 3dws 5.5.1, the latest and greatest. For what it's worth, however, I had the same behavoir in Hammer 3.4, creating the fanblades from scratch in there.Stefan: Thanks for that. So is it merely a matter of "tying" the brushes to a detail entity? I'm finding this awkward to do, ie. the entity isn't listed as an option in Hammer, despite it being present in the entity list. What mapping tool do you use? May I ask how you do it in that tool?
#20
In any case, it should be visible as long as you have loaded the torque.fgd file, which holds the information about torque specific entities.
I am using Hammer. I select the brush I want to detailify, and press "To Entity" to my far right on the toolbar. The detail class should be selectable from there.
10/24/2006 (2:36 pm)
It might or might not be the solution, but I'm leaning towards the latter. :/ You should not have to, it is merely a performance thing.In any case, it should be visible as long as you have loaded the torque.fgd file, which holds the information about torque specific entities.
I am using Hammer. I select the brush I want to detailify, and press "To Entity" to my far right on the toolbar. The detail class should be selectable from there.
Torque Owner AllynMcelrath
you are using it to make shapes that should be Polysoup. (Made in 3dsmx, Lightwave, Blender, Milkshape)
a DIFF is a Brush based geomerty used to create large, fast coliding objects. Mostly used for hings like wall, rooms, caves ETC.. that are then decorated by DTS objects.
The reasion you are getting crashes is becouse you are not following the rules of brush based geomerty.
The first, and ovious one is:
BSP (Brush based) object MUST be CONVEX. They canot be concave.
http://qxx.planetquake.gamespy.com//bsp/
I sugest you stick with 3dworldstudio and read up on the documents.
http://www.leadwerks.com/files/3DWorldStudio.chm