Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Dead Rising 2 (PC)

Post questions about game models here, or help out others!
Post Reply
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Dead Rising 2 (PC)

Post by chrrox »

Dead Rising 2 Model Loader.
Extract the .big file so you get the geo files then run this script on that folder and it will import them all.
thanks to help from reveal8n
no weights yet till i figure out the bone pallet.
You do not have the required permissions to view the files attached to this post.
Kamillho
veteran
Posts: 84
Joined: Sat Jan 22, 2011 6:19 pm
Has thanked: 14 times
Been thanked: 4 times

Re: Dead Rising 2 (PC)

Post by Kamillho »

How to load textures to the model?

Edit:
Fix !
User avatar
CriticalError
double-veteran
double-veteran
Posts: 678
Joined: Sun Jul 05, 2009 2:03 am
Has thanked: 104 times
Been thanked: 41 times

Re: Dead Rising 2 (PC)

Post by CriticalError »

wow nice one chrox thanks a lot for what really grateful.
Kamillho
veteran
Posts: 84
Joined: Sat Jan 22, 2011 6:19 pm
Has thanked: 14 times
Been thanked: 4 times

Re: Dead Rising 2 (PC)

Post by Kamillho »

Is there any way to make bones work ?
rexil
veteran
Posts: 124
Joined: Tue Mar 15, 2011 3:14 pm
Has thanked: 36 times
Been thanked: 4 times

Re: Dead Rising 2 (PC)

Post by rexil »

Kamillho wrote:Is there any way to make bones work ?
You could help chrrox or just be patient and wait.
chrrox wrote: no weights yet till i figure out the bone pallet.
Kamillho
veteran
Posts: 84
Joined: Sat Jan 22, 2011 6:19 pm
Has thanked: 14 times
Been thanked: 4 times

Re: Dead Rising 2 (PC)

Post by Kamillho »

Anyway finally I have Rebecca model :D
I want her, Stacey and Twins :D
mariokart64n
ultra-veteran
ultra-veteran
Posts: 586
Joined: Sun Jun 05, 2005 12:00 pm
Location: Ontario, Canada
Has thanked: 36 times
Been thanked: 243 times

Re: Dead Rising 2 (PC)

Post by mariokart64n »

I did work on "Dead Rising 2: Off The Record"

Just posting the progress I made with the format. I have meshes, materials, and the rig. but am having problems with all mesh files. I'll need to look more into the vb/ib pairing method the game is using

my goal is to write a model exporter to get new models into dead rising 2 for game modding. although I've hit a snag on the MatTextureInfoArray file. the 2nd LONG has some effect on the textures. and I'm unable to writting valid materials without understanding this section. I'm posting this here in hopes someone will help solve this puzzle piece.
Played DR2 for the first time on the OTR version. LOVED IT!

so had a look at the model format

The game uses a packaging format called BIG, think if it as a replacement for folders that supports compression

BIG FORMAT
--HEADER--
{
LONG : Unknown, Possible File ID / Version ID
LONG : Offset to "RAW Data"
LONG : Total File Size
LONG : File Count
LONG : Offset to "Offset Table"
LONG : Offset to "String Table"
}

--OFFSET_TABLE--
{
LONG : Offset to "Filename", From String Table
LONG : Unknown, Possible File Checksum
LONG : File Size (Compressed)
LONG : File Size (Uncompressed)
LONG : File Offset
LONG : File Type
-- 0x0004 = Info (Header Information)
-- 0x0020 = Data (Geometry)
-- 0x0100 = BIG (BIG Package File)
-- 0x0800 = Compressed Data

LONG : File Compression Flag
-- 0x0000 = File is uncompressed
-- 0x0001 = File is compressed

)

ok so thats old news, but I needed to know that to read a big file. I treat it as a single mesh, rather then unpacking all the files inside. however I'll review the mesh format as if it was decompiled into all its separate component files

TEXTURE FORMAT
--HEADER--
{
BYTE : Unknown, always 0?
BYTE : Unknown, always 1?
BYTE : Unknown, always 1?
BYTE : Unknown
SHORT : Width
SHORT : Height
BYTE : Unknown, compression flag?
BYTE : Unknown, always 0x24?
BYTE : Mip Count
BYTE : Unknown, always 0x04/0x08?
LONG : Unknown, Checksum?
LONG : Mip Table Offset
LONG : Padding
{ // LOOP*Mip Count
LONG : Texture Offset
LONG : Texture Size
LONG : Unknown, always 0x80? (a dds header is x80) reserve space?
LONG : Padding
}
LONG : Padding
LONG : Padding
}


