Benutzer-Werkzeuge

Webseiten-Werkzeuge


Output-Units/Untertitel erstellen

Damit die Untertitel und Sprachausgaben auch im Spiel auftauchen muss man folgendes machen:

  • Gehe innerhalb deines Gothic II-Ordners in den Ordner System. Dort findest du Dateien mit der Endung .ini. Du musst dir vor dem Aktualisieren der Untertitel einmalig eine eigene *.ini-Datei erstellen. Wenn du nicht weißt wie das geht, solltest du die GothicGame.ini dir kopieren, unter anderem Namen speichern und für deine Zwecke mit einem Texteditor überarbeiten. Sehr wichtig: Die Zeile in deiner *.ini-Datei die mit vdf= beginnt muss danach leer sein. Es darf also nach dem vdf= in der selben Zeile nichts mehr stehen. Welche Attribute welches Bedeutung in der *.ini-Datei haben steht in der Beschreibung zu *.ini
  • Die Dateien _work\DATA\scripts\_compiled\\OUINFO.INF, \_work\DATA\scripts\content\CUTSCENE\\OU.BIN und \_work\DATA\scripts\content\CUTSCENE\OU.CSL sollten gelöscht werden um sicher zu gehen, dass die alten Output Units (wird ab jetzt mit OU abgekürtzt) weg sind.
  • Den Spacer/Editor über den GothicStarter_mod mit der oben erzeugten ini-Datei starten und im GothicStarter ein Häckchen vor „Skripte parsen“ setzen.
  • In der horizontalen Toolleiste vom Spacer ist ein Symbol das aussieht wie ein beschriebenes Blatt , dieses anklicken und das Output-Units Fenster erscheint.
  • Mit Update wird nach neuen OUs gesucht. Nachdem die Suche fertig ist, sollten sich die selbsterzeugten Dialoge in der Liste finden lassen.
  • Mit Save werden alle neu angelegten OUs gespeichert und sind dann im Spiel verfügbar.

Die fertigen OUs werden in \_work\DATA\scripts\content\CUTSCENE\OU.BIN gespeichert, diese Datei sollte deshalb auch in das fertige Mod mit rein.
Wenn der Mod keine Sprachausgabe hat sollte ein force_subtitles=1 in den [Option]-Abschnitt der .ini Datei damit die Untertitel immer angezeigt werden.

Alternativ können die Output-Units auch mit dem Sprachausgabenhelfer aktualisiert werden. Dazu muss man einmalig den Pfad der Gothicinstallation (also zum Beispiel D:\Spiele\Gothic II\) unter „Einstellungen“ einstellen und kann dann das Werkzeug „Output-Units (mit allen Scripten) aktualisieren“ benutzen. Das hat den Vorteil, dass alle oben beschriebenen Arbeitsschritte wegfallen und auch das eigentliche Aktualisieren schneller geht. Zu beachten ist jedoch, dass es sich hier um eine „inoffizielle“ Lösung handelt. Im Spiel habe ich bisher keine Unterschiede gegenüber dem „klassischen“ Aktualisieren festgestellt, aber dennoch sollte man das im Hinterkopf behalten.

Sprachausgabe

Damit der Spacer die Anweisung findet, muss beim Befehl AI_Output die Groß-/Kleinschreibung beachtet werden.

Schauen wir uns doch mal folgende Zeile eines Dialogs an:

AI_Output (other, self,"DIA_SCAR_Hello_15_00"); //Wer bist du?

AI_Output ist nur die Dialogfunktion, danach „other,self“, d.h. der andere (Spieler) spricht zu self (der angesprochene NPC)
Danach der Name der Outputunit und noch der Untertitel als Kommentar.

Für die Sprachausgabe spielt der Name der OutputUnit eine entscheidende Rolle, in unserem Beispiel würde Gothic nach folgender Datei suchen um die Sprache auszugeben: \sound\speech\DIA_SCAR_Hello_15_00.wav

Falls es die Datei nicht findet kommt kein Ton und Zeit die der Text angezeigt wird hängt dann von der Anzahl der Zeichen des Textes ab.
Die Kodierung der Orginalsprachausgabe ist IMA ADPCM 44,1kHz, 4Bit, Mono. Wenn man das Downloadvolumen des Mods gering halten will kann man auch IMA ADPCM 22kHz, 4Bit, Mono nehmen oder mit anderen Codecs experimentieren(MP3 funktioniert nicht:(). Zum Umkodieren eignet sich z.B. der Switch Audio Converter.
Das war eigentlich schon das Grundgeheimnis der Sprachausgabe, man muss seine Dateien halt nur passend benennen.

Im Gothic Orginalscript gibts folgendes System zum benennen der Output Units:

DIA_SCAR_Hello_15_00
  • Als erstes kommt der Instanzenname des Dialogs (DIA_SCAR_Hello)
  • Danach kommt nach einem Unterstrich ('_') die Kennzahl der eigenen Stimme, da in diesem Fall der Held spricht steht hier seine Stimme (war so duch PB gewählt, aber kann auch geändert werden) 15.
  • Als letztes kommt noch eine Zahl, die nur als fortlaufender Index dient, also sollten aufeinanderfolgende Outputunits auch aufeinander folgende Zahlen haben.

Natürlich könnt ihr bei der Benennung auch eigene Systeme einsetzen, aber dieses ist sinnvoll.

Was hinter den Kulissen passiert

Für diejenigen die sich fragen warum die Untertitel auskommentiert werden:
Beim Kompilieren der Scripte fallen die Kommentare (alles hinter //) natürlich unter den Tisch, aber der Spacer erstellt beim Kompilieren unabhänig davon auch noch die Datei namens ouinfo.inf mit den sprachausgaberelevaten Informationen. Aus der kann der Spacer dann später die Dateien ou.bin und ou.cls erstellen die dann die richtigen „Ausgabeeinheiten“ enthalten. Deshalb muss man, wenn man Untertitel für Dialoge erstellen will, hinter den Aufrufen von AI_Output einen Kommentar erstellen (beginnend mit // und aufhörend beim Zeilenende (RETURN oder ENTER), man braucht also kein spezielles Zeichen einzutippen), mit dem Inhalt des Untertitels.

[% zCCSBlock 0 1]
	blockName=string:B_Gravo_HelpAttitude_ANGRY_04_00
	numOfBlocks=int:1
	subBlock0=float:0
	[% zCCSAtomicBlock 0 2]
		[% oCMsgConversation:oCNpcMessage:zCEventMessage 0 3]
			subType=enum:0
			text=string:Stimmt, er ist nicht besonders gut auf dich zu sprechen.
			name=string:B_GRAVO_HELPATTITUDE_ANGRY_04_00.WAV
		[]
	[]
[]

Dann muß das Script nur noch sagen das die Ausgabeeinheit „B_Gravo_HelpAttitude_ANGRY_04_00“ (3. Parameter von AI_Output) abgespielen soll und die Engine weiß was zu tun ist.

Die Untertitel mit dem Spacer zu erstellen dauert jedoch sehr lange. Darum hat ein Mitglied der WoG-Community ein Programm namens Redefix entwickelt, mit dem man das Erstellen der Dialoge von mehreren Minuten auf wenige Sekunden beschleunigen kann.

diverses/untertitel_und_sprachausgabe.txt · Zuletzt geändert: 2016/02/09 19:44 von milgo