Jump to content

[PC] Moorhuhn Kart Extra .trk files


Recommended Posts

Posted (edited)

I have no idea what actually are these files, but i do know what they do. They basically hold information on a .clu's extra data, such as the position of each mesh and what texture they use, and that's something useful to properly extract the track models. Any help ?

I included a .trk file alongside the .clu files and .tga/.dds files it uses and converted versions of the .clu files to .dae for reference:

Moorhuhn Kart.zip



P.S: See this Post for more info on MHKE's .clu files: 

 

Edited by MaxBOOST
added link to more info on .clu files
Link to comment
Share on other sites

  • Engineer

Of course we could, I guess. But I'd do it step by step. Is there ingame screenshots of "kaugummi" or "holzhammer"? (the place where they are to be found?)

What are your plans (other than waiting for someone doing it for you)?:classic_wink:

  • Like 1
Link to comment
Share on other sites

5 hours ago, shak-otay said:

Of course we could, I guess. But I'd do it step by step. Is there ingame screenshots of "kaugummi" or "holzhammer"? (the place where they are to be found?)

What are your plans (other than waiting for someone doing it for you)?:classic_wink:

Oh, yeah uhh those are powerups, and they are their own separate model (they use the power rendet object format .pro)

 

Will send a screenshot of them later today, but they arent part of the clu files for sure

Link to comment
Share on other sites

2 hours ago, MaxBOOST said:

Oh, yeah uhh those are powerups, and they are their own separate model (they use the power rendet object format .pro)

 

Will send a screenshot of them later today, but they arent part of the clu files for sure

Those power ups are pretty much placed by the player, but they are picked up on track from a row of 4 gift boxes spread across the track. The models of said boxes ARE in the .clu files however

Link to comment
Share on other sites

Posted (edited)
12 hours ago, shak-otay said:

Of course we could, I guess. But I'd do it step by step. Is there ingame screenshots of "kaugummi" or "holzhammer"? (the place where they are to be found?)

What are your plans (other than waiting for someone doing it for you)?:classic_wink:


well i have some experience on ripping some games and looking thru them with a hex editor (namely wxHexEditor), but my skillset doesn't really help me much. i TRIED making a bms script for a game file before, but i failed miserably

Edited by MaxBOOST
misspelled miserably
Link to comment
Share on other sites

  • Engineer
Posted (edited)
2 hours ago, MaxBOOST said:


i TRIED making a bms script for a game file before, but...

Thanks for the video.:classic_biggrin: Couldn't find any item maps such like this one for SeaOfThieves: How an item map could look like (other game!)

Quickbms usually is used for unpacking archives. If you used it to create obj files from a game's models (did you?) I'm not surprised of less to no success...

Edited by shak-otay
Link to comment
Share on other sites

38 minutes ago, shak-otay said:

Thanks for the video.:classic_biggrin: Couldn't find any item maps such like this one for SeaOfThieves: How an item map could look like (other game!)

Quickbms usually is used for unpacking archives. If you used it to create obj files from a game's models (did you?) I'm not surprised of less to no success...

well not really, i used it for something else, but when i wanted to rip the .obj and .clu models (which was around when i first started to have even the slightest idea of what hex editing is), i used wxHexEditor and Hex2Obj to figure it out. I kinda asked around in case i didn't find a solution back then, but by the time i figured out what to do, you and someone else responded, and the .clu files were the same as the .obj files, albeit bigger and way more time consuming to rip by hand, and i couldn't make sense of the .trk files at all, especially since i am still getting the hang of hex editing.

Link to comment
Share on other sites

9 minutes ago, MaxBOOST said:

well not really, i used it for something else, but when i wanted to rip the .obj and .clu models (which was around when i first started to have even the slightest idea of what hex editing is), i used wxHexEditor and Hex2Obj to figure it out. I kinda asked around in case i didn't find a solution back then, but by the time i figured out what to do, you and someone else responded, and the .clu files were the same as the .obj files, albeit bigger and way more time consuming to rip by hand, and i couldn't make sense of the .trk files at all, especially since i am still getting the hang of hex editing.

anyways i would've done the whole (get the .clu files to use the .trk files) myself, if i had a much more extensive knowledge on how to use python to make it do such a thing.

Link to comment
Share on other sites

  • Engineer
Posted (edited)
6 hours ago, MaxBOOST said:

anyways i would've done the whole (get the .clu files to use the .trk files) myself, if i had a much more extensive knowledge on how to use python to make it do such a thing.

At this point you don't need python, just hex2obj (or meshreaper, whatever). Moorhuhn Kart has nice 3D formats to start with. It requires some basic knowlesge only (what are floats, why is (little endian) 0000803F = 1.0 ? and such). A hex2float converter might be useful. (Some hexeditors have integrated data conversion for it.)

hex to float (shows hex representation from left to right, btw: 3f800000, starting with MSB, most significant byte)

object in .clu file

Edited by shak-otay
Link to comment
Share on other sites

6 hours ago, shak-otay said:

At this point you don't need python, just hex2obj (or meshreaper, whatever). Moorhuhn Kart has nice 3D formats to start with. It requires some basic knowlesge only (what are floats, why is (little endian) 0000803F = 1.0 ? and such). A hex2float converter might be useful. (Some hexeditors have integrated data conversion for it.)

hex to float (shows hex representation from left to right, btw: 3f800000, starting with MSB, most significant byte)

