Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Results 1 to 5 of 5
  1. View Forum Posts #1 Reply With Quote
    Moderator George's Avatar
    Join Date
    Sep 2010
    Posts
    540
     
    George is offline

    Tutorial - Portieren von Rüstungen aus GD nach G3

    Portieren von Rüstungen aus GD nach G3

    Ich werde in diesem Tutorial die „Praetor“ Rüstung aus GD nach G3 portieren.
    Spoiler:(zum lesen bitte Text markieren)




    Voraussetzungen

    - Gothic 3 (ich benutze CP 1.74) + Gothic 3 Götterdämmerung (ich benutze Version 1.0.8)
    - TinyHexer (http://www.chip.de/downloads/Tiny-He..._13014623.html)
    - Lichtwichts Script (http://forum.worldofplayers.de/forum...d.php?t=243383)
    - Entpackte Version der GD Dateien: _compiledAnimation.pak, _compiledImage.pak, _compiledMaterial.pak, _compiledMesh.pak, Templates.pak, Strings.pak
    - Entpackte Version der G3 Datei: Templates.pak



    Vorbereitung

    1)
    Bei diesem Schritt hilft euch dieses Tutorial

    Entpackt zuerst die oben genannten GD Dateien in einen Ordner „GDEntpackt“: _compiledAnimation.pak, _compiledImage.pak, _compiledMaterial.pak, _compiledMesh.pak, Templates.pak, Strings.pak
    Und die G3 Datei in einen Ordner „G3Entpackt“: Templates.pak

    WICHTIG: Entpackt die GD Dateien in eine anderes Verzeichnis als die Datei aus G3.


    2)
    Erstellt auf eurer Festplatte einen Ordner mit einem Namen eurer Wahl. Ich nenne meinen für dieses Tutorial „Arbeitsverzeichnis“.
    In dem Ordner erstellt ihr dann 5 weitere Ordner und zwar: „_compiledAnimation“, „_compiledImage“, „_compiledMaterial“, „_compiledMesh“ und „Templates“ (natürlich ohne die Anführungszeichen).


    3)
    Ladet euch hier g3_tple_description_***lw.7z herunter.
    In diesem Archiv befindet sich eine tinyhexer_readme.txt. Am Ende dieser stehen Installationshinweise. Installiert also den TinyHexer und das Script.

    Habt ihr das geschafft könnt ihr mit dem nächsten Schritt weitermachen.



    1. Template die zu dem Item gehört finden

    Öffnet die Stringtable.ini (befindet sich in GDEntpackt\Strings\). Sucht in ihr nach dem Namen des gewünschten Gegenstandes.
    Ich suche nach „Praetor“, da das der Name des Gegenstandes ist den ich portieren will.

    Ich finde dann das hier:
    Code:
    FO_GFG_Praetor_Armor_01=Praetor;;Praetor;;Armure de Prétorien;;Praetor;;Pretor;
    Das sagt mir das die Template „GFG_Praetor_Armor_01“ im Namen hat. D.h. ein Teil des Namens der Template ist alles vor dem „=“, nur ohne das „FO_“.
    Deswegen durchsuche ich jetzt denn GD Templates Ordner (GDEntpackt\Templates\), den ihr vorher hoffentlich entpackt habt, nach „GFG_Praetor_Armor_01“.
    Bei mir wird nach dem Suchvorgang genau eine Datei angezeigt: GFG_New_Armours_GFG_Praetor_Armor_01.tple.



    2. Die „erste“ Datei (das Mesh) und den MaterialSwitch finden

    Öffnet die Datei mit dem TinyHexer und lasst Lichtwichts Script drüberlaufen. Wie das geht seht ihr auf dem Bild.
    [Bild: Bild_17.png]

    1) Klicke auf das rot markierte bei 1. So öffnest du die Strukturansicht.
    2) Klicke das rot umrahmte bei 2.
    3) Wähle Lichtwichts Script aus, also Klick bei Markierung nahe der 3.


    Wenn das Script fertig geladen hat, sucht nach „.fxa“ (Das Suchfenster öffnet ihr mit Strg+F). Jetzt springt das Script an eine Stelle, das dürfte dann so aussehen:
    [Bild: GDtoG3TuTBild_1.PNG]

    Kopiert jetzt alles was vor dem gelb markierten „.FXA“ steht. In diesem Beispiel wäre das zu kopierende „GFG_Hero_Body_KingGuard_01“.

    Jetzt suchen wir im _compiledAnimation Ordner (GDEntpackt\_compiledAnimation\) nach dem gerade eben kopierten Dateinamen.
    Ihr müsstet eine Datei namens GFG_Hero_Body_KingGuard_01.xact finden.
    Kopiert die GFG_Hero_Body_KingGuard_01.xact in den _compiledAnimation Ordner (Arbeitsverzeichnis\_compiledAnimation\) der sich im Arbeitsverzeichnis befindet..

    Diese Datei ist das Mesh der Rüstung und da die Rüstung ein bewegliches (z.B. beim laufen) ist, reicht hier kein gewöhnlicher Mesh, dazu aber später mehr.


    Material Switch

    Wo wir die Template gerade geöffnet haben, nutzen wir gleich die Gelegenheit und schauen auf was der Material Switch steht, denn wir brauchen ihn für Schritt 3.
    Sucht in der Strukturansicht nach „MaterialSwitch“.
    Ihr solltet nun das sehen:
    [Bild: GDtoG3TuTBild_18.PNG]

    Wie ihr auf dem Bild sehen könnt (ist rot umrahmt), steht der MaterialSwitch „1“, merkt ihn euch.
    Was das bedeutet erkläre ich später.



    3. Die zweite Datei (die Material) finden

    Als nächstes öffnet die gerade eben kopierte Datei mit dem TinyHexer. Lichtwichts Script wird jetzt nicht benötigt.
    Scrollt im TinyHexer jetzt ganz nach unten. Dort dürfte es ungefähr so aussehen.
    [Bild: GDtoG3TuTBild_2.PNG]

    Interessant für uns ist dieses hier: GFG_Hero_Body_KingGuard_01.xshmat
    Denn in dieser Datei, sie nennt sich Material, sind die Texturen der Rüstung eingetragen.
    Deswegen durchsuchen wir jetzt den _compiledMaterial Ordner (GDEntpackt\_compiledMaterial\) nach dieser Datei und kopieren sie in den _compiledMaterial Ordner (Arbeitsverzeichnis\_compiledMaterial\) der sich Arbeitsverzeichnis befindet.

    WICHTIG: Am Ende der „.xact“ können mehrere „.xshmat“ eingetragen sein. Wenn das der Fall ist, führt Schritt 4 für jede „.xshmat“ aus.



    4. Die Texturen in der Material finden

    Als erstes öffnet ihr die kopierte „.xshmat“-Datei und lasst anschließenden Lichtswichts Script drüberlaufen.
    Wie ihr euch vielleicht erinnert, stehen in dieser Datei die Namen der Texturen. Sucht also nach „.tga“.
    [Bild: GDtoG3TuTBild_3.PNG]

    Wie schon in Punkt 2, nur anstatt .fxa eben .tga, kopieren wir jetzt alles was vor .tga steht, also: „G3_Human_KingsGuard_Body_Diffuse_S1“.

    Ich komme nun auf den Material-Switch zurück, der in diesem Falle „1“ beträgt.
    D.h. Die richtige Textur heißt „G3_Human_KingsGuard_Body_Diffuse_S2“, obwohl in der Material "S1" steht.
    Wenn der Material Switch „0“ wäre, würde die Textur „G3_Human_KingsGuard_Body_Diffuse_S1“ heißen.
    Wenn er „2“ wäre „G3_Human_KingsGuard_Body_Diffuse_S2“.

    Durchsucht den _compiledImage Ordner (GDEntpackt\_compiledImage\) nach dem kopierten, entfernt aber die „1“ hinter „G3_Human_KingsGuard_Body_Diffuse_S“.
    Ihr sucht also nach „G3_Human_KingsGuard_Body_Diffuse_S“.

    Wenn die Suche fertig ist, müssten euch 2 Suchergebnisse angezeigt werden: „G3_Human_KingsGuard_Body_Diffuse_S1.ximg“ und „G3_Human_KingsGuard_Body_Diffuse_S2.ximg“.
    Ihr nehmt die „G3_Human_KingsGuard_Body_Diffuse_S2.ximg“, weil der Material Switch ja „1“ ist.

    Da dies ein Körperteil-Textur ist und diese in G3 immer Ordner „_compiledImage\animation“ liegen, erstellt ihr im _compiledImage Ordner (Arbeitsverzeichnis\_compiledImage\),
    ich meine den der im Arbeitsverzeichnis liegt, einen Ordner namens „animation“. Kopiert in diesen die Textur hinein.
    Benennt die kopierte Textur in „G3_Human_KingsGuard_Body_Diffuse_S1.ximg“, d.h. Macht aus dem „S2“ ein „S1“.


    Sucht nach weiteren Texturen in der .xshmat. Achtet auch bei diesen auf den Material Switch und das Umbenennen,
    Wenn mal keine Textur vorhanden ist, die der Nummerierung durch dem Material-Switch entspricht, kopiert einfach die „S1“, also genau die, die in der .xshmat steht.

    Kopiert sie alle in den animation Ordner. In einer .xshmat sind MAXIMAL 3 Texturen eingetragen.
    Achtet jedesmal darauf ob ihr schon eine Textur mit gleichem Namen kopiert habt, den die Suchfunktion fängt, wenn sie nichts mehr findet, wieder vom Anfang aus an zu suchen.
    So würdet ihr dann in einer Endlosschleife hängen und nie fertig werden .



    5. Erstellen der Template

    Dieser Arbeitsschritt ist wahrscheinlich der schwierigste. Aber keine Angst, das schafft ihr schon

    Damit man die Rüstung im Spiel spawnen kann, muss man noch eine Template für die Rüstung erstellen.
    Am einfachsten geht das indem man eine bereits vorhandene Rüstungs-Template klont.
    Die Templates für G3 Rüstungen befinden sich in „G3Entpackt\Templates\NPC\__Master_Humans“. Sie fangen alle mit „HumanBodyParts_Body_“ an.
    Erstellt jetzt im Templates Ordner (Arbeitsverzeichnis\Templates\), der im Arbeitsverzeichnis liegt, einen Ordner namens „NPC“ und in diesem einen mit dem Namen „__Master_Humans“.
    Kopiert danach eine Template und die Datei „HumanBodyParts_Body.lrtpldatasc“ in den Ordner. In meinem Beispiel nehme ich die „HumanBodyParts_Body_Body_AssMage.tple“.


    Als nächstes benennen wir die Template um.
    Aus „HumanBodyParts_Body_Body_AssMage.tple“ machen wir „HumanBodyParts_Body_Body_PraetorGD.tple“.

    Das war der leichte Teil, jetzt müssen wir die Template noch intern umbenennen und ihre Hashes bearbeiten.
    Dazu öffnet die Template mit dem TinyHexer und lasst Lichtwichts Script drüberlaufen.


    Umbenennen

    Scrollt nun zu der Stelle herunter die auf dem Bild zu sehen ist.
    [Bild: GDtoG3TuTBild_4b.PNG]

    An dieser Stelle fängt die Stringtable der Template an.


    Was ist die Stringtable?

    Wenn ihr euch in der Strukturansicht umschaut seht ihr doch sicher die „grünen Wörter“.
    Diese Wörter stehen alle in der Stringtable und an vielen Stellen der Datei wird auf sie verlinkt.
    D.h. wenn man die „grünen Wörter“ ändern will, muss man die Änderung in der Stringtable vornehmen.


    Klickt in der Strukturansicht auf „HumanBodyParts_Body_Body_AssMage.tple“ (rot markiert im obigen Bild), jetzt dürfte im Hex-Editor etwas markiert worden sein.
    Das müsste so in etwa aussehen.
    [Bild: GDtoG3TuTBild_5.PNG]


    Ändern wir nun „ HumanBodyParts_Body_Body_AssMage.tple“ in „HumanBodyParts_Body_Body_PraetorGD.tple“, also den neuen Namen der Template, um.
    [Bild: GDtoG3TuTBild_6.PNG]


    Weil der neue Name länger ist als der alte müssen wir noch die Längenangabe anpassen.
    Dazu klickt in der Strukturansicht auf die 37 vor HumanBodyParts_Body_Body_AssMage.tple.
    [Bild: GDtoG3TuTBild_7.PNG]


    Jetzt wird im Hex-Editor 25 00 markiert. D.h. der alte Name hatte 37 Zeichen, denn wenn man den Hex-Wert 25 in einen dezimalen Wert umwandelt so beträgt dieser 37.
    Der neue Dateiname hat 39 Zeichen, d.h. wir wandeln 39 in einen Hex-Wert um.
    Der Hex-Wert lautet 27. Also machen wir aus dem 25 00 ein 27 00.
    Das sollte dann so aussehen:
    [Bild: GDtoG3TuTBild_8.PNG]


    Jetzt drückt die beiden grünen Pfeile in der Menüleiste der Strukturansicht, damit aktualisiert ihr das Skript.
    Wenn ihr alles richtig gemacht habt sollte es, wenn ihr wieder zur Stringtable runtergescrollt habt, so aussehen.
    [Bild: GDtoG3TuTBild_9.PNG]


    Jetzt machen wir das Ganze noch mit Body_AssMage, das in der Strukturansicht eine Zeile unter dem vorher umbenannten steht. Aus Body_AssMage machen wir also Body_PreatorGD.
    Auch hier müssen wir die Längenangabe wieder anpassen. Alter Hex-Wert 0C 00, d.h. 12 Zeichen.
    Der neue Name hat 2 Zeichen mehr als der alte, also 14 Zeichen. Als Hex-Wert 0E 00, also machen wir aus 0C 00 ein 0E 00.
    Aktualisiert wieder das Skript, sieht es so aus ist alles gut.
    [Bild: GDtoG3TuTBild_10.PNG]


    Zuweisen des richtigen Meshes

    Eigentlich ist dieser Schritt den beiden vorherigen sehr ähnlich. Genauer gesagt müssen wir eigentlich wieder etwas „umbenennen“.
    Erinnert ihr euch noch an die Datei die wir ein Punkt 2 kopiert haben? Richtig, es war das Mesh der Rüstung.
    Dieses Mesh müssen wir in unserer neuen Template noch eintragen.
    Wie in Punkt 2 suchen wir in der Strukturansicht wieder nach „.fxa“. Für uns sind nur die Fundstellen in der Stringtable interessant.
    Ihr dürftet „G3_Hero_Body_DarkMage.FXA“ und „G3_Hero_Body_DarkMage.fxa“ finden, dass sind die Links auf die Meshes der Rüstung von der die Template stammt.
    Diese beiden müssen wir so verändern, dass sie auf das Mesh unserer Rüstung zeigen.

    Unsere Mesh heißt „GFG_Hero_Body_KingGuard_01.xact“, folglich müssen „G3_Hero_Body_DarkMage.FXA“ in „GFG_Hero_Body_KingGuard_01.FXA“,
    und „G3_Hero_Body_DarkMage.fxa“ in „GFG_Hero_Body_KingGuard_01.fxa“ ändern.
    Das geht wie in den vorigen Schritten und vergesst nicht die Längenangabe anzupassen.

    Hat alles geklappt und das Script nach dem aktualisieren keinen Error gebracht seid ihr bereit für den nächsten Schritt.
    Wenn ihr wollt könnt ich nochmal nach .fxa suchen und überprüfen ob alles geklappt hat.


    Bearbeiten der Hashes

    Wir müssen Hashes der Template einzigartig machen.
    Die Hashes sind so etwas wie Namen, man beötigt sie z.B. um einem NPC eine Rüstung zuzuweisen, aber das wäre wieder ein anderes Tutorial.

    Es gibt 2 Hashes pro Template, den Item Hash (wird in der Strukturansicht als „Item – Header“ bezeichnet)
    und den Reference Hash (wird in der Strukturansicht als „Reference – Header bezeichnet).
    Scrollt also in der Strukturansicht runter bis ihr auf den „Item Hash“ stoßt.
    [Bild: GDtoG3TuTBild_11.PNG]

    Habt ihr ihn gefunden klickt auf das im obgien Bild rot umrahmte.
    Der Hex-Editor springt jetzt an die Stelle, an der sich der Hash befindet.
    [Bild: GDtoG3TuTBild_12.PNG]

    Allerdings ist der Hash länger als das markierte, denn bisher ist nur ein Teil des Hashes markiert. Auf dem nächsten Bild seht was alles zum Hash gehört.
    [Bild: GDtoG3TuTBild_13.PNG]


    Schaltet jetzt auf den Überschreiben-Modus des Hex-Editors um. Macht dazu einen Rechtsklick auf das „Einfügen“ in der Leiste die am Boden des Hex-Editors ist.
    In dem sich jetzt öffnenden Kontextmenü entfernt ihr den Haken vor „Einfügen-Modus“.

    Überschreibt den Hash mit zufälligen Zahlen zwischen 0 und 9 und Buchstaben von A bis F, d.h. Ihr könnt einfach wild in die Tasten hauen .

    Bei mir sieht das dann so aus:
    [Bild: GDtoG3TuTBild_14.PNG]


    Nun muss noch der Reference-Hash geändert werden. Wenn ihr in der Strukturansicht etwas weiter nach unten scrollt, dürftet ihr ihn finden (haltet nach „Reference - Header„ Ausschau).
    Macht hier das gleiche wie beim „Item-Hash“, ABER gebt etwas anderes ein als beim „Item-Hash“.

    Bei mir sieht das dann so aus:
    [Bild: GDtoG3TuTBild_15.PNG]


    Aktualisiert das Skript, wenn keine Fehler auftreten speichert die Template ab. Das geht auf „Datei“ und dann „Speichern“.


    Eintragen in die *.lrtpldatasc

    Öffnet die „HumanBodyParts_Body.lrtpldatasc“ die sich im gleichen Ordner wie die Template befindet (G3Entpackt\Templates\NPC\__Master_Humans).
    Ihr könnt sie mit dem normalen Windows Editor (Notepad) öffnen.

    Kopiert eine Zeile und fügt sie am Ende der Datei in eine neue Zeile ein.
    Als Beispiel nehme ich diese Zeile:
    Code:
    {332a4295-8d64-49b7-9e42-3877c6b2ef38}:0=HumanBodyParts_Body_Body_NrdScout.tple

    Als nächstes ersetzen wir den alten Dateinamen mit dem der neuen Template.

    Code:
    {332a4295-8d64-49b7-9e42-3877c6b2ef38}:0=HumanBodyParts_Body_Body_PraetorGD.tple

    Nun muss noch dieser Teil „332a4295-8d64-49b7-9e42-3877c6b2ef38“ angepasst werden.

    Dazu geht, falls ihr den Hex-Editor noch nicht beendet habt (falls das der Fall ist, öffnet ihr die Template wieder mit dem TinyHexer und lasst Lichtwichts Skript drüberlaufen),
    in die Strukturansicht.
    Sucht dort wieder nach dem Item-Hash. Und kopiert das auf dem Bild blau umrahmte.
    [Bild: GDtoG3TuTBild_16.PNG]

    Ersetzt in „HumanBodyParts_Body.lrtpldatasc“ das „332a4295-8d64-49b7-9e42-3877c6b2ef38“ mit dem eben kopierten.

    Die neue Zeile sollte dann so aussehen:
    Code:
    {67677468-8766-68BE-7785-6D766AF6C666}:0=HumanBodyParts_Body_Body_PraetorGD.tple
    Speichert die Datei ab.



    7. Ins Gothic 3 Verzeichniss kopieren

    Damit ihr die Rüstung auch in Gothic 3 benutzen könnt, müsst ihr die portierten Dateien noch ins Gothic 3 Verzeichnis kopieren.
    Kopiert den Inahlt des Arbeitsverzeichnisses nach „Gothic III\Data\“.



    8. Anmerkungen

    Dieses Tutorial ist bisher auf Rüstungen spezialisiert.
    Falls Interesse da ist, werde ich das Tutorial noch so verändern, dass man auch andere Items (Waffen, Helme...) von GD nach G3 holen kann.

    Falls ihr etwas nicht verstanden habt oder sonstige Fragen, Anmerkungen oder Verbesserungsvorschläge habt, schreibt sie in diesen Thread oder schickt mir ne PN.


    Glückwunsch, ihr habt es bis ans Ende des Tutorials geschafft. Ich drücke euch die Daumen das alles funktioniert.

    Ich habe in den Anhang noch das „Ergebniss“, also die Rüstung, des Tutorials eingefügt.

    Hier noch ein Bild der Rüstung in Gothic 3. Nur als Beweis das ich nicht gelogen habe
    Spoiler:(zum lesen bitte Text markieren)

    mfg. -George-
    Attached Files
    Last edited by George; 30.05.2011 at 18:01. Reason: Tutorial verbessert...

  2. View Forum Posts #2 Reply With Quote
    Ehrengarde mason xyz's Avatar
    Join Date
    Jul 2010
    Location
    Gothic 3 - Editing und Modifikationen
    Posts
    2,093
     
    mason xyz is offline
    sehr detailliert, daher auch für neueinsteiger zu schaffen. 1a

  3. View Forum Posts #3 Reply With Quote
    Deus WernerTWC's Avatar
    Join Date
    Feb 2005
    Location
    Germany/NRW
    Posts
    13,341
     
    WernerTWC is offline
    Habs jetzt nur grob überflogen, sieht aber schomal richtig gut aus!

    Eines ist mir aufgefallen, an der Stelle:
    Was ist die Stringtable?
    Da benutzt Du einen Spoiler, ... die Nutzung des Spoiler-Tags an der Stelle verstehe ich nicht.

    Die 2 anderen Spoiler für die Bilder müssen auch nicht unbedingt sein, kannst also, wenn Du magst, die Spoiler ganz rausschmeißen.

  4. View Forum Posts #4 Reply With Quote
    Moderator George's Avatar
    Join Date
    Sep 2010
    Posts
    540
     
    George is offline
    Erstmal Danke für das Feedback.
    Freut mich, dass euch das Tutorial gefällt.
    Quote Originally Posted by WernerTWC
    Da benutzt Du einen Spoiler, ... die Nutzung des Spoiler-Tags an der Stelle verstehe ich nicht.
    So auf den zweiten Blick gebe ich dir Recht. Habe das mal geändert.

  5. View Forum Posts #5 Reply With Quote
    Ehrengarde Korn's Avatar
    Join Date
    Jan 2009
    Location
    Bayern
    Posts
    2,689
     
    Korn is offline
    Danke dafür
    Gefällt mir gut.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide