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

Dark Sider 2 Model?

Post questions about game models here, or help out others!
jayn23
mega-veteran
mega-veteran
Posts: 250
Joined: Sun Jul 17, 2011 9:30 pm
Has thanked: 61 times
Been thanked: 241 times

Re: Dark Sider 2 Model?

Post by jayn23 »

Thanks a lot Finale00 awesome work!!!
and TaylorMouse thanks for your hard work and for keeping the thread alive :D
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Dark Sider 2 Model?

Post by finale00 »

TaylorMouse wrote:Damn!! I wanted to beat this one :D

But.. Finale00, nice one

T.
Still a lot of unk structs.
Don't know how the normals and UV's are stored at all.
Would have to print out the values and analyze them.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

Of course I'm not givin up, I want it to work in my C# code too :)

btw I verified this part:

Code: Select all

float[6] bbox?
this is indeed the Bounding Box !

T.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

YES !! my c# code does it to!!

the Chancelor

Image

T.
finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 307 times

Re: Dark Sider 2 Model?

Post by finale00 »

Which library do you use to render? Ogre3D? Or do you export to obj and then just load it up somewhere?
amzerof6
advanced
Posts: 57
Joined: Sat Oct 23, 2010 3:50 pm
Has thanked: 2 times
Been thanked: 2 times

Re: Dark Sider 2 Model?

Post by amzerof6 »

TaylorMouse wrote:YES !! my c# code does it to!!

the Chancelor

Image

T.
Congratulation!! that's great
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

I have the code write out an mtl file and an obj file, then I import it into 3DS MAX 2010, then I took a screenshot to post here :)

T.
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: Dark Sider 2 Model?

Post by logansan25 »

Any tutorial for get this models, i am a noob.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

