Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Custom Charakterportraits in DSA3
#3
Hi Thorgrim, erst einmal eine gute Nachricht:

Ähnlich wie in Schick und Sternenschweif lassen sich die vorgegebenen Charakterbilder durch Modifikation der jeweiligen Bilddatei im jeweiligen Spielarchiv verändern.
Hier z. B. zu Schick: Da haben wir die HEADS.DAT bearbeitet und konnten so ein bestehendes Charakterbild ändern: 
[Heads.dat entpacken?] https://www.crystals-dsa-foren.de/showth...p?tid=6192

Riva hat ein etwas anderes Archivformat; dort liegen die Charakterbilder in der DATA/RIVA.ALF an folgender Stelle:

MODULECHARAC > CHEADS.NVF für die „normalen“ Bilder bzw.
MODULECHARAC > CHEADS2.NVF für die „verletzte“ Variante.

Neu ist, dass bei niedrigen LP auf eine andere Variante umgeschaltet wird, d. h. man könnte hier pro Held sogar zwei Bilder ändern.
Oder man nimmt für die „verletzte“ Variante zunächst die normale zum Testen.

Die CHEADS.NVF/CHEADS2.NVF kann man ähnlich wie die HEADS.DAT mit einem NVF-Tool lesen, in Bitmaps entpacken, bearbeiten und erneut packen.
Theoretisch sollte eine Version von Hendriks nltpack wieder eine funktionierende RIVA.ALF packen — damit hatte ich bisher nur wenig Glück und habe mir daher ein eigenes Tool für die RIVA-ALF-Archive geschrieben.
Gern schaue ich mir meine NVF-/ALF-Tools noch einmal an, um etwas Passendes für Riva und diesen Einsatzzweck zu erstellen.

Hier die aktuell nicht so rosige Nachricht:
Ich liege gerade mit Virusinfekt flach und habe nur begrenzte Kapazitäten.
Aber ich schaue mir das in den kommenden Tagen gern noch einmal genauer an, sobald mein Kopf nicht mehr in Watte ist.

Edit: Es ging doch ohne viel Reiberei — Schritt-für-Schritt

A) Vorbereitung & Backup
  1. rivaxtract aus Github Releases (unter Assets) herunterladen: https://github.com/cmsautter/RivaXtractCLI/releases
    Ich nehme einfach mal an, für Windows, dann wäre das der Direktlink: rivaxtract-0.1.0-win-x64.zip
  2. rivaxtract-0.1.0-win-x64.zip extrahieren.
  3. Riva-Ordner ausfindig machen und DATA/RIVA.ALF sichern (z. B. Kopie als RIVA.ALF.BAK).
  4. RIVA.ALF zusammen mit der extrahierten rivaxtract.exe in einen Arbeitsordner kopieren.

B) Dateien aus dem Archiv extrahieren
Öffne eine Eingabeaufforderung/Terminal im Arbeitsordner und führe Folgendes aus:
Code:
.\rivaxtract.exe read RIVA.ALF MODULECHARAC CHEADS.NVF -o CHEADS.NVF
.\rivaxtract.exe read RIVA.ALF MODULECHARAC CHEADS2.NVF -o CHEADS2.NVF

C) NVF entpacken, Bitmaps bearbeiten, wieder packen
  1. NVF_Packer aus dem alten Post herunterladen: https://www.crystals-dsa-foren.de/showth...#pid174354
    Bzw. hier der Direktlink: nvf_packer_v1_win_x64.zip.
  2. NVF_Packer extrahieren.
  3. CHEADS.NVF sowie optional CHEADS2.NVF in den Ordner input_nvf des extrahierten NVF_Packer kopieren.
  4. nvf_packer.exe ausführen. Die extrahierten Bitmaps liegen danach in output_bmp.
  5. Eines der Bitmaps der gewünschten Charakterklasse ersetzen/überschreiben. Jeweils für CHEADS_NVF bzw. CHEADS2_NVF.
  6. nvf_packer.exe erneut ausführen. Die neu gepackten Dateien liegt in recompressed als modifizierte CHEADS.NVF / CHEADS2.NVF.

