Platten transferieren

Platten in ein anderes Plattenset bewegen

Die Neverwinter Nights Community bringt fasst täglich eine neu texturierte oder kombinierte Version der bestehenden Plattensets heraus. Da stellt sich manch einem die Frage: Wie geht das?
Dieses Tutorial soll euch einen kleinen Einblick darin geben. Im folgenden werde ich euch beschreiben, wie ich die Arena des Stadt(Außen) Plattensets in das Burg(Innen) Plattenset transferiert habe. Das Endergebnis sollte außerdem neue Texturen besitzen, daher entsteht in diesem Fall ein gänzlich neues Plattenset mit eigenem Plattensetkürzel. Es wäre sicherlich einfacher den Transfer des Armeisenhügel aus dem ländlichen Plattenset als Erweiterung zu beschreiben. Aber auf diese Weise würde das Tutorial nicht alle Punkte abdecken.

Erforderliche Programme:
NWNViewer
ITP Tool Final
NWN TLK Editor 1.1 oder höher
NWNMDLCOMP (Optional)

Dateien extrahieren

Bildschirmfoto

Wie schon beim duplizieren eines Plattensets, solltet ihr zunächst die erforderlichen Quelldateien beider Plattensets (das Quellplattenset, in unserem Fall Stadt(Außen) und das Zielplattenset, in unserem Fall Burg(Innen)) in ein Verzeichnis extrahieren. Diese könnt ihr wie erwähnt mit dem NWNViewer machen. Folgende Dateien müsst ihr aus den entsprechenden .BIF Dateien in ein jeweils ein Verzeichnis entpacken. Legt also zunächst je einen neuen Ordner für das Quell- und Zielplattenset an.

1. aurora_XXX.bif: Entpackt alle Dateien aus dem Archiv des Quell- (Stadt(Außen)) und Zielplattensets (Burg(Innen)). Das XXX steht in diesem Fall für das Plattensetkürzel (tcn01 und tic01).

2. templates.bif: Entpackt die beiden Dateien, die mit dem Kürzel der Plattensets beginnen. Beim Burg (Innen) Plattenset wären das tic01pal.itp und tic01palstd.itp und beim Stadt(Außen) Plattenset tcn01pal.itp und tcn01palstd.itp. Bei den Dateien handelt es sich um die Paletten Dateien. Durch sie werden die Einträge gesteuert, die ihr auf der rechten Seite eures Werkzeugsets seht.

3. 2da.bif: Entpackt hieraus die XXX01_edge.2da (Beispiel: tic01_edge.2da). Sie steuert die Effekte, die am Rande der Karten angewendet werden. Das braucht ihr nur zu machen, wenn ihr wie ich das Plattenset verdoppeln wollt. Änderungen werden an der Datei während dieses Tutorials nicht vorgenommen.

Der Einfachheit halber solltet ihr jetzt die Plattensets mit dem Tilesetduplikator umbenennen (duplizieren). Ändert beide Plattensetkürzel (Quell- und Zielplattenset) auf das gleiche Kürzel, so braucht ihr später bei den .mdl Dateien nicht selbst Hand anlegen. Dieser Punkt ist Optional, ihr könnt euch dieses sparen, wenn ihr nicht vorhabt, die Modelle zu verändern (mit anderen Texturen zu versehen).

Änderungen an der .SET Datei

In dieser Datei liegt die eigentlich Arbeit. Denn sie steuert alle Verhaltensweisen des jeweiligen Plattensets. In ihr sind Platzierungsregeln, Platten und Gruppen definiert. Wobei ihr diese Gruppen nicht mit den Gruppen verwechseln solltet, die ihr bei der Benutzung des Werkzeugsets seht. Denn jedes Objekt, egal zu welcher Plattenkategorie es gehört (Ausstattung, Gelände oder Gruppe) muss in der .set Datei als Gruppe aufgeführt sein.
Öffnet also die .set Datei des Quellplattensets (tcn01.set) mit einem Texteditor und sucht den Eintrag der Platte, die ihr transferieren wollt. Normalerweise würde ich sagen, merkt euch den Namen, den euch das Werkzeugset für die Platte anzeigt und sucht nach ihm. Bedauerlicherweise handelt es sich bei den Namen, die in der .set Datei hinterlegt sind, aber um die englischen Originalbegriffe. Daher werdet ihr ein wenig übersetzen und raten, oder euch eine englische Dialog.tlk organisieren müssen. In unserem Falle ist der Begriff im Englischen wie im Deutschen jedoch identisch. Sucht einfach nach "Arena". Bei Gruppe 39 werdet ihr fündig werden.

