Wie kann ich mein Vektorgrafikspiel aufnehmen, ohne die Grafiken zu verwischen?

15

Viele Leute haben nach einem Trailer für mein Spiel gefragt, weil Screenshots dem nicht gerecht werden. Ich habe PlayClaw, Fraps, CamStudio, VirtualDub und einige andere kleinere Tools getestet. Keiner von ihnen hat ein tragfähiges Ergebnis erzielt. Mein Spiel verwendet Vektorgrafiken und ist für eine Geschwindigkeit von 60 Bildern pro Sekunde ausgelegt. Die verlustbehaftete Komprimierung eines regulären Bildschirmaufnahmevideos zerstört die grafische Attraktivität.

Wie kann ich das Gameplay aufzeichnen, ohne meine Grafiken zu verwischen und die Framerate zu verlangsamen?

Speeder
quelle
2
fraps ist dir zu langsam Stellen Sie sicher, dass die Aufnahme auf 60 fps und nicht auf die Standard-30 fps eingestellt ist.
David Young
Könnten Sie Ihre Frage etwas weiter ausdehnen? Ich denke, es wäre interessant, nicht online zu wissen, wie man das Spiel selbst für einen einfachen Trailer aufzeichnet, sondern auch Videos zu produzieren, die im Spiel angezeigt werden, die so genannten Cut Scenes oder sogar Trailer mit zusätzlichen visuellen Effekten wie dem Umschalten Teile des Videos etc ... Vorschlagen es auf Ihre Frage, da es keine Frage gleichermaßen um ich glaube ...
Prix
1
Ein Preis, der zu unterschiedlich wäre ... Das Erstellen von Schnittszenen ist ein ganz anderes Arbeitsfeld!
Speeder
3
Ich denke, du solltest Fraps wirklich überdenken. Von allen Lösungen, die ich gesehen habe, hat es die beste Qualität und es gibt kein Logo für eine kleine Investition. (Sie haben in Ihrer Frage nicht frei gesagt)
Jesse Dorsey
3
Ich stehe mit meiner vorherigen Antwort. Wenn Sie Eingaben wiederholen und den Zeitschritt erzwingen (oder sogar wiederholen) können, können Sie RAW-Frames aufzeichnen und mit ihnen arbeiten, ohne dass Qualitätsverluste auftreten.
Kaj

Antworten:

22

Machen Sie Ihre Spiel-Framerate unabhängig, damit Sie sie mit einem festen Zeitschritt spielen können. Spielen Sie Ihr Spiel, zeichnen Sie die Eingabe auf. Mit festem Zeitschritt wiedergeben, Eingaben aufzeichnen und jedes Bild in eine Datei schreiben - da Sie mit festem Zeitschritt wiedergeben, spielt es keine Rolle, wie lange das Ausschreiben eines Bilds dauert. Auf diese Weise wird Ihr Quellmaterial dekomprimiert und Sie können später über die Qualität entscheiden, ohne Geschwindigkeitseinbußen hinnehmen zu müssen oder aufgrund eines Aufnahmeprogramms Störungen zu haben. Danach kommen Dinge wie After Effects hinzu - zumindest haben Sie gestochen scharfes Quellmaterial.

Bearbeitet, um hinzuzufügen: Ja, ich weiß, es ist dumm, die Framerate unabhängig zu machen, um zu einem festen Zeitschritt wiederzugeben. Duh. Nun, wenn es sich um Framerate-unabhängige Fraps handelt, könnte dies ebenfalls weniger problematisch sein; o) Spiele sollten sowieso Framerate-unabhängig sein!

