Important Announcement
Forum has been made read-only. Please click here for more information or here to return to The Spriters Resource.

Super Smash Bros. 4 Model Project
I'll make Mario, if you want.
y u do dis unu
I think I've figured out a lot of the animation data, though I'm still not too sure on everything. I've mainly looked at fighter data (a small subset of it), other model types might have additional data that I haven't looked at yet.

.omo
[spoiler]
Header:
char magic[4] - "OMO "
uint16 unknown[2]
uint32 unknown
uint16 unknown
uint16 channelCount
uint16 frameCount
uint16 frameSize
uint32 channelTableOffset
uint32 fixedDataOffset
uint32 frameDataOffset

Channel Table Entries:
uint32 animType
uint32 boneId     // matches id in vbn (2 bytes after bone parent index in vbn)
uint32 offsetInFixedData
uint32 offsetInFrame

Fixed data size and frame data size for a channel is determined by it's animType - can be empty

Types:
Constant - 1x Vector3f (constant on all frames, no frame data)
Interpolated - 2x Vector3f (frame has interpolation value for each coordinate)
There are others I haven't figured out

Frame Data:
buffer frameData[frameCount][frameSize]
Channel frame data starts at: frameData[frameNum] + frameDataOffset
Seems to be uint16 interpolation values (i.e. 0x0000-0xffff for 0.0 - 1.0)

Eyeballing translation and scale values looks based on this looks sane, I'm not sure about rotation.

animType bit field guesses:
0x04000000 - has scale
0x02000000 - has rotation
0x01000000 - has translation
0x00200000 - translation constant
0x00080000 - translation interpolated
0x00007000 - rotation constant
0x00005000 - rotation interpolated
0x00000200 - scale constant
0x00000080 - scale interpolated
[/spoiler]

