Lestard's Blog Software-Development with JavaScript, XUL, Firefox-Addons, XML, Java…

12Okt/093

Tutorial: Demosmoother – SourceEngine

release: 15.01.2007

In diesem Videotutorial wird erklärt, wie man mit dem DemoSmoother eine Kamerafahrt in deine Demo erstellen kann. Der DemoSmoother ist Bestandteil der SourceEngine und damit in CounterStrike:Source und allen anderen Spielen auf Basis der SourceEngine verfügbar.

flattr this!

veröffentlicht unter: Tutorials, Videos weiterlesen
5Okt/090

Tutorial: Grundlagen CSS-Moviemaking

Dies ist ein kleines Grundlagentutorial zum Thema Moviemaking mit CounterStrike:Source

Das Tutorial soll vor allem Neulingen eine Grundlage für ein eigenes Video bieten. Wir möchten nicht nur den Grundsätzlichen Entstehungsprozess beschreiben, sondern auch auf häufige Fallstricke für Anfänger hinweisen. Dabei kann es gewisse überschneidungen mit dem FAQ-Bereich geben. Bei solchen überschneidungen möchten wir in diesem Tutorial nur eine kurze Antwort geben, ausführlichere Erklärungen wird es auch weiterhin im FAQ-Bereich geben.

Dieses Tutorial ist zusammen mit DeadX (ICQ: 489904130) entstanden.

Hinweis: Einige der Veränderungen, die für das Aufnehmen der Szene benötigt werden, können im regulären Spielbetrieb als unerlaubte Veränderungen des Spiels gelten. In der ESL gelten einige Veränderungen z.B. als unerlaubte Scripts oder ähnliches und können bestraft werden. Die hier gemachten Veränderungen sollte nur zum Moviemaking benutzt werden und fürs reguläre Spielen wieder rückgängig gemacht werden. Wir können selbstverständlich keine Verantwortung für ESL-Sperren oder ähnliches übernehmen.

Bevor man änderungen an Spieldateien vornimmt, sollte man Sicherheitskopieen erstellen.

Vorbereitung

Die CSS-Spielszenen liegen in der Regel als Demo (Endung .dem) vor. Diese kann man zwar in CSS abspielen, nicht jedoch in einem Videoprogramm weiterbearbeiten. Man muss die Demo also umwandeln.

Eine direkte Umwandlung ist allerdings nicht möglich. Man muss die Demo stattdessen in CSS abspielen und dabei "Abfilmen". Einige kennen Programme wie Fraps oder Gamecam für diese Zwecke. Diese Programme sind aber allesamt nur Notlösungen und nicht Optimal.

Stattdessen benutzen wir die in der SourceEngine (und damit auch in CSS) eingebaute Aufnahmefunktion namens "Startmovie".

MovieConfig erstellen

Für die Aufnahme per Startmovie-Funktion benötigt man eine ganze Reihe KonsolenBefehle. Diese alle jedes mal neu einzugeben ist ziemlich mühsehlig und auch Fehleranfällig. Praktischer ist es, eine Movieconfig zu erstellen.

Dazu geht ihr in den cfg Order von counterstrike source unter:

....\Steam\SteamApps\"Steamname"\counter-strike source\cstrike\cfg

Nun erstellt ihr eine neue Textdatei und nennt die datei "Movie.cfg"

Hinweis: Es kann bei Windows zu Problemen mit der Dateiendung kommen. Die Option "Erweiterungen bei bekannten Dateitypen ausblenden" muss deaktiviert sein. (Arbeitsplatz -> Extras -> Orderoptionen-> Ansicht)

