Page 1 of 2
Need Help with a certian .msh type file
Posted: Sat Aug 04, 2007 10:09 am
by jocsive
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
Posted: Sat Aug 04, 2007 1:16 pm
by Rheini
You didn't attach anything.
If your friend created that tool, he should be able to also convert it, shouldn't he?
Posted: Sat Aug 04, 2007 10:36 pm
by jocsive
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

Posted: Sun Aug 05, 2007 9:30 am
by Rheini
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.

Posted: Sun Aug 05, 2007 10:22 pm
by fatduck
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
}
Posted: Mon Aug 06, 2007 6:58 pm
by fatduck
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]
Posted: Tue Aug 07, 2007 10:55 pm
by jocsive
Ok this is where we are.
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?
Posted: Thu Aug 09, 2007 9:40 am
by fatduck
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?
Posted: Thu Aug 09, 2007 9:59 am
by jocsive
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
Posted: Thu Aug 09, 2007 4:19 pm
by fatduck
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!
Posted: Sun Aug 12, 2007 1:00 pm
by jocsive
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]
Posted: Mon Aug 13, 2007 11:50 pm
by fatduck
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]
Posted: Tue Aug 14, 2007 7:13 am
by feczo
Hello fatduck,
I made the neat little app the above screenshot made of

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

Posted: Tue Aug 14, 2007 9:28 pm
by fatduck
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
}
Posted: Wed Aug 15, 2007 7:44 am
by feczo
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]