• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Brawl model extractor

Status
Not open for further replies.

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
Hmmm. Pharrox, may i have the geometry info (mainly the size pointers). I am interested in doing something like BSZ, but without the use of codes. Thanks :p

EDIT: Ok it seems pretty similar to the bone data you gave me ages ago. Im going to test it out some more.
 

•Col•

Smash Champion
Joined
Nov 19, 2007
Messages
2,450
Couldn't you take a Melee model and... y'know... touch it up a bit?
This would be the easiest thing to do, probably. And it'd be the best looking too...

...Unless someone actually wanted to make an entirely new model from scratch... :psycho:
 

illinialex24

Smash Hero
Joined
May 23, 2008
Messages
7,489
Location
Discovered: Sending Napalm
Ahh, I really want to get the sleepy hat (it has its own model data) into a crown, and since it has no hitbox and no hurtbox, and very simple data, it should be easy compared to most. Plus crown puff would be SICK
 
D

Deleted member

Guest
Ahh, I really want to get the sleepy hat (it has its own model data) into a crown, and since it has no hitbox and no hurtbox, and very simple data, it should be easy compared to most. Plus crown puff would be SICK
Blue Ribbon>Crown :p
 

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
This would be the easiest thing to do, probably. And it'd be the best looking too...

...Unless someone actually wanted to make an entirely new model from scratch... :psycho:
Making an entirely new model from scratch really isnt that hard. It takes me about 3 - 7 days (depending on its specs) of working hard to get a very nice model made (including rig, textures and everything).
 

illinialex24

Smash Hero
Joined
May 23, 2008
Messages
7,489
Location
Discovered: Sending Napalm
Making an entirely new model from scratch really isnt that hard. It takes me about 3 - 7 days (depending on its specs) of working hard to get a very nice model made (including rig, textures and everything).
Exactly, but then how do we convert it.

I really could use a .dae to mdl0 converter, I should be able to reinsert the mdl0 fine, but yeah, the converters gotta be hard.
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Geometry locations should be pretty simple, and yeah, a lot of it's the same as with bones. The polygon orderings are a bit more complex. I'll try to post all the details tomorrow if I have the time.
 

virtuality

Smash Rookie
Joined
Jun 27, 2009
Messages
3
Would anyone be so kind as to release a model pack, all in T-Pose, and hopefully with textures? Cheers.
 

Pharrox

Smash Journeyman
Joined
Jan 26, 2007
Messages
397
Location
Belleville, MI
Okay, here are the format specs for the geometry. Polygons can get a little confusing.

