Filmen ..

  • C/C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • In meinen Spiel habe ich eine 'Film-Option'. Dabei speichere ich in gewissen Abständen
    den Inhalt des Grafikspeichers als BMP auf die 'Platte'. Um die Datenmenge hier schon
    gering zu halten, arbeitete ich dabei mit einer unteren Bildschirmauflösung von 800/600.
    Dann habe ich z.Bsp. 733 Bmps, die zusammen einen Film ergeben.
    Mit 'Bmp zu Avi' V5.5 von E314.de erzeuge ich daraus eine *.avi.
    Diese Datei hat eine Größe von 1 030 801 KB. Sehr groß, aber auch gestochen scharf.
    Mit 'WinAvi' V7.1 wandle ich diese Datei dann über MPEG1 in eine *.mpg um.
    Dann hat das Ganze 'nur' noch die Größe von 28.476 KB. Handlicher, aber nicht die gewünschte Qualität.
    MPEG2 kann ich auch, das Ergebnis ist etwas größer als MPEG1, hat aber keinerlei Einfluss auf die Endqualität.
    Frage:
    Gibt es einen besseren/anderen Weg um 'Filme', mit guter Qualität, bei kleiner Datenmenge zu erzeugen?
  • Möchtest du so ne Art Replay Funktion einbauen...?
    Ich kenn mich nicht aus mit Screen Capturing und den ganzen Video-Formaten(Ich denke, die Komprimierung lässt sich einstellen..),
    aber ich würde dir vorschlagen, gar keine Videos aufzunehmen, sondern lediglich den "Game-State" aufzunehmen.
    Dh. du speicherst während des laufenden Spiels bei jedem neuen Frame alle Spiel-Objekte und ihre aktuellen relevanten Eigenschaften wie Geschwindigkeit, Position und alle Dinge, die das Replay später anzeigen soll, ab. Wenn der User Input zB in Form eines Tastendrucks gibt, wird das auch abgespeichert und später im Replay emuliert. Beim Replay könntest du nun diese Datei laden und den Gamestate "nachspielen".
    Um ein vielfaches effizienter wäre es natürlich, nur die Veränderung zwischen den Frames abzuspeichern.
    Ich weis nicht, inwiefern du eine Speicherfunktion implementiert hast, wenn das der Fall ist, könntest du natürlich dieses Format und diese Art der Synchronisierung der Objekte mit der Speicherdatei zum speichern des Replays verwenden, wenn allerdings keine Speicherfunktion vorhanden ist, wäre es evtl. recht aufwendig, das ganze zu implementieren und einfach ein Video aufnehmen wäre wesentlich einfacher... ;)
    "das war meine letzte flamewar PM an dich ."
  • Benutzer online 1

    1 Besucher