Need Help with a certian .msh type file

Post questions about game models here, or help out others!
jocsive
ultra-n00b
Posts: 8
Joined: Tue Jul 17, 2007 9:46 am

Need Help with a certian .msh type file

Post by jocsive » Sat Aug 04, 2007 10:09 am

Ok it is not just your avarage .msh(mesh) its somehow in coded, a friend of mine built a proggie that can see this type of mesh file. But i can't get it in an editable format.

I am hoping someone here might be able to help.

I added one of the files.

Thanks.

Attachment:
http://www.speedyshare.com/797886501.html
Last edited by jocsive on Sat Aug 04, 2007 10:35 pm, edited 1 time in total.

Rheini
Moderator
Posts: 653
Joined: Wed Oct 18, 2006 9:48 pm
Location: Germany
Has thanked: 19 times
Been thanked: 40 times
Contact:

Post by Rheini » Sat Aug 04, 2007 1:16 pm

You didn't attach anything.
If your friend created that tool, he should be able to also convert it, shouldn't he?

jocsive
ultra-n00b
Posts: 8
Joined: Tue Jul 17, 2007 9:46 am

Post by jocsive » Sat Aug 04, 2007 10:36 pm

Uhh sorry about that, it said it attached maybe some error.

Anyway, the proggie he made only views the models and can put the texture on too. He can not convert them because he can't figure them out :P

Rheini
Moderator
Posts: 653
Joined: Wed Oct 18, 2006 9:48 pm
Location: Germany
Has thanked: 19 times
Been thanked: 40 times
Contact:

Post by Rheini » Sun Aug 05, 2007 9:30 am

If he's able to create a model viewer he must have knowledge about the format. So why can't he convert it?
Maybe he can post the specs for the format to help converting it. :)

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Sun Aug 05, 2007 10:22 pm

the format should be quite easy, OGRE variation. I have a quick look (less than 10 min) and get this:

Hope this help!

Code: Select all

char[3]	header	//MSH
dword	nFaces	//Face count
word	nmtl	//Material count
struct face {
 byte X 3	uknByte	//should be 1 byte for each vert
 dword X 3	uknLong	//should be 1 value for each vert
 float X 3 	vert1	//position x, y, z
 float X 3 	vert2	//position x, y, z
 float X 3 	vert3	//position x, y, z
 float X 2 	uv1	//texture coordinate u, v
 float X 2 	uv2	//texture coordinate u, v
 float X 2 	uv3	//texture coordinate u, v
 float X 3 	norl1	//normal x, y, z ?
 float X 3 	norl2	//normal x, y, z ?
 float X 3 	norl3	//normal x, y, z ?
 float X 3	??
 float X 3	??
 float X 3	??
} face[nFaces]
struct Material {
 float X 3	colAmbient	//color r g b
 float X 3	colDiffuse	//color r g b
 float X 3	colSpecular	//color r g b
 char[]	textureName
 dword	ukn
 byte X 8	ukn2
}

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Mon Aug 06, 2007 6:58 pm

jocsive, It is better to upload the files here so more people can take a look at those! I do it for you this time!

And here are the format. Same that I didn't spent too much time on them so I'm not sure how far I have got!

Code: Select all

.ani should be animation file
char[3]		header	//ANI
dword		nFrames	//Frames count / ?? not sure maybe Bones
dword		nBones	//Bones count \ ?? not sure maybe Frames
struct translation {
 float X 3		PosXYZ
 float X 4		QuatXYZW
}	// total nBones * nFrames

Code: Select all

.abx is mesh file use vertices deform for animation
char[3]		header	//AX2
dword		nFrames	//Framescount 
dword		nVerts	//Verts count
struct Vertpool {
 float X 7		??
} Vertpool[nVerts]
dword		ukn	//0xFFFFFFFF ?? terminator
struct faceIndex {
 dword		//maybe tri-strip ?? don't know the face count
}

Code: Select all

I don't know what mbx is?
char[3]		header	//MX2
dword		??
dword		nukn	//unknown count
byte		??
struct Section1 {
 dword		??
 dword		??
 float		??
} Section1[nukn]
struct Section2 {
 float X 3		??
} Section2[nukn]
dword		nukn2	//unknown count 2
struct Section3 {
 float X 3		??
} Section3[nukn2]
dword		nukn3	//unknown count 3
struct Section4 {
 float X 2		??
} Section4[nukn3]
dword		nukn4	//unknown count 4
struct Section4 {
 dword		ntxt	//length of texture's name
 char[ntxt]		stex	//texture's name
 byte X 72		??
} Section4[nukn3]
You do not have the required permissions to view the files attached to this post.

jocsive
ultra-n00b
Posts: 8
Joined: Tue Jul 17, 2007 9:46 am

Post by jocsive » Tue Aug 07, 2007 10:55 pm

Ok this is where we are.


Image

The ball you see there at the end of the cart, its supposed to be a man, but in the game there is animation on the man, so he does not apper here.
Thats where we are stuck now. Anyone no what we are missing?

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Thu Aug 09, 2007 9:40 am

What kinds of help do you needed?

In your picture, which type of models are you displaying? msh, abx or mbx?

And what game is that?

jocsive
ultra-n00b
Posts: 8
Joined: Tue Jul 17, 2007 9:46 am

Post by jocsive » Thu Aug 09, 2007 9:59 am

Its .mbx, i attached that model.

I need help with why the man is not displaying, he had animation on him in the game and the cart does'nt so it appers. What we are trying to do is get the man to apper.

The game is called thang online, http://www.thang.ongameport.com
You do not have the required permissions to view the files attached to this post.

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Thu Aug 09, 2007 4:19 pm

Interesting! So you know the format of mbx!

