Before I get to my questions let me make clear that I'm asking about the maps of the modules that are used in the game and denote areas of interest, not the modules themselves, or maps for Fred Tetra's KT module editor.
So first I have some general questions:
Where are these maps stored?
Can they be edited in some way?
Is there anyway to create these maps? For example the M4-78 modules do not have maps. Could maps be created for these areas?
And one more specific question:
In the .are files there is a structure labeled "map" that contains several "MapPt" and "WorldPt" float values. What are those values for?
Thanks in advance to anyone who responds.
Maps are stored in texture packs as a TPC File but we know that TGA files also work. The file names are: lbl_map[module name].tpc
[module name] could be like 001EBO or 303NAR. or for custom modules the name you give the MOD file, or RIM depending on how you like to pack your modules.
Well that's neat. But I have some more questions. How can I create one? Do I just draw up a map in Photoshop and name it lbl_map[module name].tga and drop it into the override folder? Better than drawing it (at least for modules with no roofs) would be to place a camera very high up and use the screen shot feature to take a picture of a stripped down module. Is that possible?
Also how do you create those interactive points of interest? The little markers that you can scroll over and have them tell you that this is "such and such a room".
Well that's neat. But I have some more questions. How can I create one? Do I just draw up a map in Photoshop and name it lbl_map[module name].tga and drop it into the override folder? Better than drawing it (at least for modules with no roofs) would be to place a camera very high up and use the screen shot feature to take a picture of a stripped down module. Is that possible?
Also how do you create those interactive points of interest? The little markers that you can scroll over and have them tell you that this is "such and such a room".
You seem to be relating about designing a map for a module you built from scratch; atm it's impossible to model new planet areas and play them in game as walkmeshes haven't been cracked yet which renders any area model you create useless. Therefore if your just reskinning an existing module you can just reuse a map from the module your reskinning, and just edit key points on the map (the event markers on the map).
How can you change the "info dots" on the map? The small things that you click at, like "west door" or "to bridge".
How can you change the "info dots" on the map? The small things that you click at, like "west door" or "to bridge".
Map markers are waypoints placed in the area that have the MapNoteEnabled field set to on, and the MapNote field set to the text that should be shown on the map with the marker. This is set in the WaypointList field in the GIT file for the area.
You seem to be relating about designing a map for a module you built from scratch; atm it's impossible to model new planet areas and play them in game as walkmeshes haven't been cracked yet which renders any area model you create useless. Therefore if your just reskinning an existing module you can just reuse a map from the module your reskinning, and just edit key points on the map (the event markers on the map).
I understand its impossible to create an area from scratch. I was asking how one would create one for the cut M4-78 modules since they don't have maps, more out of curiosity than anything else.
Map markers are waypoints placed in the area that have the MapNoteEnabled field set to on, and the MapNote field set to the text that should be shown on the map with the marker. This is set in the WaypointList field in the GIT file for the area.
Thanks. I was asking about map markers as well. Maybe I'll try making a map for 801DRO. Sounds like a fun challenge.
My guess is that the maps were created by taking a screenshot in 3DSMax of all the submodels (the .lyt files are likely generated and used by a 3DSMax plugin). A second screenshot of the walkmesh was likely then taken from the same perspective and used to highlight the walkable area of the map in an image editor.
My guess is that the maps were created by taking a screenshot in 3DSMax of all the submodels (the .lyt files are likely generated and used by a 3DSMax plugin). A second screenshot of the walkmesh was likely then taken from the same perspective and used to highlight the walkable area of the map in an image editor.
You are correct you assemble the maps in 3dsmax then take an image
shot of the module and save it as a .tga file and put it in your override
directory. Then the hard part, to get the map to work and show up you
need to go into the(might be wrong its been awhile).git file and set the
x1 x2 y1 y2 z1 z2 coordinants so the map wil be centered and you dont
walk into blank areas. If you want I have maps for m4-78 except 807dro
and 806dro just havn't made them yet.
Is there anyway to create these maps? For example the M4-78 modules do not have maps. Could maps be created for these areas?
Import all the area models into max and then arrange them in the correct order before rendering it. Your image MUST be 512x256 in resolution, otherwise the map will appear stretched and it will become impossible to align it to the area models in the game. Add whatever effects you like to make the map look nicer and save under the name of "lbl_mapname of .are file" and place it into the override - it can also be read from the .mod file for your module (which is handy because it reduces clutter in the override, it's just a matter of personal preference, really).
Now for the tricky part. Find the "Map" struct in the .are file for your module. There you are faced with a multitude of fields to fill in. I never documented this properly and seeing as how it's been a long while since I aligned the map in 801DRO (over a year), I can't actually remember what most of the fields are for. I will, however, take a look at the stuff left over from M4-78RP and see if I can't type up some information about how to align the maps, or at least what the fields do.
I'll take a look for you over the weekend :).
Edit:
You are correct you assemble the maps in 3dsmax then take an image
shot of the module and save it as a .tga file and put it in your override
directory. Then the hard part, to get the map to work and show up you
need to go into the(might be wrong its been awhile).git file and set the
x1 x2 y1 y2 z1 z2 coordinants so the map wil be centered and you dont
walk into blank areas. If you want I have maps for m4-78 except 807dro
and 806dro just havn't made them yet.
There are more fields than just that.
From 801DRO:
Label: Map Struct - Type: 0 Field count: 11
Label: MapResX Field - Type: int Value: 5
Label: NorthAxis Field - Type: int Value: 0
Label: WorldPt1X Field - Type: float Value: -14.41002
Label: WorldPt1Y Field - Type: float Value: 5.755946
Label: WorldPt2X Field - Type: float Value: 40.11314
Label: WorldPt2Y Field - Type: float Value: -17.42321
Label: MapPt1X Field - Type: float Value: 0.275
Label: MapPt1Y Field - Type: float Value: 0.40991
Label: MapPt2X Field - Type: float Value: 0.7068
Label: MapPt2Y Field - Type: float Value: 0.7887914
Label: MapZoom Field - Type: int Value: 1
End of struct
Import all the area models into max and then arrange them in the correct order before rendering it. Your image MUST be 512x256 in resolution, otherwise the map will appear stretched and it will become impossible to align it to the area models in the game. Add whatever effects you like to make the map look nicer and save under the name of "lbl_mapname of .are file" and place it into the override - it can also be read from the .mod file for your module (which is handy because it reduces clutter in the override, it's just a matter of personal preference, really).
Now for the tricky part. Find the "Map" struct in the .are file for your module. There you are faced with a multitude of fields to fill in. I never documented this properly and seeing as how it's been a long while since I aligned the map in 801DRO (over a year), I can't actually remember what most of the fields are for. I will, however, take a look at the stuff left over from M4-78RP and see if I can't type up some information about how to align the maps, or at least what the fields do.
I'll take a look for you over the weekend :).
Edit:
There are more fields than just that.
From 801DRO:
Label: Map Struct - Type: 0 Field count: 11
Label: MapResX Field - Type: int Value: 5
Label: NorthAxis Field - Type: int Value: 0
Label: WorldPt1X Field - Type: float Value: -14.41002
Label: WorldPt1Y Field - Type: float Value: 5.755946
Label: WorldPt2X Field - Type: float Value: 40.11314
Label: WorldPt2Y Field - Type: float Value: -17.42321
Label: MapPt1X Field - Type: float Value: 0.275
Label: MapPt1Y Field - Type: float Value: 0.40991
Label: MapPt2X Field - Type: float Value: 0.7068
Label: MapPt2Y Field - Type: float Value: 0.7887914
Label: MapZoom Field - Type: int Value: 1
End of struct
Where were you when I asked the question about the X ,Y,values. I had to figure it out by trial and error.
Hey thanks Pavlos and DSTONEY642000. I appreciate you're offer to supply the maps you've created DSTONEY (I'll PM you) and thanks for offering to try and figure out the .are Map fields Pavlos.
I've never used 3ds Max and don't think I'll be buying it so creating my own M4-78 maps may be impossible for me to do, but I wonder do you really have to render them with a 3d modeler? I mean can someone explain to me why it has to be that way? Is the only benefit that you can remove the roofs and get an unobstructed view? In the M4-78 modules that are open to the sky I placed a few cameras high up, all at the same hight and orientation, then modified the the whereami armband dialog to call to them as it delivered the location information. I then took screen shots from each camera and pieced them together in Photoshop. In theory I could resize them to 512x256 easily enough. I could also easily create a module without placeables to get the unobstructed view of the other maps if I were serious right? Is this a possible workaround for those of us without Maya or 3ds Max? Someone tell me the flaw in my logic.
It is because you have to assemble the module sections as they are in pieces in
the game. It may take anywhere from 3 to 15 pieces to make 1 module.
ps:here is a link on how to assemble the
http://kotortool.starwarsknights.com/) click on the tutorial at the bottom of the page.
It is because you have to assemble the module sections as they are in pieces in
the game. It may take anywhere from 3 to 15 pieces to make 1 module.
Ok, so the modules come in pieces and that you have to piece them together with a 3d modeling program. But the camera/whereami armband method I outlined above works fine for modules that the game has already loaded correct? Nothing should prevent a map I made that way from working right?
in theory that may work but I do not Know if the scale would be correct when in game.
you can download a 30day trial of 3dsmax.
You can also download the gmax program, which is a more limited but free version of 3dsmax. It was originally mantained by autodesk itself. It has since been retired but Turbosquid still allows the free download, along with help and tutorials:
http://www.turbosquid.com/gmax)
So has anyone figured out how to determine all the WorldPt and MapPt coordinates? Actually can someone tell me what the MapPt coordinates are for? Pavlos DSTONEY I'm looking at you there. I just guessed and that takes a hell of a long time, it also seems much harder to position small maps correctly. Any info on the map structures would be good.
Oh I guess I can post what I figured own. The WorldPt values are most important for centering maps. They correspond to X and Y values on a grid used to position the maps. Changing the WorldPt1X value will change the left, or west, boundary of the map. Changing the WorldPt2X value will change the right, or east, boundary of the map. Changing the WorldPt1Y and WorldPt2Y have similar effects on the top (north) and bottom (south) boundaries of the map. NorthAxis always seems to be set to 0 and MapZoom seems to be set to 1. MapResX determines the resolution of the "fog of war" that covers the map. A high resolution meas a smaller area of the map is revealed as you move, a low resolution means more is revealed. Small area maps have lower MapResX values, large maps have higher ones. I'm less sure about what the MapPt values do so I won't say anything about them.
So has anyone figured out how to determine all the WorldPt and MapPt coordinates? Actually can someone tell me what the MapPt coordinates are for? Pavlos DSTONEY I'm looking at you there. I just guessed and that takes a hell of a long time, it also seems much harder to position small maps correctly. Any info on the map structures would be good.
Oh I guess I can post what I figured own. The WorldPt values are most important for centering maps. They correspond to X and Y values on a grid used to position the maps. Changing the WorldPt1X value will change the left, or west, boundary of the map. Changing the WorldPt2X value will change the right, or east, boundary of the map. Changing the WorldPt1Y and WorldPt2Y have similar effects on the top (north) and bottom (south) boundaries of the map. NorthAxis always seems to be set to 0 and MapZoom seems to be set to 1. MapResX determines the resolution of the "fog of war" that covers the map. A high resolution meas a smaller area of the map is revealed as you move, a low resolution means more is revealed. Small area maps have lower MapResX values, large maps have higher ones. I'm less sure about what the MapPt values do so I won't say anything about them.
I wish I could help more but you figured out as much as you did the only thing
I did figure out is the smaller the value for the worldpt numbers the further you can travel on the map. As for getting the final numbers I did it by trial and error and yes it is very time consuming.
Those coordinates in the are file determine the limits of the map. If I remember correctly, the WorldPt says "this is the world coordinate which corresponds to this edge of the map". I.e. WorldPT1X=100 says that the left edge of the map has X coordinate = 100, and so on. I'm not sure about the MapPT but I think those are the same except relative to the .tga image, i.e. MapPT1X=0.33 would mean the left edge starts at 1/3rd of the image. These values are needed because otherwise the game wouldn't know how to resolve your position relative to the map, and thus wouldn't be able to draw the little circles showing your party's position.
well I've run as far to the "left" of an area as I can and used the "whereami armband" to get my location thinking that the X coordinate I got might be the value I needed for WorldPT1X. That didn't work for me, and the values that did finally work seemed totally random and unrelated to in game X coordinates. (I may have tried to find and enter only the far "left" X coordinate and still been using a random far "right" X coordinate. I guess its possible that may have messed me up but you'd think it would still be close, it wasn't at all.) Also I'm not sure I understand your explanation of the MapPT values. It seems that the WorldPT values do what your describing. As you edit them they will change where your PC's triangle and your party's dots appear on the minimap.
If I'm just confused and not understanding what you're saying please set me straight. Thanks for responding though.
The values in the .are file are not related to the in-game coordinates, that much I remember.
It requires a bit of trial and error jiggery pokery to get the values right. As I said, it's been a while and I haven't had the chance to go back and take a look yet. Your theory sounds... uh... sound, Ulic - it's reminiscent of what I did, at any rate. Don't give up, by the way, it will take a while (it did for me anyway) to just get the minimap to show up, let alone have a properly aligned map in it! You'll have to toss around a few figures before that happens. Also, try running to the edges of the area - it can cause the map to show up as you actually enter its range. This way, you also know how the map needs to be brought down.
Oh, and you can use in-game coordinates for adjustments. Work out the difference between the point where the map starts and the point where you want the map to start and then adjust the values in the .are by that value. It's easier said than done, though. I wasted an entire (rainy) day fiddling with numbers - I think I was attached to my chair by the end of it and more than glad to get away from the computer, too.
What I was trying to say is that you need both set of coordinates to find out the correlation between a pixel in the map and the world coordinates.
I think the MapPT values are simply UV coordinates into the .tga file you use for the map; if I'm right, then the .tga is applied as a texture to the map rectangle. I got this idea from examining a few .are files and noticing that the MapPT values seems to be between 0 and 1.
This would mean that the position at point (WorldPT1X, WorldPT1Y) (i.e. the top left corner) does not correspond to the top left pixel of the image. Rather, it is the pixel at texture coordinates (MapPT1X, MapPT1Y).
There's an easy way of checking the theory: just put in the WorldPT the coordinates of the top left and bottom right corners, and use 0, 0 and 1, 1 for the MapPT. This would get an exact correlation between the world coordinates at the map corners, and the pixel on the tga image, which you can then easily verify by walking to the map corners and checking your coordinates.
Ulic wouldn't it be easier to just use DSTONEY642000's maps for M4-78? There are already completed and aligned with the player.
Using DSTONEY's maps and modules would be easy enough but I already went to the trouble of creating and aligning my own maps so there really isn't any need. I was just asking because I was curious about how the game functions not because I was currently trying to make my own maps.
How would get the coordinates for a map though? I mean I've made a new map but I just can't seem to get the correct coordinates. Could somebody elaborate on how this is done besides going into the game and taking one million shot-in-the-dark coordinates with the whereami armband?
Assuming you created the map by taking a shot of a GMax model, try something like this:
- load the GMax model and take a note of the coordinates of the edges of your image
- adjust them for .lyt file translation
- use the coordinates in the WorldPT values
- use 0, 0, 1, 1 for MapPT values
Let me know if it works.