• 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!

Universal Model Converter - Side Development Thread

left or right? (a 20x20 toggle at the top of the window)

  • Left (under the window icon)

    Votes: 23 53.5%
  • Right (under the X button)

    Votes: 20 46.5%

  • Total voters
    43
  • Poll closed .

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
lolol, ya just did ;3

vertices are only 1 standard, and a highly inefficient one at that.

my own standard involves drawing say, a sphere using only a radius, not vertices.
the normal (lighting) is calculated via the pixel-ray or an algorithm

Would UMC support converting a model back to the original format or to another one?
it's Universal, so both ;)

you're not the first to mistake the "Universal" part ;)

EDIT:
btw, UGESL on it's first display will be used only for viewing scripts in action.
the nodes will be animated so you can see the signals as the values update, and you can slow down and even rewind the processing
(it's alot like how my autism helps me visualize and compare logical paths)
^ I can only see small portions at a time, like playing an old sonic game, so I can't see everything unlike what UMC will be able to display.

note though UGESL won't be available on the current backend (3.0a) due to needing both CPU and GPU power on a much more optimized interface.

EDIT2:
btw, would you like to help out?? :)

being a noob doesn't mean a thing ;)
I'm still a noob in most cases XD
 
Last edited:

wahabthesmasher

Smash Rookie
Joined
Mar 30, 2014
Messages
14
If I can I would try to help you, but I don't know what I should do...

Edit: The only reason I asked that is because I do not see it in the UI (ver3.0a) while I do see the animation thingy, which is incomplete.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
well, the only thing I could really ask is what sort of support I'm missing that you'd like me to add :)

please try to keep support requests backend sided, work on your own scripts rather than request them ;)
don't be afraid about scripting complexity, the frontend is python-based which is simple enough,
but I've provided interfaces which automate pretty much everything for you, such as data I/O.
that and the backend supports more than Blender for basic meshes, so the model data can be directly passed to UMC :)

you don't need to understand alot about scripting to write a script for UMC
all you really need is low-level algebra knowledge ;)
the python tutorial at http://sthurlow.com/python/ should teach you just enough to get you going
(don't worry about lesson 8 and up) ;)

but you'll need to understand for loops:

>>> for value in [ 1, 2, 3, 5 ]: print value
1
2
3
5
>>>

everything else from the tut should be easy to understand ;)
(classes even took me a long while to understand, but they're not required for UMC-scripts) :)

as for model formatting, just keep this post for reference:

root
|- Image
|- Texture
|..|- Image reference
|- Material
|..|- Ambient Color
|..|- Diffuse Color
|..|- Specular Color
|..|- Emissive Color
|..|- Shininess (I'm still learning how this works)
|..|- Texture references (Blender supports 10 for example)
|- scene
|..|- Object (Rig)
|..|..|- Bone
|..|..|- Bone
|..|- Object (Mesh)
|.....|- Material References
|.....|- Verts
|.....|- Normals/NBTs <<< TODO: NBT support (next update)
|.....|- Colors (2 channels)
|.....|- UVs (8 channels) <<< TODO: support 32 channels
|.....|- Weight values
|.....|- Facepoints
|........|- Vert ID
|........|- Normal ID
|........|- Color IDs
|........|- UV IDs
|........|- Weights
|...........|- Weight ID
|...........|- Bone reference
|- scene
...|- ...

UMC 3.0 will have support for multiple roots ;)

texture parameters are currently low level, so that may be a bit difficult to work with.
I don't understand too much with these, so I'll be simplifying these as UMC evolves.
(just to note, these functions may be deprecated for simpler methods later on, and may be removed in 3.0)


ask me for info if you don't understand something, I'm always available. :)

also, it may help if you're in real-time contact with me, so my skype is Tcll5850 (DarkPikachu)
(just send me a request telling me to add you to my dev-chat)
 

wahabthesmasher