well,
buy the game
use the extraction tool in the forum to extract the models from their archive
download Naosis
get the py script from Finale00 dropbox ( get everything, it's great :) )
start naosis and look at the models
export them to whatever
import them into your favorite 3D tool !

I'm making a little tool myself to do this in c# (convert to OBJ) but it is not finished yet...

T.
logansan25
veteran
Posts: 138
Joined: Mon Oct 04, 2010 1:15 am
Has thanked: 5 times
Been thanked: 3 times

Re: Dark Sider 2 Model?

Post by logansan25 »

TaylorMouse wrote:well,
buy the game
use the extraction tool in the forum to extract the models from their archive
download Naosis
get the py script from Finale00 dropbox ( get everything, it's great :) )
start naosis and look at the models
export them to whatever
import them into your favorite 3D tool !

I'm making a little tool myself to do this in c# (convert to OBJ) but it is not finished yet...

T.
Where are extraction tool version final?

I did read all post but i have dude about this.

I did buy game today.

:)
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

It was posted on page 2:

http://sktest.aruarose.com/DS2Extract.rar

T.
joeyq
n00b
Posts: 18
Joined: Tue Jan 19, 2010 11:14 am
Has thanked: 1 time
Been thanked: 5 times

Re: Dark Sider 2 Model?

Post by joeyq »

great plugin finale00! unfortunately 32 characters make noesis crash :(. some are: darkwar.dcm, despair.dcm (death's horse), maker_shaman.dcm (blind priestess Muria) and uriel.dcm.
I haven't tested all weapons/items yet on crashes but some do.
hopefully there's some progress on uv's because these are some great models to study.
Silvist
ultra-n00b
Posts: 7
Joined: Tue May 31, 2011 6:30 am

Re: Dark Sider 2 Model?

Post by Silvist »

Awesome job TaylorMouse! I looked at this topic when it was at like page 2, and huge progress in last couple pages lol. I myself am interested in the tool you are working on. Cause I love working in 3ds max ^^

Once again grats ^^
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

Still working on this one...

apparently, the textures are referenced in the .bmat files.

in the dcm file there is a reference to that file.

ex.: absolom.dcm has a reference to absolomA01.bmat
and in the .bmat file you will find all the textures required.

here is my c# class that reads out the necessary textures:

Code: Select all

public static Material GetMaterial(string fileName)
        {
            string file = fileName + ".bmat";
            Material mat = new Material();
            if (!File.Exists(file)) return null;

            using (BinaryReader br = new BinaryReader(new FileStream(file, FileMode.Open, FileAccess.Read)))
            {
                Debug.WriteLine("- " + br.ReadString(3)); // BOD
                br.ReadByte(); // FD
                
                int nbrTextures = br.ReadInt16();

                int unk1 = br.ReadInt16();
                uint unk2 = br.ReadUInt32();
                uint unk3 = br.ReadUInt32();

                int unk4 = br.ReadByte();
                int unk5 = br.ReadByte();
                uint unk6 = br.ReadUInt32();
                uint unk7 = br.ReadUInt32();

                int len = br.ReadInt16();
                br.ReadString(len); // Material
                br.ReadBytes(13);
                
                len = br.ReadInt16();
                br.ReadString(len); // Name
                br.ReadBytes(10);

                len = br.ReadInt16();
                br.ReadString(len); // Model name
                br.ReadBytes(9);

                len = br.ReadInt16();
                Debug.Write("  - " + br.ReadString(len) + ": "); // Shader Name
                br.ReadBytes(10);

                len = br.ReadInt16();
                Debug.WriteLine(br.ReadString(len)); // 
                br.ReadBytes(9);

                len = br.ReadInt16();
                br.ReadString(len); // parameters
                br.ReadBytes(16);

                len = br.ReadInt16();
                Debug.Write("  - " + br.ReadString(len) + ": " ); // Emissive map
                br.ReadBytes(15);

                len = br.ReadInt16();
                br.ReadString(len); // texture parameters
                br.ReadBytes(13);

                len = br.ReadInt16();
                br.ReadString(len); // value
                br.ReadBytes(10);

                len = br.ReadInt16();
                mat.EmisMap = br.ReadString(len) + ".dds";
                Debug.WriteLine(mat.EmisMap); // TEXTURE EMIS .dds
                br.ReadBytes(9);

                len = br.ReadInt16();
                br.ReadString(len); // UAddress Mode
                br.ReadBytes(14);

                len = br.ReadInt16();
                br.ReadString(len); // VAddress Mode
                br.ReadBytes(26);

                len = br.ReadInt16();
                br.ReadString(len); // Specular Color 
                br.ReadBytes(15);

                len = br.ReadInt16();
                br.ReadString(len); // Vector4 Parameter 
                br.ReadBytes(55);

                len = br.ReadInt16();
                br.ReadString(len); // EmissiveColor 
                br.ReadBytes(66);

                len = br.ReadInt16();
                Debug.Write( "  - " + br.ReadString(len) + ": ") ; // Diffuse Map 1
                br.ReadBytes(30);

                len = br.ReadInt16();
                mat.DiffMap = br.ReadString(len) + ".dds";
                Debug.WriteLine(mat.DiffMap); // TEXTURE DIFFUSE .dds
                br.ReadBytes(41);

                len = br.ReadInt16();
                Debug.Write("  - " + br.ReadString(len) + ": "); // Specular Map 
                br.ReadBytes(30);

                len = br.ReadInt16();
                mat.SpecMap = br.ReadString(len) + ".dds";
                Debug.WriteLine(mat.SpecMap ); // TEXTURE SPECULAR .dds
                br.ReadBytes(41);

                len = br.ReadInt16();
                Debug.Write("  - " + br.ReadString(len) + ": "); // Normal Map 
                br.ReadBytes(30);

                len = br.ReadInt16();
                mat.NormMap = br.ReadString(len) + ".dds";
                Debug.WriteLine(mat.NormMap); // TEXTURE NORMAL .dds
                br.ReadBytes(9);

                len = br.ReadInt16();
                br.ReadString(len); // SRGBTexture
                br.ReadBytes(23);

                len = br.ReadInt16();
                br.ReadString(len); // FloatParameters
                br.ReadBytes(25);

                br.Close();
            }

            mat.FileName = file;
            return mat;
        }
Sometimes the reference is before the bones, sometimes after it, and sometimes in the middle ( for statics )

I also noticed there is a UAddress Mode and a VAddress Mode, wandering if this has anything to do with the UV texture coordinates we don't seem to find :/

T.
User avatar
TaylorMouse
ultra-veteran
ultra-veteran
Posts: 348
Joined: Mon Sep 26, 2011 12:51 pm
Has thanked: 11 times
Been thanked: 89 times

Re: Dark Sider 2 Model?

Post by TaylorMouse »

Cleaned up my code and finally succeeded in adding the correct textures to the correct faces and have the multi-objects in obj format, pffff.

Next on the list is to check why the despair.dcm file and the darkwar.dcm file are not in the same format...



Only missing piece is the texture coordinates :?

ANYONE can help???
Post Reply