Nicht eingeloggt
Registrieren

Erstellen von UT Voicepacks

In diesem Tutorial (Teil 01) gehen wir von WAV über UAX nach U und INT, all diese Formate müssen als Einzeldateien erzeugt werden, um ein anständiges VoicePack für Unreal Tournament zu erstellen. Mit Hilfe von JohnWindow haben wir folgendes Tutorial als Schritt für Schritt-Anleitung erstellt. Hier wird euch gezeigt wie man es macht.

 



1.Schritt - Erzeugen der .WAV-Dateien
Zu aller Anfang braucht ihr etwa 50 Wave-Audio-Dateien. Richtet euch dabei ungefähr an die vorgegebenen Sprüche und Kategorien von UT. Wichtig ist dabei nur, dass die Dateien nicht zu groß sind. Bleibt also bei kurzen Sprüchen und versucht die Qualität so niedrig wie möglich einzustellen. Ich empfehle maximal das Format 22.050 Hz; 8Bit; Mono.


Beachtet, dass eure Dateien keine Buchstaben wie ä, ö, ü, ß, @, ... enthalten dürfen!

2.Schritt - Erstellen der .UAX-Datei
Startet hierzu den UnrealEd(2.0) und öffnet den Sound Browser. Um eure Wave-Dateien nun in den Editor zu bekommen, müsst ihr diese importieren. Klickt dazu auf 'File->Import...', markiert alle eure Waves und bestätigt mit 'öffnen'. Manchmal importiert der Editor nur 64 Dateien gleichzeitig. Wenn das bei euch der Fall sein sollte, müsstet ihr gucken, welche Dateien noch fehlen, und diese dann einzeln importieren.


Im darauf erscheinenden 'Import Sound'-Fenster, gebt ihr bei 'Package' den Namen eures Sound Packages (.uax) ein, also z.B. "VoiceKillah" oder "KillahSounds", wobei ihr anstatt "Killah" euren eigenen Namen verwenden müsst. Außerdem dürft ihr wieder keine ungültigen Zeichen verwenden (kein " ", "-", "+" ...). Denkt auch daran, dass sogar der Ordner, in dem sich die Dateien befinden, keine Leerzeichen enthalten darf. (Unter anderem ist der Ordner 'Eigene Dateien' ungültig!) Bei Name kommt der Name jeder einzelnen Audio-Datei hinein (z.B. "VKTyeah" = Voice-Killah-Taunts-Yeah).


Hier ist die letzte richtige Gelegenheit ungültige Buchstaben wie ä, ö, ü, ß, @, zu löschen. Speichert anschließend euer Sound Package ab ('File->Save...') und nennt es einfach wieder wie oben. (z.B. "VoiceKillah" oder "KillahSounds", merkt euch aber auf jeden Fall euren Namen)


Nach einem Druck auf 'Speichern' ist eure .UAX-Datei im 'UnrealTournament\Sounds'-Ordner gespeichert.

3.Schritt - Kreieren der .U-Datei

Öffnet den 'Actor Class Browser' und geht zu 'Info->VoicePack->ChallengeVoicePack->VoiceMale->VoiceMaleTwo'. (Ich nehme immer 'VoiceMaleTwo', weil in 'VoiceMaleOne' einige Sprüche verwechselt worden sind.) Eine neue .U-Datei kreiert ihr, indem ihr mit der rechten Maustaste auf 'VoiceMaleTwo' klickt und im Menü auf 'New...' geht.


Alternativ kann man auch im Menu den Button 'New Script' nehmen:

Nun erscheint ein Fenster mit den Einstellungen zu eurer neuen Class. In das Feld 'Package' kommt der Name eures 'Packages' (*.u) rein (z.B. "VoiceKillah" oder "KillahSounds") und in das Feld 'Name' kommt der Name eurer Stimme rein (meistens gleich wie 'Package').


Wenn ihr 'OK' eingegeben habt, dann öffnet sich automatisch der 'UnrealScript Editor' mit eurer neuen Class. Minimiert aber erst mal den 'UnrealScript Editor' und kehrt in den 'Actor Class Browser' zurück. Dort klickt ihr mit der rechten Maustaste auf 'Info->VoicePack->ChallengeVoicePack->VoiceMale->VoiceMaleTwo' und geht auf 'Edit Script...', damit VoiceMaleTwo im 'UnrealScript Editor' geöffnet wird.