List of all animType fixed and frame data sizes (calculated by doing size = channel[i+i].offset - channel[i].offset):
[spoiler]
AnimType: 0x0004a081    FixedSize:  0   FrameSize:  0
AnimType: 0x00085081    FixedSize:  0   FrameSize:  0
AnimType: 0x01000081    FixedSize:  0   FrameSize: 16
AnimType: 0x01040081    FixedSize:  0   FrameSize: 12
AnimType: 0x01045081    FixedSize:  0   FrameSize: 12
AnimType: 0x0104a081    FixedSize:  0   FrameSize: 12
AnimType: 0x01084081    FixedSize: 24   FrameSize:  6
AnimType: 0x01085081    FixedSize: 24   FrameSize:  6
AnimType: 0x01089081    FixedSize: 24   FrameSize:  6
AnimType: 0x0108a081    FixedSize: 24   FrameSize:  6
AnimType: 0x01200081    FixedSize: 12   FrameSize:  0
AnimType: 0x01203081    FixedSize: 12   FrameSize:  0
AnimType: 0x01205081    FixedSize: 12   FrameSize:  0
AnimType: 0x01209081    FixedSize: 12   FrameSize:  0
AnimType: 0x0120a081    FixedSize: 12   FrameSize:  0
AnimType: 0x0204a081    FixedSize:  0   FrameSize:  8
AnimType: 0x02085081    FixedSize: 24   FrameSize:  6
AnimType: 0x02086081    FixedSize: 16   FrameSize:  2
AnimType: 0x02087081    FixedSize: 12   FrameSize:  0
AnimType: 0x03000081    FixedSize:  0   FrameSize: 32
AnimType: 0x03005081    FixedSize: 24   FrameSize: 22
AnimType: 0x03007081    FixedSize: 12   FrameSize: 16
AnimType: 0x0300a081    FixedSize:  0   FrameSize: 24
AnimType: 0x03040081    FixedSize:  0   FrameSize: 28
AnimType: 0x03045081    FixedSize: 24   FrameSize: 18
AnimType: 0x03046081    FixedSize: 16   FrameSize: 14
AnimType: 0x0304a081    FixedSize:  0   FrameSize: 20
AnimType: 0x03080081    FixedSize: 24   FrameSize: 22
AnimType: 0x03083081    FixedSize: 24   FrameSize: 19
AnimType: 0x03084081    FixedSize: 24   FrameSize: 10
AnimType: 0x03085081    FixedSize: 48   FrameSize: 12
AnimType: 0x03086081    FixedSize: 40   FrameSize:  8
AnimType: 0x03087081    FixedSize: 36   FrameSize:  6
AnimType: 0x03089081    FixedSize: 24   FrameSize: 13
AnimType: 0x0308a081    FixedSize: 24   FrameSize: 14
AnimType: 0x03200081    FixedSize: 12   FrameSize: 16
AnimType: 0x03205081    FixedSize: 36   FrameSize:  6
AnimType: 0x03206081    FixedSize: 28   FrameSize:  2
AnimType: 0x03207081    FixedSize: 24   FrameSize:  0
AnimType: 0x03209081    FixedSize: 12   FrameSize:  7
AnimType: 0x0320a081    FixedSize: 12   FrameSize:  8
AnimType: 0x04085081    FixedSize: 24   FrameSize:  6
AnimType: 0x04085201    FixedSize: 12   FrameSize:  0
AnimType: 0x05000081    FixedSize: 24   FrameSize: 22
AnimType: 0x05005081    FixedSize: 24   FrameSize: 22
AnimType: 0x05040081    FixedSize: 24   FrameSize: 18
AnimType: 0x05043201    FixedSize: 12   FrameSize: 12
AnimType: 0x05045081    FixedSize: 24   FrameSize: 18
AnimType: 0x0504a081    FixedSize: 24   FrameSize: 18
AnimType: 0x05080081    FixedSize: 48   FrameSize: 12
AnimType: 0x05083081    FixedSize: 48   FrameSize: 12
AnimType: 0x05085081    FixedSize: 48   FrameSize: 12
AnimType: 0x05085201    FixedSize: 36   FrameSize:  6
AnimType: 0x05089201    FixedSize: 36   FrameSize:  6
AnimType: 0x0508a081    FixedSize: 48   FrameSize: 12
AnimType: 0x05200081    FixedSize: 36   FrameSize:  6
AnimType: 0x05203081    FixedSize: 36   FrameSize:  6
AnimType: 0x05205081    FixedSize: 36   FrameSize:  6
AnimType: 0x05205201    FixedSize: 24   FrameSize:  0
AnimType: 0x05209201    FixedSize: 24   FrameSize:  0
AnimType: 0x0520a081    FixedSize: 36   FrameSize:  6
AnimType: 0x0520a201    FixedSize: 24   FrameSize:  0
AnimType: 0x0604a081    FixedSize: 24   FrameSize: 14
AnimType: 0x0604a201    FixedSize: 12   FrameSize:  8
AnimType: 0x06085081    FixedSize: 48   FrameSize: 12
AnimType: 0x06085201    FixedSize: 36   FrameSize:  6
AnimType: 0x06086081    FixedSize: 40   FrameSize:  8
AnimType: 0x06086201    FixedSize: 28   FrameSize:  2
AnimType: 0x06087081    FixedSize: 36   FrameSize:  6
AnimType: 0x06087201    FixedSize: 24   FrameSize:  0
AnimType: 0x07000201    FixedSize: 12   FrameSize: 32
AnimType: 0x07005081    FixedSize: 48   FrameSize: 28
AnimType: 0x07007081    FixedSize: 36   FrameSize: 22
AnimType: 0x07007201    FixedSize: 24   FrameSize: 16
AnimType: 0x07040081    FixedSize: 24   FrameSize: 34
AnimType: 0x07040201    FixedSize: 12   FrameSize: 28
AnimType: 0x07043201    FixedSize: 12   FrameSize: 25
AnimType: 0x07045081    FixedSize: 48   FrameSize: 24
AnimType: 0x07047081    FixedSize: 36   FrameSize: 18
AnimType: 0x07047201    FixedSize: 24   FrameSize: 12
AnimType: 0x0704a081    FixedSize: 24   FrameSize: 26
AnimType: 0x0704a201    FixedSize: 12   FrameSize: 20
AnimType: 0x07080081    FixedSize: 48   FrameSize: 28
AnimType: 0x07083081    FixedSize: 48   FrameSize: 25
AnimType: 0x07085081    FixedSize: 72   FrameSize: 18
AnimType: 0x07085201    FixedSize: 60   FrameSize: 12
AnimType: 0x07086081    FixedSize: 64   FrameSize: 14
AnimType: 0x07086201    FixedSize: 52   FrameSize:  8
AnimType: 0x07087081    FixedSize: 60   FrameSize: 12
AnimType: 0x07087201    FixedSize: 48   FrameSize:  6
AnimType: 0x07089201    FixedSize: 36   FrameSize: 13
AnimType: 0x0708a081    FixedSize: 48   FrameSize: 20
AnimType: 0x07200081    FixedSize: 36   FrameSize: 22
AnimType: 0x07203081    FixedSize: 36   FrameSize: 19
AnimType: 0x07205081    FixedSize: 60   FrameSize: 12
AnimType: 0x07205201    FixedSize: 48   FrameSize:  6
AnimType: 0x07206081    FixedSize: 52   FrameSize:  8
AnimType: 0x07206201    FixedSize: 40   FrameSize:  2
AnimType: 0x07207081    FixedSize: 48   FrameSize:  6
AnimType: 0x07207201    FixedSize: 36   FrameSize:  0
AnimType: 0x07209081    FixedSize: 36   FrameSize: 13
AnimType: 0x07209201    FixedSize: 24   FrameSize:  7
AnimType: 0x0720a081    FixedSize: 36   FrameSize: 14
AnimType: 0x0720a201    FixedSize: 24   FrameSize:  8
AnimType: 0x08085081    FixedSize:  0   FrameSize: 12
AnimType: 0x09085081    FixedSize: 24   FrameSize: 18
AnimType: 0x0b085081    FixedSize: 48   FrameSize: 24
AnimType: 0x0b087081    FixedSize: 36   FrameSize: 18
[/spoiler]