MESH FORMAT
"_ANIMLIB_SKELETON_"
{ // Header
LONG : Version
LONG : Bone Count
}
{ LOOP*Bone Count
FLOAT32 : Unknown, Possible Quat, X Axis
FLOAT32 : Unknown, Possible Quat, Z Axis
FLOAT32 : Unknown, Possible Quat, Y Axis
FLOAT32 : Unknown, Possible Quat, Vector
FLOAT32 : Unknown, Possible Position, X Axis
FLOAT32 : Unknown, Possible Position, Z Axis
FLOAT32 : Unknown, Possible Position, Y Axis
SHORT : Unknown, Possible Flag
SHORT : Unknown, Possible Offset
}
{ LOOP*Bone Count
BYTE : Bone Parenting Index
}

"_ATTRIBUTE_"
{
LONG : Unknown, 2,3
}

"_ANIMCHANNELINFO_"
{
// NOT DOCUMENTED
}

"_BONENAMES_"
{ // LOOP*Bone Count
STRING[31] : Bone Name
}

"_BOUNDINGBOX_"
{
FLOAT32 : Max, X Position
FLOAT32 : Max, Z Position
FLOAT32 : Max, Y Position
FLOAT32 : Min, X Position
FLOAT32 : Min, Z Position
FLOAT32 : Min, Y Position
}

"_COLLPRIMS_"
{
// NOT DOCUMENTED
// 16bytes all 0
}

"SceneHeader"
{
LONG : Unknown, File Version (always 1?)
LONG : Unknown, Description File Count (files that start with "_")
LONG : Unknown, File Array Count
LONG : Mesh Count
LONG : Material Count
}

"SceneDescription"
{ // LOOP*Material Count
STRING[36] : Mesh Name / Scene Object
}

"MatArray"
{ // LOOP*Material Count
LONG : Unknown, Index?
LONG : Unknown
LONG : Texture Count
LONG : Offset in "MatTextureInfoArray" of the texture info
LONG : Unknown
LONG : Unknown
FLOAT32 : Unknown, usually 0.5
FLOAT32 : Unknown, usually 1.0
LONG : Unknown
}

"MatTextureInfoArray"
{ // LOOP*Texture Count
LONG : Unknown
STRING[52] : Texture Name
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
LONG : Unknown
}

"UsedShaders.txt"
{
// NOT DOCUMENTED
}

"CommandBuffer"
{
// Not Fully Understod, but contains 3 very important pieces of information
// 1. Vertex/Face Counts, 2.DrawMethod
}

"desc"
{
// NOT DOCUMENTED
}

"RenderStrip"
{
LONG : Material Index (+1, search this index to the "MatArray")
LONG : Unknown, Always 63?
LONG : Unknown, Always 0?
LONG : Bone Index (Starting bone to Include from Skeleton)
LONG : Bone Count (Bones to Include From skeleton)
LONG : Unknown, Always 0?
LONG : Vertex Type
}

"D3DVertexDesc"
{
// NOT DOCUMENTED
}

"VDHeader"
{
LONG : Unknown, Always 0?
LONG : Unknown, Always -1?
}

"VBHeader"
{
STRING[36] : Mesh Name to Include
LONG : Unknown, Always -1
LONG : Vertex Count
LONG : Data Size, commonly 56bytes, 14floats
LONG : Unknown
}

"IBHeader"
{
STRING[36] : Mesh Name to Include
LONG : Unknown, Always -1
LONG : Face Count
LONG : Data Size, commonly 2bytes (Short)
LONG : Unknown
}

"Vertices"
{ // LOOP*Vertex Count
FLOAT32 : Vertex X Position
FLOAT32 : Vertex Z Position
FLOAT32 : Vertex Y Position
FLOAT32 : TextureCoordinate U Position
FLOAT32 : TextureCoordinate V Position
BYTE : Vertex Weight #1
BYTE : Vertex Weight #2
BYTE : Vertex Weight #3
BYTE : Vertex Weight #4
BYTE : Bone Index #1
BYTE : Bone Index #2
BYTE : Bone Index #3
BYTE : Bone Index #4
FLOAT32 : Unknown
FLOAT32 : Unknown
FLOAT32 : Unknown
FLOAT32 : Unknown
FLOAT32 : Vertex Normal X Position
FLOAT32 : Vertex Normal Z Position
FLOAT32 : Vertex Normal Y Position
}

"Indices"
{ // LOOP*Face Count
SHORT : Face Index
} // CommandBuffer has a flag to tell you when to read the buffer as either a triangle strip or triangle list





....Unfortunately I just have too many unknowns, and there are alot of variables that appear to be hash checks... I can't do any testing because I do not have the game for PC. but rather the xbox360.

would have been kick ass if the format was a bit more flexible and we could import new models into the game!

Anyway this is really as far as I got, hopefully my info can help someone else get a jump start on solving the rest of the format


[center]Image[/center]

-mariokart64n
Maxscript and other finished work I've done can be found on my DeviantArt account
Post Reply