The real 3d models are stored in the big archives. If you extract data\models\npcs.big with tools, then there exist many other *.big and *.tex archives.
There are cast_*.big and cast_*.tex files which have 3d model data.
If you extract that big and tex archive, it contains bone and 3d information and texture files.
bone files are bone*, and 3d data are in the geo* files. geo files are two kinds. "* indices 0" and * Vertices 0"
clearly "* indices 0" files are array of two byte integers. "* Vertices 0" files are array of 4 bytes floats.
I've tried to convert "geo_blouseShape Indices 0" "geo_blouseShape Vertices 0" into integer array and float arrays.
I guessed indices represent polygon vertex index and Vertices represent x,y,z vertex coordinates.
So first converted "geo_blouseShape Vertices 0" into 3 float array and imported that vertex info into cinema 4d.
I attached the image.
As you can see there appears a shape like a blouse, but there are other points and the valid points are spread 0, 14, 28, 42 etc There other goups indexed by 9, 23, 37, 51 etc which looks like a blouse in the y,z plane, but spread over x plane meaninglessly. Also group 5, 19, 33, looks like side view of a blouse in the y,x plane but hard to understand in the z direction etc.
Other point groups are hard to understand.
I think there can be normal vertices and wheather uv coordinates are included is not clear.
The largest integer in the indices is smaller than the possible number of integers reduced from vertices. So there must other coordinates which is not vertices coordinates.
In the cast_rebecca.big, the largest integer in the "geo_blouseShape Indices 0" is 2194. index is running from 0 so there must be 2195 vertices. In the file "geo_blouseShape Vertices 0", there is 30730 floats. So 30730/2195 gives 14. 14 float data per index.
Another example "geo_headShape Indices 0", the largest integer is 2755, so 2756 vertices. In the file "geo_headShape Vertices 0", there is 38584 floats. So 38584/2756 gives 14. Also 11th coordinates seems to be -1 always, 6th and 7 th always 0. So effectively there is 11 coordinates per vertex.
If the meaning is analyzed you can easily convert float arrays into obj format's v array and indices into obj formats's f array.
Last Edit: Jan 16, 2011 3:00:40 GMT -5 by anno1404
looking good so far, im not familiar with c4d dude im a blender man myself, btw does anyone know python cos if you do then the possibility of an import/ export script would be ace.
this way keeping modding side free, with blender being open source it could be a great tool for dr2
p.s sorry for late reply had net cut off for a week.
but yeh i can see a shirt type shape, but 30730 does seem a lot of vertices for 1 object, that to me would be kinda game lagging size with the amount of verts/faces used by the zombies, could you have a look at a zombie to see their size.
It is certain 3 floats located in 0, 1, 2 modulo 14 form models. (x,y,z coordinates) So blouse have 2194 vertices. 3,4 modulo 14 seems a uv coordinates (not checked. 5, 6 modulo 14 are always zero, so these are only two pairs which can be a candidate for uv coordinates) 7, 8, 9 modulo 14 seems a kind of vertex normal because they form a circle that means they are normalized to length 1. So remaining point sets are 11, 12, 13 modulo 14.
mesh points (0,1,2), uv coordinates (3,4), vertex normal (7,8,9)? then what else remains for these extra coordinates? (11,12,13)
Analyzing indices is another problem. I can find same index comes in three times repeated like 15 in 9, 17, 11, 11, 15, 15, 15, 18, 16 ... even four times like 30 in 28, 18, 29, 15, 30, 30, 30, 30, 29.. (examples from blouse indices) If all numbers are mesh polygons, that can not happen. So there must be some other groups in the indices too.
P.S. After checking coordinate sets 11, 12, 13 modulo 14, they are normalized too. So another normals. face normal? Obj format only deals with one kind of normal.
Anyway we got 3d mesh and uv coordinates. Now i need to analyze the indices.
Last Edit: Oct 30, 2010 6:46:49 GMT -5 by bluearms
Here is the snapshot of the point clouds of each 4 coordinates groups of the "geo_headShape Indices 0" file.
From top to bottom, group [0,1,2], [3,4], [7,8,9] and [11,12,13] (meaning modulo 14)
group [7,8,9] and [11,12,13] looks similar, but head are looking toward z direction. And points are more dense in the z direction in the goup [11,12,13]. So goup [11,12,13] is more look like face normals.
Anyway you may be able to modify points (for example, face) as long as you do not delete, insert and change vertex orders. Of course normals may be wrong if you change too much.
To analyze indices, i think i must look into more simple object like a box.
P.S. This format apply to npcs.big. I tried to find more simple object in the cine_props.big. it seems use similar but somewhat diffrerent format.
Last Edit: Oct 30, 2010 6:15:00 GMT -5 by bluearms
You can use Gribbed’s Tools (available inside the mod archive) to pack and unpack TEX files for Dead Rising 2 just the way you do it with BIG files for the game, they use the same packing method for both. The extracted files however also need their header modified after conversion, otherwise they are not recognized as DDS and before repacking you again need to modify the header.
Obviously he is an excellent programmer and is willing to respond to any questions we may have.