Smash Rookie
Joined
Mar 30, 2014
Messages
14
I am having trouble with lesson 1... is not recognized as a command in cmd 'python -V' :p
Should I get the latest version of Python instead of 2.4.1
Tried adding it to path thingy, it does not work (not sure if I added it correctly though)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I was actually editing my last post to tell you UMC runs on python27 :p

the reason for python27 instead of the faster python34 is because PyOpenGL does extended value testing causing it to run even slower.
we (me and Matt) are planning to work on our own OpenGL extension which'll be so much faster using python's C-API while providing all of OpenGL's support (unlike pyglet)
by then I'll be able to port to python3 (if I choose to)
(personally, there's a few things I don't like about py3's syntax, but it has it's perks in some cases)

so yea, start out with 27 :)

I don't think you need to worry about the -V command >.>
I never use it, so yeh...
just install, create a py file, and edit with IDLE :)
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
finally got curses working like I wanted :)



it's not working in gnome-terminal though for some reason :(
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
just so you guys know, if anyone's wondering why I havn't been very active, I'm working on something you all will like :)
(especially if you want to get into UMC-scripting)

http://tcll5850.proboards.com/thread/182/layout
^what's in red is currently not available, though it's planned for implementation
what's displayed in yellow will be limited to what you can do (havn't been able to fix the LRS function issue)

EDIT:
forgot to mention, this will be alot easier for me to edit because it doesn't require me to use a web browser to edit pages which take forever to load.
(my forum uses so much JS because PB doesn't understand the meaning behind useful content)
<<< I'd like to host my own forum, but my current server host isn't very friendly when it comes to bandwidth.
(if I recall correctly, high bandwidth can cause termination of my site)

but anyways, so I can edit my documentation locally and you guys can see my edits in real time :)
also, I'll distribute a small html with UMC's release which will display to the very same docs displayed in the thread.
(the data displayed is actively retrieved from Copy)
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
welp, sorry for any and all broken links relating to copy...

I'd just went to empty my trash folder in my UMC workspace, and copy glitched and deleted my entire workspace.
so I'm working on restoring it now.

as if I didn't already have a big enough migrane >_<

EDIT:
https://community.barracudanetworks...03-copy-just-removed-my-workspace/#entry73461

EDIT2:
sorry for mot updating on this sooner...
apparently I can't share my workspace, Copy's malware detectors are for some reason detecting malware in my obviously safe workspace.
the worst I have in my workspace is the model imports extracted from other games for testing, with the only programs being what I've built, which you guys know by my strong reputation is far from malicious.

currently what I'm dealing with is my last share created a reported link that wasn't removed, and I can't remove it.
if I post the link, you get a "sorry" message from copy.

I'm not sure what they're doing, but I'll be sure to update when everything's fixed :)

EDIT3:
ok, so I've found the issue, it was due to suicidal Win7's tantrum on my files which affected UMC 3.0's restoration.
(everything I've recently worked on with 3.0 is still in tact, so everything's fine) :)

I still can't pinpoint what's better with Win7 that's worse with WinXP... I've never had an OS that killed itself until Win7.
so far everything seems worse with anything higher than WinXP, including (correct me if I'm wrong) unavailable ExFAT support.

one things for certain, I will NEVER use any windows above XP again, because they all SUCK!!!
(I don't care about my friends jizzing all over Win10, they'll figure it out sooner or later)


so anyways, here's the new UMC 3.0a share link :)
https://copy.com/W8pRpGqb72as7DGn
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
quote for later (logging it here)

what makes UMC so powerful is not just it's scripting engine, but the fact that it automates the most basic levels of support such as file handling and data management in the form of a state engine.
this automated support relates to things most modern 3D software expects you to do manually.
blender for example expects you to use the cruddy and limited struct module on raw file() streams to do any sort of bimary work, which can get overwhelmingly complex very fast.

and if that isn't complex enough, blender doesn't understand the meaning behind automation, so you need to tell blender to move to the next object after you're done defining it.

with UMC, it automatically switches when you define the next object.
but not only that, UMC has an interruptable state engine, so you can call the object again if you need to perform extra work on it.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
just got into a recent convo with zankyou regarding model hacking...
as a result, here's a feature that's likely to be in the release: :)

