   Need some help with Milkshape 3D ascii format
  I'm looking to add support for some simple static models (like buildings, trees, etc) to a project I'm working on and I've been looking at the Milkshape ascii model format as nice clean and simple solution. The problem is though, I can't find any specs for it anywhere and just looking at some exported files I'm having a little trouble figuring out what everything is supposed to mean.I get the basic gist of the different parts: I can see stuff that looks like vertices, normals, vertex indices, etc but there's a lot of additional information scattered all around and it's pretty difficult to figure out what it all means by just looking at it. So does anyone have any experience working with this format? I've searched Google a bit and I can't find anything like an official specification for the format anywhere. If anyone knows where to find something like this though and can point me to it that would be fantastic.   
  I'd suggest checking out the API you can download from the Milkshape site. I think one of the examples included is an exporter for the ASCII format that'll give you a good indication of the file layout.To be honest, it's pretty simple to take their API and put together your own plugin that will export to a custom file format your game recognises. I think it took me a couple of hours to pick it up and throw something basic together.   ;  Like Never said, download the SDK and you'll find all the info (along with source code) there.To save you some time, here's the ascii spec:// MilkShape 3D ASCII File Format Specification: 1 box, 1 material, a simple animation// total framesFrames: 30// current frameFrame: 1// number of meshesMeshes: 1// mesh: name, flags, material index"Box01" 0 0// number of vertices20// vertex: flags, x, y, z, u, v, bone index0 -10.375000 10.500000 13.750000 0.000000 0.000000 -10 -10.375000 -10.250000 13.750000 0.000000 1.000000 -10 10.375000 10.500000 13.750000 1.000000 0.000000 -10 10.375000 -10.250000 13.750000 1.000000 1.000000 -10 10.375000 10.500000 13.750000 0.000000 0.000000 -10 10.375000 -10.250000 13.750000 0.000000 1.000000 -10 10.375000 10.500000 -4.500000 1.000000 0.000000 -10 10.375000 -10.250000 -4.500000 1.000000 1.000000 -10 10.375000 10.500000 -4.500000 0.000000 0.000000 -10 10.375000 -10.250000 -4.500000 0.000000 1.000000 -10 -10.375000 10.500000 -4.500000 1.000000 0.000000 -10 -10.375000 -10.250000 -4.500000 1.000000 1.000000 -10 -10.375000 10.500000 -4.500000 0.000000 0.000000 -10 -10.375000 -10.250000 -4.500000 0.000000 1.000000 -10 -10.375000 10.500000 13.750000 1.000000 0.000000 -10 -10.375000 -10.250000 13.750000 1.000000 1.000000 -10 -10.375000 10.500000 13.750000 0.000000 1.000000 -10 10.375000 10.500000 13.750000 1.000000 1.000000 -10 -10.375000 -10.250000 13.750000 0.000000 0.000000 -10 10.375000 -10.250000 13.750000 1.000000 0.000000 -1// number of normals6// normal: x, y, z0.000000 0.000000 1.0000001.000000 0.000000 0.0000000.000000 0.000000 -1.000000-1.000000 0.000000 0.0000000.000000 1.000000 0.0000000.000000 -1.000000 0.000000// number of triangles12// triangle: flags, vertex index1, vertex index2, vertex index3, normal index1, normal index 2, normal index 3, smoothing group0 0 1 2 0 0 0 10 1 3 2 0 0 0 10 4 5 6 1 1 1 20 5 7 6 1 1 1 20 8 9 10 2 2 2 10 9 11 10 2 2 2 10 12 13 14 3 3 3 20 13 15 14 3 3 3 20 12 16 6 4 4 4 30 16 17 6 4 4 4 30 18 13 19 5 5 5 30 13 7 19 5 5 5 3// number of materialsMaterials: 1// material: name"Material01"// ambient0.200000 0.200000 0.200000 0.800000// diffuse0.000000 0.501961 0.752941 0.800000// specular0.752941 0.752941 0.752941 0.800000// emissive0.000000 0.000000 0.000000 0.800000// shininess63.000000// transparency0.800000// color map"D:\Eigene Dateien\Image2.tga"// alphamap"D:\Eigene Dateien\Image1.tga"// number of jointsBones: 3// name"joint1"// parent name""// joint: flags, posx, posy, posz, rotx, roty, rotz0 0.250000 0.000000 0.000000 0.224024 1.570796 0.000000// number of position keys2// position key: time, posx, posy, posz1.000000 0.000000 0.000000 0.00000030.000000 0.000000 0.000000 0.000000// number of rotation keys2// rotation key: time, rotx, roty, rotz1.000000 0.000000 0.000000 0.00000030.000000 0.000000 0.000000 0.000000"joint2""joint1"5 0.000000 0.000000 20.256172 -1.015218 0.000362 3.14159331.000000 0.000000 0.000000 0.00000015.000000 0.000000 0.000000 0.00000030.000000 0.000000 0.000000 0.00000031.000000 0.000000 0.000000 0.00000015.000000 2.286381 -0.000548 -0.00036530.000000 0.000000 0.000000 0.000000"joint3""joint2"4 0.000000 0.000000 16.128391 0.000000 0.000000 0.00000021.000000 0.000000 0.000000 0.00000030.000000 0.000000 0.000000 0.00000021.000000 0.000000 0.000000 0.00000030.000000 0.000000 0.000000 0.000000// you can build the joint matrix:// - rotate an identity matrix by the rotation values of the joint// - set the translation of the matrix to the position values.// the same for key matrices// the key matrices animate the reference matrices, so you have to multiply them,// to get the final local joint matrix.  The get the final global joint matrix,// you have to multiply them by their parents.Indeed it's a very clean format to work with. Since you only need static models, it's even simpler than it looks because a lot of the data is redundant. I remember I got static models to work with VBOs extremely fast once.[Edited by - Wingman on September 14, 2007 9:15:16 AM];  Perfect, thanks guys.   