Universal Model Converter - beta testing

Started by DarkPikachu, December 11, 2012, 07:55:14 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Would you like me to hold off on releasing UMC to work on SIDE??

Yes please, an IDE like that could really help me!
4 (57.1%)
Nah, just release UMC without SIDE.
3 (42.9%)

Total Members Voted: 7


* DarkPikachu hits like button

[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.

just so everyone knows, I'm currently stuck at the end of my knowledge...
if anyone would like to help out, I'm trying to figure out how to calculate the bind matrix from the supplied LRS coords.

I'm doing LRS only for supplying data to UMC's bones as it's the only solid method to start off with w/o alot of work

if you don't know, Sm4sh .vbn (bone data) files don't have any matrices...
and with my knowledge in game development, the LRS is the root of all bone matrix data.

I'll add matrix functions later for formats that only supply a matrix (such as DAE)


so could anyone knowledgable help me out with creating a proper matrix from the LRS coords please :)
every attempt BJ's tried giving me has failed...

so UMC's currently at a hault until I know what I'm doing. :(

[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.

Sorry for posting almost a month after the last post, but I want to state that in the time I was  absent this as really progressed a lot. Can't help on the progression side, but I hope you can learn whatever you need. It would be sad to see this project die.
Click Sig For My Tutorial Thread

I'm Just You're Friendly Forum Pseudo Narcissist
[spoiler]
Quote from: Ricky (Br3) on June 25, 2014, 06:40:22 PM
[white]This is Nyan. She He is indeed random and also definitely not a pervert.
I Will Accept Everyone's Faults As Long As They're Not Annoying.

Quote from: Koneko Nyan on May 21, 2015, 08:44:36 PM
Sorry for posting almost a month after the last post, but I want to state that in the time I was  absent this as really progressed a lot. Can't help on the progression side, but I hope you can learn whatever you need. It would be sad to see this project die.
haha, don't worry, I don't believe in dead threads ;)

personally, I see nothing wrong with necro-posting...
it's not like a thread disappears from the internet just because it hasn't been posted on in 3 months.
lol
to me, dead threads create clutter, so why promote creating more clutter by posting another thread after one dies... why not just resurrect the old thread if you have the same problem or a solution for it, or just wish to post info... blah blah

anyways, don't worry about this project dieing, if I ever quit, I'm releasing my unfinished source with descriptions on my ideas...
but I've got too much to look forward to to be quitting on this project any time soon ;)
I have too much hype and a burning passion for this project and everything about it.


many thanks for your concerns =3

not sure if I mentioned here, but UMC_SIDE might just make an appearence in the next release ;D

I'm currently rebuilding the program to be developer-friendly (meaning friendly to me and my group), more efficient (no more array lookups for widgets), and much much cleaner.

by god, SIDE was probably my most dirtiest code, to the point I had to write an extension module for UMC 3.0
heck no, I've taken that and re-written a moddable decorator for UMC's API which is currently being built into 3.0a's API.

what this means is I can keep SIDE's code local to SIDE instead of putting a quarter of it in UMC.


I've also been working on much more automation tricks for scripts:

switch( bu8, { 0: '''#python code''', ...} )() #WIP

field( [1,7,15], bu8 )() #read bu8 bit-field
field( [1,7,15], bu8 )( [0,2,8] ) #write bit-field as bu8

there's much more I'm working on than that :)
I don't update much here though due to kc-mm restrictions.
please follow me where the big crowd is for the up-to-date stuff: ;)
http://smashboards.com/threads/334292

[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.

so I've ported to GLFW... still havn't fixed the bone issue yet...

for exporting, the LRS is still as good as supplied if supplied in parent relation
the problem though is UT data can't be transformed w/o the matrices,
and I'm not getting or finding anything legit to build the matrices.
so I can't make a release until I can build the matrices properly.

I was using BrawlBox matrix building functions, but if you followed my SB thread, you saw how bad that was...
I'm now using the matrix building functions from transformations.py through _transformations.pyc using the slow numpy arrays.

anyways, so the port to GLFW now works on:

windows:

^ intel chipset not registering font textures (invalid value)

linux: (not sure about mint, APott has yet to test that for me)

^ screenshot tested on Xubuntu 14.04

mac: (Matt Sitton is working on a native python implementation with his screenshot here)

^ intel chipset not displaying the model textures correctly.

I'm also working on some minor GUI improvements.
porting to GLFW means only having to build my display lists once :)
(no more SDL deleting the display lists)
however, now my CPU usage averages around 75%


EDIT:
btw, I should also mention, this somehow works perfectly now:


Post Merge: June 11, 2015, 02:57:59 PM


fixed the CPU usage issue =)
apparently I was drawing roughly 1000 frames or so... lol

so I've limited the redraw to your primary monitor's refresh rate:
time.sleep(1./mode.refresh_rate)