Kaj
quelle
5
Bildratenunabhängigkeit und deterministische Wiedergabe sind auch zum Testen nützlich. Noel Llopis hat hier einen guten Artikel: gamesfromwithin.com/back-to-the-future-part-1 (ein zweiter Teil ist ebenfalls verlinkt).
Celion
Also ... ist Ihre Idee, die gesamte Engine neu zu codieren (was ich übrigens nicht gemacht habe), damit sie eine Möglichkeit bietet, Eingaben aufzuzeichnen und diese Eingaben perfekt wiederzugeben? Tut mir leid, aber das funktioniert nicht, vor allem, weil die Physik-Engine, obwohl das Spiel deterministisch ist (die einzigen Zufälle sind visuelle Effekte), schwanken kann und nicht richtig funktionieren würde ... Ich frage nach Marketing-Dingen, nicht nach Programmier-Dingen .
Speeder
Wenn die Physik-Engine schwanken kann, ist sie nicht deterministisch. Die Eingangsaufzeichnung (in den meisten Engines) wird an einer Stelle angeschlossen, es wird kaum die gesamte Engine neu codiert. Wie auch immer, ich höre ja. <B> Die Videokodierung ist ein ziemlich teurer Vorgang, verlustfreie, aber gute Komprimierung ist teurer . Wenn der Festplattenzugriff tatsächlich das Problem ist, können Sie eine RAM-Festplatte einrichten, wenn Sie über ausreichend Speicher verfügen. Entschuldigung, für Ihren Kommentar zum Thema Marketing habe ich nach einer Lösung gesucht. Damit sind Sie auch für die Zukunft gerüstet (was, wenn Sie Hi-Res benötigen?). Wenn es außerhalb des Gültigkeitsbereichs liegt, versuchen Sie es mit der RAM-Disk.
Kaj
Warum ist es dumm, "die Framerate unabhängig von der Wiedergabe zu einem festgelegten Zeitpunkt zu machen"? Damit die Ausgabe mit fester Framerate die von Ihnen aufgezeichnete Sequenz enthält, muss sie bei der Aufnahme unabhängig von der Framerate sein.
Falstro
Nicht unbedingt. Wenn der Frame mit einer garantierten festen Framerate läuft (relativ unwahrscheinlich, aber wenn), können Sie einfach die Eingabe der eingegangenen Keys wiederholen und denselben Zeitschritt voraussetzen. Außerdem klang es nur albern: op
Kaj
8

Dieser Artikel auf Pixel Prospector könnte das sein, was Sie brauchen:

Aufnehmen und Bearbeiten von Gameplay-Videos

Das im Video verwendete Spiel ist NeonPlat 2, das auch Vektorgrafiken verwendet.

Der Artikel behandelt alles, von der Aufnahme bis zur Bearbeitung.

Loris
quelle
Ok, ich vergebe das Kopfgeld für dieses, das eigentlich VÖLLIG korrekt war ... Wie auch immer, danke an Kaj für die Erwähnung von RAM-Laufwerken (das Problem der Langsamkeit der Festplatte gelöst), aber ich kann nicht die Hälfte vergeben -prämie auf jede antwort.
Speeder
Kein Problem. Hoffe, Sie haben es geschafft, etwas richtig zu packen!
Kaj
2
Die archivierte Seite ist hier . Sie aktualisierten die Seite, die als große Liste der
Bildschirmaufnahme-
4

Zum Aufnehmen von Spielmaterial können Sie das kostenlose CamStudio ausprobieren . Ich finde, dass es mit Spielen im Vollbildmodus nicht funktioniert, deshalb solltest du dein Spiel in einem Fenster ausführen.

Für den eigentlichen Trailer benötigen Sie eine Videobearbeitungssoftware. Es gibt mehrere teure kommerzielle Optionen, aber wenn Sie etwas Freies suchen, ist Ihre Auswahl eingeschränkter. Sie könnten Windows Movie Maker oder iMovie ausprobieren, wenn Sie einen Mac haben, aber der beste kostenlose Video-Editor, den ich gefunden habe, ist Blender , besser bekannt als 3D-Modellierungs- und Animationstool. Die Benutzeroberfläche ist nicht intuitiv, aber wenn Sie etwas Zeit damit verbringen, sie zu erlernen, erhalten Sie auch ein ziemlich gutes Videobearbeitungswerkzeug.

Pekuja
quelle
3

