Got some information about the Model files of Rayman.
Actually I was working with Tonic Trouble, a similar game with a similar File Structure. I was already able to unpack the Textures with the Tool MixerX made for Rayman 2/3. Now I really want to find out how Geometry is stored in Rayman/Tonic Trouble.
In the "invenor" folder of Tonic Trouble I was able to find a file called "inventai.imd" it is a normal ASCII-File (Text-File) whick contains diffrent information but mainly Geometry data used for the Inventory Screen of Tonic Trouble. Allthough I don't know what 3D-File it is, it is pretty simple to read and I've managed to write a little script to import the Geometry of the File to 3ds Max. And it worked!
Unfortunately, the rest of the Geometry (for the Levels and other Models) seems to be stored in Binary Code. I am pretty Sure the Geometry for Models and Environments is contained in the .sna-files (they are the biggest files in the world-folder and if you watch them with a Hex-Editor you can read strings like 'texture1.tga') But I think the files have the same structure as the ASCII-File (.imd) only difference is that they are saved as a binary file. Now, I'm not into Binary Files but I'm pretty sure you should be able to convert binaries to Asciis and vice versa.
Anyways... Here is a part of the"inventai.imd" file (Only one Object. the rest of the File is similar...it looks like the 3D-Files contain more than one Model). Have a look! I'm sure it has some nice information. You can see that the header says:
haven't found a 3ds Max Plug-In called ExpMod (It's probably made by Ubisoft) and you can see that they called the File Format ".MOD"
Code: Select all
; SCR 526
; Scripts Parser Version 5.2.6
; (c) Ubi Simulations 1997
;.MOD (graphic Module) : inventaire.MOD
;Generated by 3DSMAX ExpMod plug-in from file (null)
;Created date : 12/12/97 17:18:24
;Version directive, the version number is stored in file result 0
$SetCurrentFileDouble(0,"5.20")
;Unit directive, the unit is stored in file result 1
;And correspond to the value of one unit exprimed in meter
$SetCurrentFileDouble(1,1)
{Geometric:baton(29,0,2)
AddVertex(0,"-0.317675","-0.0527771","-0.923296","0.0041786","-0.00353098","-0.00837087",0,0,0)
AddVertex(1,"-0.315915","0.0567083","-0.92279","0.00285208","0.00842359","-0.00457261",0,0,0)
AddVertex(2,"-0.410978","-0.0514531","-0.886314","-0.00524219","-0.00840118","-0.00139266",0,0,0)
AddVertex(3,"-0.409217","0.0580323","-0.885807","-0.00875008","0.0036658","-0.00316196",0,0,0)
AddVertex(4,"0.409217","-0.0580323","0.885807","0.00543222","-0.00711972","0.00444979",0,0,0)
AddVertex(5,"0.410978","0.0514532","0.886314","0.00912296","0.00409242","-0.000153636",0,0,0)
AddVertex(6,"0.315915","-0.0567082","0.92279","-0.00670033","-0.00414181","0.00616043",0,0,0)
AddVertex(7,"0.317675","0.0527772","0.923296","-0.000891","0.00702001","0.0070658",0,0,0)
AddVertex(8,"-0.255424","-0.0358752","-0.726567","0.0280418","-0.0104039","-0.0102332",0,0,0)
AddVertex(9,"-0.254218","0.0391149","-0.72622","0.019163","0.0197251","-0.0065712",0,0,0)
AddVertex(10,"-0.318124","0.0400218","-0.70089","-0.0179014","0.0202229","0.00839052",0,0,0)
AddVertex(11,"-0.31933","-0.0349683","-0.701237","-0.0184237","-0.0197431","0.00841578",0,0,0)
AddVertex(12,"0.0263446","-0.0318894","-0.0107887","0.00646756","-0.00716364","-0.00261781",0,0,0)
AddVertex(13,"0.0273578","0.0311274","-0.0104973","0.00665375","0.00697706","-0.00265484",0,0,0)
AddVertex(14,"-0.0263446","0.0318894","0.0107889","-0.00646639","0.00716366","0.00262063",0,0,0)
AddVertex(15,"-0.0273576","-0.0311273","0.0104974","-0.00665469","-0.00697728","0.00265191",0,0,0)
AddVertex(16,"0.318124","-0.0400217","0.70089","0.0178944","-0.0202522","-0.00831927",0,0,0)
AddVertex(17,"0.31933","0.0349683","0.701236","0.0275713","0.00961276","-0.0121137",0,0,0)
AddVertex(18,"0.255424","0.0358752","0.726567","-0.00927304","0.030097","0.00266842",0,0,0)
AddVertex(19,"0.254218","-0.0391148","0.72622","-0.0283064","-0.0095937","0.0102814",0,0,0)
AddVertex(20,"0.30645","0.0364394","0.845208","-1.32704e-005","-1.32704e-005","-1.32704e-005",0,0,0)
AddVertex(21,"0.11343","-0.035121","0.368359","-0.00669325","-0.00697642","0.00255537",0,0,0)
AddVertex(22,"0.172234","-0.0359555","0.34505","0.00642758","-0.00716267","-0.00271708",0,0,0)
AddVertex(23,"0.11454","0.0338823","0.368678","-0.00650563","0.00716387","0.00252107",0,0,0)
AddVertex(24,"-0.172234","0.0359556","-0.34505","-0.00642759","0.00716265","0.00271708",0,0,0)
AddVertex(25,"-0.173344","-0.0330478","-0.34537","-0.00661448","-0.00697712","0.00275109",0,0,0)
AddVertex(26,"-0.11454","-0.0338823","-0.368678","0.00650563","-0.00716387","-0.00252107",0,0,0)
AddVertex(27,"-0.11343","0.0351211","-0.368359","0.00669326","0.00697641","-0.00255537",0,0,0)
AddVertex(28,"0.173344","0.0330479","0.34537","0.00661447","0.00697713","-0.00275109",0,0,0)
AddElement(0,IndexedTriangles,"*^ElementIndexedTriangles:baton_doc_manche")
AddElement(1,IndexedTriangles,"*^ElementIndexedTriangles:baton_doc_embout")
}
{ElementIndexedTriangles:baton_doc_manche(32,1)
Material("*^Material:doc_manche")
AddFaceUV(0,27,13,26,"0.930443","-0.0132742","-0.366197",0,0,0)
AddFaceUV(1,13,12,26,"0.930442","-0.0132665","-0.366199",0,0,0)
AddFaceUV(2,28,17,22,"0.925123","-0.0131222","-0.37944",0,0,0)
AddFaceUV(3,17,16,22,"0.925124","-0.0131271","-0.379439",0,0,0)
AddFaceUV(4,24,14,27,"0.0161014","0.999859","0.00482408",0,0,0)
AddFaceUV(5,14,13,27,"0.0160996","0.999859","0.0048245",0,0,0)
AddFaceUV(6,23,18,28,"0.010364","0.9999","-0.00964776",0,0,0)
AddFaceUV(7,18,17,28,"0.0103654","0.9999","-0.00964806",0,0,0)
AddFaceUV(8,25,15,24,"-0.925123","0.0131222","0.37944",0,0,0)
AddFaceUV(9,15,14,24,"-0.925124","0.0131163","0.379439",0,0,0)
AddFaceUV(10,21,19,23,"-0.930442","0.0132742","0.366198",0,0,0)
AddFaceUV(11,19,18,23,"-0.930443","0.0132688","0.366197",0,0,0)
AddFaceUV(12,26,12,25,"-0.0103655","-0.9999","0.00964835",0,0,0)
AddFaceUV(13,12,15,25,"-0.0103655","-0.9999","0.00964833",0,0,0)
AddFaceUV(14,22,16,21,"-0.0161014","-0.999859","-0.00482407",0,0,0)
AddFaceUV(15,16,19,21,"-0.0161013","-0.999859","-0.00482412",0,0,0)
AddFaceUV(16,21,14,15,"-0.930443","0.013263","0.366197",0,0,0)
AddFaceUV(17,21,15,22,"-0.0161013","-0.999859","-0.00482387",0,0,0)
AddFaceUV(18,22,12,28,"0.925124","-0.0131222","-0.379439",0,0,0)
AddFaceUV(19,22,15,12,"-0.0161013","-0.999859","-0.00482387",0,0,0)
AddFaceUV(20,23,13,14,"0.0103638","0.9999","-0.00964768",0,0,0)
AddFaceUV(21,23,14,21,"-0.930442","0.0132742","0.366199",0,0,0)
AddFaceUV(22,24,9,10,"0.0161013","0.999859","0.00482411",0,0,0)
AddFaceUV(23,24,10,25,"-0.925124","0.0131222","0.379439",0,0,0)
AddFaceUV(24,25,10,11,"-0.925124","0.0131221","0.379439",0,0,0)
AddFaceUV(25,25,11,26,"-0.0103655","-0.9999","0.00964835",0,0,0)
AddFaceUV(26,26,8,27,"0.930443","-0.0132742","-0.366197",0,0,0)
AddFaceUV(27,26,11,8,"-0.0103655","-0.9999","0.00964833",0,0,0)
AddFaceUV(28,27,8,9,"0.930442","-0.0132688","-0.366198",0,0,0)
AddFaceUV(29,27,9,24,"0.0161014","0.999859","0.00482407",0,0,0)
AddFaceUV(30,28,12,13,"0.925124","-0.0131198","-0.379439",0,0,0)
AddFaceUV(31,28,13,23,"0.010364","0.9999","-0.00964774",0,0,0)
AddUV(0,0,"1.49012e-007")
}
{ElementIndexedTriangles:baton_doc_embout(20,1)
;************************************************
Material("*^Material:doc_embout")
AddFaceUV(0,0,2,3,"-0.36833","0.0102296","-0.929639",0,0,0)
AddFaceUV(1,3,1,0,"-0.368343","0.0102175","-0.929634",0,0,0)
AddFaceUV(2,4,5,7,"0.36833","-0.0102296","0.929639",0,0,0)
AddFaceUV(3,7,6,4,"0.368343","-0.0102175","0.929634",0,0,0)
AddFaceUV(4,0,1,9,"0.953658","-0.0139412","-0.30057",0,0,0)
AddFaceUV(5,9,8,0,"0.953658","-0.0139458","-0.300568",0,0,0)
AddFaceUV(6,16,17,5,"0.896515","-0.0123744","-0.44284",0,0,0)
AddFaceUV(7,5,4,16,"0.896514","-0.0123688","-0.442842",0,0,0)
AddFaceUV(8,1,3,10,"0.0440034","0.996186","0.0753495",0,0,0)
AddFaceUV(9,10,9,1,"0.0440029","0.996186","0.0753495",0,0,0)
AddFaceUV(10,17,18,7,"-0.0175906","0.996635","-0.0800598",0,0,0)
AddFaceUV(11,7,5,17,"-0.0175903","0.996635","-0.0800598",0,0,0)
AddFaceUV(12,3,2,11,"-0.896514","0.0123688","0.442842",0,0,0)
AddFaceUV(13,11,10,3,"-0.896514","0.0123685","0.442842",0,0,0)
AddFaceUV(14,18,19,6,"-0.953658","0.0139458","0.300571",0,0,0)
AddFaceUV(15,6,7,18,"-0.953658","0.0139412","0.300569",0,0,0)
AddFaceUV(16,2,0,8,"0.0175901","-0.996635","0.0800595",0,0,0)
AddFaceUV(17,8,11,2,"0.0175895","-0.996635","0.0800601",0,0,0)
AddFaceUV(18,19,16,4,"-0.0440032","-0.996186","-0.0753501",0,0,0)
AddFaceUV(19,4,6,19,"-0.0440042","-0.996186","-0.0753491",0,0,0)
AddUV(0,0,"1.49012e-007")
}