BSAopt und seine Tücken

Elandra_MynShuryan

Angehöriger
Hallo, Community.

Ich musste mich gestern und heute zwangsläufig mit BSAopt in der aktuellen Version 1.6.3 auseinandersetzen.

Ich möchte meine Erfahrungen mit euch teilen.

Also, die Aufgabe war: Ein BSA-Archiv zu entpacken, um die darin enthaltenen pex-Dateien im Scripts-Ordner übersetzen zu können (das kann der TESVTranslator, auf den ich hier nicht näher eingehe). Nach getaner Arbeit sollten die Dateien wieder zu einem BSA-Archiv zusammengeführt werden.

Nun, ich kannte und nutzte bereits hin und wieder den BSA Browser, aber leider kann der nur BSA-Archive entpacken. (In der Kombination mit Archive.exe ausreichend, ist aber nicht Thema dieses Threads.)

Also den oben erwähnten BSAopt installiert und geöffnet.

Schritt 1: BSA-Archiv entpacken.

  • Auf den oberen Browse-Knopf klicken, im Auswahlfenster das gewünschte BSA-Archiv anklicken und dann den Knopf "Use folder" benutzen.
  • Auf den unteren Browse-Knopf klicken, im Auswahlfenster Dateiname leer lassen und wieder "Use folder" benutzen. Dabei darauf achten, dass es derselbe Ordner ist, wo auch das BSA-Archiv liegt.*
  • Abschließend auf "Unpack" klicken und das Tool machen lassen.
Kleine Anmerkung: Das BSA-Archiv bleibt im Original erhalten, die losen Daten werden also als Kopie erstellt.

*Muss wahrscheinlich nicht sein, man kann das auch sonstwohin extrahieren, aber der besseren Übersicht wegen habe ich das so gemacht.

Übrigens: Da BSAopt verschiedene Dinge tun kann, wird der unterste rechte Button in seiner Funktion unterschiedlich beschriftet, je nachdem, was man in den Browsern eingestellt hat. So ist also das Wort "Unpack" nur dann lesbar, wenn man Einstellungen vorgenommen hat, die auch zu einem "Entpacken" führen. Dies ist also auch eine Kontrollfunktion. Steht dort nicht "Unpack", ist was falsch! (Die anderen Möglichkeiten der Button-Beschriftung sind "Copy", "Convert" und "Pack").

Schritt 2: Geplante Bearbeitung der extrahierten Dateien, in meinem Beispiel die Übersetzung der pex-Dateien im Scripts-Ordner mit TESVTranslator.

Schritt 3: Die zuvor entpackten Ordner wieder zu einem BSA-Archiv zusammenfügen.

Hier kann man jetzt einen bösen Fehler machen: Die unter Schritt 1 entpackten Ordner, z.B. meshes, textures, scripts, usw., müssen gemeinsam in einen Überordner verschoben werden, den man irgendwie benennt (ich habe ihn "Inhalte" genannt). Diesen Überordner dann im Browse-Fenster auswählen. Klug ist natürlich der, der schon in Schritt 1 diese Ordner in einen solchen Überordner entpackt.

Warum muss man das machen? Nun, wenn man beispielsweise den meshes-Ordner auswählt und zu einem BSA-Archiv packt, dann wird nur der Inhalt in das BSA-Archiv gepackt, nicht der meshes-Ordner selbst. Somit hat der BSA-Ordner nicht mehr die erforderliche Ordner-Struktur und wird unbrauchbar, oder anders: Ein solcher BSA-Ordner funktioniert nicht!

  • Mit dem oberen Browse-Knopf das Auswahlfenster öffnen, den Ordner auswählen, in dem sich die zu packenden Unterordner befinden.
  • Mit dem unteren Browse-Knopf erneut das Auswahlfenster öffnen.
  • Hier nun wieder ein ACHTUNG: Man muss jetzt den Namen des zu erstellenden BSA-Archivs angeben. Dieser muss später gleichlautend mit der ausführenden .esp-Datei sein (Beispiel: Wenn die .esp-Datei "Krötenleuchten.esp" heißt, muss das BSA-Archiv auch "Krötenleuchten.bsa" heißen). Zum Erstellen des Archives ist es egal, welchen Namen man ihm gibt, nur kann man an dieser Stelle auch gleich den richtigen Namen eintippen, um das Archiv nicht umbenennen zu müssen.**
  • Nach kompletter Namenseingabe inklusive dem .bsa-Anhängsel auf "Speichern" klicken (rechts neben "Use folder"), damit wird das leere BSA-Archiv namentlich erstellt und als Ziel definiert.
  • Der Button rechts unten sollte jetzt mit "Pack" beschriftet sein; wenn dem so ist, draufklicken und BSAopt packt das neue BSA-Archiv zur weiteren Verwendung zusammen.

**An dieser Stelle ist es möglich, dass sich noch das ursprüngliche BSA-Archiv im Ordner befindet, dann entweder abbrechen und dieses alte Archiv löschen, oder dem neuen Ordner einen anderen Namen geben, denn ich weiß nicht, ob das Tool beim Packen in ein bereits gefülltes Archiv fehlerfrei überschreibt. Besonders, wenn in Arbeitsschritt 2 (zwischen Ent- und Neupacken) Daten gelöscht wurden, die unerwünscht sind, würde ein Packen in den alten Ordner zu unerwünschten Ergebnissen führen, da dann noch im alten Archiv die Ursprungsdaten vorhanden sind.

Übrigens: Man hat hier eine weitere Kontrollmöglichkeit, wenn man das ursprüngliche BSA-Archiv nicht gleich löscht und das neue Archiv anders benennt, weil man dann die Größe der beiden Archive vergleichen kann. Hier offenbart sich schnell, ob zum Beispiel zum Erstellen der Archive unterschiedliche Kompressionseinstellungen gewählt wurden.
Aber nicht vergessen: Den alten BSA-Ordner löschen (oder anderswo archivieren) und den neuen gleichlautend zur esp umbenennen, sonst sind die Resultate der investierten Arbeit ingame nicht sichtbar! ;)

So ist meine Vorgehensweise, möglicherweise geht es auch anders und/oder einfacher, aber immerhin funktioniert es auf diese Art einwandfrei.

Noch ein wichtiger Hinweis: Vorsicht mit der Kompression!
Nach der Installation von BSAopt steht dieser in der Standardeinstellung im Reiter "Compress" auf "10 (quick)". In der Anleitung zu BSAopt findet man dazu diesen Hinweis:
Compression
Defines the compression-strength. "0" turns compression off. "9" is the normal maximum of zlib. "10 (quick)" will do a quick search for a better compression, "10 (maximum)" will do an exhausive search for the best compression and usually takes longer. By default compression will be turned off when the compression is not very high (>95%), you can force the compression regardless the efficiency via "Forced".

Ich habe inzwischen festgestellt, dass viele BSA-Archive mit der Stufe 9 (normales Maximum) komprimiert sind, das mal so als vergleichender Hinweis.

Viel Spaß mit BSAopt wünscht
Elandra
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Facke
Um BSA's zu erstellen verwende ich immer das CK-eigene Tool Archive.exe. Damit funktioniert auch die Komprimierung. Vorsicht ist allerdings bei Strings Dateien geboten, da musste ich die Komprimierung abschalten, da sonst "Lookup failed" Fehler in den DLStrings auftraten.
 
  • Like
Reaktionen: Ablaze666
Danke für den Text, mein Kopf hat aber bereits nach der Hälfte abgeschalten, zu viel Text für Dinge die eh laufen ;)

Ich mein, so viel Aufwand und Gedanken hab ich mir nie gemacht, einfach entpackt und gut is ^^

Also immer die BSAs' entpackt, die Dateien in einem übergeordneten <Data> Ordner gepackt (meshes, textures, scripts etc)

Dann übersetzt was zu übersetzen galt und abschließen mit der Archive.exe gepackt, super einfach und kinderleicht zu bedienen

Grüße
 
Ist halt dann noch ein Programm, was geöffnet werden muss.

Ich lasse ja den BSAopt offen, fummel schnell in den pex-Files herum (ein paar gehässige Fehler reinhauen, damit alle sich ärgern :-D ), und pack es dann wieder mit demselben Prog.