Meine beste Erfahrung habe ich mit Fraps gemacht, aber ich habe die Vollversion verwendet (es schien ein kleiner, einmaliger Preis zu sein, um für ein großartiges Dienstprogramm zu zahlen), die keine Grenzen und kein Logo hat. Sie können die Framerate im Voraus einstellen, wie David Young in seinem Kommentar vorgeschlagen hat. Wie viele Videoaufzeichnungstools verwendet Fraps während der Aufnahme eine kostengünstige Komprimierung, die dann in ein höheres Komprimierungsformat Ihrer Wahl konvertiert werden kann. Dafür benutze ich normalerweise VirtualDub.

Ich hatte kein Problem damit, Fraps mit voller Geschwindigkeit (in meinem Fall 50 fps) hinter meinem Spiel laufen zu lassen, um qualitativ hochwertige Captures zu erhalten.

Das Hauptproblem hierbei ist, dass das Erfassen eine gewisse Leistung erfordert, und Sie sollten immer versuchen, dies auf dem besten verfügbaren Computer zu tun. Insbesondere führt das Erfassungstool umfangreiche und fortlaufende Schreibvorgänge durch. Daher ist die Auswahl des Speichers der Datei auf einer schnellen Festplatte der Schlüssel. Laptops werden häufig mit Festplatten mit langsamerem Zugriff geliefert, was die Leistung erheblich beeinträchtigen kann. Wenn Sie während der Aufnahme eine kleinere Bildgröße verwenden, wird die Festplatte einfacher und die Framerate bleibt möglicherweise erhalten. Mit Fraps können Sie Frames in halber Größe einstellen.

Bei Fraps wird die Qualität des endgültigen Films stark von der Komprimierung beeinflusst, die Sie beim Konvertieren der FPS1-codierten AVI-Aufnahme in ein verteilbares Format verwenden. Wenn Sie hier keine Verluste berücksichtigen, spielt es natürlich keine Rolle, wie gut das Erfassungstool funktioniert.

Ich glaube nicht, dass die Programme, die Sie erwähnen, im Allgemeinen so schlecht sind, sondern dass sie erst konfiguriert werden müssen, bevor sie mit Ihrem spezifischen Spiel optimal funktionieren.


Das Speichern jedes einzelnen Frames in PNG ist wahrscheinlich keine gute Idee, wenn Sie bereits Probleme mit der Geschwindigkeit haben. Es würde wahrscheinlich mehr CPU- und Festplattenzeit verbrauchen, da jeder Frame mit all seinen Informationen gespeichert werden müsste. Beim Kodieren und Speichern eines Films verwenden viele Kodierer eine Reihe von Keyframes, die vollständig sind und aufeinanderfolgende Frames als Unterschied zwischen einem Frame und dem nächsten definieren lassen. Dies kann eine enorme Größenreduzierung sein, lässt Sie jedoch nicht einen Frame herausnehmen und ohne den Keyframe lesen.

Die Größe jedes Frames wird nicht nur größer, wenn Sie versuchen, sie in separate Dateien zu kopieren, sondern Sie erhalten auch einen Mehraufwand durch den Dateizugriff. Dies liegt daran, dass Sie für jedes Bild ein neues Datei-Handle öffnen müssen, anstatt sich wie im Film an eine Datei zu halten und diese zu übertragen.

Die beste Möglichkeit ist es, einen verlustfreien Film aufzunehmen und die Bilder daraus zu extrahieren ODER während der Wiedergabe eine begrenzte Anzahl von Bildern wie Screenshots aufzunehmen.

Staffan E
quelle
Fraps hat auch einen verlustfreien Aufnahmemodus. Natürlich erfordert es noch mehr Datenträgerdurchsatz und RAM. Wenn Sie die Vollversion kaufen (die ich empfehle), verschwinden das Logo und das Zeitlimit.
Tombola
Warum würde ich Frames extrahieren? Ich will alle Frames! @Banana ich , dass Fraps hat lossless Modus kennen, ist es der Modus , dass ich das machen Fraps langsam bekommen erwähnt und das Gameplay führen zu wackelig (seemly Fraps , wenn langsam statt Rahmen es irgendwie Verlangsamung des Spiels fallen) zu erhalten
Speeder
Ok, klar, aber mein Punkt ist, dass Sie noch weniger Geschwindigkeit bekommen, wenn Sie versuchen, jeden Frame in einzelne Bilddateien zu kopieren.
Staffan E
2