^ originally I'd planned for this to be added to an update, due to cooperation with the filthy viewer
but I got some free time and it's helpful, so I figured I'd implement it now :)

EDIT:
finally got some cooperation with the viewer :)



now I just have to add an option to disable display of the annoying things :p
that'll be really easy ;)
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
well, there is 1 tiny issue regarding bane name display
if you zoom in really close, the scale of the name changes drastically depending on distance.
the biggest part of the isue lies in the names being extremely small when slightly farther away.

you can kinda see the issue with the last image above:
TailNd is smaller than LMimiNb
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
new function idea for UMC, will be available by the release :)

index()() - a function to allow indexing lists in an enclosed automated environment:

_Links = array( bu32, count=bu32(label=' -- Link_Count') )() #Definition Links
WL = array( [ index( _Links, bu16 ), bf32 ], count=bu8() )()


or for future support:
s = struct(
ID = index( _Links, bu16 )
val = bf32
)
WL = array( s, count=bu8() )()


how the function works:
value = index( list(), bu16 )()
is the same as:
value = list()[ bu16() ]
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
ok, this link to the UMC v3.0a folder seems to be working so far:

https://copy.com/DB24NZi4ejlxFo4I

if anyone wants to download, feel free, though I'm working on a few features atm

EDIT:
obtw, the interpreter has been moved around for extendability, so UMC.exe (in the download) is borked
I'm saving it to recover the icon for the new exe when I install GameMaker

when you download, run UMC.bat
this is temporary until I install GameMaker.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
finally got MDL0s working again... sorta

gotta love it when one thing breaks another

and then the rest is likely just my filthy script, I likely have 2 separate vars with the same names all over the place >_<
(that and this format alone is disgusting)

I built this script first, when I was a complete noob, so don't let it be a surprise :p

EDIT:
at least the image shows you the transformations are working for what's actually weighted... heh
 
Last edited:

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
Sorry, I've looked through several threads at this point, and I greatly appreciate your work, but I'm still confused; have you released this tool yet? Also, can it be used to interpret data in, for example, a Kirby Air Ride .dat file? That's what I was searching when I found this, and even though I've read your explanations, I'm still somewhat confused and would appreciate clarification on my two questions mentioned above.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I don't have an official release yet, I'm still working on things, though I've gotten alot more done on it and getting closer to a release :)

you can download my repo though and see what UMC can currently do if you like :)
(as explained above, don't run UMC.exe) ;)

for KAR, from what I've seen, most of the stuff is able to import, though not properly...
so yea, many things are being worked on...

I'm only 1 person though, and the only one working on this so far, so don't expect something too soon...

if I had to guess, I'm roughly 70% ready for a release...
and that other 30% isn't anything small (still gotta research alot)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
so I'm looking into multiprocessing :)

turns out it's not very friendly when you want to update a class instance, though it is possible via returning the sent object:
Code:
from multiprocessing import Pool

class obj(object):
    def __init__(this,i):
        this.value = i

def process( obj ):
    obj.value += 1
    return obj

if __name__ == '__main__': # important on windows
    globals()['pool'] = Pool( processes=16 ) # bite me

    objects = [ obj(i) for i in range(10) ]
    objects = pool.map( process, objects ) # new list

    for o in objects: # note: random order
        print o.value
<<< untested, I just wrote this off the top of my head

this will make use of multi-core CPUs.

as for the reason I said "bite me" to 16 worker processes,
if you have a slow compy, the value may not return.

what I intend to do is test performance processing to determine the amount of worker processes to create.
 
Last edited:

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
Thank you for answering my questions and I'm glad that you're still working on this. I highly appreciate this kind of dedication. Also, it has been my life-long dream for there to be a Kirby Air Ride 2, and I thought this:

Well, people can hack Super Smash Bros. Brawl, so why can't we hack older GameCube games?

That's what led me to this and, even if this isn't finished yet, I would certainly love to be able to use it to edit a Kirby Air Ride iso in some fashion and then play it on an emulator. Although I know nothing about coding or just how difficult the challenges ahead for you may be, I urge you to continue because I certainly believe that this will be very, very useful. At the moment, though, I'm not sure if other tools exist that could help me edit Kirby Air Ride files.
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
well, just to let you know, you're not alone, I actually have a few reasons for supporting KAR, including (but not limited to) a KAR2 fan-game. :)

from what I've paid attention to, I havn't seen much activity regarding a KAR hacking scene, however, my friend Kahnu has recently made a reddit page about the game :)