Diese Datei nun im Editor (rechtsklick -> Bearbeiten) öffnen und folgenden Text kopieren:

      cl_autohelp "0"         // Schaltet Autohelp-menü aus
      hud_saytext_time "0"    // Entfernt den Chat
      hud_centerid "0"        // Spielernamen werden unten links angezeigt
      hud_fastswitch "1"      // Waffenmenü in der oberen Mitte wird nicht mehr angezeigt
      mp_playerid "2"         // Spielernamen werden ausgeschaltet
      hideradar "1"           // Entfernt das Radar
      net_graph "0"           // Entfernt den Net-Graph
      cl_crosshairusealpha "1"  // Fadenkreuzeinstellungen
      cl_crosshaircolor "4"     // Farbe
      cl_crosshairscale "700"   // Größe
      cl_crosshairalpha "0"  // Transparenz
      cl_radaralpha "0"         // Entfernt das Radar
      cl_locationalpha "0"      // Entfernt das Radar

      bind "l" "endmovie;wait;host_framerate 0"
      bind "k" "clip"
      alias "clip" "clip1"
      alias "clip1" "host_framerate 200;wait;startmovie clip1;alias clip clip2"
      alias "clip2" "host_framerate 200;wait;startmovie clip2;alias clip clip3"
      alias "clip3" "host_framerate 200;wait;startmovie clip3;alias clip clip4"
      alias "clip4" "host_framerate 200;wait;startmovie clip4;alias clip clip5"
      alias "clip5" "host_framerate 200;wait;startmovie clip5;alias clip clip6"
      alias "clip6" "host_framerate 200;wait;startmovie clip6;alias clip clip7"
      alias "clip7" "host_framerate 200;wait;startmovie clip7;alias clip clip8"
      alias "clip8" "host_framerate 200;wait;startmovie clip8;alias clip clip9"
      alias "clip9" "host_framerate 200;wait;startmovie clip9;alias clip clip10"
      alias "clip10" "host_framerate 200;wait;startmovie clip10;alias clip clip11"
      alias "clip11" "host_framerate 200;wait;startmovie clip11;alias clip clip12"
      alias "clip12" "host_framerate 200;wait;startmovie clip12;alias clip clip13"
      alias "clip13" "host_framerate 200;wait;startmovie clip13;alias clip clip14"
      alias "clip14" "host_framerate 200;wait;startmovie clip14;alias clip clip15"
      alias "clip15" "host_framerate 200;wait;startmovie clip15;alias clip clip16"
      alias "clip16" "host_framerate 200;wait;startmovie clip16;alias clip clip17"
      alias "clip17" "host_framerate 200;wait;startmovie clip17;alias clip clip18"
      alias "clip18" "host_framerate 200;wait;startmovie clip18;alias clip clip19"
      alias "clip19" "host_framerate 200;wait;startmovie clip19;alias clip clip20"
      alias "clip20" "host_framerate 200;wait;startmovie clip20;alias clip clip1"

Mit dieser Config ist es möglich, bis zu 20 Aufnahmen nacheinander zu erstellen. Danach wird die erste Aufnahme wieder überschrieben. Zum starten der Aufnahme muss man nur noch die Taste "k" drücken und zum Stoppen die Taste "L".

Die Aufnahme wird hier mit 200 FPS gemacht. Wenn man eine andere FPS-Zahl haben möchte, muss man an jeder Stelle, wo "host_framerate 200" steht, statt der 200 die gewünschte Zahl schreiben.

HUD bearbeiten

In den meisten Movies ist das HUD, sprich die Anzeige für Lebensenergie, Munition und das Radar, unerwünscht. Mit geeigneten HUD-Dateien lässt sich dieses Ausblenden.

Runterladen kann man solche Dateien z.B. hier

Diese Dateien müssen an die jeweilige Stelle im cstrike-Verzeichnis kopiert werden.

Aufnahme vorbereiten

Bei den meisten Gamevideos hat sich eine Widescreenauflösung durchgesetzt. Die Vorteile sind unteranderem, dass sich damit besser ein gewisses Kinofeeling einstellt und es im Allgemeinen für Filme besser wirkt als ein 4:3-Format.

Eine Sinnvolle 16:9-Auflösung ist 1280*720 oder 960*540.

Aufnehmen

Nun starten wir CounterStrike:Source

Im Grafikmenü sollten alle Optionen auf den höchstmöglichen Wert gestellt werden. Vor allem Antialiasing und Anisotrophe Filterung sollten hoch gestellt werden. Ob man HDR-Beleuchtung haben möchte oder nicht ist Ansichtssache und sollte von jedem persönlich entschieden werden.

Wichtig für die korrekte Audioaufnahme ist, dass man im Audiomenü auf Stereosound (2 Lautsprecher) stellt. Andernfalls wird die Soundaufnahme fehlerhaft.

Um auf unsere Movieconfig zugreifen zu können, müssen wir diese noch ausführen. Dazu schreiben wir in die Konsole "exec movie.cfg" (natürlich ohne die Anführungszeichen).

Um in das DemoAbspielprogramm (DemoUI) zu kommen drückt man einfach Shift und F2 gleichzeitig. Die Bedienung ist ziemlich selbsterklärend. Die Bedienung entspricht der üblichen Videorecorder-Bedienung. Einzig die "Zurückspulen-Taste" funktioniert nicht.

Um zur gewünschten Stelle in der Demo zu kommen gebt ihr den Tick (Entspricht der Stelle in der Demo) in das Textfeld ein und drückt auf "GoTo".

Wenn man bei der Richtigen Stelle angelangt ist, lässt man die Szene laufen und drückt zum Starten der Aufnahme die Taste "K".

Wärend der Aufnahme wird die Framerate und die Abspielgeschwindigkeit stark in den Keller fallen. Dies stellt aber kein großes Problem dar. Die Aufnahme selber wird trotzdem flüssig sein. CSS speichert nun 200 (oder eben was man bei host_framerate eingestellt hat) Bilder für Jede Sekunde auf die Festplatte. Im Gegensatz zum Normalen spielen wird hier kein Frame übersprungen sondern solange gewartet, bis jedes einzelne Bild gespeichert ist. Das ist der Grund warum das Spiel so langsam läuft. Das stellt aber auch den Hauptvorteil gegenüber anderen Aufnahmeprogrammen wie Fraps dar. Doch dazu später mehr.

Zum Stoppen der Aufnahme drückt man die Taste "L". Danach kann man CSS beenden oder weitere Aufnahmen (bis zu 20 Stück hintereinander) machen.

Screenshots zu AVI-Datei umwandeln

Nachdem man CSS beendet hat, sieht man im cstrike-Ordner nun jede Menge Screenshots mit der Dateiendung .tga .

Nun benötigen wir das Programm VirtualDub. Dieses kann man sich in der Aktuellen Version hier kostenlos runterladen. Man sollte stets darauf achten, dass man die Aktuellste Version benutzt, da ältere Versionen oft nicht mit .tga-Dateien klar kommen.

Nachdem wir VirtualDub gestartet haben, können wir die erste .tga-Datei ganz einfach in das Programmfenster von VirtualDub ziehen. Alle restlichen Dateien werden automatisch nachgeladen.

In VirtualDub muss man im Menü unter Video -> Framerate beim Punkt "Change frame rate to (fps)" die gleiche Zahl eintragen, die man beim Aufnehmen bei host_framerate eingestellt hatte. In unserem Beispiel also die 200.

Danach geht man in das Menü Audio -> Wav Audio und wählt dort das cstrike-Verzeichnis, in welchem auch die Screenshots zu finden sind, aus. In diesem Verzeichnis befindet sich auch eine .wav-Datei die den gleichen Namen besitzt, wie die Screenshots.

Nun muss man nur noch über das Menü File -> "Save as Avi" das Video an eine geeignete Stelle speichern.

Weiterverarbeitung und Komprimierung

Den erstellten Videoclip könnt ihr nun in einem geeigneten Videoschnittprogramm weiterbearbeiten. Dabei soll eurer Kreativität keine Grenzen gesetzt sein. Viele Moviemaker vor allem in der CSS-Szene benutzen zum Bearbeiten das Programm " Sony Vegas" aber auch "Adobe Premiere" oder andere Programme sind möglich.

Nach dem Bearbeiten muss eurer Video noch komprimiert werden. Weitverbreitete Codecs dazu sind XVid und x264. Nähere Informationen dazu erhält man z.B. Auf www.planet-videos.com im Forum, Videowiki oder im Tutorialbereich.

