TheShyGuy's EXE stuff - NEW -> Bone Tree Editor V1.1 Released

Started by TheShyGuy, December 26, 2010, 08:39:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Sweetness XD
you should make an option that converts 3DS into MDl0 
And you could like pick what character it's on :l

You know make it so that when it's(3DS file) made into a mdl0 it's a model that works for *insert brawl character here*'s model without all those annoying porting glitches (particularly trans n glitches >_< )

Well all it does is make an mdl0 from the dae file you select. It's pretty easy to fix model import glitches...

Quote from: NaruZeldaMaster on January 14, 2011, 03:24:08 AM
Sweetness XD
you should make an option that converts 3DS into MDl0 
And you could like pick what character it's on :l

You know make it so that when it's(3DS file) made into a mdl0 it's a model that works for *insert brawl character here*'s model without all those annoying porting glitches (particularly trans n glitches >_< )

I see what you mean...

(using my converter)
convert the porting char into blend or 3DS
edit the char in blender or 3DS (add bones and fix any possible glitches)
then convert back to mdl0

it should work perfectly on whatever char you've set it up for :)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Quote from: Tcll on January 14, 2011, 03:47:08 AM
Quote from: NaruZeldaMaster on January 14, 2011, 03:24:08 AM
Sweetness XD
you should make an option that converts 3DS into MDl0 
And you could like pick what character it's on :l

You know make it so that when it's(3DS file) made into a mdl0 it's a model that works for *insert brawl character here*'s model without all those annoying porting glitches (particularly trans n glitches >_< )

I see what you mean...

(using my converter)
convert the porting char into blend or 3DS
edit the char in blender or 3DS (add bones and fix any possible glitches)
then convert back to mdl0

it should work perfectly on whatever char you've set it up for :)

Well as long as it's an easier way to get zero suit samus onto someone else >_<
PS I'm having fun with the ext graphics editor XD

Now all we need to to is get all these nifty ideas to work with brawlbox as one whole program. But rome wasn't built in a day was it? XD

January 23, 2011, 10:56:16 PM #214 Last Edit: October 06, 2022, 11:00:18 PM by DarkPikachu


yo...
I've gotten the RGB565 format just about complete: :happy:


it's not entirely accurate though :/ (only about 96% accurate)
here's a comparison image:

note: the internal image may actually have those exact colors,
I'll test my FS image replacements with it :/
if they come out equal, then my code's right

here's my code I used to get it like that:

def RGB565(offset,width,height,length):
    X,Y,TX,TY = 2,2,0,0 #XY and tile XY positioning
    fr.seek(offset,0)
   
    while length > 0:
        pixel = ui(fr.read(2))
       
        R = chr(((pixel >> 11) & 31) << 3).encode('hex')#* 8 ).encode('hex')
        G = chr(((pixel >> 5) & 63) << 2).encode('hex')#* 4 ).encode('hex')
        B = chr(((pixel >> 0) & 31) << 3).encode('hex')#* 8 ).encode('hex')

        #print '#'+str(R)+str(G)+str(B)
       
        color,x,y = '#'+R+G+B,TX+X,TY+Y
        C.create_rectangle ( x, y, (x+1), (y+1), fill=color, width=0)
       
        TX+=1
        if TX == 4:
            TY += 1
            if TY == 4 and TX == 4:
                X += 4; TX,TY = 0,0
                if X == width+2: Y += 4; X = 2
            if TY == 4: TY = 0
            TX = 0

        length -= 2

don't ask how I came to get the idea to do this...
I was literally just bored and started fooling around with it...

also, the commented out codes in the RGB vars return the exact same colors as the code before it :/

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

forgot you were working on it...how mny more do you have to decode?

here's every function so far:

#--<<conversion functions>>--
def I4(offset,width,height,length):
    X,Y,TX,TY = 2,2,0,0; fr.seek(offset,0)
   
    while length > 0:
        pixels = list(fr.read(1).encode('hex'))
        for pixel in pixels:
            R=G=B=pixel+pixel; color,x,y = '#'+R+G+B,TX+X,TY+Y
            C.create_rectangle ( x, y, (x+1), (y+1), fill=color, width=0)
           
            TX+=1
            if TX == 8:
                TY += 1
                if TY == 8 and TX == 8:
                    X += 8; TX,TY = 0,0
                    if X == width+2: Y += 8; X = 2
                if TY == 8: TY = 0
                TX = 0

        length -= 1
       
def I8(offset,width,height,length):
    X,Y,TX,TY = 2,2,0,0; fr.seek(offset,0)
   
    while length > 0:
        pixel = fr.read(1).encode('hex')
        R=G=B=pixel; color,x,y = '#'+R+G+B,TX+X,TY+Y
        C.create_rectangle ( x, y, (x+1), (y+1), fill=color, width=0)
       
        TX+=1
        if TX == 8:
            TY += 1
            if TY == 4 and TX == 8:
                X += 8; TX,TY = 0,0
                if X == width+2: Y += 4; X = 2
            if TY == 4: TY = 0
            TX = 0

        length -= 1

def IA4(offset,width,height,length): pass
def IA8(offset,width,height,length): pass

def RGB565(offset,width,height,length):
    X,Y,TX,TY = 2,2,0,0
    fr.seek(offset,0)
   
    while length > 0:
        pixel = ui(fr.read(2))
        R = chr(((pixel >> 11) & 31) << 3).encode('hex')
        G = chr(((pixel >> 5) & 63) << 2).encode('hex')
        B = chr(((pixel >> 0) & 31) << 3).encode('hex')
        color,x,y = '#'+R+G+B,TX+X,TY+Y
        C.create_rectangle ( x, y, (x+1), (y+1), fill=color, width=0)
       
        TX+=1
        if TX == 4:
            TY += 1
            if TY == 4 and TX == 4:
                X += 4; TX,TY = 0,0
                if X == width+2: Y += 4; X = 2
            if TY == 4: TY = 0
            TX = 0

        length -= 2
       
def RGB5A3(offset,width,height,length): pass
def RGBA8(offset,width,height,length): pass #easy
def CMPR(offset,width,height,length): pass

def CI4(offset,width,height,length): pass #slightly figured out (will have internal functions)
def CI8(offset,width,height,length): pass #slightly figured out (will have internal functions)
#--<</conversion functions>>--

but there's apperently a CI14X2 format :/
I havn't seen it yet, but I'll look into it when I do :/

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

well...
I have a little something for deciphering the alpla channel :D
check this out: http://en.wikipedia.org/wiki/Alpha_compositing
(look in 'Alpha Blending')

but to pull this off,
I'm gonna have to cancel the image resize plan for a while...
otherwise, I'll have to redraw the image :/

btw...
I was right...
RGB565 is off by a tad :/

but I've figured out how RGB5A3 works :D
found here: http://code.google.com/p/puyotools/wiki/GvrFiles

btw...
I'll add the TEX0 export and replace option to my viewer before I release...
but it'll be very demanding (must be exact format and size)

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Any progress on the mdl0 to DAE (and back?) converter?

fraid not... yet...
but hopefully soon :/ :happy:

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

Quote from: NaruZeldaMaster on January 24, 2011, 09:00:57 PM
Any progress on the mdl0 to DAE (and back?) converter?

For my converter, I've almost got the writing (exporter) part done. Then the only thing left will be changing the int, float and string arrays in the dae file to byte arrays correctly and sending it to the exporter and correctly interpreting, building and rigging a bone structure.

For testing purposes, all converted mdl0s will have the same shader/materials. I'll work on that last, because it only displays in game.

Quote from: BlackJax96 on January 24, 2011, 09:43:33 PM
Quote from: NaruZeldaMaster on January 24, 2011, 09:00:57 PM
Any progress on the mdl0 to DAE (and back?) converter?

For my converter, I've almost got the writing (exporter) part done. Then the only thing left will be changing the int, float and string arrays in the dae file to byte arrays correctly and sending it to the exporter and correctly interpreting, building and rigging a bone structure.

For testing purposes, all converted mdl0s will have the same shader/materials. I'll work on that last, because it only displays in game.

Thats true, as long as you could do so flawlessly. I'd have a  "select X character" drop down list when importing the edited DAE file. What the "Select X character" means is, you'd first open an original model from any character. Then the program 'reads' the bone 'structure' of said character. After it's done reading the bone(and faces/polygons etc) structure of the mdl0 you selected first, you're asked to select the DAE file you want to convert to a mdl0 for "X character" . When the program writes the new mdl0 file, it's re-making the bone structure from scratch, adjusting the setup accordingly depending on the character picked.

I mean like, if "X Character" was princess peach then you would select an unedited Peach MDL0, and then select the DAE you want to convert into MDL0.

Quote from: NaruZeldaMaster on January 24, 2011, 10:05:53 PM
Quote from: BlackJax96 on January 24, 2011, 09:43:33 PM
Quote from: NaruZeldaMaster on January 24, 2011, 09:00:57 PM
Any progress on the mdl0 to DAE (and back?) converter?

For my converter, I've almost got the writing (exporter) part done. Then the only thing left will be changing the int, float and string arrays in the dae file to byte arrays correctly and sending it to the exporter and correctly interpreting, building and rigging a bone structure.

For testing purposes, all converted mdl0s will have the same shader/materials. I'll work on that last, because it only displays in game.

Thats true, as long as you could do so flawlessly. I'd have a  "select X character" drop down list when importing the edited DAE file. What the "Select X character" means is, you'd first open an original model from any character. Then the program 'reads' the bone 'structure' of said character. After it's done reading the bone(and faces/polygons etc) structure of the mdl0 you selected first, you're asked to select the DAE file you want to convert to a mdl0 for "X character" . When the program writes the new mdl0 file, it's re-making the bone structure from scratch, adjusting the setup accordingly depending on the character picked.

I mean like, if "X Character" was princess peach then you would select an unedited Peach MDL0, and then select the DAE you want to convert into MDL0.

that would kinda fool around with the mdl0...
I'd say just do all that stuff in the editor before exporting...

you could use a brawl char as a base model to go by when editing
eg: I know almost everything about Pikachu :af:
^I could port a char w/o even having to look at him :D

[spoiler]Quote: Friedslick6
you have been through a lot of hassle. I've watched every topic you posted on this, and most of them seemed to disintegrate gradually.
But the coolest part was that you didn't stop working on it despite that.

Quote: Internet Explorer
you're doing more with your life right now than probably most other people around you. You're a valuable asset to the Smash community. So yeah, you should be proud.

quote: Greg
You do have a gift which I've seen many developers use to their advantage. You can become a great coder, and with all of those ideas I think you can really build something great.

almost done with the bone adding...a bit more code to write...shouldnt be too hard

Quote from: NaruZeldaMaster on January 24, 2011, 10:05:53 PMThats true, as long as you could do so flawlessly. I'd have a  "select X character" drop down list when importing the edited DAE file. What the "Select X character" means is, you'd first open an original model from any character. Then the program 'reads' the bone 'structure' of said character. After it's done reading the bone(and faces/polygons etc) structure of the mdl0 you selected first, you're asked to select the DAE file you want to convert to a mdl0 for "X character" . When the program writes the new mdl0 file, it's re-making the bone structure from scratch, adjusting the setup accordingly depending on the character picked.

I mean like, if "X Character" was princess peach then you would select an unedited Peach MDL0, and then select the DAE you want to convert into MDL0.
I could do that, but it would take more time to develop. For now, you'll just have to learn to set up the model's bone structure in 3ds max before converting.