.mta
[spoiler]
Header:
char magic[4] - "MTA4"
uint32 unknown
uint32 numFrames
uint32 zeroes
uint32 numFramesMinusOne
uint32 frameRate    // probably
uint32 matCount
uint32 matOffset
uint32 visCount
uint32 visOffset

Unless otherwise stated, count/offset pairs point to an array of offsets to the actual data:
uint32 offsets[]

MAT entry:
uint32 nameOffset   // Material name? Haven't found these anywhere else
uint32 unknown
uint32 blockCount
uint32 blockOffset
uint32 zeroes
uint32 endOffset    // of this MTA entry

MAT entry block:
uint32 nameOffset   // Material param names
uint32 unknown  // 1
uint32 unknown  // 4
uint32 dataCount
uint32 unknown  // 0, 1
uint32 unknown  // 1, 2
uint32 dataOffset

MAT entry block data:
float data[dataCount]

VIS entry:
uint32 nameOffset   // Model object name
uint32 zeroes
uint32 dataOffset

VIS data:
uint32 frameCount
uint32 unknown  // 1
uint32 keyframeCount
uint32 keyframeOffset   // This points directly to keyframe data array

VIS data keyframe (list of transitions to off or on):
uint16 frameNumber
uint8 on
uint8 zeroes
[/spoiler]
... nice to see some1 else research the omo format besides me.. even tho i dont understand hex much.. gratz to u! Smile

altho i was looking more into stage animation files... and only falcon
How do you guys prefer to set up your model textures in 3d studio? I put in specular, diffuse, and normal maps, but is it necessary to use displacement or self illumination maps? Also what kind of lighting do you recommend for rendering textures, like skylights or mental ray lights?
The question I never got the answer to was, how do you EVEN do that? Kinda new to this stuff.
(08-18-2015, 04:02 PM)supersmashball Wrote: The question I never got the answer to was, how do you EVEN do that? Kinda new to this stuff.

Are you referring to my question?
Kind of...
All I can do is apply the normals.
(08-18-2015, 04:06 PM)supersmashball Wrote: Kind of...
All I can do is apply the normals.

Oh, well i learned everything i know from these videos https://www.youtube.com/watch?v=Xi467BO_-JY    https://www.youtube.com/watch?v=F-e43rUcF8I
Great, saving them for later...
My headphones are gone. I'll watch them at night, maybe.
(08-18-2015, 03:56 PM)uac9000 Wrote: How do you guys prefer to set up your model textures in 3d studio? I put in specular, diffuse, and normal maps, but is it necessary to use displacement or self illumination maps? Also what kind of lighting do you recommend for rendering textures, like skylights or mental ray lights?

THIS. I'd would like to know the answer too. But wait, does SSB4 use self illumination maps? Because I haven't seen any of them in any fighters' textures...
I believe they do.. which is built inside their normal maps under the Red and Green channels... Blue channel has pretty much nothing, while the Alpha is the spec map
(08-16-2015, 10:56 PM)Demonslayerx8 Wrote: which trophy do u want from Smash3ds? cause i can get those exported easily.

Well here are the trophies I want from the 3DS version -

- Tanooki Mario and Kitsune Luigi
- Statue Mario
- All of the Fighters' trophies and alts (Except for DLC)
- and Epona

By the way can you also export the actual fighters too?
(08-19-2015, 02:03 PM)MarioSonicU Wrote:
(08-16-2015, 10:56 PM)Demonslayerx8 Wrote: which trophy do u want from Smash3ds? cause i can get those exported easily.

Well here are the trophies I want from the 3DS version -

- Tanooki Mario and Kitsune Luigi
- Statue Mario
- All of the Fighters' trophies and alts (Except for DLC)
- and Epona

By the way can you also export the actual fighters too?

smash3ds fighters (and some stage models) have their objects stored in .mbn files, while the skeleton and textures r in the .bch file, and those I can't get opened with Ohana, so currently, no cant get fighters.
[Image: I36KOFb.png]

i'll send you the files shortly
(08-19-2015, 06:35 AM)Demonslayerx8 Wrote: I believe they do.. which is built inside their normal maps under the Red and Green channels... Blue channel has pretty much nothing, while the Alpha is the spec map

OK, I see. But how could I convert those channels into actual self-illumination? I mean...normal maps don't display self-illumination, afaik, so how could I display self-illumination (using the normal maps) in 3DS Max/Blender? Sorry if the question is a bit confusing...


Forum Jump:


Users browsing this thread: 3 Guest(s)