Für Anfänger würde ich den XVid-Codec und die zwei Tutorials auf planet-videos.com empfehlen. Auch das "KomprimierungsGrundlagen-Tutorial" auf planet-videos.com möchte ich an dieser Stelle unbedingt empfehlen.

Schlussbemerkungen und Hinweise

Wie ihr Sicherlich mitbekommen habt, ist die Variante mit dem Startmovie-Befehl relativ aufwendigt im Vergleich zu Alternativen Methoden mit Fraps oder Gamecam. Dieser Mehraufwand lohnt sich aber gewaltig und ihr könnt mir glauben wenn ich sage, dass ALLE besseren Moviemaker die Startmovie-Methode verwenden und die Benutztung von Fraps als Grundsätzlicher Fehler betrachtet wird.

Startmovie hat zwei Grundlegende Vorteile:

Zum einen die Möglichkeit, selbst festzulegen, wieviele Frames pro Sekunde aufgenommen werden. Das Spiel passt die Abspielgeschwindigkeit der festgelegten FPS an und nicht umgekehrt. Dadurch kann ich sogar mit älterer Hardware, die beim Spielen vieleicht nur 25 FPS schafft, festlegen, dass mit 200 FPS aufgenommen werden soll. Egal wie viele FPS man beim Spielen schafft - die Framerate der Aufnahme ist trotzdem immer so hoch wie man mit host_framerate festgelegt hat. Dies hat für die Qualität gewaltige Vorteile da man z.B. auch ZeitlupenEffekte erstellen kann ohne das es zu nervigen Rucklern und LowFPS-Szenen kommt.

Der zweite Vorteil ist die Tatsache, dass man mit Startmovie die Bilder unkomprimiert abspeichern kann. Das heisst, dass es beim Abspeichern keinen Qualitätsverlust gibt. Um am Ende eine möglichst gute Bildqualität zu bekommen, ist es wichtig, dass Alle Aufnahmen möglichst ohne Qualitätsverlust gespeichert werden. Dies ist bei Fraps oder ähnlichen Programmen nicht möglich.

Der Nachteil dieser Variante ist allerdings, dass dadurch ein sehr viel höherer Speicherplatz gebraucht wird. 10 Gb für eine Aufnahme sind keine Seltenheit und für ein ganzes Movie plane ich meistens mehrere 100 GB an Platzbedarf ein. Um beste Bildqualität zu erreichen sind diese "Opfer" aber unabdingbar und wie schon erwähnt: Alle besseren Moviemaker arangieren sich damit.

Noch ein kleiner Hinweis: Wenn man die Aufgenommene Videodatei direkt abspielen möchte, kommt es in der Regel zu Rucklern. Dies ist ganz normal. Der Grund dafür wird in den FAQ etwas genauer erklärt.

Nun sollte euch der Einstieg in die Materie etwas leichter fallen. Allerdings merkt ihr sicherlich auch, dass es sehr viel umfangreicher ist, als man es am Anfang vieleicht angenommen hat. Wie überall gilt aber auch hier: übung macht den Meister. Das Internet ist Voll von Interessanten Hilfestellungen und Anleitungen. Allerdings sollte man sich auch nicht zusehr auf Anleitungen verlassen und stattdessen öffter mal seinen eigenen Kopf anstrengen. Auch ausgiebige Besuche bei der Wikipedia kann ich nur wärmstens empfehlen. Man sollte jeden Begriff, den man nicht gleich kennt, bei der Wikipedia oder anderen Quellen nachschlagen. Nur so kann man sich ein eigenes Wissen aufbauen und damit auch die Grundlagen für gute Movies schaffen. Aber am Ende entscheidet natürlich vor allem die eigene Kreativität, die Bereitschaft zu Arbeit und gute Ideen über die Güte eures Films.

mfg

Lestard und DeadX

Wie immer sind wir Dankbar für Verbesserungsvorschläge und Meinungen

flattr this!

veröffentlicht unter: Tutorials keine Kommentare