D) Modifizierte Dateien ins Archiv schreiben
  1. Die modifizierten NVFs sinnvoll umbenennen, z. B. CHEADS_MOD.NVF und CHEADS2_MOD.NVF, und in den Ordner mit rivaxtract.exe kopieren.
  2. Im selben Ordner den folgenden Befehl ausführen — er fügt die neuen Dateien CHEADS_MOD.NVF und CHEADS2_MOD.NVF in das ALF-Archiv ein. Gegebenenfalls anpassen, falls nur eine Datei verändert wurde oder die Dateinamen abweichen:
Code:
.\rivaxtract.exe modify RIVA.ALF --out RIVA_MOD.ALF --set "MODULECHARAC/CHEADS.NVF=CHEADS_MOD.NVF" --set "MODULECHARAC/CHEADS2.NVF=CHEADS2_MOD.NVF"

Dadurch wird RIVA_MOD.ALF erzeugt, in dem die beiden Dateien entsprechend ersetzt wurden.

E) Austausch im Spielordner
  1. RIVA_MOD.ALF in den DATA-Ordner von Riva kopieren.
  2. Die alte RIVA.ALF löschen bzw. als RIVA.ALF.BAK (Backup) umbenennen (falls noch nicht geschehen).
  3. RIVA_MOD.ALF in RIVA.ALF umbenennen.

Wenn alles geklappt hat, ist das gewünschte Bild im Spiel ersetzt. Bei mir hat Thorgrim (nicht du, der andere) sein neues Aussehen jedenfalls klanglos akzeptiert.

[Bild: attachment.php?aid=7190]

Anmerkung: Wie Henne bereits bemerkte, lassen sich in Sternenschweif/Riva die Charakterbilder nicht mehr individuell pro Held festlegen. Stattdessen gibt es „Schablonen“, die für alle Helden in allen Spielständen gelten. Mit dem oben beschriebenen Vorgehen ersetzt man diese Schablone; dadurch wird das entsprechende Bild in allen bestehenden sowie neuen Spielständen geändert. Erst durch eine Neuinstallation (bzw. durch das Zurücksetzen der RIVA.ALF auf die gesicherte Variante) werden die Schablonen wieder auf die ursprünglichen Bilder zurückgesetzt. Daher nimmt man am besten ein Bild, das zur Charakterklasse passt, aber eher „hässlich“ ist bzw. das man in anderen Spielständen bisher vermieden hat. ;) Auch sollte diese Modifikation erst nach Installation aller offiziellen Patches vorgenommen werden (die aktuellen Versionen — Steam, GOG und Helden-Edition — sind bereits gepatcht), da andernfalls ein späterer Patch ggf. nicht mehr korrekt funktioniert.



Das neue RivaXtract-CLI-Tool, das ursprünglich ein 1:1-C#-Klon von Hendriks nltpack war, kann übrigens noch mehr: z. B. lassen sich mittels export-json bzw. export-views Sichten auf die im Archiv gepackten Daten erstellen und mit build wieder zusammenbauen. Das ist nützlich, wenn man mehr als nur ein paar Dateien modifizieren möchte.

Allerdings sollte man mit Links vertraut sein (standardmäßig werden Hardlinks erzeugt; Symlinks oder Kopien sind ebenfalls möglich) und den Aufbau der ALFs grundlegend verstehen: Module besitzen indizierte Slots; jeder Slot zeigt auf einen Eintrag in der Dateiliste des Archivs. Die Einträge der Dateiliste sind benannt. Doppelbenennungen, Mehrfachverweise sowie Dummy-Einträge (Modul-Slots ohne Dateiindex) sind möglich — und davon wird Gebrauch gemacht.

Daher bin ich von nltpack abgewichen: Die ALF-Struktur wird nun verbatim als JSON festgehalten (nicht mehr nur `.FN`/`.MOD` wie bei nltpack), und die Verlinkungen in die Dateiliste werden in den Views standardmäßig als Links exportiert.

Wichtig: Beim späteren Zusammenbauen sind nur die JSON-Dateien sowie die (nummerierten) Dateien in `objects` relevant. Für `MODULECHARAC>CHEADS.NVF` bzw. `MODULECHARAC>CHEADS2.NVF` könnte man also alternativ die `objects/00010.dat` bzw. `objects/00421.dat` modifizieren. Die genauen Zuordnungen lassen sich mittels der erzeugten Views nachvollziehen.


Angehängte Dateien Thumbnail(s)
   
Zitieren


Nachrichten in diesem Thema
RE: Custom Charakterportraits in DSA3 - von cmfrydos - 09.11.2025, 21:05



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste