|
Inhalt:
Output-Units erstellen
Sprachausgabe
Was hinter den Kulissen passiert
Einleitung
Damit die Untertitel und Sprachausgaben auch im Spiel auftauchen muss man folgendes machen:
- Eine *.ini Datei für den Gothic-Starter erstellen bei welcher der vdf Eintrag leer ist.
- Keine *.mod Datei darf sich in /Data/ befinden
- Die Dateien _work\DATA\scripts\_compiled\OUINFO.INF, \_work\DATA\scripts\content\CUTSCENE\OU.BIN und \_work\DATA\scripts\content\CUTSCENE\OU.CSL löschen um sicher zu gehn das die alten Output Units (wird ab jetzt mit OU abgekürtzt) weg sind.
- Den Spacer über den Gothic-Starter mit der oben erzeugten ini-Datei starten.
- Im Spacer auf World/Reparse Scriptfiles... klicken und \_work\DATA\scripts\content\gothic.src öffnen/parsen.
- 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.
Sprachausgabe
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 natürlich 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. [Winamp] wenn man den Ausgabefilter unter Einstellungen/Optionen auf das Diskwriter-PlugIn umstellt.
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 srpachausgaberelevaten Informationen. Aus der kann der Spacer dann später die Dateien ou.bin und ou.cls erstellen die dann die richtigen "Ausgabeeinheiten" enthalten.
[% 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.
Erstellt von RealityCheck
|
|
|