object in .clu file

Fair, but forgive me if this comes out as rude in any way, but how can this help us find which model in the .clu file goes where.

 

 

Oh and one more thing i forgot to mention: all models are flipped on the x axis in game

 

Link to comment
Share on other sites

  • Engineer
4 minutes ago, MaxBOOST said:

Fair, but forgive me if this comes out as rude in any way, but how can this help us find which model in the .clu file goes where.

Yes, sounds rude, because... I thought is was a great progress to know which models are contained in .clu files.

Or did you know that already?

Quote

Oh and one more thing i forgot to mention: all models are flipped on the x axis in game

That's how they come out. It's easier to leave the unflipping to the customer than searching for the rotation matrices, if any, which contain position offsets and maybe a-1 for the flipping.

Link to comment
Share on other sites

1 hour ago, shak-otay said:

Yes, sounds rude, because... I thought is was a great progress to know which models are contained in .clu files.

Or did you know that already?

oh well i did know that, that's why i apologized.

i converted the .clu files to .dae with noesis (and before that i did one of them with hex2obj.)

and i kinda have a basic idea on how the tracks work, which i will explain in another post

Link to comment
Share on other sites

Posted (edited)

so as i was saying:

the game first reads an ini file which contains info on the tracks like which .trk file to load and what lighting to use.

then the .trk file itself contains the names of the .clu files it will load, and where each mesh in said .clu files is placed (after all clu here stands for clustered (found this out when i opened the exe in IDA)

the .trk file also has some extra info relating to power ups and player start positions which i didn't really figure out to be honest. (as you can tell by the powerup:kaugummi (which is german for chewing gum) or powerup:holzhammer (german for wooden hammer))

if you try to convert an entire .clu file alone in any of the programs i mentioned, you will get the meshes, sure, but they are all placed at the origin or elsewhere, but they seem to have the correct rotation (minus the x-flipping part), which made me assume the the .trk files can only edit positions, hence why i asked here because the .trk file was a bit too complicated for my simple newbie hex editor brain.


again, i am sorry if i sounded rude, i really didn't mean for it to come off like that 😅

Edited by MaxBOOST
added some more info.
Link to comment
Share on other sites

  • Engineer
Posted (edited)
1 hour ago, MaxBOOST said:

the .trk file also has some extra info relating to power ups and player start positions which i didn't really figure out to be honest. 

Where is that extra info (file offset)?

Quote

if you try to convert an entire .clu file alone in any of the programs i mentioned, you will get the meshes, sure, but they are all placed at the origin or elsewhere, 

So you think, their absolute or world positions are stored in the track file? Why?

In my experience most (if not all) 3D formats, where the models come out clumped contain related matrices (rotation/position) where that position must be used.

May be different here, but it must be proven.

 

edit: are the meshes from a .clu file clumped at origin? If 'no', i.e. they're placed around the origin chances are high that a track file contains world positions for each .clu it loads.

Edited by shak-otay
Link to comment
Share on other sites

Posted (edited)
5 minutes ago, shak-otay said:

Where is that extra info (file offset)?

at the end of the file i believe
 

Quote

So you think, their absolute or world positions are stored in the track file? Why?

In my experience most (if not all) 3D formats, where the models come out clumped contain related matrices (rotation/position) where that position must be used.

May be different here, but it must be proven.

because some tracks are divided into multiple .clu files like the one i just sent, and there are references to said .clu files if you check the .trk files. And one of the images you sent in this thread (namely this one https://imgbox.com/ULOLSLWd) literally shows the exact layout and map of the entire track when all .clu files are put together properly.

Edited by MaxBOOST
Link to comment
Share on other sites

  • Engineer
Posted (edited)

Just saw that the positions are known (see 2nd picture in the post you referred to, Wednesday 10:10).

If you have some basic coding knowledge in any programming/scripting language the list is easy to obtain.

If 'no' I'll care for it sooner or later. (Too busy atm.)

Edited by shak-otay
Link to comment
Share on other sites

7 minutes ago, shak-otay said:

Just saw that the positions are known (see 2nd picture in the post you referred to, Wednesday 10:10).

If you have some basic coding knowledge in any programming/scripting language the list is easy to obtain.

If 'no' I'll care for it sooner or later. (Too busy atm.)

i can do that sure

Link to comment
Share on other sites

Posted (edited)
1 hour ago, MaxBOOST said:

i can do that sure

 but my issue isn't just obtaining the list, it's having, say something like noesis for example, take values from that list and assigning them to the proper meshes.

thanks for helping though

Edited by MaxBOOST
Link to comment
Share on other sites

  • Engineer
Posted (edited)

I'd do it step by step. With 2 or three meshes, as a test.

You could load a track level (as .obj, see other thread) into blender.

Then the three meshes. Then add the positions from the list.

If you can't do it by script (google for "object location in blender") you can change the coordinates manually.

As soon as you find those 3 objects being at the correct place you can proceed.

Edited by shak-otay
Link to comment
Share on other sites

15 minutes ago, shak-otay said:

I'd do it step by step. With 2 or three meshes, as a test.

You could load a track level (as .obj, see other thread) into blender.

Then the three meshes. Then add the positions from the list.

If you can't do it by script (google for "object location in blender") you can change the coordinates manually.

As soon as you find those 3 objects being at the correct place you can proceed.

good idea, i'll start now

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