Could you share what you got already? So I don't have to start from the beginning.

Send me the model files you used in your viewer if you don't mind because I don't want to download the whole game-client just for that!

jocsive
ultra-n00b
Posts: 8
Joined: Tue Jul 17, 2007 9:46 am

Post by jocsive » Sun Aug 12, 2007 1:00 pm

Ok my friend made up this info about the file. This is the file you see in the image, which is .mbx.

even though he can read the "faces" the bits that have some animation points or animation come out like a meatball.

Here is some info about the file

Code: Select all

MBX version 1 INFO

char[3]      header   //MX1
dword X 6    ??
byte X 1     ??
dword   nFaces        //Face count
struct face {
 dword        ntxt    //length of texture's name
 char[ntxt]   stex    //texture's name
 dword X 3    ??
 float X 2    uv1     //texture coordinate u, v
 float X 2    uv2     //texture coordinate u, v
 float X 2    uv3     //texture coordinate u, v
 float X 3    ??
 float X 3    ??
 float X 3    ??
 float X 3    norl1   //normal x, y, z
 float X 3    norl2   //normal x, y, z
 float X 3    norl3   //normal x, y, z
 float X 3    vert1   //position x, y, z
 float X 3    vert2   //position x, y, z
 float X 3    vert3   //position x, y, z
} face[nFaces]

------------------------------------------------------------------
MBX version 2 INFO

char[3]      header   //MX2

other than that... format unknown... :-\
I attached the info about the file and the file in a rar.

I greatly appreciated your help.

here are some download links for the file
http://sharebee.com/b5d6b31d

mirror - http://www.speedyshare.com/654768453.html[/code]
You do not have the required permissions to view the files attached to this post.

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Mon Aug 13, 2007 11:50 pm

I did a quick test on that cart.mbx. And I'm sure that there are no animation or the man inside! They must be in separate files!

and the whole MX1 format should be like this!

Code: Select all

char[3]      header   //MX1 
float X 6    bbox     //bounding box [x,y,z] [x,y,z]
byte X 1     padbyte  //no use??
dword        nFaces   //Face count 
struct face { 
 dword        nshd    //length of shader name 
 char[nshd]   sshd    //shader name 
 dword X 3    boneidx //Bone index(should have external bones file as well) 
 float X 2    uv1     //texture coordinate u, v 
 float X 2    uv2     //texture coordinate u, v 
 float X 2    uv3     //texture coordinate u, v 
 float X 3    vc1     //Vert color  r g b
 float X 3    vc2     //Vert color  r g b
 float X 3    vc3     //Vert color  r g b
 float X 3    norl1   //normal x, y, z 
 float X 3    norl2   //normal x, y, z 
 float X 3    norl3   //normal x, y, z 
 float X 3    vert1   //position x, y, z 
 float X 3    vert2   //position x, y, z 
 float X 3    vert3   //position x, y, z 
} face[nFaces] 

feczo
ultra-n00b
Posts: 2
Joined: Sun Aug 12, 2007 12:56 pm

Post by feczo » Tue Aug 14, 2007 7:13 am

Hello fatduck,

I made the neat little app the above screenshot made of :mrgreen: and trying to solve the mysteries of these files aswell. My progress is greatly slowed that i'm a novice at 3D coding (trying in Delphi+GLScene)

The MX1 format description you made is great, i would never guessed the bounding box and vert colors but i was about to post about the skeletal info - just solved that mystery over the weekend. Atm i'm into reading how to handle that in GLScene :)

About the skeleton info i think its in the ABX files - which has 2 versions aswell. I had not much time to look into it but at first sight the AX1 file looks pretty similar to AX2, except i think the "faceIndex" can be the "skeletal structure" parent-child relation... thats only a guess though. I added the animation file of the cart.mbx to this post for viewing.

I think there was a developer change at some point and the new developer added these new formats. I kinda can tell which update introduced the version 2 files :(

Thanks for all the help you gave it really helped a LOT :up:
You do not have the required permissions to view the files attached to this post.

fatduck
mega-veteran
mega-veteran
Posts: 315
Joined: Wed Aug 02, 2006 10:07 pm
Has thanked: 10 times
Been thanked: 93 times

Post by fatduck » Tue Aug 14, 2007 9:28 pm

This cart_stand001.abx is a mesh with vertices animation

The AX1 format is the same as AX2 except the faces are build with triangles (3 verts per face)

Code: Select all

char[3]    header   //AX1
dword      ukn      //??
dword      nFrames  //Frames count 
dword      nVerts   //Verts count 
struct FrameMeshVerts {
 struct Vertpool { 
  float X 3       //position xyz
  dword      ??   //not sure if it is dword
  float      ??
  dword      ??   //not sure if it is dword
  float      ??
 } Vertpool[nVerts] 
} FrameMeshVerts[nFrames]
dword      ukn   //0xFFFFFFFF ?? terminator 
struct face { 
 dword      idx1
 dword      idx2
 dword      idx3
}

feczo
ultra-n00b
Posts: 2
Joined: Sun Aug 12, 2007 12:56 pm

Post by feczo » Wed Aug 15, 2007 7:44 am

There are more than 3 dwords after the FFs... are you sure its not like the *.ani files? :?
My guess is something like this:

Code: Select all

char[3]    header   // AX1 
dword      padding  // always 0s?
dword      nFrames  // Frames count
dword      nBones   // Bones count
struct animation {
  struct translation { 
    float X 3      PosXYZ 
    float X 4      QuatXYZW 
  } translation[nBones]
} animation[nFrames]
dword      ??       // seems to be FFFFFFFF all the time...
struct boneidx {
 dword          pBone  // my guess this is the bone structure
} boneidx[nBones]

Post Reply