MDL7 Exporter auf Blender 2.78 Updaten

Posted By: tagimbul

MDL7 Exporter auf Blender 2.78 Updaten - 07/23/17 09:39

Hallo =)
ich versuche mich gerade darin in blender 2.78 ein Python script zu schreiben mit dem ich direkt in MDL7 exportieren kann.

es gibt ja schon einen alten exporter für blender 2.45
http://opserver.de/swik10/index.php?title=Blender#blender_mdl7_exporter

doch die module in blender wurden seither enorm verändert.
daher wollte ich mein wissen etwas vertiefen zum MDL7 format.

ein modul ist das "struct"
da wird etwas gemacht was ich nicht verstehe:
Code:
file.write(struct.pack("<4sllllllHHHHHHHHHH",
     "MDL7", 0, len(self.bones), len(self.groups), self.getsize(),  # 0 = subversion
     0, 0,  # entlumpsize, medlumpsize
     36, 28, 16, 68, 8, 16, 26, 26, 68, 24))



was ist dieses "4sllllllHHHHHHHHHH" ?
Posted By: Ch40zzC0d3r

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/23/17 10:53

einfach der formatter wie bei einem printf, sieht man recht gut an dem 4s => "MDL7". s steht dabei für string, l für long und H wohl für Hex
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/23/17 13:49

ah ok thx.
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/23/17 14:05

der author des originals:
"thomas oppl"

ist der noch aktiv oder auch hier im forum?
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/24/17 00:52

ich muss sagen ich komme ziemlich gut voran grin
also naja sehr sehr langsam aber es dafür immer wie schneller ^^
ich hab mich richtig schnell in python reingefuxt =)
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/24/17 21:26

ach lol grin
in image.pixels sind ALLE pixel der textur aneinander gereiht grin
also hab ich so zugriff ^^
muss ich da mein eigenes lese teil schreiben um an ein rgba an einer x y stelle zu kommen oder gibts da was?
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/26/17 15:12

EUREKA !!!

ich habs geschaft :DDD
direkter model export von blender in MDL7v!! grin


Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/26/17 15:31

ich muss jetzt nurnoch die animationen und bones exportieren
dann noch das panel fürs exportieren.
sollte ab jetzt kein problem mehr sein =)

ich bin noch voll unter schock weil funktioniert :DDD
Posted By: Kartoffel

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/26/17 20:29

hey, echt cool!

seh' ich das richtig, man kann auch mit externen texturen exportieren? shocked
Posted By: tagimbul

Re: MDL7 Exporter auf Blender 2.78 Updaten - 07/26/17 23:55

jap grin
die texturen klappen schon.
also mesh + mehrere texturen die den faces zugewiesen sind funzen jetzt schon
nun kommen die schwirigeren sachen
bastle gerade an den vertex weights, bones und animationen rum
...
dachte das schlimmste habe ich hinter mir tongue
insgesamt muss ich etwa 90% des codes umschreiben

wird wohl noch ein weile dauern.

als ich ein mesh exportieren konnte bin ich ausgeflipt vor freude tongue

am ende mache ich dann noch ein schönes controll panel so das mans dann im blender/file/export aufgelistet bekommt mit scalierung parametern und ein paar setings

interne texturen muss ich noch testen.
aber externe da geb ich den pfad von "C: " aus
also die textur wirds immer finden

auch noch nennenswert.
im material nimmt es sich die erste textur. solten aber im textur slot noch mehrere texturen sein nimmt es diese auch mit.
auf diese weise kann man mehrere texturen exportieren
z.B
material1:
texture1.png
normalmap1.png

material2:
texture2.png
normalmap2.png
usw


ich frage mich wieso bisher noch keiner den aktualisiert hat.
der MED ist schon etwas veraltet.
und Blender wäre ein super ersatz.

vor allem seit ich mich nun mit blender und python auseinander gesetzt habe habe ich erkannt wie mächtig blender ist.
da kann man sachen machen das glaubst du nicht grin

ich habe mal ein tutorial gemacht wo man in blender ein terrain erstellt und nach 3dgs exportiert.
http://flashbreaker.com/media/tutorials/blender-terrain.html