Original Eintrag		Veränderter Eintrag
[GROUPS]			[GROUPS]
Count=84			Count=35

[GROUP39]			[GROUP34]
Name=Arena_3x3			Name=Arena_3x3
StrRef=63305			StrRef=63305
Rows=3				Rows=3
Columns=3			Columns=3
Tile0=143			Tile0=183
Tile1=144			Tile1=184
Tile2=145			Tile2=185
Tile3=140			Tile3=180
Tile4=141			Tile4=181
Tile5=142			Tile5=182
Tile6=137			Tile6=177
Tile7=138			Tile7=178
Tile8=139			Tile8=179

Kopiert euch diesen Abschnitt und fügt ihn am Ende der .set Datei des Zielplattensets (tic01.set) wieder ein. Jetzt ist es wichtig, dass ihr auf die Nummerierung achtet. Die Reihenfolge der Gruppennummern muss immer stimmen. Da es im Burg(Innen) Plattenset bereits 33 bzw. 34 Gruppen gibt, solltet ihr der Arena die Nummer 34 geben. Selbiges gilt für die Platten selbst (die richtigen Nummern erfahrt ihr gleich). Damit die Gruppe auch akzeptiert werden kann, müsst ihr den Eintrag für die Anzahl der Gruppen um einen erhöhen s.o. (Count=34 wird zu Count=35). Falls ihr euch wundert, dass die Anzahl des Counts höher ist als die der Gruppennummer selbst. Das liegt daran, dass die Nummerierung bei 0 und nicht bei 1 anfängt.
Nun müsst ihr alle dazugehörigen Platten kopieren. Wie der Originaleintrag zeigt, sind das in diesem Fall die Platten Nummer 137 - 145.
Original Eintrag		Veränderter Eintrag
[TILE137]			[TILE177]
Model=tcn01_w12_01		Model=tic99_w12_01
WalkMesh=msb01			WalkMesh=msb01
TopLeft=Cobble			TopLeft=Stone
TopLeftHeight=0			TopLeftHeight=0
TopRight=Cobble			TopRight=Stone
TopRightHeight=0		TopRightHeight=0
BottomLeft=Cobble		BottomLeft=Stone
BottomLeftHeight=0		BottomLeftHeight=0
BottomRight=Cobble		BottomRight=Stone
BottomRightHeight=0		BottomRightHeight=0
Top=				Top=
Right=				Right=
Bottom=				Bottom=
Left=				Left=
MainLight1=1			MainLight1=1
MainLight2=1			MainLight2=1
SourceLight1=1			SourceLight1=1
SourceLight2=1			SourceLight2=1
AnimLoop1=1			AnimLoop1=1
AnimLoop2=1			AnimLoop2=1
AnimLoop3=1			AnimLoop3=1
Doors=0				Doors=0
Sounds=0			Sounds=0
PathNode=B			PathNode=B
Orientation=90			Orientation=90
VisibilityNode=A		VisibilityNode=A
VisibilityOrientation=0		VisibilityOrientation=0
ImageMap2D=MICN01_W12		ImageMap2D=MICN01_W12

Kopiert also alle 9 Einträge des Quellplattensets (tcn01.set) an das Ende der vorhanden Platten (TILES) des Zielplattensets (tic01.set). Auch hier müsst ihr wiederum die Nummern der einzelnen Platten anpassen. Da es im Burg(Innen) Plattenset bereits 176 Platten gibt, wird aus dem ersten Eintrag (TILE137) 177. Wenn ihr allen 9 Platten eine neue Nummer zugeteilt habt, müsst ihr ebenfalls den Zähler für die Platten (TILE COUNT) erhöhen, sucht nach [TILES] und macht aus der 177 eine 186. Mit den neuen Plattennummern geht es zurück ans Ende, zu der vorhin eingefügten Gruppe. Korrigiert jetzt die Nummern der Platten bei diesem Eintrag entsprechend der neuen Nummern (aus 137 wird 177 usw.). Sobald ihr das vollbracht habt, seid ihr mit der Veränderung der .set Datei fertig.