Der Button 'Edit Script' im Menü tut's natürlich auch.

Nun müsst ihr die 6. Zeile von der originalen VoiceMaleTwo in euren Script kriegen. Dazu markiert ihr zuerst die ganze 6. Zeile mit der Maus (Diese Zeile ist normalerweise dunkelgrau). Wenn ihr diese Zeile markiert habt, dann kopiert sie (STRG+C).


Mit dem kopierten Text geht ihr jetzt in den Script von eurer Voice. (rechte Maustaste auf eure Class und dann auf 'Edit Script...') Und dann fügt ihr einfach alles ein (STRG-V).


Wunderbar, das sieht doch schon sehr fertig aus. Allerdings müsst ihr den Quelltext noch an eure Stimme anpassen. Diese wichtige Tat vollbringt ihr, indem ihr 'Male2Voice' durch euer Package ersetzt. Also einmal nach "#exec OBJ LOAD FILE=..\Sounds\" und dann noch hinter "PACKAGE=" Das sieht dann in meinem Beispiel so aus:


In manch anderem Tutorial wird jetzt der komplette Quelltext aus der alten Voice kopiert. Das ist hier aber falsch, weil wir mit VoiceMaleTwo arbeiten und da der Quelltext schon drin ist. Wenn mir z.B. mit 'VoiceMale' ein neues Script erstellt hätten, dann müssten wir jenes tun.

Gut, danach klickt ihr auf 'Tools->Compile Changed', damit der Editor euer Sound Package in die .U-Datei lädt.

Zum Schluss wird das Package abgespeichert. Aktiviert dazu im Actor Class Browser den Menüpunkt 'View->Show Packages'. In der darauf erscheinenden Liste macht ihr bei eurem Package ein schönes Häkchen.


Wenn ihr das Häkchen habt, dann klickt auf 'File->Save Selected Packages'.

Damit ist die .U-Datei im 'UnrealTournament\System'-Ordner abgespeichert. Eure .UAX-Datei braucht ihr danach auch nicht mehr, weil nun alle Waves im Package eingebettet sind. Kommt also bloß nicht auf Idee die .UAX Datei mit in eure .ZIP-Datei zu packen!

ENDE

 

In diesem Tutorial gehen wir von WAV über UAX nach U und INT, all diese Formate müssen als Einzeldateien erzeugt werden, um ein anständiges VoicePack für Unreal Tournament zu erstellen. Mit Hilfe von JohnWindow haben wir folgendes Tutorial als Schritt für Schritt-Anleitung erstellt. Hier wird euch gezeigt wie man es macht.

4.Schritt - Einstellen der .U-Datei
Eure richtige Arbeit geht jetzt im Actor Class Browser los. Klickt eure Voice mit der rechten Maustaste an und wählt 'Default Properties...'.


Für Leute ohne rechte Maustaste, gibt es wie immer auch einen Button...

So, im nächsten Fenster ist für uns nur die Unterteilung 'ChallengeVoicePack' von Bedeutung.


Hier hat es nun verschiedene Unterteilungen mit unterschiedlichen Bedeutungen:

1. Acks (Acknowledge = Anerkennung)
Diese Sounds werden nur als Bestätigung eines Befehls gesprochen.
Acks haben keine Auswirkungen auf Bots.
Beispiele: "Roger that", "I am on my way", "Got it".

2. FFires (Friendly Fire = Freundliches Feuer)
Hier handelt es sich nicht etwa um kleine Feuerchen zum Streicheln,
sondern vielmehr wird dabei ein Spieler angemeckert, der einen Teamkameraden anschießt.
FFires haben keine Auswirkungen auf Botst.
Beispiele: "Hey! Same team", "I'm on your team, you idiot".

3. Names (Name = Name)
Es gibt genau 4 Name-Sounds, mit denen man seine Teamfarbe akustisch verkündet.
Names haben auch keine Auswirkungen auf Bots.
Beispiele: "Redleader", "Blueleader", "Greenleader" und "Goldleader".

4. Orders (Order = Befehl)
Mit den Befehlen kann man Mitspielern sagen, was sie tun sollen.
Orders haben sehr wohl Auswirkungen auf Bots.
Beispiele: "Defend the base", "Hold this position", "Cover me", "Take their flag".