Geräte wie diese sind supergünstig, und ich wette, Sie können sich einen zweiten Computer anschaffen, auf dem Sie das Spiel ausführen können (es sind keine besonderen Dinge erforderlich), sodass Sie Ihr Spiel von Ihrem Spielautomaten aus aufzeichnen können (stellen Sie sicher, dass Sie einen Computer haben) mit S-Video-Ausgang für diese billige Version). Es gibt auch so etwas für qualitativ hochwertigere Aufnahmen - http://www.blackmagic-design.com/products/intensity/ erfordert aber USB 3 und ist teurer, aber Sie können HDMI und eine höhere Auflösung aufnehmen. Ich sehe wirklich keine bessere Option als eine dieser beiden.

Keyframe
quelle
1

Ich habe Windows Media Encoder einige Male verwendet, um Videos von meinen Spielen und Tools aufzunehmen - es ist kostenlos und produziert Videos in guter Qualität.

Allerdings habe ich mich diese Frage auch gefragt, denn das Aufnehmen eines Videos ist nur der halbe Prozess (wenn ja). Die andere Hälfte bearbeitet es, fügt Effekte hinzu usw. Windows Movie Maker funktioniert ein bisschen, aber es ist ziemlich simpel ... und stürzt ab.

Srekel
quelle
because recording a video is only half the processGuter Punkt, ich frage mich auch, dass, wie auf den Kommentar der ersten Frage angegeben ...
Prix
1

Ich habe es nicht benutzt, aber vielleicht möchten Sie es mit Taksi versuchen .