CK habe ich zwar auch downgeloadet und schon verwendet, aber die archive.exe kenne ich nur namentlich aus diesem Forum, weiß gar nicht, wo die im CK rumliegt.

Von daher ist das mit dem oben beschriebenen Tool einfacher für mich (wenn ich nicht gerade vergesse, "Compress" auf 0 zu stellen :-D ).

Gruß
Elandra
 
Ich hatte bisher immer gedacht, dass man mit BSAOpt nur entpacken kann :D

Die Archive.exe kommt ja mit dem CK und liegt dann im Data Ordner (oder eins drüber).

Also ich find, wenn man nicht vergisst die richtigen Häckchen zu setzen, das diese Variante auch viel Spass machen kann ;)

Gruß
 
Ich stehe gerade vor einem Rätsel.

Bei meinem aktuellen Übersetzungsprojekt muss ich wieder mal ein BSA-Archiv entpacken, um eine pex-Datei im Scripts-Ordner einzudeutschen.

Gesagt - getan, so langsam sind mir die Handgriffe mit BSAopt ja schon in Fleisch und Blut übergegangen.
b025.gif


Aber: Während das originale BSA-Archiv 146.964 KB groß ist, ist das neue nach dem Packen nur 146.366 KB groß - es fehlen 598 KB!!!
e010.gif


Ich habe das nun schon 5-mal oder so gemacht, immer peinlichst darauf geachtet, dass alle Einstellungen im BSAopt korrekt sind - immer dasselbe Resultat.

Ich habe auch schon mal das alte Archiv mit dem BSABrowser entpackt, vielleicht läuft ja schon beim Entpacken was schief, aber auch in diesem Fall ist nach dem Packen mit BSAopt das neue Archiv exakt wieder um 598 KB kleiner.

Ich weiß nicht weiter!
c090.gif


Gruß
Elandra
 
Ach so, ja, könnte sein. :)

Dass das gleich 598 KB ausmachen kann.

Ich war davon ausgegangen, dass das neue Archiv gleich oder annähernd gleich groß sein muss, schließlich habe ich nur eine 4 KB große pex-Datei übersetzt.

Dass unterschiedliche Tools da unterschiedlich vorgehen (und dass das Spiel das überhaupt mitmacht), hatte ich nicht ins Kalkül gezogen.

Gruß
Elandra
 
Zum einen können manche Tools die Daten in der BSA-Datei komprimieren, was aber manchmal Probleme macht, wie du ja auch schon festgestellt hast. Und zum anderen kann z.B. BSAopt doppelte Dateien (in verschiedenen Ordnern) erkennen, und packt diese nur 1x ins Archiv.
 
Doppelte Dateien könnten aber gewollt sein, das wäre dann nicht besonders schlau, wenn der BSAopt da eigenmächtig was weglässt.

Möglich, dass genau das passiert ist.

Wie ist das denn? Die Dateien werden doch in der dazugehörigen esp/esm via eines Pfades aufgerufen, in welchem genau drin steht, wo sich die Mesh oder Textur befindet, oder?

Wenn man die Datei also aus einem Ordner entfernt, führt das zu einem Fehler ingame (fehlende Mesh - keine Ahnung, was dann passiert, fehlende Textur - lila Mesh).

Gruß
Elandra
 
Nein, weggelassen wird die Datei nicht. Also, in der BSA-Datei gibt es am Anfang eine Art Inhaltsverzeichnis, in welchen Ordner die Datei gehört, und wo sie in der BSA-Datei abgelegt ist. Wenn jetzt eine Datei schon einmal an anderer Stelle gespeichert wurde, wird einfach nur ein neuer Eintrag im Inhaltsverzeichnis vorgenommen, welcher auf die bereits vorhandene Datei verweist.
Also: Datei A = Position 1, Datei B = Pos. 2, Datei C = Pos. 1, Datei D = Pos. 3.
Schaust du in die BSA rein, siehst du alle 4 Dateien, beim Entpacken kommen auch 4 Dateien raus, die BSA selbst ist aber (ohne Kompression) nur so groß wie 3 Dateien (plus etwas fürs Inhaltsverzeichnis).
 
  • Like
Reaktionen: Elandra_MynShuryan