Jump to content

Walkmesh...


SithRevan

Recommended Posts

Hey guys I am kinda new and did not know where to post this so if it is the wrong place could one of the mods please move it to the right place. Thanks.

 

Okay first of all I am starting to begin my long journey down the path to becoming a game dev and the way I have done this is by becoming a KotOR modder. So anyway I have been doing this for about 6 months or so and I noticed that nobody has been able to create walkmesh for KotOR I or II. So I was wondering basically can this be done? Can walkmesh be sucessfully created and exported for the game and if so how is it done? I really want to learn this particular thing because I am extremely interested in making my own custom areas that have custom models. Anyway thanks for all of your help everybody.:dragon:

Edited by SithRevan

Peace is a lie, there is only passion.

Through passion, I gain strength.

Through strength, I gain power.

Through power, I gain victory.

Through victory, my chains are broken.

The Force shall free me.

 

"May the force serve you well"

 

Remember to go to Holowan Labs for modding the Kotor games and getting mods for Kotor games!

Link to comment
Share on other sites

Well if I was to recreate the walkmesh file format, which I am pretty sure is possible, how would it be compiled? I know of no programs that even come close to compiling that type of walkmesh. Could this even be done?

Edited by SithRevan

Peace is a lie, there is only passion.

Through passion, I gain strength.

Through strength, I gain power.

Through power, I gain victory.

Through victory, my chains are broken.

The Force shall free me.

 

"May the force serve you well"

 

Remember to go to Holowan Labs for modding the Kotor games and getting mods for Kotor games!

Link to comment
Share on other sites

Well if I was to recreate the walkmesh file format, which I am pretty sure is possible, how would it be compiled? I know of no programs that even come close to compiling that type of walkmesh. Could this even be done?

 

Wasn't that my point?

 

By file format I believe you've misunderstood, what you call compiled I call the format.

 

Point being that while you could make the walkmeshes, using max or maya, exporting them to the required file format is unlikely to happen, without technical specifications this would take a serious time investment.

 

It would be wiser to attempt to mod something like NWN2.

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

I'm was fairly certain that he was after some process that will take him from.

 

A the modelling program, (most likely Max or Maya) to B a walkmesh in the animfile.

 

But after taking a quick look on the NWN2 boards(something I never do), I've realised that the walkmesh(bizzarely named) is actually just the collision map for a said level.

 

I think he's after the process for making them himself, from model program mesh to KOTOR2 animation file.

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

I have been working with SithRevan for a while now and it seems that not many people understand what it is that we want to do.

We can create an ASCII walkmesh file as used in NWN however it seems that they are put into a "hakpak" or something. But i know they arn't "compiled". At the moment, Fred Tetra is the only person we know who has developed a tool that is capable of reading Binary walkmesh files (.wok) and this tool also writes them but misses out a vital piece of information, which is not allowing us to use the walkmesh is gives us in a module and only as a placeable and maybe a door... What SithRevan is asking is, is it possible to "compile" the ASCII walkmesh into Binary with ALL of the information written? I have been working with Team Jawa on walkmeshes for a while now (SithRevan happens to be leader of this project) and we in the modding community haven't heard from Fred Tetra in over 9 months, so we dont know how to write the binary equivilant of the walkmeshes that we can create.

Link to comment
Share on other sites

I have been working with SithRevan for a while now and it seems that not many people understand what it is that we want to do.

We can create an ASCII walkmesh file as used in NWN however it seems that they are put into a "hakpak" or something. But i know they arn't "compiled". At the moment, Fred Tetra is the only person we know who has developed a tool that is capable of reading Binary walkmesh files (.wok) and this tool also writes them but misses out a vital piece of information, which is not allowing us to use the walkmesh is gives us in a module and only as a placeable and maybe a door... What SithRevan is asking is, is it possible to "compile" the ASCII walkmesh into Binary with ALL of the information written? I have been working with Team Jawa on walkmeshes for a while now (SithRevan happens to be leader of this project) and we in the modding community haven't heard from Fred Tetra in over 9 months, so we dont know how to write the binary equivilant of the walkmeshes that we can create.

 

Well that makes more sense than SithRevan.

 

Making it binary shouldn't be a problem, should just be a matter of reading in the ascii and writing it out as binary, C# & C/C++. unless there is some specific encryption or encoding.

 

Either way with that information it should be a quick job, unless there is something I haven't been told.

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

This is our problem.. We have no encrypter/decrypter that will write walkmesh (wok) files properly.. This is all about encrypting the walkmesh into binary and no one seems to know. I've been trying to work it out but im no programmer, i couldn't make a tool to do it. Also i havent got anywhere.. Just by looking at the different sets of information i can't see any similarity other that text references, like names: "walk-parent".

 

If anyone could explain how to encrypt the walkmesh that would be fantastic.. assuming someone knows?

Link to comment
Share on other sites

I never said it was easy, I said writing a binary file is pretty straight forwards using a programming language such as C# or C++.

 

It may be that the file format is compressed.

 

If someone can get me the source code for the file reader, I'm fairly certain I could have a writer written in a couple of days, but without specifications for the file format, it's not something i have time to play with, I'm way too busy with other commitments.

 

Pass me some files that I can read, binary & Ascii and I'll make a judgement.

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

you see, this is our problem.. we the tool we use to read them (KotOR Tool) wont actually write the whole ASCII file.. same goes for binary. So it is difficult to get an accurate ASCII version on one of the existing binary walkmeshes. How would i encode into C++?

Link to comment
Share on other sites

Well, as i've explained, i cant get the ASCII equivilant but heres the binary:

 

Dont ask what it all means but KotOR Tool Reads:

 

Okay well that makes some sense to me, could you link me to the Kotor tool so I could use that, and some instruction on how to get my hands on 001EBO - KotOR II

 

I own a copy of KOTOR II, so I should be able to get it from that, then I shall take a closer look.

 

I can tell you some information in regards to what the tools output means.

 

Verts: 42
  55.2051   69.3662	4.5000
  50.7696   59.1238	4.5000
  50.9000   59.3600	1.8000
  50.7698   60.3699	4.5000
  50.9000   60.3531	1.8000
  51.5893   65.2639	4.5000
  51.5893   65.2639	1.8000
  54.9255   67.2800	4.5000
  55.0189   67.2800	1.8000
  55.1934   67.7026	4.5000
  55.3906   67.7026	1.8000
  55.3487   69.0800	1.8000
  56.1954   59.1206	4.5000
  56.1792   59.3600	1.8000
  57.7405   64.8669	4.5000
  57.7242   64.8670	1.8000
  57.4699   67.8778	4.5000
  57.4537   67.8789	1.8000
  57.4700   69.3500	4.5000
  57.4538   69.0537	1.8000
  50.9000   63.9374	1.8000
  50.9000   61.2523	1.8000
  50.7700   61.2523	4.5000
  50.6841   63.9374	4.5000
  55.9611   63.6177	1.8000
  56.0281   68.1751	1.8000
  56.6950   68.1629	1.8000
  51.2950   61.2570	1.8000
  51.3885   60.8468	1.8000
  51.2930   63.9006	1.8000
  51.2930   63.9006	4.6149
  51.3950   61.1560	4.6149
  51.3885   60.8468	4.6149
  51.3704   63.9959	4.6069
  51.3719   64.0027	1.8000
  51.3950   61.1560	1.8000
  51.2950   61.2572	4.5962
  52.1382   60.7067	1.8000
  52.5925   60.8227	1.8000
  51.8072   59.3600	1.8000
  53.5137   59.3600	1.8000
  55.9773   63.6176	4.5000

 

These represent coordinates XYZ atleast I assume as much, it would the sensible conclusion, but I'm not 100% certain, but I'd say asmuch from all I know.

 

Faces: 62
 15  17   8
 10   8  17
 20  21  29
 24  15   8
 34  24   6
 35  37  38
 17  25  10
 17  26  25
  2  28   4
 40  13  38
 29  21  27
 38  24  34
 35  38  34
 37  35  28
  2  37  28
  2  39  37
 13  24  38
 27  34  29
  8   6  24
 35  34  27
  3   1   4
  2   4   1
  7   5   8
  6   8   5
  9   7  10
  8  10   7
  0   9  11
 10  11   9
 14  16  17
 17  15  14
 16  18  19
 19  17  16
 12  13   1
 17  19  26
  0  11  18
 19  18  11
 11  26  19
 40  38  39
  2   1  39
 37  39  38
 11  10  25
 11  25  26
 29  33  30
 20  29  30
 30  23  20
 27  21  22
 22  36  27
  4  28  32
 32   3   4
 28  35  31
 31  32  28
 29  34  33
 34   5  33
 35  27  31
 36  31  27
 39   1  40
 40   1  13
  6   5  34
 41  14  15
 15  24  41
 12  41  24
 24  13  12

 

These reprsent the triangles the numbers referance the vert positions, atleast that what's they appear to be.

 

To be certain of this assumption, I'm going to plug these numbers into a program I've written that basically will display a 3D representation of the data, as a mesh. I'll post a picture when I'm done, then you can tell me if it's anything like what it should be as I assume you've seen the level which this is from.

 

Walk Types: 62
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
10 (Metal)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)
7 (Non-walk)

 

This is most likely the property of each face it may be in regards to sound or texture... I'm unsure what exactly they're used for, but they represent the property of each poly's face.

 

AABB Nodes: 123
  50.6741   59.1106    1.7900   57.7506   69.3763    4.6250 -1
  50.7596   59.1106    1.7900   56.2055   64.0128    4.6250 -1
  50.7596   59.1138    1.7900   51.8173   64.0128    4.6250 -1
  50.7596   59.1138    1.7900   51.8173   61.1661    4.6250 -1
  50.7596   59.1138    1.7900   51.8173   60.8569    4.5101 -1
  50.8900   59.3500    1.7900   51.3986   60.8569    1.8101  8
  50.7596   59.1138    1.7900   51.8173   60.3632    4.5101 -1
  50.7596   59.1138    1.7900   51.8173   59.3701    4.5101 38
  50.7596   59.1138    1.7900   50.9101   60.3632    4.5101 21
  50.7596   59.1138    1.7900   51.4051   61.1661    4.6250 -1
  50.7596   59.1138    1.7900   51.3986   60.8569    4.6250 -1
  50.8900   60.3431    1.7900   51.3986   60.8569    4.6250 47
  50.7596   59.1138    1.7900   50.9101   60.3800    4.5101 20
  50.7598   60.3431    1.7900   51.4051   61.1661    4.6250 -1
  50.7598   60.3431    1.7900   51.3986   60.8569    4.6250 48
  51.3785   60.8368    1.7900   51.4051   61.1661    4.6250 50
  50.7600   61.1460    1.7900   51.4051   64.0128    4.6250 -1
  50.7600   61.1460    1.7900   51.4051   61.2673    4.6250 -1
  50.7600   61.1460    1.7900   51.4051   61.2671    4.6250 -1
  50.7600   61.2423    1.7900   51.3051   61.2671    4.5101 45
  51.2850   61.1460    1.7900   51.4051   61.2671    4.6250 53
  50.7600   61.1460    1.7900   51.4051   61.2673    4.6250 -1
  50.7600   61.2423    1.7900   51.3051   61.2673    4.6063 46
  51.2850   61.1460    1.7900   51.4051   61.2673    4.6250 54
  50.8900   61.1460    1.7900   51.4051   64.0128    1.8101 -1
  50.8900   61.1460    1.7900   51.4051   64.0128    1.8101 -1
  50.8900   61.2423    1.7900   51.3051   63.9107    1.8101 10
  51.2850   61.1460    1.7900   51.4051   64.0128    1.8101 19
  50.8900   61.2423    1.7900   51.3820   64.0128    1.8101 -1
  50.8900   61.2423    1.7900   51.3031   63.9475    1.8101  2
  51.2830   61.2470    1.7900   51.3820   64.0128    1.8101 17
  50.7596   59.1106    1.7900   56.2055   64.0128    4.6250 -1
  50.7596   59.1138    1.7900   53.5237   64.0128    4.6250 -1
  50.7596   59.1138    1.7900   53.5237   60.8569    4.5101 -1
  50.8900   59.3500    1.7900   52.1483   60.8569    1.8101 -1
  50.8900   59.3500    1.7900   52.1483   60.7168    1.8101 15
  50.8900   59.3500    1.7900   52.1483   60.8569    1.8101 14
  50.7596   59.1138    1.7900   53.5237   60.8328    4.5101 -1
  50.7596   59.1138    1.7900   53.5237   59.3701    4.5101 55
  51.7972   59.3500    1.7900   52.6026   60.8328    1.8101 39
  51.3619   60.6967    1.7900   52.6026   64.0128    4.6250 -1
  51.3785   60.6967    1.7900   52.6026   61.1661    1.8101 -1
  51.3785   60.6967    1.7900   52.1483   61.1661    1.8101 13
  51.3850   60.6967    1.7900   52.6026   61.1661    1.8101  5
  51.3619   60.8127    1.7900   52.6026   64.0128    4.6250 -1
  51.3785   60.8368    1.7900   51.4051   61.1661    4.6250 49
  51.3619   60.8127    1.7900   52.6026   64.0128    1.8101 12
  50.7596   59.1106    1.7900   56.2055   64.0128    4.5101 -1
  50.7596   59.1138    1.7900   56.1893   64.0128    4.5101 -1
  51.3619   59.3500    1.7900   55.9712   64.0128    1.8101 -1
  51.7972   59.3500    1.7900   53.5237   60.8328    1.8101 37
  51.3619   60.8127    1.7900   55.9712   64.0128    1.8101 11
  50.7596   59.1138    1.7900   56.1893   60.8328    4.5101 -1
  50.7596   59.1138    1.7900   56.1893   59.3701    4.5101 56
  52.5825   59.3500    1.7900   56.1893   60.8328    1.8101  9
  50.7596   59.1106    1.7900   56.2055   63.6278    4.5101 -1
  50.7596   59.1106    1.7900   56.2055   63.6278    4.5101 -1
  50.7596   59.1106    1.7900   56.2055   59.3701    4.5101 32
  52.5825   59.3500    1.7900   56.1893   63.6278    1.8101 16
  55.9511   59.1106    1.7900   56.2055   63.6278    4.5101 -1
  55.9511   59.1106    1.7900   56.2055   63.6278    4.5101 61
  55.9511   59.1106    1.7900   56.2055   63.6278    4.5101 60
  50.6741   63.6076    1.7900   57.7506   69.3763    4.6250 -1
  50.6741   63.6077    1.7900   56.0382   69.3763    4.6250 -1
  50.6741   63.6077    1.7900   55.9712   65.2740    4.6250 -1
  50.6741   63.8906    1.7900   51.3805   64.0060    4.6250 -1
  50.8900   63.8906    1.7900   51.3031   63.9475    4.6250 43
  50.6741   63.8906    1.7900   51.3805   64.0060    4.6250 -1
  50.6741   63.8906    1.7900   51.3031   63.9475    4.6250 44
  51.2830   63.8906    1.7900   51.3805   64.0060    4.6250 42
  51.2830   63.6077    1.7900   55.9712   65.2740    4.6170 -1
  51.2830   63.8906    1.7900   51.5994   65.2740    4.6170 -1
  51.2830   63.8906    1.7900   51.3820   64.0128    4.6170 51
  51.3604   63.9859    1.7900   51.5994   65.2740    4.6170 52
  51.3619   63.6077    1.7900   55.9712   65.2740    4.5101 -1
  51.3619   63.9927    1.7900   51.5994   65.2740    4.5101 57
  51.3619   63.6077    1.7900   55.9712   65.2740    1.8101  4
  51.5793   63.6077    1.7900   56.0382   69.3763    4.5101 -1
  51.5793   63.6077    1.7900   55.9712   67.7127    4.5101 -1
  51.5793   65.2539    1.7900   55.0290   67.2901    4.5101 -1
  51.5793   65.2539    1.7900   55.0290   67.2901    4.5101 23
  51.5793   65.2539    1.7900   55.0290   67.2901    4.5101 22
  51.5793   63.6077    1.7900   55.9712   67.7127    4.5101 -1
  51.5793   63.6077    1.7900   55.9712   67.2901    1.8101 18
  54.9155   67.2700    1.7900   55.4007   67.7127    4.5101 25
  54.9155   67.2700    1.7900   56.0382   69.3763    4.5101 -1
  55.1834   67.6926    1.7900   56.0382   69.0901    4.5101 -1
  55.3386   67.6926    1.7900   56.0382   69.0901    1.8101 40
  55.1834   67.6926    1.7900   55.4007   69.0901    4.5101 27
  54.9155   67.2700    1.7900   55.4007   69.3763    4.5101 -1
  54.9155   67.2700    1.7900   55.4007   67.7127    4.5101 24
  55.1834   67.6926    1.7900   55.3587   69.3763    4.5101 26
  55.0089   63.6076    1.7900   57.7506   69.3763    4.5101 -1
  55.0089   63.6076    1.7900   57.7506   68.1852    4.5101 -1
  55.0089   63.6076    1.7900   57.7506   67.8890    4.5101 -1
  55.9511   63.6076    1.7900   57.7506   64.8771    4.5101 -1
  55.9511   63.6076    1.7900   57.7343   64.8771    4.5101 59
  55.9673   63.6076    1.7900   57.7506   64.8771    4.5101 58
  55.0089   63.6077    1.7900   57.7506   67.8890    4.5101 -1
  55.0089   63.6077    1.7900   57.7343   67.2901    1.8101  3
  57.4437   64.8569    1.7900   57.7506   67.8890    4.5101 29
  55.0089   64.8569    1.7900   57.7506   68.1852    4.5101 -1
  55.0089   64.8569    1.7900   57.7506   67.8890    4.5101 -1
  55.0089   64.8570    1.7900   57.7343   67.8890    1.8101  0
  57.4437   64.8569    1.7900   57.7506   67.8890    4.5101 28
  55.0089   67.2700    1.7900   57.4638   68.1852    1.8101 -1
  55.0089   67.2700    1.7900   57.4638   67.8890    1.8101  1
  55.3806   67.6926    1.7900   57.4638   68.1852    1.8101  6
  55.1951   67.8678    1.7900   57.4801   69.3763    4.5101 -1
  55.3386   67.8689    1.7900   57.4639   69.0901    1.8101 -1
  55.3386   68.1529    1.7900   57.4639   69.0901    1.8101 -1
  55.3386   68.1529    1.7900   56.7051   69.0901    1.8101 41
  55.3386   68.1529    1.7900   57.4639   69.0901    1.8101 36
  56.0181   67.8689    1.7900   57.4639   69.0638    1.8101 -1
  56.0181   67.8689    1.7900   57.4638   68.1852    1.8101  7
  56.6850   67.8689    1.7900   57.4639   69.0638    1.8101 33
  55.1951   67.8678    1.7900   57.4801   69.3763    4.5101 -1
  55.3386   67.8678    1.7900   57.4801   69.3601    4.5101 -1
  57.4437   67.8678    1.7900   57.4800   69.0638    4.5101 31
  55.3386   69.0437    1.7900   57.4801   69.3601    4.5101 35
  55.1951   67.8678    1.7900   57.4801   69.3763    4.5101 -1
  57.4438   67.8678    1.7900   57.4801   69.3601    4.5101 30
  55.1951   69.0700    1.7900   57.4801   69.3763    4.5101 34

 

This represents the bounding box if you will, basically a 6 sided object, it's collision data, I can get an output (probably best in wireframe) of this aswell, atleast that's what the first 6 figures represent I think. The final figure is a mystery.

 

All this is moot really, and probably not that helpful, I'll have to study the binary file directly, figure out what all the data means.

 

There is also another problem even tho' I can tell you straight up what most of the information means, I can't really do much else for you guys unless you tell me exactly what it is you need. Even then I may not be able to help.

Edited by @\NightandtheShape/@

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

To NightandtheShape's question: We basically want a compiler for ASCII Walkmeshes to covert the ASCII wok file into Binary form

 

I believe I can do that for you, I just need pointing in the direction of an ASCII wok && some direction to a binary file.

 

I will post when I have some success.

 

You can send any file to me at n0408494 AT hud DOT ac DOT uk

 

:)

RS_Silvestri_01.jpg

 

"I'm a programmer at a games company... REET GOOD!" - Me

Link to comment
Share on other sites

  • 3 weeks later...

While we can now work on walkmeshes, we also face another problem. We cannot fully create wire model (MDL) files in binary (or a format the game can read).

We have a program called MDLops, however this program is unfinished and we have no idea if the original writer will finish it. The program is written in Perl and the source script is available to the public, however my knowledge of Perl is not sufficient enough to finish the program. If possible will someone who knows Perl well enough to write a program with a GUI or Interface, or a Tk Perl script, help finish the program? The only reason we ask for some one to be able to write a Tk script is because the current build of the program uses this and it would proberly be better if we keep the interface.

 

If anyone is interested can you email me and ill sort you out with the programs source code and models for you to look at.

my email: glovemaster[AT]hotmail[DOT]co[DOT]uk

 

Thanks again.

Link to comment
Share on other sites

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...