the good thing about this is I can now re-implement 3D shutter display :)
(should work with BT/USB shutter glasses)

my CPU usage is about ~35% now with chromium and other things going :P

EDIT:
erg... forgot about the annoying post merge delay...
this is one reason I don't post here much >_<

[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.

June 18, 2015, 02:23:06 PM #186 Last Edit: December 01, 2019, 11:14:07 PM by DarkPikachu
well here's an update :)
wrote a nice little hacky model script which exports all imported images as png images :)

I'll include this with the release ;)

here's the script btw:

ugeScriptType(UGE_MODEL_SCRIPT)
ugeScriptFormats('PNG Textures', ['dummy'])

def ugeExportModel(T,C):
    while ugeImagesExist(Global=True):
        name = ugeGetImageName()
        ugeGetImageData('%s.png'%name, isfile=True)

probably my smallest script yet :P

[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.

It's a damn shame no one posts here. You're doing some excellent work with this program.
Quote from: Don Jon BravoEX on April 07, 2015, 10:46:10 PM
so im just saying hopefully somebody can look into this if not ill probably take a shot at it later on because right now im too busy partying with some [censored]es

June 18, 2015, 05:12:22 PM #188 Last Edit: June 20, 2015, 01:51:21 PM by DarkPikachu
Quote from: HypnotizeOverdrive on June 18, 2015, 03:42:19 PM
It's a damn shame no one posts here. You're doing some excellent work with this program.
aww man big thanks :)
don't worry, I still have yet to get anything on SmashBoards, VG-R, my forum, and the Mario Kart community (though I update the least there due to attitudes and behavioral problems)...
there's also alot of other forums who havn't responded.

but I know I've got alot of watchers :)

I deeply want to make this release so bad, but I can't until all issues are cleared.
at least updating the backend like this is making things easier to work on :)


I should also mention, I have a co-dev.
I mentioned him (Matt Sitton) before with the mac screenshot, but with no detail about him.
so yea, he's helping me get up to date with my python coding standards, and is also helping me make UMC more cross-platform with less issues.
(all UMC needs is portable python interpreters in their own isolated environments)
^this means you don't need to install anything

portable python (what I'm currently using which is windows x86 only) is only 18MB without it's Lib/ directory, but it includes all the base libraries and binary modules for things like tkinter and such

as for current progress on this, I've managed to get it running on all 3 of my machines (I've still got the font issue on my secondary compy) and also have it running on Matt's

the only problem I have with Matt is he's using a local python installation rather than UMC's provided interpreter.
the problem with this is alot of modules will be loaded from native directories instead of UMC's directories, which will cause alot of unexpected results.

so Matt's intending to work on a C-loader while I work on finding something more cross-platform.

I've looked into Pyzo, but that's python34 where I need python27
(copying the linux and mac interpreters would add roughly 300MB to the release due to the dependencies)

so yea, I've still got alot of work and cleanup to do.


for another thing I'm trying to do, there's this channel for Wii called Wii Channel TV or something...
Lars informed me about it and sent me the files.
the channel's data uses the same Hal Labs DAT format, but this time there's an interesting twist.
the format actually has string structures, giving it a pseudo string table just above the relocation table.
the format of this table is very similar to MDL0 strings, however, there's only a 1-byte pad string or perhaps a stop character.
(I'm guessing the stop character may only be needed if the hardware (Wii or WiiU) ignores the string size)

in any case, most structures are the exact same as Melee or Kirby AR, however I've run into an object structure who's "material offset" is 0x04 which translates to 0x24.
the structure at that location starts at 0x00 and is over 32 bytes...
so yea, it's causing my script to cough.

I havn't gotten much further than this, but I'm looking into it :P

EDIT:
now that I'm on my compy and not my WiiU, here's a few links :)

download and test UMC 3.0a: https://copy.com/gs8OGUauqMuQmjtl
you can start working on scripts if you like, but things are currently strict.
if you need help with anything, send me a contact request on skype explaining as such. ;)

writing UMC-scripts is getting increasingly simpler as development continues with focus set on automation
(automation is the process of passing data to UMC with little to no use of variables)

example:

        weights_list=[
            array( [bu32,bf32], label=' -- [ [Bone_Offset, Weight], ... ]:' )( offset=WO+32
            ) for WO in array( bu32, label=' -- [ Weight_Offset, ... ]:' )( offset=weights )
        ] if weights>32 else []
^would be easier to read with syntax highlighting
basically the code is a large 1-liner that reads nested arrays (in this case Melee bone-weight arrays)
it doesn't pass the data to UMC as the full definition of UMC's automation explains, but it's on it's way to doing so.

currently known issues with UMC:
- MDL0 is borked (need to redo the weights)
- other supplied scripts may or may not work correctly (I've intended to fix this but have been working on the backend support)
- UT transformation is borked (it's WIP but still doesn't properly transform)
- various functions don't work as have been advertized (havn't yet gotten to fixing or updating anything there)
- GUI laggs on large directories (I've explained this before but people don't seem to listen)