wäre auch cool sowas direkt in .hmp zu exportieren

das terrain mit sculpting mode und direkt mit einem multi texturing shader in blender selber die RGB map zu zeichnen ist einfach göttlich ^^
Posted By: tagimbul

MDL7 Weights? Hilfe! - 07/27/17 01:15

oh jetzt wird wirklich kompliziert...

ich bräuchte da echt hilfe von einem der sich besser auskennt.
in der script beschreibung:

Quote:

the mdl7 format currently doesn't support weighted skinning
so every vertex should only have 1 bone influence. if there
is more than one influence the exporter will take the
strongest one or a random one if all influences have the
same weight.




im code wird nicht das weight eines vertexes geschriben sondern nur der boneindex. also die nummer des bones die das grösste gewicht auf Vertex hat

Code:
group.addvertex(v.co[0], v.co[1], v.co[2],
               -v.no[0], -v.no[1], -v.no[2],  # negative -> because of reverse winding
                boneindex)




in c_groups habe ich für addvertex
Code:
def addvertex(self, x, y, z, nx, ny, nz, boneindex=65535):
        """add a vertex to the group"""
        self.vertices.append(c_mainvertex(x, y, z, nx, ny, nz, boneindex))



und dann wird in das struct.pack geschriben.
Code:
file.write(struct.pack("<BBBBl16slllll",
                        1, 0, 0, 0,  # type 1 = triangle mesh
                        self.getsize(),
                        self.name,
                        len(self.skins),
                        len(self.uvs),
                        len(self.triangles),
                        len(self.vertices),
                        len(self.frames)))
.....


 if extension == "mdl":
        file.write(struct.pack("<fffHfff",
        self.x, self.y, self.z,
        self.boneindex,
        self.nx, self.ny, self.nz))



in A8 werden ja bis zu 4 bones pro Weights unterstützt.

wie kann ich da die vertex weight mit hinein schreiben?
kann mir da einer helfen?

mfg tom


Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 07/27/17 11:03

ich schreibe glaubs erstmal den exporter mit nur dem schwerten weight pro bone für ein vertex

mal eine "beta version"

ich hab im MDL SDK mal gestöbert.
ich denke es wird einfacher wenn ich erstmal ein funktionierender exporter habe.

Quote:
einfach der formatter wie bei einem printf, sieht man recht gut an dem 4s => "MDL7". s steht dabei für string, l für long und H wohl für Hex


um die weights zu schreiben werde ich dann wohl mich mit formatter und hex auseinander setzen müssen.
Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 07/27/17 19:44

niiice hab den vertex animations export hingekrigt grin

und hab den code noch geupgradet tongue
in der alten version musste man die frames die man exportieren will so als string übergeben:
"0 1 2 3 4 5 6 7"

ich mach jetzt einfach
from_frame = 0
to frame = 7

^^

ich will noch einbauen das er automtishc erkennt in welchem frame einer action sich das erste keyframe befindet und das letzte.
diese 2 werte sind dann die defaul initalisierungen für die exportierung einer animation

aber ich mache dann im GUI das ich noch designen werde eine liste so dass man auch noch nach der initalisierung den from und to frame wert verändern kann =)


nun geht es an die bones animationen ^.^
Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 07/29/17 12:31

ich bin richtig nahe dran !


ich habe noch probleme mit bones Matrizen und sie in den frames richtig abzuspeichern.
aber es sieht schonmal gut aus.
mit diesen matrizen komm ich noch nicht so ganz klar tongue

Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 07/30/17 16:37

>.<
ich komm nicht weiter. ich dreh bald durch ab den matrizen...

kann mir da jemand unter die arme greifen?
bzw. hat jemand lust mit mir am bones export zu arbeiten?

der code wäre fast fertig es fehlt nur noch dieses eine stückchen.

mesh, texturen, vertex animationen und die aramtur (das Skelet) kann ich bereit exportieren und werden im MED korekt angezeigt und in den sctipts korrekt abgespielt

im code befinde ich mich in einem frame loop, wo ich für jedes bone, in einem aniamtions frame, die matrizen abspeichern muss.
und hier ist auch meine problematik.
ich weis nicht wie ich richtig die matrizen abspeichere
in einem text file "mdl7_faq.txt" wo beschriben wird wie sich die bones verhalten krig ich es nicht hin.