5. Others (Other/Misc = Andere/Sonstige)
Das sind sonstige Zustandsbeschreibungen, die in Teamspielen verwendet werden.
Others haben keine Auswirkungen auf Bots.
Beispiele: "I've got the flag", "I'm under heavy attack", "Enemy flag carrier is here".

6. Taunts (Taunt = Spöttische Bemerkung)
Sie werden nach einem Kill abgegeben um den Mitspieler zu ärgern.
Taunts haben keine (merklichen) Auswirkungen auf Bots.
Beispiele: "Burn, baby", "Loser", "I just slaughtered that guy".


Bei Names, Orders und Others müsst ihr beim Festlegen unbedingt die Reihenfolge von VoiceMaleTwo einhalten, weil die Position dieser Sprüche die Bedeutung trägt. Die Reihenfolge von Acks, FFires und Taunts ist aber egal.

1. Abbrevs (Abbreviation = Abkürzung)
Diese Texte sind die verkürzten Beschreibungen der Sprüche für das Voice Menu.
Abbrevs werden normalerweise nur eingesetzt, wenn der String zu lang fürs Menu ist.
Wenn zu einem Spruch kein Abbrev eingetragen ist, dann wird der String genommen.

2. Sounds (Sound = Geräusch)
Die Sounds sind wohl das Eigentliche an der Stimme.
Diese Option gibt lediglich die Wave-Datei an, die abgespielt werden soll.

3. Strings (String = Zeichenfolge)
Diese angereihten Buchstaben geben wörtlich die flammende Rede wieder.
Sie erscheinen während des Spiels bei einem Spruch oben auf dem Bildschirm.

4. Times (Time = Zeit)
In Time ist die sekundengenaue Dauer eines Spruchs notiert.
Times werden nur für Acks und Names eingetragen.
Mit ihnen wird ermittelt, wann der nächste Sound gespielt werden kann.


So, nach Tausenden von Erklärungen folgt nun endlich wieder der praktische Teil.

Als erstes würde ich mit dem Wichtigesten anfangen: Das Setzen der Sounds. Dazu sucht ihr euch im Default Properties Fenster eures VoicePacks einen Spruch aus. Nehmen wir z.B. mal unter Orders den Sound "M2defend". (Wenn ihr nicht mehr wisst, welcher Spruch das war, dann hört euch im Sound Browser "M2defend" noch mal an)

Der nächste Schritt besteht darin, euren entsprechenden Sound im Sound Browser zu finden. (Mein Beispiel: "VKOdefend") Wenn ihr eure Datei gefunden und ausgewählt habt, dann geht's mit Default Properties weiter. Dort müsst ihr jetzt auf den Spruch von vorhin klicken und 'Use' angeben.


Danach empfiehlt sich die Strings einzutragen und sich im Sound Browser vielleicht noch mal den Spruch anzuhören. Ich glaube, ich brauch' euch nicht mehr zu erklären, wie man einen simplen Text eintippt...


Dann denkt ihr euch noch eine verkürzte Schreibweise aus und tragt sie oben bei Abbrev ein.

Diese drei Aktionen wiederholt ihr solange, bis ihr mit allen Sprüchen durch seid. Danach seid ihr auch schon fast fertig mit der .U-Datei, nur drei Sachen gibt es immer noch.

Als erste Sache gibt es noch - wie oben schon erwähnt - den Eintrag 'Time' für Acks und Names. Dort muss man die Dauer der dazugehörenden Wave-Dateien in Sekunden eintragen. Diese Angabe entnehmt ihr den Eigenschaften der einzelnen Waves unter Windows. Klickt eure entprechende Wave-Datei an und wählt im Menu der rechten Maustaste 'Eigenschaften' aus. Den Button zu dieser Funktion solltet ihr bereits kennen.


Unter 'Details' findet ihr nun die Angabe 'Medienlänge'.


Merkt euch die Länge in Sekunden und tragt sie unter 'Time' bei dem entsprechenden Spruch ein.


Wenn ihr eure Waves nicht mehr habt, dann exportiert sie im Sound Browser mit 'File->Export...'. (Nein, es gibt diesmal tatsächlich keinen Button)

Danach kommen noch zwei ziemlich mickrige Aufgaben: Zuerst den eher blödsinnigen Eintrag 'Mature Taunts', indem ihr die Taunts angeben könnt, die Mitspieler beleidigen. Bei Taunts, die die Gegner ärgern sollen, tippt ihr eine "1" ein und bei den anderen, die harmlos sein sollen, eine "0".

So, als aller letztes müsst(!) ihr noch folgende Angaben zur Anzahl eurer Sounds machen.

numAcks = Anzahl eurer Acks
numFFires = Anzahl eurer Friendly Fires
numTaunts = numTaunts

Achtung: Die Zählung der Sprüche beginnt mit 0! Das wichtigste am ganzen ist das Speichern. Ihr solltet das nicht vergessen!

5.Schritt - Erstellen einer .INT-Datei
Die Stimme ist fertig, aber wie schafft man es denn, dass sie jetzt im Spiel erscheint? Bei jedem Start sucht UT in seinem System-Verzeichnis nach Neuigkeiten, aber auch nach mitgelieferten Erweiterungen Dazu sind die .INT-Dateien da, in ihnen verbergen sich die Informationen zu neuen Sachen. Ich versuche euch mal den Aufbau einer solchen Datei mit einem Beispiel zu erklären:

 

Code:
[Public]
Object=(Name=VoiceKillah.VoiceKillah,Class=Class,MetaClass=BotPack.VoiceMale,Description="Killah")
Name=VoiceKillah.VoiceKillah Der "Name" gibt in diesem Fall an, wo diese Sache zu finden ist: Package der Sache.Name der Sache(Euer Name der .U-Datei und die Benennung der Class getrennt durch einen Punkt)


Class=Class Class gibt an, um welche Art von Sache es sich handelt.Zur Auswahl stehen 'Texture', 'Sound', 'Class'.


MetaClass=BotPack.VoiceMale MetaClass gibt (nur bei einer Class) an, als was sie zu definieren ist (Voices, Mutators). Damit legt man auch das "Geschlecht" der Stimme fest.
VoiceMale = männlich
VoiceFemale = weiblich
VoiceBoss = "bosslich"


Description="Killah"Description definiert den Namen der Sache im Spiel.(Mit den ""!)


[Puplic] sagt nur aus, um welche Art von Deklaration (declaration = Erklärung oder Anmeldung) es sich handelt.

Object= gibt an, wo diese Sache im Spiel integriert werden soll... naja, kopiert es einfach aus meiner Beispieldatei!

Kopiert also meine INT-Beispieldatei oder irgendeine vorgegebene .INT-Datei einer anderen Voice, öffnet sie mit einem Texteditor (z.B. Wordpad), und ändert die Package.Name- und Description-Werte.

Bevor ihr allerdings nun eure .U- und .INT-Dateien weitergebt, vergesst bitte nicht die 'ServerPackages'-Eintragungen in der Datei 'UnrealTournament.ini' zu machen, denn ihr braucht sie um im Netzwerk zu spielen. Ihr müsst auch euren Kunden mitteilen, welche Eintragungen sie machen müssen.

Geht in der 'UnrealTournament.ini' zu dem Punkt [Engine.GameEngine], da steht dann:

ServerPackages=SoldierSkins
ServerPackages=CommandoSkins
ServerPackages=FCommandoSkins
ServerPackages=SGirlSkins
ServerPackages=BossSkins
ServerPackages=Botpack
... und so weiter

Dort schreibt ihr unter das letzte ServerPackages=... noch folgendes dazu: 'ServerPackages=VoiceKillah' (Der Name eures Packages aber ohne .u)

Falls ihr eine UMOD-Datei macht, zeige ich euch kurz, wie ein solcher Eintrag aussehen müsste. Um einen INI Eintrag zu definieren, klickt ihr im umod Wizard beim dritten Fenster (INI file Changes) auf 'Add...'. Dort tragt ihr etwa folgendes ein:


Hm, na ja, aber das Erstellen von UMOD-Dateien steht nicht mehr in meinen Lehrplan. Also, gut, jetzt seid ihr tatsächlich fertig.


ENDE
 

In Diesem Tutorial erkläre ich wie man eigene VoicePacks macht. Ich gehe davon aus, dass du weißt wie man mit dem UnrealED2 umgeht und die Samples (.wav) fertig hast, die du benutzen willst. Zu einem VoicePack gehört eine .uax Datei, welche die einzelnen Sounds enthält, sowie eine .u und eine .int Datei, die Informationen über das VoicePack enthälen.

Erstellen der .uax Datei
Öffne den Editor (falls du es noch nicht gemacht hast) und gehe auf View/Sound Browser.... Dort Importierst du deine Samples indem du auf File und dann auf Import from Wav... kilckst, nun kannst du deine Samples auswählen und auf OK klicken (Nie mehr als 10 auf einmal Importieren, das macht der Editor nicht mit!). Bei dem Feld, welches jetzt erscheint, gibst du den Namen des Packages, z.B. MyVoices, ein und die Gruppe zu der das Sample gehören soll, z.B. Taunts. Jetzt noch Ok drücken, das gerade erstellte Package im Browser auswählen und dann auf File/Save gehen, und unter dem Namen MyVoices (du kannst natürlich einen anderen benutzen, ich nehme ihn nur zum besseren erklären.) abspeichern.


So! Den ersten Schritt haben wir getan. War doch gar nicht so schwer, oder?


Erstellen und bearbeiten der .u Datei
Jetzt wird es etwas komplizierter (oder auch nicht). Öffne den ActorClass Browser und wähle unter Info/VoicePack/ChallengeVoicePack VoiceMale aus. Klicke es mit der rechten Maustaste an und wähle New.... Im nächsten Feld gibst du den Namen der .uax Datei und den Namen, den die .u Datei haben soll an (nimm am Besten die gleichen Namen).



Es erscheint der Script Editor von Unreal. Nun öffnest du noch das Script von VoiceMaleOne , in dem es du im Actor Class Browser, unter VoiceMale , mit der rechten Maustaste auswählst und auf EditScript... klickst. Wähle nun den gesamten Text, angefangen bei #exec OBJ , aus. Drücke Strg+C , um den gewählten Text zu kopieren. Öffne das Script von deinem Package (es wird am Rand des Script Editors angezeigt) und drücke Strg+V, um den Text ein zu fügen. Nun musst du noch folgende Zeile abändern: #exec OBJ LOAD FILE=..\Sounds\Male1Voice.uax PACKAGE=Male1Voice Gebe statt Male1Voice.uax und Male1Voice den Namen von deiner .uax und .u Datei ein. Gehe dann auf Tools und Compile Changed .Jetzt noch schnell das Package speichern(im ActorClassBrowser unter File) und auf zum nächste Schritt.


Bearbeiten der U-Datei
Wir befinden uns immer noch im Actor Class Browser, aber sind unserem Ziel schon um einiges näher gekommen, da wir unser .uax und .u Datei bereits haben. Jetzt müssen wir die .u Datei noch bearbeiten, damit man das VoicePack auch in UT verwenden kann. Klicke mit der rechten Maustaste (wird langsam langweilig, oder?) auf dein Package und wähle Default Properties. In diesem Fenster kannst du die einzelnen Samples zu Taunts, Acknowledge, Order oder Other zuordnen. Dabei musst du aber einiges beachten! Bei Orders und Others kannt du nicht einfach irgendwelche Samples reinpacken, sondern musst dich an eine ganz bestimmte Reihenfolge halten:

 

Orders 0 Defend
  1 Hold this Position
  2 Attack
  3 Cover me
  4 Freelance
Others 0 Base uncovered
  1 Feind hat die Flagge
  2 Ich hab die Flagge
  3 Got your Back
  4 Im Hit
  5 Man Down
  6 Under Attack
  7 You got Point

Halt noch nicht ganz, es fehlt noch die .int Datei . Öffne im WinodwsExplorer unter UnrealTournament\System eine neue .txt Datei und schreibe da folgendes rein:

[Public] Object=(Name=MyVoices.MyVoices,Class=Class,MetaCla ss=Botpack.VoiceMale,Description="MyVoices")


Wobei du MyVoices gegen den Namen von deinem Package austauschst. Jetzt das ganze unter dem Gewünschten Namen Speichern. Ach so aus dem .txt musst du noch ein .int machen. Nun noch den Namen des Packs in die UnrealTournament.ini zu den ServerPackages schreiben (SeverPackages=MyVoices) und fertig ist das VoicePack!


ENDE