and for WCTV, here's the channel data: https://copy.com/gcFSKzb44SJyDGBZ
what is WCTV?: https://www.youtube.com/watch?v=4amHBKlj6Nw


EDIT2:
I was wrong about WCTV's strings, apparently that start character is part of the string, the string is terminated by 0x00

[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.


[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.

just for some news, here's for some support:
(yes I'm actually updating here first for once... lol)

who and all here remembers my blender script which could export bf32 vertices?
well, now I'm working on a script for UMC which can export more than the same data :)
more info here: http://smashboards.com/threads/zack-fair-tournament-legal-project.407245/#post-19483358

also, I'm thinking about including the 32bit header regardless of float or int formats (that way you don't need to tell people more info when schooling them on how to hack with UMC) :P

as far as melee vertexing, I can only hope it'll work well since Melee vs Brawl is global vs local vertices >_>


btw, anyone know someone who could help me fix my MDL0 script??
(my weight issue with Pachi is now affecting almost all weighted models)

[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.

July 08, 2015, 04:23:10 PM #191 Last Edit: July 10, 2015, 02:57:32 PM by DarkPikachu
been doing some major work on the backend...
got scripts to load in their own private namespaces.
I'll do the same with libs and even implement multiprocessing support in an update.
(multiprocessing means I'll be able to display the imported data while it's importing)

but yea, I'll have a method for registering lib-functions with scritps as well:


@ugeScript() # register with all script types
def libFunction( arg ): pass

@ugeScript( UGE_MODEL_SCRIPT ) # register with model scripts only
def libFunction( arg ): pass

@ugeScript( UGE_IMAGE_SCRIPT, UGE_PALLET_SCRIPT ) # register with specified scripts only
def libFunction( arg ): pass



also updated the loader to be more dynamic:

Loading scripts...

ugeImportModel(): 9
|   UMC_SES.py
|   HAL_Labs_DAT.py
|   MDL02.py
|   MMD_PMD.py
|   testBoneRel.py
|   Sm4sh_NUD.py
|   NTDO_MDL0.py
|   Wavefront_OBJ.py
|   HAL_Labs_DAT2.py
|
ugeExportModel(): 3
|   UMC_SES.py
|   PNG_Textures.py
|   Wavefront_OBJ.py
|
ugeImportImage(): 2
|   NTDO_TEX0.py
|   IMG.py
|
ugeExportImage(): 1
|   IMG.py
|
ugeImportPalette()/ugeImportPallet(): 0
ugeExportPalette()/ugeExportPallet(): 0
ugeDecompressor(): 0
ugeCompressor(): 0
ugeImportArchive(): 0
ugeExportArchive(): 0
Bad Scripts: 0

what this means is I'll now be able to extend script-type support (such as game scripts and logic) w/o having to update the loader.

still have yet to find the UT problem that's plaguing UMC's release though... :(
it's pinpointed to have something to do with the weights...

Post Merge: July 08, 2015, 11:28:45 PM

see update on smashboards ;)
post-merge can suck itself. :P

Post Merge: July 10, 2015, 02:51:17 PM

*removed post because it's not at the top of the page*

yea screw this, if you guys what updates, please visit my SmashBoards thread.

[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.


September 18, 2015, 05:30:50 PM #193 Last Edit: December 01, 2019, 11:16:57 PM by DarkPikachu
well... it's unofficial, and there's alot broken with it in terms of support, but you can download my repo if you like:
https://copy.com/DB24NZi4ejlxFo4I
MDL0 (Havok) needs a re-write... I'm getting no help with understanding my issue with the bones:

I'm also noticing not all weights are applied, same with this Melee trophy:

^not sure if that's the scripts or if it's actually something in my backend/transformer

and I've never gotten an answer to my question about how brawlbox handles invalid definition links...
Pachi for example has a vert-matrix primitive that references the definition ID of 2, which doesn't exist in Pachi's definitions.

also, I've done a little work on the transformer and fixed half of the Singular Matrix issues which comes from matrix inversion, however the other half is in the data verification, which is many times harder to fix...

so... yea... issues...

EDIT:
for some good news though, I've removed that annoying '...' at the top-left of the screen and sorted the file-browser directory list from A-Z, so that should be alot easier...

I'm currently trying to work on intellisense (code-insight) for SIDE
(I need SIDE to fix my MDL0 script, since nobody will help me)

[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.

Ugh World's latest reply...
Anyway I'm getting this error
Quote
___________________________________________
ERROR in
action number 1
of Create Event
for object <undefined>:

Cannot execute "C:\Users\tyler\Universal_Model_Converter_dev4x-main\data\Python\x86\python.exe" loader.py x86
"ignore" just closes it.
*Insert Signature Here*