personally though, a fan-game is rather low on my list...
my main purpose for KAR support is to make a merged game of KAR City Trial and SSB in a sort of mixed gameplay style similar to Sonic Riders (just the carnage, no tricks)

@sonic Riders: you will be missed. =3=
(such a shame the development became Sonic Free-Riders on the xbone... guess they didn't want my money)

EDIT:
uh oh... that wasn't supposed to be a mention... heh
 
Last edited:

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
Hmm, have you ever heard of this guy called StarLand? I'll link a few of the things that he used to do. I contacted recently only to find that he had given up due to computer problems, but he certainly seemed to find a lot of good information within Kirby Air Ride. He also sent me some files, but I think that you can find all of them on those forums I'll link to. I cannot access them at the moment due to my own computer problems.

http://kuribo64.net/board/thread.php?id=1277
https://sites.google.com/site/homepagesmirkogm/hacking-tools/airrideriscomming

Also, could you link to that Reddit page you mentioned? I'm certainly interested.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
I really hope he's not using C# >_<

and sorry, I meant to ask kahnu and got caught up in creating a big bang on kuribo64 ;)
I'll have him post it when he's able to... heh

EDIT:
btw, when I release UMC, you won't see that GLFW.
I put that there just to show the port from the disgusting SDL window manager


EDIT2:
looks like the people there don't like StarLand very much... heh
 
Last edited:

ლ(╹◡╹ლ)

Banned via Warnings
Joined
Jul 9, 2015
Messages
53
Hmm, have you ever heard of this guy called StarLand? I'll link a few of the things that he used to do. I contacted recently only to find that he had given up due to computer problems, but he certainly seemed to find a lot of good information within Kirby Air Ride. He also sent me some files, but I think that you can find all of them on those forums I'll link to. I cannot access them at the moment due to my own computer problems.

http://kuribo64.net/board/thread.php?id=1277
https://sites.google.com/site/homepagesmirkogm/hacking-tools/airrideriscomming

Also, could you link to that Reddit page you mentioned? I'm certainly interested.
https://www.reddit.com/r/KirbyAirRide
I own it. :)
 

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
Thanks for that reddit page, I'll be looking there soon. Too bad school is always in the way for me. But it's really good to see how many other people love Kirby Air Ride as much as my brother and I do.

Sorry for not understanding everything here (and I do appreciate your patience), but:

"btw, when I release UMC, you won't see that GLFW.
I put that there just to show the port from the disgusting SDL window manager"

I have no idea what that means.

Anyway, keep up the great work! There's no doubt that Kirby Air Ride is my favorite game of all time.
 

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
I downloaded the unfinished version of the program that you have so far, but I can't figure out how to use it. Is there a readme file somewhere in there that I'm missing?
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
yea README.md, however, that just tells you how to control it

to import, you need to select a script, and then browse for your file.
(you can also open the file browser and the filter also selects the script) ;)

once you hit Select with the proper script, just hit Import ;)