Code:
{b} means bitwise operations must be done to get the data
{c #} means that the value is always constant (from my experience)
{u} means the value isn't used by SSBB and can be zeroed out


Positions, Normals, UVs:
    0x00: Size of block [4]
    0x04: Offset to MDL0 start [4]
    0x08: Offset to data portion of the block [4]
    0x0C: Pointer to name [4]
    0x10: Number [4]
    0x14: Is there a bounding box? (1 for yes) [4]
    0x18: Type of data: [4]
        0 = 8 bit unsigned int
        1 = 8 bit signed int
        2 = 16 bit unsigned int
        3 = 16 bit signed int
        4 = float
    0x1C: Size of each element in the data portion [2]
    0x1E: Number of elements in the data portion [2]
    If there is a bounding box
        0x20: Bounding box [0x20]
    Data section:
        0x00: Element data

Polygons
    0x00: Size of block
    0x04: Offset to MDL0 start [4]
    0x08: The bone that controls this polygon (0xFFFFFFFF for multiple) [4]
    0x0C: Data section format {b} [4]
    0x10: Data section UV format {b} [4]
    0x14: Unknown {c 0x15} [4]
    0x18: Format of source section {b} [4]
    0x1C: Format of UV source section {b} [4]
    0x20: Pointer format list [4]
    0x24: Length of data section [4]
    0x28: Length of data section [4]
    0x2C: Pointer to data section [4]
    0x30: Data section format (doesn't include vertex weights) {b} [4]
    0x34: Unknown {c 0} [4]
    0x38: Offset to name [4]
    0x3C: Number [4]
    0x40: Unknown {u} [4]
    0x44: Number of faces [4]
    0x48: Number of the position array to be used [2]
    0x4A: Number of the normal array to be used [2]
    0x4C: Number of the 1st color array to be used [2]
    0x4C: Number of the 2nd color array to be used [2]
    0x50: Number of the 1st uv array to be used [2]
    0x52: Number of the 2nd uv array to be used [2]
    0x54: Number of the 3rd uv array to be used [2]
    0x56: Number of the 4th uv array to be used [2]
    0x58: Number of the 5th uv array to be used [2]
    0x5A: Number of the 6th uv array to be used [2]
    0x5C: Number of the 7th uv array to be used [2]
    0x5E: Number of the 8th uv array to be used [2]
    0x60: Unknown (Pointer here?) {c 0x64} [4]
    0x64: Number weights applied to this polygon [4]
    For as many weights as are applied:
        0x00: Weight ID [2]
    Format section:
        0x02: Identifier {c 0x0850} [2]
        0x04: Data section format {b} [4]
        0x08: Identifier {c 0x0860} [2]
        0x0A: Data section UV format {b} [4]
        0x0E: Unknown {c 0x10000010} [4]
        0x12: Unknown (Identifier?) {c 0x0800} [2]
        0x14: Unknown {c 0x00001500} [4]
        0x18: Identifier {c 0x0870} [2]
        0x1A: Unknown (float) {c 0x41377009} [4]
        0x1E: Identifier {c 0x0880} [2]
        0x20: Unknown {c 0xc8241209} [4]
        0x24: Identifier {c 0x0890} [2]
        0x20: Unknown {c 0x04824120} [4]
    Data section:
        0x00: Element type
        Element type 0x20:
            0x00: Weight ID [2]
            0x02: 0xb000 + 0x0c * active weights array index [2]
        Element type 0x28:
            0x00: Weight ID [2]
            0x02: 0x8400 + 0x09 * active weights array index [2]
        Element type 0x30:
            0x00: Weight ID [2]
            0x02: 0xb078 + 0x0c * active weights array index [2]
        Element types 0x80 (quads), 0x90 (tris), 0x98 (tristrips), 0xa0 (trifans)
            0x00: Number of vertecies [2]
Notes: the format for each vertex will be: weight, position, normal, color1, color2, UV1, 
UV2, UV3, UV4, UV5, UV6, UV7, UV8.  How long each part is is determined by the 
format identifiers.  In most cases of weights, the weight is found by subtracting 0x1e 
then dividing by 0x303.  This is an index to the active weights, and the weight applied 
to the vertex is the weight ID stared at that index.  If only one bone affects the 
entire polygon, there will be no weight listed.
 

Eternal Yoshi

I've covered ban wars, you know
Joined
Mar 3, 2007
Messages
5,450
Location
Playing different games
NNID
EternalYoshi
3DS FC
3394-4459-7089
Could you try this file and see what happens.

http://rapidshare.com/files/218366689/lucario.dae.html

That's Sabretooth's Lucario model converted to Collada using Autodesk's fbx converter. It was my main reference when writing this. Sorry about rapidshare, my web host is a piece of crap.
I thank you guys for working hard for this project.
This model enables me to preview textures on Lucario before I create the pac in photoshop.

May I ask something of you? May you do this for Snake as well? This would really help me preview my Snake textures.
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
@Pharrox
any updates? did you get a chance to work on the texture assignments for the program?
 

Zantetsu

Smash Master
Joined
Sep 1, 2006
Messages
4,413
Location
Springfield, MO
Would anyone be so kind as to release a model pack, all in T-Pose, and hopefully with textures? Cheers.
Not in their T-Pose, but here's a pack that I put together with all of the character's .brres files with the ASH 3d Model Extractor.

Made for anyone who wants it: http://www.mediafire.com/?sharekey=decc58dfd48938bc0de4fc1039a01674e04e75f6e8ebb871

Edit: Turns out that the pack is sorta messed up. All files are in the "Brawl Models" folder except 3. I messed up when I was replacing some files and such and I'll probably fix this sometime in the future, but right now I can't. Just deal with it until I can bother fixing it :p
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
O_o what the?
just out of respect for nintendo, there should be a no tolerance policy on pirating the ISO. I can't believe it's just out in the open like that.
 

havac

Smash Cadet
Joined
Dec 14, 2008
Messages
40
Location
OR
Ok I'm ready to start trying this but is the first post the most updated with extractors and is there a way to upload yet?
 

illinialex24

Smash Hero
Joined
May 23, 2008
Messages
7,489
Location
Discovered: Sending Napalm
O_o what the?
just out of respect for nintendo, there should be a no tolerance policy on pirating the ISO. I can't believe it's just out in the open like that.
This isn't a complete ISO, and its very loose. It's so far impossible to reconstruct an ISO with the files I gave them, it just has every useful file downloadable 1 by 1 from the data partition. IE, you can pirate much easier than finding what files I didn't give you, finding a completely separate and rare or impossible to find download, finding a way to compile files into an ISO that has never been done before, so writing your own program to compile an ISO, and doing that less than it takes to download 7.9 gigs from a torrent site. IE, its worthless to a pirater. Kinda the point why I made it so loose. I don't condone piracy.
 

illinialex24

Smash Hero
Joined
May 23, 2008
Messages
7,489
Location
Discovered: Sending Napalm
He doesn't support piracy, he just supports unmitigated distribution of copyrighted material.
For the sole purpose of custom material being created, and considering this copyrighted material is almost impossible to use without separate software, which can most easily be acquired by buying the game or by torrenting the game, neither of which I aide or endorse. I also have the upload very loose so it would take forever to download it all and then compile it, which is hard and not even practical, and I did not upload files so it would be missing files, IE, making a separate site required for Nintendo to lose money. There are much more efficient ways, including many torrents, to get this software free, and it requires outside sources to use this for Nintendo to lose money. Sound good??

And not unmitigated, I did not distribute the videos because unlike everything else here, there is no way to edit them and use them effectively.
 

Arkaether

Smash Ace
Joined
Apr 18, 2009
Messages
680
Location
North Carolina
Just commenting that despite whatever intentions you may have, distribution of copyrighted material without consent of the owner is illegal.
 

Arkaether

Smash Ace
Joined
Apr 18, 2009
Messages
680
Location
North Carolina
Oh, I doubt any legal action would be taken against you. Nintendo has better things to do than to sue random people who upload tidbits of games.

I'm just pointing out that despite all this, it is still technically illegal. Make of it what you will.
 

virtuality

Smash Rookie
Joined
Jun 27, 2009
Messages
3
This is the best I can get in 3ds Max, in Maya it just crashes when I import with colladamaya.

How do I fix this?

This is metaknight.





Not in their T-Pose, but here's a pack that I put together with all of the character's .brres files with the ASH 3d Model Extractor.

Made for anyone who wants it: http://www.mediafire.com/?sharekey=decc58dfd48938bc0de4fc1039a01674e04e75f6e8ebb871

Edit: Turns out that the pack is sorta messed up. All files are in the "Brawl Models" folder except 3. I messed up when I was replacing some files and such and I'll probably fix this sometime in the future, but right now I can't. Just deal with it until I can bother fixing it :p


Thanks for that but how do I convert them to dae format? Cheers
 

Mackorony101

Smash Cadet
Joined
Apr 14, 2007
Messages
69
well sorry to hurt all the work again but photoshop is still having trouble with the models.
A lot of the models simply crash photoshop and the ones that dont look like this...

The textures work perfectly which is good but I have no idea why photoshop has so much trouble opening .dae files
 

...:::VILE:::...

Smash Ace
Joined
Apr 15, 2009
Messages
786
Okay, here are the format specs for the geometry. Polygons can get a little confusing.

Code:
{b} means bitwise operations must be done to get the data
{c #} means that the value is always constant (from my experience)
{u} means the value isn't used by SSBB and can be zeroed out


Positions, Normals, UVs:
    0x00: Size of block [4]
    0x04: Offset to MDL0 start [4]
    0x08: Offset to data portion of the block [4]
    0x0C: Pointer to name [4]
    0x10: Number [4]
    0x14: Is there a bounding box? (1 for yes) [4]
    0x18: Type of data: [4]
        0 = 8 bit unsigned int
        1 = 8 bit signed int
        2 = 16 bit unsigned int
        3 = 16 bit signed int
        4 = float
    0x1C: Size of each element in the data portion [2]
    0x1E: Number of elements in the data portion [2]
    If there is a bounding box
        0x20: Bounding box [0x20]
    Data section:
        0x00: Element data

Polygons
    0x00: Size of block
    0x04: Offset to MDL0 start [4]
    0x08: The bone that controls this polygon (0xFFFFFFFF for multiple) [4]
    0x0C: Data section format {b} [4]
    0x10: Data section UV format {b} [4]
    0x14: Unknown {c 0x15} [4]
    0x18: Format of source section {b} [4]
    0x1C: Format of UV source section {b} [4]
    0x20: Pointer format list [4]
    0x24: Length of data section [4]
    0x28: Length of data section [4]
    0x2C: Pointer to data section [4]
    0x30: Data section format (doesn't include vertex weights) {b} [4]
    0x34: Unknown {c 0} [4]
    0x38: Offset to name [4]
    0x3C: Number [4]
    0x40: Unknown {u} [4]
    0x44: Number of faces [4]
    0x48: Number of the position array to be used [2]
    0x4A: Number of the normal array to be used [2]
    0x4C: Number of the 1st color array to be used [2]
    0x4C: Number of the 2nd color array to be used [2]
    0x50: Number of the 1st uv array to be used [2]
    0x52: Number of the 2nd uv array to be used [2]
    0x54: Number of the 3rd uv array to be used [2]
    0x56: Number of the 4th uv array to be used [2]
    0x58: Number of the 5th uv array to be used [2]
    0x5A: Number of the 6th uv array to be used [2]
    0x5C: Number of the 7th uv array to be used [2]
    0x5E: Number of the 8th uv array to be used [2]
    0x60: Unknown (Pointer here?) {c 0x64} [4]
    0x64: Number weights applied to this polygon [4]
    For as many weights as are applied:
        0x00: Weight ID [2]
    Format section:
        0x02: Identifier {c 0x0850} [2]
        0x04: Data section format {b} [4]
        0x08: Identifier {c 0x0860} [2]
        0x0A: Data section UV format {b} [4]
        0x0E: Unknown {c 0x10000010} [4]
        0x12: Unknown (Identifier?) {c 0x0800} [2]
        0x14: Unknown {c 0x00001500} [4]
        0x18: Identifier {c 0x0870} [2]
        0x1A: Unknown (float) {c 0x41377009} [4]
        0x1E: Identifier {c 0x0880} [2]
        0x20: Unknown {c 0xc8241209} [4]
        0x24: Identifier {c 0x0890} [2]
        0x20: Unknown {c 0x04824120} [4]
    Data section:
        0x00: Element type
        Element type 0x20:
            0x00: Weight ID [2]
            0x02: 0xb000 + 0x0c * active weights array index [2]
        Element type 0x28:
            0x00: Weight ID [2]
            0x02: 0x8400 + 0x09 * active weights array index [2]
        Element type 0x30:
            0x00: Weight ID [2]
            0x02: 0xb078 + 0x0c * active weights array index [2]
        Element types 0x80 (quads), 0x90 (tris), 0x98 (tristrips), 0xa0 (trifans)
            0x00: Number of vertecies [2]
Notes: the format for each vertex will be: weight, position, normal, color1, color2, UV1, 
UV2, UV3, UV4, UV5, UV6, UV7, UV8.  How long each part is is determined by the 
format identifiers.  In most cases of weights, the weight is found by subtracting 0x1e 
then dividing by 0x303.  This is an index to the active weights, and the weight applied 
to the vertex is the weight ID stared at that index.  If only one bone affects the 
entire polygon, there will be no weight listed.
Wonderful. Thanks so much for this. I only have 1 final question, is the UV data created from .UVW files that can be saved or from the data set to the model (i assumed they where the same, but i got mixed answers when i asked, some said i was right, some said i was wrong).
 

ratmage99

Smash Cadet
Joined
Dec 8, 2008
Messages
28
This is the best I can get in 3ds Max, in Maya it just crashes when I import with colladamaya.

How do I fix this?

This is metaknight.









Thanks for that but how do I convert them to dae format? Cheers

I have ColladaMax on my 3ds Max 2009, but you still get the same thing, unless someone can explain how to do it.
 

havac

Smash Cadet
Joined
Dec 14, 2008
Messages
40
Location
OR
anyone know where i can get ash3me i can't find it anywhere?
 

mariokart64n

Smash Apprentice
Joined
Apr 21, 2009
Messages
130
about the import problems.....

umm.. did you install the nextgen plugin? that's probably why. nextgen does NOT work

even if you then install the right plugin, max will still pickup the nextgen one, will override the old one.

my friend had this problem, and had to uninstall 3dsmax, reinstall and use the proper plugin.

@Arkaether
I haven't distributed any sketchy material here? all I've done is tried to add a second take on the issue. though posting all the game files O_O that's a bit over the top for me. but whatever, I say use roy, and I get an angry mob O_o? some guy posts the entire game of brawl, and he's praised. <_< pff whatever.
 
Status
Not open for further replies.
Top Bottom