Andrew Brockert
quelle
Aus irgendeinem Grund weigert es sich, sich in mein Spiel einzumischen :(
speeder
1

Grundsätzlich waren die Themen:

Qualität in einem vektorbasierten Spiel. CPU-Menge genommen. E / A-Engpass.

Welche Software zum Bearbeiten verwenden.

Um die Qualität zu lösen, brauchte ich einen verlustfreien Codec oder keine Komprimierung. Je geringer die Komprimierung, desto mehr I / O-Probleme hätte ich, aber je mehr CPU ich nahm, desto mehr CPU-Probleme hätte ich (doh).

Die Lösung bestand darin, einen RamDrive zu verwenden, um den E / A-Engpass zu beheben. Daher blieb mir jetzt meistens übrig, wie viel CPU ich nehmen wollte (dh so klein wie möglich). Somit wäre theoretisch das Beste überhaupt keine Komprimierung, aber überhaupt keine Komprimierung auf einem RAM-Laufwerk verfügbarer Speicherplatz Probleme ...

Also recherchierte ich und fand heraus, dass der schnellste verlustfreie Codec (egal wie stark er tatsächlich komprimiert) CamStudio Lossless war

Die von mir verwendete Software war VirtualDub (CamStudio selbst kann den Fensterinhalt nicht erfassen, es erfasst das gesamte Fenster, wodurch Speicherplatz verschwendet wird).

Jetzt Bearbeitungssoftware: Naja, niemand hat hier eine gute Antwort gegeben, und ich werde es auch nicht tun, aber andere Listen können an anderen Stellen gefunden werden.

Speeder
quelle
3
Mir ist aufgefallen, dass du dein Video auf Youtube hochgeladen hast . Beachten Sie, dass Youtube alle Videos in H.264 neu codiert, sodass Sie nach all dem Winken von Hand sowieso einen verlustbehafteten Codec verwendet haben.
BlueRaja - Danny Pflughoeft
0

Möglicherweise möchten Sie vnc2flv ausprobieren , aber es führt selbst kein Audio aus (Sie können jedoch später eine Audiospur hinzufügen). Ich bin mir nicht sicher, ob deine CPU es hassen wird, wenn du versuchst, neben einem laufenden Spiel eine Echtzeit-FLV-Codierung durchzuführen.

coderanger
quelle
0

Es klingt wahrscheinlich offensichtlich, aber ... Machen Sie kein Vollbild, während Sie das Video aufnehmen, da es sonst "offensichtlich" unglaublich langsam ist, da es Ihre Bildschirmauflösung erfasst. Ich nehme an, das ist es, woran Sie gebissen werden.

FRAPS wird das in Ordnung bringen. Das werden auch viele andere, aber ich fand FRAPS am bequemsten und am einfachsten zu bedienen.

Ich habe FRAPS zum Aufzeichnen und Windows Movie Maker zum Zusammenstellen einiger Karten verwendet, die ich in Starcraft II erstellt habe - Beispiel .

David McGraw
quelle
Eigentlich ... Ich habe es nicht einmal im Vollbildmodus versucht, alle meine Tests waren im Fenstermodus.
Speeder
0

Folgendes habe ich in der Vergangenheit getan, um reine Video-Trailer zu erstellen:

  1. Machen Sie Ihr Spiel mit einem festen Zeitschritt lauffähig. Das bedeutet, dass Sie die Zeit zwischen dem Jetzt und dem letzten Frame explizit verstreichen lassen, anstatt sie intern für Ihre Spieleschleife zu berechnen.
  2. Speichern Sie einen Frame nach dem Rendern in einem verlustfreien Bildformat wie .tiff mit der Frame-Nummer als Namen. Dies macht es einer anderen App einfach, eine Reihe von Bildern in einen Film zu kodieren.
  3. Dump in den entsprechenden Video-Encoder (ich habe einen einfachen Encoder mit DirectShow geschrieben), um ihn in .avi oder das gewünschte Videoformat zu konvertieren.
MSN
quelle
0

Der beste Weg ist, dein Spiel selbst aufnehmbar zu machen. Einfacher Weg ist, jeden Frame mit fester Framerate zu speichern. Mit SSD dauert es "keine" Zeit. Schwieriger ist es, eigene "Fraps" zu machen. Wenn du es machst. Sie können direkt mit Ihrem Spiel kommunizieren.

samboush
quelle
0

Ich habe vor kurzem einen Trailer für mein Spiel gemacht. Mir hat die Engine etwas geholfen, die es ermöglicht, Screenshots schnell genug zu erstellen, um sie tatsächlich zu animieren. Was ich getan habe:

  • Obwohl ich die Framerate nicht korrigiert habe, wurden die Aufnahmen in festgelegten Intervallen gemacht, 25 pro Sekunde. Ich habe meine Spielsitzung aufgezeichnet, die Tausende von Bildern auf dem Laufwerk erzeugt hat.
  • Ich habe diese Bilder dann in einen Clip in kdenlive importiert
  • Einige Titel, Musik, Logos, Ein- und Ausblendungen wurden hinzugefügt, um das Erscheinungsbild zu verbessern

Das direkte Aufnehmen der Bilder bedeutete, dass ich keine Sounds vom Spiel bekommen konnte, sondern eine viel bessere Bildqualität. Das Hinzufügen von Musik hat das mehr als wettgemacht.

small_duck
quelle
-6

Wenn Sie zwei PCs haben, verwenden Sie die Bildschirmfreigabefunktion von skype. Spielen Sie das Spiel auf einem PC und nehmen Sie das Video mit dem anderen auf. Auf diese Weise werden Sie Ihr Spiel nicht beeinträchtigen und die Ressourcen für das Videoerfassungsprogramm werden nicht knapp.

Umgekehrt können Sie eine Videoaufnahmekarte für Ihren PC kaufen.

Wight
quelle
wut ... ... . .
David McGraw
3
Skype kann keine Videos auf magische Weise senden, ohne sie zu verschlüsseln, was dem Programm die CPU-Zeit nimmt.
1
Dies ist die schlimmste Idee, die ich je gesehen habe.
Mathias Lykkegaard Lorenzen