So, heute erklär ich euch wie versprochen den Face Poser Editor, der auch beim Source SDK dabei ist, da dießer ziemlich Umfangreich ist gibt es diese Woche noch einen 2. Teil von mir, heute erklär ich erstma wie man n ganz normales Event mit vorgefertigten Sachen machen.
Als erstes müssen wir ein Model auswählen, dazu klicken wir einfach auf File -> Load Model, dann wählt man sich ein Modell aus und es müsste im 3d View erscheinen. Als nächstes gehen wir unter Choreography -> New, da wir ja eine neue Cheography erstellen wollen.
Als nächstes kommt ein Window, wo wir einen Namen eingeben und dann das ganze erstmal speichern, sodass mal eine Datei da ist, auch wenn wir noch nichts geändert haben müssen wir dies machen. Wenn man gespeichert hat sollte automatisch im Face Poser ein Fenster aufgehen wo steht Create Actor, dort gebt ihr den Namen des Models ein (der Name ist wichtig, denn genau diesen Namen müsst ihr auch eurem NPC im Editor geben). Nach dem wir den
Namen eingegebn haben drücken wir auf OK.
Dann klicken unten bei Barney mit der rechte Maustaste daneben, wählen new -> Channel aus und geben ihm einen Namen, in meinem Falle Wav. Dahinter kann man noch den Actor auswählen, bei dem der Channel erscheinen soll,
da wir nur einen haben lassen wir dort Barney stehen.
Als nächstes klicken wir rechts neben dem Channel Wav, und dann müsste man auf Wav File klicken können, wie im Bild gezeigt. Hier können wir uns eine vorgefertigte Sprech - Sound Event auswählen, wie man ein eigenes macht werde ich im follgenden 2. Tutorial erklären. Ich hab im Beispiel mal den Soudn Trainyard.ba_getoutfas ausgewählt, habe ihm den Namen getout gegeben und dann OK geklickt.
Ich habe noch einen neuen Channel erstellt, wie das geht wisst ihr ja jetzt und habe ihn Look gennant. Wir wollen ja wenn Barney uns etwas sagt angesehen werden, also klickt man rechts bei dem Channel look, wöhlt LookAt aus, und dann nur noch einstellen, worrauf der NPC schauen muss, in unserm Falls !player (also auf den Spieler).
Wir wollen ja nicht, das es nicht so abgehackt aussihet, wenn Barney uns anschaut, also erstellen wir in der Ramp eine Kurve, einfach auf das Ramp Fenster klicken, und da wo ein Kurven Punkt sein Soll mit Strg+Mause 1
draufklickne, und schon hat man so eine Kurve wie im Bild.
So als nächstes hab ich das ganze noch mit faceat !Player gemacht, damit Barney uns immer hinterschaut, auch wenn wir um ihn herum Rennen, und wenn er einfach nur rumsteh ist langweilig, also hab ich noch n neuen Channel
gemacht, habe gesture ausgewählt (beim rechtsklicken) und habe salute ausgewählt, dadurch salutiert unser Barney.
Dann hab ich noch eine Sequence erstellt, das unser Barney nach dem Salutieren locker da steht und sich ein bischen bewegt, hier hab ich die Kurve umgekehrt gemacht, damit sich das Salute abspielen kann (denn die Sequence geht vor, also wenn wir eine Sequence und ein gesture gleichtzeit haben, werden wir das gesture nicht sehen).
Jetzt lassen wir unseren Barney mal ernst schauen, einige haben bestimmt schon mit den Flex Sliders rumgespielt, haben aber gemerkt das sich während ma da was rumschiebt Barney zwar verändert, aber sobald man die Choreography startet ist er wieder ganz normal, das liegt daran das diese Flex Sliders nur zum Test sind, damit dies später das Modell auch macht, benötigen wir wieder einen neuen Channel, ich habe ihn flex animation gennant und habe in ihm ein Flex Animation rein gemacht, diese benätigen wir dafür. Als nächstes klicken wirunten auf den Flex Animation Button doppelt, dann müsste so ein Fenster erscheinen wie man es im Bild sieht. Dort können wir jetzt die Gesichtsmuskeln spielen lassen^^.
Mann muss in dem Flex Animationen Fenster bei einem Punkt erst rechts drücken, dann kann man enable machen und danach einfach nur doppelklicken, schon kann man wieder mit strg+mause 1 eine "Ramp" zeichnen, ich habe dies mal bei Bite gemacht, so zeigt Barney seine Zähne, man kann dies natürlich auch bei so vielen anderen Flex's machen wie man will. So kann man ihn z.B. auch extrem grinsen lassen usw.
Als letztes zeig ich euch noch in meinem 1. Teil des Face Poser Tutorials wie man das ganze in seine Hammer rein bringt und im Spiel das ganze auch abgespielt wird. Dafür müsst ihr erstmal schauen, wo ihr eure .vcd abgespeichert habt, wahrscheinlich unter scenes\, den Pfad müsst ihr euch merken, das müsst ihr nämlich im Hammer angeben. Also starten wir mal den Hammer, erstellen mal einen Raum mit nem Player_Start, nem light, nem npc_barney (ganz wichtig, ihm müsst ihr den gleichen Namen geben wie dem Actor im Face Poser, also in meinem Falle Barney), danach brauchen wir noch ein logic_choreagraphed_scene, bei Scene File gebt ihr den Pfad eurer Scene an (wie auf dem Bild zu erkennen) und als namen macht ihr z.B. horeo_barney. Jetzt brauchen wir ein Trigger oder etwas anders, damit die Event ausgelöst wird, ich habs mit nem Trigger_once gemacht, dann macht ihr die Einstellung so wie im Bild unten zu sehen, nur noch compilen und dann könnt ihr euer Event im Spiel betrachten.
Das wars erstmal mit dem 1. Teil, n Video Tutorial mach ich vielleicht noch, wenn ich Zeit hab und das 2. folgt auch noch, jetzt erstmal viel Spaß beim ausprobieren,
CYA
Wie versprochen der 2. Teil
Bevor wir starten brauchen wir das Wissen des 1. Teiles und das Programm Microsoft Speech API 5.1 (SAPI 5.1) (68 MB), downloadbar unter der Adresse http://www.microsoft.com/speech/download/old/sapi5.asp.
Dies benötigen wir, damit unser die LippenSyncro richtig zugeordnet werden kann.
In diesem Teil zeige ich mal wie man sein selbstgesprochenes bzw. auch andere Waves mit Lippen Synchro im Face Poser machen kann. Als erstes braucht man ein Wave File und es muss in dem Format Stereo, 8 oder 16 Bit und die Rate kann von 11025 Mhz bis 44100 Mhz sein (44100 Mhz is das bessere). Diese Wav speichert man unter Half-Life 2\Hl2\sound\, ist wichtig das ihr später nich wisst, wo ihr die hinspeichert um sie dann im Face-Poser zu finden.
Als erstes klickt ihr im Face-Poser auf den Phoneme Editor dopplet, klickt auf Öffnen und dann müsste so ein Fenster wie ihr auf dem Bild seht erscheinen. Das Programm zeigt euch direkt den Sound-Ordner von dem Mod Verzeichnis an (ich hab bei meinem SDK Half-Life 2 ausgewählt). Jetzt öffnet ihr eure Datei, ich habe meine test12 genannt.
So wenn die Wave-Datei geöffnet ist klickt ihr auf Redo Extraction, dann müsste das Fenster kommen wo ihr eure Wörter eingeben müsst, die das Model sprechen soll. Hier müsst ihr das Wort genau so eingeben, wie es gesprochen wird (schaut wie ich one two bei meinem Beispiel geschieben hab) und dann klickt OK.
Jetzt müssten unter eurer Wave Buchstaben erscheinen und darüber der Text, den ihr eingegebn habt. Klickt mit der rechten Maustaste auf die Buchstaben und macht Commit extraction.
Wie ihr bei meinem Beispiel seht, sind die Buchstaben unten (auch Phoneme) genannt nicht ganz das was mein Model eigentlich Syncronisieren sollte. Ist aber kein Problem, einfach rechts auf das Phoneme klicken, welches Falsch ist und Edit machen. Daraufhin müsste ein Fenster erscheinen wo ihr einige Buchstaben auswählen könnt, alle ziemlich komisch gemischt aber wenn man sucht findet man schon den Buchstaben, welchen man sucht. Wenn man ihn gefunden hat einfach klicken und dann auf OK.
Dies macht ihr mit allen Buchstaben, die falsch sind und
macht probeweise mal Play, ob alles so aussieht wie es soll, den wenn man alles richtig gemacht hat sollte das Model jetzt die Lippen bewegen. Wenn alles OK ist machen wir Save Changes.
Anschließend ertsellen wir einen neuen Channel bzw. benutzen wie in meinem Beispiel den, der schon da ist. Dann ganz normal New -> Wav machen und schon müssste das Fenster erscheinen, bei dem man die Wave Dateien auswählen kann, suchen nach unserem Wave bringt übrigens nichts, es ist nicht auf der Liste. Um es doch in den Face Poser zu bekommen, müssen wir bei Sound den genauen Namen des Sounds angeben, bei mir test12.wav,
hier ist es auch wichtig, wo ihr es hingespeichert habt, wenn es in einem Unterordner ist muss zuerst der Unterordner angegeben werden, und dann die Wave (z.B. test\test12.wav).
]
Wenn man alles richtig gespeichert hat müsste, wenn man Die Sequence abspielt unser Model seine Lippen so bewegen wie wir es wollten, jetzt können wir ganz normal wie in Teil 1 erklärt unsere Sequence erstellen und im Spiel betrachten.
Viel Spaß beim ausprobieren, vielleicht finde ich noch genug Sachen für einen dritten Teil heraus, bis dahin,
Stay Tuned, Cya ^^
Hallo Zusammen, hier mein 3. Face Poser Teil.
Als Grundkenntnisse setze ich mal meine beiden anderen Tutorials vorraus, den 1. Teil auf jeden Fall.
Ich habe zwar leider immer noch nicht alles rausgefunden, wenn ich aber was entdecke hänge ich das dann einfach am Ende dieses Threads dran als kurze Erklärung, aber jetzt zum Tutorial.
Was einige noch nicht kennen bzw. verstanden haben ist die "Target" funktion beim Face Poser, wie simpel die ist werdet ihr gleich erkennen.
Wir machen erstmal eine ganz normal Scene, ich hab wieder meine Actor Barney und habe mal 3 Channels erstellt.
Der erste Channel heisst "MoveTo", habe darin ein "Move to Actor" Event erstellt. Ich hab ihn den Namen MoveTo gegeben, damit die Scene für mich Übersichtlich bleibt und habe bei "Move to Actor" "!target1" eingestellt, damit er sich dann im Spiel zu meinem ersten Target bewegt.
Mein zweiter Channel habe ich "Look" genannt und habe eine "Look at Actor" Event erstellt. Der Name ist "Look" und bei "Look at Actor" habe ich "!target2" gemacht, damit Barney im Spiel auf mein zweites Target schaut.
Der dritte Channel heisst "Face", in ihm ist ein "Face at Actor" Event, der name ist "faceat" und bei "Face Actor" hab ich "!target3" gemacht, damit er sich zum dritten Target umdreht.
So damit wäre unsere Scene erstmal komplet, jetzt speichern wir das ganze und öffnen den Hammer Editor.
Hier wieder ganz normal einen NPC mit dem Namen "Barney", eine "logic_choreographed_scene" und ein Trigger der die Scene startet. Was jetzt neu ist, wir setzten auch mal 3 "info_targets" und geben ihnen die Namen "target1", "target2" und "target3."
SO nun, wo besteht die Verbindung zwischen den Targets und der Scene? Ganz einfach, wir öffnen mal die "logic_choreographed_scene" und betrachten mal die auswählbaren Felder "Target", diese gehen bis 8 und im Face Poser kann man auch bis "!target8" einstellen.
Also wenn wir im FacePoser einen target 1 benutzt haben, müssen wir hier jetzt auch den Target auswählen, hier gibt man den Namen an, welcher der Target hat. Man könnte auch eine Taube nehmen, sie "Taube" nennen, hier bei "target 1" Taube auswählen und unser Barney würde zu der Taube rennen. Wir müssen also alle Targets, die wir im FacePoser benutzen auch in der "logic_choreographed_scene" zuweisen, sonst gibts später Probleme im Spiel.
Ich habe jetzt mal alle Targets zugewießen, noch ein Player Start und ein light ins Level gesetzt und Compiled. Klappt alles wunderbar, er macht wie ichs wollte, ferdisch ^^.
Jetzt müsste auch das sdk_faceposer besser verständlich sein, da man weiss wie die Targets zugewiesen sind.
Wie gesagt, wenn ich noch was herausfinde häng ichs hier dran, bis dahin viel Spaß beim ausprobieren.