Xmac2obj is a small command line tool converting Risen's ._xmac files to Wavefront OBJ (and MTL) files.
XMAC files contain animated objects like bodies, bows, chests etc. including their skeleton and skinning data. This tool only considers the meshes (by now). It handels verts, faces, texture verts, normals, materials and diffuse maps.
To import obj files into GMax download this (ZIP packed) script, put it into your gmax\scripts\startup folder and start the import by clicking 'MAXScript' in the utilities tab (hammer symbol), selecting 'Wavefront OBJ import' in the dropdown list and clicking on 'import'.
To import it into any other 3d program (e.g. Blender) just use the built-in importers. You may have to rotate the model by -90 degrees around the X-axis.
To view the textures automatically in GMax or 3ds Max do the following but keep your textures as .jpg, NOT as .tga.To view the textures in any other 3d program look them up in the .mtl file created by the tool (for example with notepad) and put them in the same folder.
NEW:
Download this script to import rigging (skeleton) and skinning from XMACs in GMax or 3ds Max. Installation and usage is equal to OBJ import script (as explained above). User of different 3D applications will have to wait for xmac2asc.
Ergebnis 1 bis 20 von 50
-
Geändert von Baltram (20.12.2010 um 20:03 Uhr)
-
Danke!Hmm... das ist merkwürdig. Bei mir funktioniert dieses Modell eigentlich ganz wunderbar, in GMax wie in Blender. Kommt bei dir wirklich dieses verstümmelte Modell raus, wenn du die xmac auf mein Tool ziehst? Kannst du das bitte nochmal probieren und mir evt. die xmac und obj schicken, weil das würde ich dann doch ganz gern wissen, was da schief geht...Oh, das würde ich nicht so sagen. Neue Köpfe, Rüstungen und Bögen wären doch was Nettes, oder? Und wenn es einer hinbekommt, noch die weighting section zu lesen (ist glaube ich simpel) könnte man auch so Sachen machen wie dem Ashbeast ein Horn aufzusetzen oder so.
Ich bin übrigens davon überzeugt, dass die XMOTs gut zu knacken sind. Schick mir die xmac- und die obj-Datei dann versuch ichs.
-
- Registriert seit
- May 2005
- Beiträge
- 1.238
Jupp.
Kannst du das bitte nochmal probieren und mir evt. die xmac und obj schicken,
weil das würde ich dann doch ganz gern wissen, was da schief geht...
Oh, das würde ich nicht so sagen. Neue Köpfe, Rüstungen und Bögen wären doch was Nettes, oder?
Eine Rüstung (bzw. body) z.B. ist aber animiert (war jedenfalls bei G3 so). Ich hatte ja in G3 die Oger schon vergrößert. Ohne Anis ist das aber Murks, weil sie dann nur starr aufgeblasen sind. Auch Köpfe sind i.d.R. animiert. D.h. ohne xmot kannste das modden knicken.
Ich bin übrigens davon überzeugt, dass die XMOTs gut zu knacken sind.
Hilft aber alles nichts, weil man EmotionFX braucht, um Animationen zu erstellen.
Was man machen könnte, wäre G3-NPCs nach Risen zu exportieren. Hatte da auch schon mit angefangen, aber aufgehört, als die Arme nach mühsamer Fummelei immer noch unnatürlich aussahen.Geändert von Shak-otay (23.07.2010 um 12:08 Uhr)
-
Ich werds mir mal ansehen.Kann sein dass ich das falsch sehe aber ich ging eigentlich immer davon aus, dass bei den meisten Objekten nicht die Vertices (wie bei G2 Morphmeshes) sondern nur die Bones animiert sind. Und bei den meisten Modellen kommt man ja prima mit den bestehenden Bones aus, z.B. bei Köpfen (wobei, was ist mit den Lippen??) oder Rüstungen. Wenn man also das Skinning (dafür halte ich die mit dem DWORD 2 eingeleitete section in XMACs) im Griff hat, kann man schon sehr viel machen.Wieso? Ich denke mit einigem Aufwand könnte man die aus anderen 3d Programmen exportierten Animationen in die XMOTs schreiben.
Ich weiß übrigens nicht, wie EmotionFX Animationen funktionieren, ich kann mich also auch komplett irren. Aber ich vermute eben, dass XMOTs / XSMs ganz herkömmliche Animationen wie z.B. in ASE/ASC Dateien enthalten können.
-
Ich hab mir deine Dateien jetzt mal angeschaut. Und es ist so, dass dein OBJ file tatsächlich beschädigt/unvollständig ist aber ich es nicht aus deiner XMAC herstellen kann. Wenn ich die XMAC auf das Tool ziehe, kommt bei mir eine vollständige OBJ-Datei raus. Ich begreife aber nicht, warum das Tool auf anderen PCs zwar laufen aber so einen Mist produzieren sollte.
Vllt solltest du dir nochmal die exe aus dem Startpost laden, mehr fällt mir da grad nicht ein.
Spoiler:(zum lesen bitte Text markieren)
Wenn man dem Held eine Lange Nase machen kann, dann kann man auch komplett neue Köpfe erstellen, das meinte ich vorhin.
EDIT: Kannste gerne haben >> Nase.7z. Du musst aber damit leben, dass der Held zusätzlich noch einseitiger Segelohrträger geworden ist^^. Noch länger?? Naja du weißt ja wo die Verts in xmacs sitzen... vllt kommt sogar ne Pinocchio-Mod bei raus.Geändert von Baltram (24.07.2010 um 14:46 Uhr)
-
- Registriert seit
- May 2005
- Beiträge
- 1.238
Mit Rigging/Skinning kenne ich mich nur rudimentär aus; wenn Du also ein neues funktionierendes Rüstungsmodell hinbekommst, wäre ich extremst beeindruckt.
Ist ja doch ein Unterschied, ob der Held sein Leinenhemd anhat (Ärmel bewegt sich), oder ob er eine Rüstung mit (starren) Armschienen trägt.
Wieso? Ich denke mit einigem Aufwand könnte man die aus anderen 3d Programmen exportierten Animationen in die XMOTs schreiben.
Ich weiß übrigens nicht, wie EmotionFX Animationen funktionieren, ich kann mich also auch komplett irren. Aber ich vermute eben, dass XMOTs / XSMs ganz herkömmliche Animationen wie z.B. in ASE/ASC Dateien enthalten können.
Aufbau der Risen- _xmot (die linke Zahlen-Spalte enthält die Anzahl der Ani-Positionen (Frames?), die rechte Spalte ist der Vergleichswert für G3-xmot.):
Code:Hero_Left_Foot_Toe_1 100 52 Hero_Left_Foot_Foot_1 100/100 200 Hero_Left_Leg_Leg_2 200 Hero_Left_Leg_Leg_1 200 Bone_Left_Leg_Hip_1 100/100 58 Hero_Right_Foot_Toe_1 100 0 Hero_Right_Foot_Foot_1 100/100 200 Hero_Right_Leg_Leg_2 100/100 200 Hero_Right_Leg_Leg_1 100/100 200 Bone_Right_Leg_Hip_1 100/100 72 Slot_CrossBow 100 Slot_ShieldBack Slot_StaffBack Slot_AxeBack Slot_Bow Slot_MeleeBackLeft Slot_MeleeBackRight 100 (Myrtana_Hero_Head_09) Bone_Head_Head_1 100 200 Bone_Head_Neck_3 100/100 200 Hero_Head_Neck_2 100/100 200 Hero_Head_Neck_1 100/100 200 Slot_RightHand_Weapon 100 0 ---------------------- Hero_Right_Hand_Finger5_3 100 115 Hero_Right_Hand_Finger5_2 100 77 Hero_Right_Hand_Finger5_1 100 108 Hero_Right_Hand_Finger4_3 100 98 Hero_Right_Hand_Finger4_2 100 92 Hero_Right_Hand_Finger4_1 100 146 Hero_Right_Hand_Finger3_3 100 94 Hero_Right_Hand_Finger3_2 100 111 Hero_Right_Hand_Finger3_1 100 134 Hero_Right_Hand_Finger2_3 100 118 Hero_Right_Hand_Finger2_2 100 99 Hero_Right_Hand_Finger2_1 100 125 Hero_Right_Hand_Finger1_3 100 86 Hero_Right_Hand_Finger1_2 100 85 Hero_Right_Hand_Finger1_1 100 107 Hero_Right_Hand_Hand_1 200 Hero_Right_Arm_Arm_2 200 Hero_Right_Arm_Arm_1 100? 200 Hero_Right_Arm_Shoulder_1 100 200 Slot_LeftHand_Shield 100 Slot_LeftHand_Weapon 100 0 --------------------- Hero_Left_Hand_Finger5_3 100 91 Hero_Left_Hand_Finger5_2 100 124 Hero_Left_Hand_Finger5_1 100 139 Hero_Left_Hand_Finger4_3 100 117 Hero_Left_Hand_Finger4_2 100 120 Hero_Left_Hand_Finger4_1 100 135 Hero_Left_Hand_Finger3_3 100 116 Hero_Left_Hand_Finger3_2 100 85 Hero_Left_Hand_Finger3_1 100 136 Hero_Left_Hand_Finger2_3 100 118 Hero_Left_Hand_Finger2_2 100 158 Hero_Left_Hand_Finger2_1 100 125 Hero_Left_Hand_Finger1_3 100 77 Hero_Left_Hand_Finger1_2 100 132 Hero_Left_Hand_Finger1_1 100 109 Hero_Left_Hand_Hand_1 100/100 200 Hero_Left_Arm_Arm_2 100/100 200 Hero_Left_Arm_Arm_1 100/100 200 Bone_Left_Arm_Shoulder_1 100 200 Hero_Spine_Spine_5 100/100 200 Hero_Spine_Spine_4 100/100 200 Hero_Spine_Spine_3 100/100 200 Hero_Spine_Spine_2 100/100 200 Bone_Spine_Spine_1 100/100 200 + 196x 4 floats
Ich begreife aber nicht, warum das Tool auf anderen PCs zwar laufen aber so einen Mist produzieren sollte.
(Sry für die Verwirrung.)
edit: PS: geile Nase! Auch haben will! (Gibt's die auch in länger?)Geändert von Shak-otay (23.07.2010 um 17:15 Uhr)
-
Ein konkretes Konzept habe ich ganz sicher nicht (ich habe auch abgesehen von den Risenfiles null Erfahrung).
Wenn ich auf sowas stoße wie das in dem Auszug, den du gepostet hast, wo am Anfang nichts greifbar ist, dann überlege ich mir erstmal, was ich in dem Abschnitt vermuten würde und ob sich da evt. schon was wiederfinden lässt. Das funktioniert fast immer. Wenn man erstmal ne vage Theorie hat kann man ja sehr schnell rausfinden, ob da was dran ist.
Ich arbeite natürlich auch oft damit, viele von diesen "Chunks" untereinander zu vergleichen, auch aus anderen Dateien. Aber halt auch nur wenn ich grad zufällig denke das wär doch was^^. Was ist immer gleich oder ähnlich? Wo gibt es Unterschiede und kann man diese irgendwie in Bezug zum 3d Modell oder wasauchimmer bringen? So Sachen halt, dadurch kann man das Gesuchte gut eingrenzen.
Wenn die Inspiration fehlt baue ich auch gerne mal Zeug (dilletantisch) in GMax nach, lass mir über MaxScript ein paar Zahlen dazu raus und schau, ob ich was davon wiedererkenne.
Hat bei dem aus deinem Abschnitt (was übrigens das ist, woran ich seit vorgestern sitze) lange nicht funktioniert... das war echt nicht einfach. Aber ich denke jetzt weiß ich alles Wichtige. Falls es dich interessiert:Spoiler:(zum lesen bitte Text markieren)Ich hab noch nie geskinnt oder geriggt^^ (aber ich hab mal nen Gothic ASC exporter gescriptet). Meine Motivation ist übrigens wie die von fast jedem alles andere als zuverlässig, überlebt nur durch wochenlange Pausen.Das wird auf jeden Fall möglich sein. Ich könnte mit den Informationen die ich habe eig. schon jetzt ein entsprechendes Tool schreiben. Wird aber denke ich erst gegen Ende der Ferien kommen.Die Animationen selbst müsstest du ja nicht machen. Du musst nur anderen die Möglichkeit dazu geben und abwarten... So versuchs ich zumindest^^Es sind immer 160 Bytes dann der Name des Objekts (Size = letztes DWORD der 160). Die floats, die bei dir unter Bone_ROOT stehen gehören also eingentlich schon zu Bone_Spine_Spine_1.
Die ersten 4 floats sind ein Quaternion (Rotation)
Die nächsten 4 sind das "Scale" (nur ne Vermutung)
Die nächsten 3 sind die Position.
(Der "Clou" dabei ist, dass man es immer in Bezug zum parent des Objekts setzen muss. Wenn die ersten vier Floats also 0 0 0 1 sind ist die Rotation dieselbe wie beim parent.)
Die nächsen 6 sind immer 1 1 1 -1 -1 -1 haben also für mich keine wichtige Aussage.
Dann kommen vier Int32, die ersten zwei sind immer -1, der nächste ist die Nummer des parents und der vierte die Anzahl "children". Dann kommt ein seltsames DWORD was weder float noch int ist aber innerhalb eines Files immer gleich ist.
Über die nächsten 17 floats weiß ich noch nichts aber es werden so Sachen wie "bounding box" darunter sein, weil an einigen Stellen die floats nie negativ sind.
Ich wollte mal vor ein paar Jahren für Gothic 3d Modelle machen und hab mich in GMax eingearbeitet. Gab damals aber für GMax keine Exporter. Also habe ich stattdessen MaxScript gelernt und welche geschrieben. Hab bis heute kein einziges ernstgemeintes Modell und keine einzige Animation erstellt Bin ich überhaupt Modder?Geändert von Baltram (25.07.2010 um 19:43 Uhr)
-
- Registriert seit
- May 2005
- Beiträge
- 1.238
Nicht die Bohne...
Heeeeee, war doch nur Spass. Alter Falter, nicht schlecht, Herr Specht!
Da kann ich mich ja auf die einfacheren Sachen wie Infos/Quests konzentrieren; der mesh-Krams ist bei dir in besten Händen.
[...] (aber ich hab mal nen Gothic ASC exporter gescriptet).
Meine Motivation [...] überlebt nur durch wochenlange Pausen.
Hab bis heute kein einziges ernstgemeintes Modell und keine einzige Animation erstellt
Bin ich überhaupt Modder?
-
- Registriert seit
- Sep 2009
- Ort
- India
- Beiträge
- 2.862
How did you lengthen the nose of the Hero and then convert the modified file into an XMAC?
I know the programme isn't complete but....
Also, does the XMAC format use XCOLs too?Geändert von Nisarg (26.07.2010 um 17:07 Uhr)
-
I imported the head in GMax, moved/scaled some of the verts and exported then the vertex data, structured in the same way as vertex data in XMACs is, in a seperate file (I used some of my unpublished code).
Since I didn't change the number of verts I just had to replace the "vertex data block" in the Ani_Hero_Head_Player._xmac with my own vertex data block.
Took around 5 minutes, so if you want do do similar things I would do the conversion for you (just send me a .obj file). But, as you already said, another tool able of doing such stuff and more will come.I never cared about collision regarding XMACs because if we make a new head/armor/whatever the existing collision meshes/objects just fit perfectly.
Inside XMACs different files are stored. The main one is in the XAC format (EMotionFX) and sometimes there is also some PhysiX stuff after the XAC file which might contain collision data (I never checked this). Also in some XACs there is an additional mesh called "CollisionMesh". But as I said we don't have to worry about that (yet).
-
- Registriert seit
- Sep 2009
- Ort
- India
- Beiträge
- 2.862
Oh well, I'll prefer to wait. My idea was to combine the Inquisitor Guard and Commandant models to create a new Inquisitor Guard model - along with some material changes to make the guards look better armoured.
In the meantime, I might release a texture I made for the Inq Guard model..
-
- Registriert seit
- Aug 2010
- Beiträge
- 4
Ok i tried this it works on some .xmac file but for example i tried to convert Titan Armor and i got this error:
[Bild: 2h4f913.jpg]
-
- Registriert seit
- Sep 2009
- Ort
- India
- Beiträge
- 2.862
As Baltram said in the first post, there are some problems with certain models. You'll get this problem with the Commandant's armour too. For now, all you can (probably) do is wait.
-
- Registriert seit
- Aug 2010
- Beiträge
- 4
Ok ill wait as the autor said its just work in progress so i hope he will release a new version which will work with all xmac files soon.
Keep up the good work!
-
- Registriert seit
- Sep 2009
- Ort
- India
- Beiträge
- 2.862
How do you 'decompile' the model files to ASCII in the first place? Maybe, though I don't really think I have the time, I could create an import/export script for the ASCII version for Maya - it probably can't handle the animations (I don't think it supports quaternions) but it can pretty much everything else.
-
Wow, hier gehts ja tatsächlich noch voran
Auch wenn der praktische Modding-Nutzen sich immer noch in Grenzen hält, sind deine Tools wirklich nützlich.
Wenn man irgendwelche Mittelalterlichen Renderings machen will, ist es ganz praktisch auf die Risen Objekte zugreifen zu können, wenn man keine Lust zum selber modelln hat.
Mit den NPCS usw folg jetzt ein noch wichtigerer Teil.
Freut mich
-
I don't "decompile the files to ASCII" and I'd be surprised if there was a ASCII equivalent of XAC (XMAC) files. I think you'll have to read the binary data directly. If you wan't to know the format (as far as I have it explored yet) I can send you the source code (write me a PM).
Since I plan to add Gothic ASC support* to the tool you could also write Maya importers/exporters for that format which will be quite easy because this format is in ASCII.
[*] Gothic ASC files can hold all important information from XMACs and (?) XMOTs and there are good im/exporters.Der praktische Nutzen fürs Risen-Modding wird mit dem nächsten Tool geadded
-
- Registriert seit
- Aug 2010
- Beiträge
- 4
Hey, Baltram are you making progress with the tool ?
-
UPDATE:
- New Version 3.0
Now, all XMACs should be converted correctly. Since some XMACs contain several meshes the tool creates now an OBJ files for each of them. They're stored together with the MTL file in a new folder having the source-XMAC's name. - Improved OBJ import script for GMax/Max
Automatic texture lookup fixed. Imported mesh gets auto-smoothed. - New Script for GMax/Max: XMAC rigging and skinning import.
More details and updated download links
- New Version 3.0
-
- Registriert seit
- Aug 2010
- Beiträge
- 4
Oh My God impressive work you really have skill with this