to export, it's basically the same procedure, except the file is automatically exported to the import directory.
(once I add KBd support, you'll have more control)
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
may as well mention I finally updated my UGESL thread:
http://tcll5850.proboards.com/thread/271
note: the class node DOES have it's own image, but there's currently no design for it so it's left as a copy.

the whole issue with this is putting together the dynamic connections in a way that's operable yet not confusing...
the problem is that a class is basically a code template where the connections can be made on instantation (basically a copy of the class)

functions were easy to deal with as they weren't instanced but rather executed in place, so stack values and global variables were easy.

but the instance is basically it's own namespace which python somehow manages to integrate into the local (or global) namespace...
so the instance delivers the dot operator.

a class name is just a variable holding the class object...
but accessing the class code from that variable is what's difficult.
 

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Wow.......... Tcll, you're a genius!

Hey, could I please make a request?

For whatever reason, I can't get the UMC to work on my computer (seems it needs Direct Play, which my Windows 8 will never allow me to have). It just shows the 3D field with grey square buttons, but the rest of the HUD seems to be broken on my OS.

Could I please request someone link me a T-Posed Grey Captain Falcon please? I'd really really appreciate it. Keep it under your hats, but I wanted to model + texture hack him to look like Snake for a friends birthday. All I'd need is a .obj of him T-posing (doesn't need textures or anything) for me to be able to re-import it back into Melee (using a tool of my own which compares an unedited model with an edited one, then adds the difference to the raw, unweighted vertice data).

Thanks, I'd really appreciate it.
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
Direct Play wot O.o
I hate DirectX... O.o

though it sounds like the issue is related to the FreeType DLL

I'll see if I can re-implement PIL fonts to fix that
(shouldn't be difficult)

do you get a traceback in the console??
if so, can I see it :)
I'm wondering if it could also be related to the issue on my secondary
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
oh... the old version... that's why

mehtioned ealier (and people are having issues) the new link is here:
https://copy.com/DB24NZi4ejlxFo4I
(if you can't access this I'm going to kill myself) lol
run the BAT

also, here ya go :)
PlCaGy.obj: https://copy.com/JrABRnndULeGpCnC


EDIT:
I'm removing that old link just so it doesn't cause any more issues...
that version sucks bad anyways :p

EDIT2:
left the choice up to you by explaining the dev4.5 pre-release sucks :p
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Thanks Tcll! I'll have to look at it more indepth tomorrow (bed time for me. Working man gets little time for the hacks :/ ). It looks like it's working flawlessly though, thanks! The Falcon model is perfect too! I'll keep ya'll posted when it's done!
 
Last edited:

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
glad to see you getting back into hacking btw :)

anyways, UMC still fails at alot...
basically, I've got something that works, but there's still loose wires hanging about everywhere ;)
which is why it's not released yet... lol
(gotta connect and snip some of those wires) :p
^ and build interfaces to connect those wires to :p

you'll find alot of those loose wires when trying to write a script.
I would recommend not working on a library until the next update, most of the stuff is very incomplete in that area and will likely not work with 3.0


also, the DAT files still have some issues, but most of the Melee stuff should work well.
 
Last edited:

Milun

Smash Ace
Joined
Oct 29, 2009
Messages
516
Location
Australia
Well, don't you worry. Pretty sure I'm incapable of writing libraries. So I tested it out, and it is amazing! Imports all the Melee .dat;s I want without a hint of errors... however...

It seems my program won't work with it. When it exports to .obj, it duplicates a lot of vertices (for each group of faces it creates). Oh well, it was worth a shot. Thanks for your help Tcll!
 

Tcll

Smash Lord
Joined
Jul 10, 2010
Messages
1,780
Location
The Gates of Darkness
NNID
Tcll5850
no prob, yeh, I could probably fix that up to work a bit better... it's actually how the data is imported, not exported...

with the DAT, there's no way to track the vertices w/o making 2 passes...

one thing I could do is build an array to collect the verts before setting a UT Vert array...
last I tried that though, I got issues

would be nice if there was a vector count somewhere >3<
 

JohnTravolski

Smash Cadet
Joined
Apr 6, 2015
Messages
55
Okay, thanks, but what script would be used for Kirby Air Ride .dat files? For example, I have found EfMapCity.dat, but I don't know which script to use to import it.
 
Top Bottom