nurnoch die bones frame matrizen und er wäre so gut wie fertig und ich müsste nurnoch das GUI erstellen

hätte jemand Interesse mit mir den bone exporter fertig zu schreiben?


mit freundlichen grüssen:
tom
Posted By: Kartoffel

Re: MDL7 Weights? Hilfe! - 07/30/17 17:15

was du versuchen kannst: ein modell mit bone-animations von blender als fbx exportieren, in med importieren und den teil der datei ansehen, der für die matritzen zuständig ist.
Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 07/31/17 22:01

.
Posted By: tagimbul

Re: MDL7 Weights? Hilfe! - 08/01/17 18:02

AHHHH ich habs geschaft !!!!

von der alten blender version auf die neue wurden bei den matrizen von einer row zu einer collum variante gewechselt.

nur hat das keine sau irgendwo im netz erwähnt xD
boahhh entlich xD
ich muss noch weitere test's machen aber es sieht alles gut aus grin
bones frame matrizen werdne nun richtig ausgegeben grin

wuuhuuu !! :DDD
Posted By: Superku

Re: MDL7 Weights? Hilfe! - 08/01/17 19:14

Sehr schön, Glückwunsch! wink
Posted By: tagimbul

MDL7 export ! - 08/01/17 21:29

jap sieht seeehr gut aus grin
ich hab den exporter mal einem härtetest unterzogen :
https://www.youtube.com/watch?v=wVUTVr4Wa2M&feature=youtu.be
Posted By: tagimbul

Re: MDL7 export ! - 08/06/17 14:10

die beta version des exporters ist bald fertig grin
arbeite gerade wie wild am GUI grin
Posted By: Kartoffel

Re: MDL7 export ! - 08/06/17 17:30

shocked schönes ding

wie sieht es eigentlich mit groups aus, werden die auch mit exportiert?
Posted By: tagimbul

Re: MDL7 export ! - 08/06/17 21:59

welche groups meinst du?^^
Posted By: tagimbul

Re: MDL7 export ! - 08/07/17 10:10

also mehrere meshes als eigene objekte/gruppen?
noch nicht muss ich noch machen

ich muss noch ein memory leck beheben ^^"

ich zähle mal auf was noch nicht geht da zur zeit mehr geht als nicht geht:
-interne texturen exportieren
-scale, alles wird in 1 exportiert
-mehrere objekte: "kann gehen noch nicht getestet" ^^
-vertex weights bei bones animation. zur zeit wird ein vertex mit dem grössten weight exportiert. da muss ich noch das MDL formal besser unter die luppe nhemen damit ich das in binary form abspeichern kann.
-beim exportieren erzeuge ich "meshes" im zwichen speicher, diese bleiben nach beenden des scripts im zwischen speicher und ich kann sie nicht löschen was bei einer vertex animation bei grossen modelen mit vielen animationen dazu führt das der speicher mal schnell vollgeballert wird :"D

aber bisher sieht alles wirklich gut aus!
der exporter funzt. man kann das script runnen und hat auch ein export panel wo man einen speicher ort auswählen kann und den namen bestimmen.
genau so wie ein normaler blender exporter halt geht =)

ich stopf noch das leck behebe den scale und dann hau ich ne beta raus grin
Posted By: tagimbul

Re: MDL7 export ! - 08/07/17 23:32

update ^^

die leaks kann ich noch nicht stopfen ich schreib erstmal den exporter fertig.

nun kann man auch den scale nutzen.
und ich habe noch einen bug beim armatur export behoben. nun ist alles so wie es sein sollte =)

jetzt nurnoch interne texturen, mehrere objekte
und dann noch objekt und world space export
am ende dann noch die vertex weights

picture1 zoom




picture2 zoom

Posted By: tagimbul

Re: MDL7 export ! - 08/08/17 10:16

world / object space funzt =)
Posted By: tagimbul

Re: MDL7 export ! - 08/08/17 13:47

interne texturen gehen nun auch
© 2024 lite-C Forums