Die Palettendatei (ITP)

Bildschirmfoto

Um die Palettendatei des Zielplattensets (tic01palstd.itp) verändern zu können, braucht ihr ein spezielles Werkzeug, welches das Format lesen kann. Soweit mir bekannt ist, gibt es dafür derzeit nur eins: Das ITP Tool

Bevor ihr im Zielplattenset etwas eintragen könnt, müsst ihr jedoch zunächst einmal wissen, was ihr eintragen wollt. Das Problem besteht also darin, die Arena ausfindig zu machen. Innerhalb der Gruppensektion der .set Datei wird eine Zeichenreferenz (StrRef=63305) genannt. Neverwinter Nights verwendet Zeichenreferenzen um Wörter, Sätze, Textabschnitte usw. eindeutig und Sprachenunabhängig zu identifizieren. Ihr könnt diese Einträge mit dem NWN TLK Editor 1.1 einsehen und verändern. Für uns ist derzeit aber nur die Nummer der StrRef selbst wichtig.
Sucht in der Palettendatei (tcn01palstd.itp) des Quellplattensets nach dieser Nummer (63305). Da es sich bei der Arena um eine Gruppe handelt, müsst ihr in dem Baum mit der Nummer 63262 nachschlagen

8282 Gelände (Terrain)
63261 Ausstattung (Features)
63262 Gruppen (Groups)

Der Eintrag sollte ungefähr so aussehen (wenn ihr das Plattenset bereits umbenannt habt, ist die ResRef anders):

UINT32 STREF = 63305
RESREF RESREF = 'tcn01_w14_01'

Genau diesen Eintrag müsst ihr nun in der Palettendatei des Zielplattensets (tic01palstd.itp) einfügen. Klickt hierzu die LIST LIST der Kategorie mit dem rechten Mousebutton an und wählt "Add new Element" an. Im Folgenden Fenster müsst ihr bei "Element Item ID" 0 und bei "Number of Element Data Items" 2 eintragen. In die folgenden beiden Fenstern könnt ihr jetzt die obigen Daten eingeben:

Data Item Typ: UINT32
Data Item Name: STRREF
Data Item Value: 63305

Data Item Typ: RESREF
Data Item Name: RESREF
Data Item Value: 'tcn01_w14_01'

Der letzte Schliff

Bildschirmfoto

Wenn ihr lediglich eine Platte in ein neues Plattenset transferieren wollt (ohne neue Modelle bzw. Texturen zu verwenden), ist die Arbeit hiermit abgeschlossen. In unserem Fall fehlt jedoch noch der letzte Schritt.
Kopiert die 9 neuen Modelle (die in der .set Datei bei Model unter der Plattennummer stehen: tcn01_w12_01.mdl, tcn01_w13_01.mdl, tcn01_w14_01.mdl, tcn01_x12_01.mdl usw.) samt ihrer Walkmeshes (.wok) vom Quell- in das Zielverzeichnis.
Um letztlich noch die Texturen der Modelle zu ändern, müsst ihr die Modelle mit dem NWN Model Compiler in eine ASCII Datei konvertieren

nwnmdlcomp -d tcn01_w12_01.mdl

Die entstandene Textdatei könnt ihr nun in ein Renderprogramm wie GMAX, 3D Studio MAX oder dergleichen einladen und verändern. Falls ihr mit einem solchen nicht umgehen könnt, hilft zur Not auch ein normaler Texteditor. Sucht einfach nach einem Eintrag namens "bitmap" und ersetzt den Texturnamen. Aber das ist eigentlich schon der Stoff für ein neues Tutorial...

Gutes Gelingen
Pandur
Abt von Tyr der Stadt Corvalinsk

Erstellt von Pandur | am 18.07.2007