Demofunktion spint

Alles was mit Enemy Territory zu tun hat
Antworten
Lorp
Grünschnabel
Grünschnabel
Beiträge: 9
Registriert: Sa 2. Sep 2006, 16:58

Demofunktion spint

Beitrag von Lorp »

Hi ich bin jetzt mal auf 2.6.0 umgestiegen und seit dem spint meine Demofunktion. Wenn ich die fps speichern will also f2 nimmt der bei mir nur in zeitlupe auf weiß einer wodran das liegt?
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Was meinst du damit in Zeitlupe?
Es ist normal wenn beim umwandeln der Demo in Einzelbilder die Bilder langsam ablaufen da ET die Situation auf Grund der FPS auf der Zeitschiene exakt rekonstruieren muss um davon dann ein Standbild zu macht.
Erst wenn du die Bildsequenzen mit einem Programm zu einem Film (AVI) zusammen fügst, läuft der Film wieder mit der richtigen Geschwindichkeit.
Wichtig hierbei ist, daß der Film mit soviel FPS abgespielt wird wie er aufgenommen wurde.

F1 - Stop Record
F2 - Record @ 10 FPS
F3 - Record @ 15 FPS
F4 - Record @ 20 FPS
F5 - Record @ 24 FPS

Wenn du also mit 'F2' eine Bildersequenz aufnimmst, werden exakt 10 Bilder in der Sekunde aufgenommen.
Wenn du diese Sequenz zu einem Film verarbeitest, musst du in deinem Programm einstellen daß der Film 10 Bilder pro Sekunde haben soll, sonst stimmt die Geschwindichkeit nicht.

Nochwas zu Filmen:
Wenn du einen Film mit ET machst, stell dein ET auf die Auflösung ein die der fertige Film dann haben soll. Dadurch muss kein Programm die Bilder strecken oder stauchen und die Bildqualität bleibt erhalten.
Für einen Film der flüssig abläuft, solltest du den Film mit 24 FPS ('F5') aufnehmen.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Lorp
Grünschnabel
Grünschnabel
Beiträge: 9
Registriert: Sa 2. Sep 2006, 16:58

Beitrag von Lorp »

Ja hab es dan in avi umgwandelt aber er war da immernoch in zeitlupe und wenn ich 5 (auf numblock) drücke also das es normal geschwindig keit haben soll ist er zu schnell mit 2.55 klappt alles bestens aber im 2.6 nich :( .
Zur zeitlupe er macht ca. 1schritt - 1sec und genau das wandelt er in die screens um.Hab auchscon probiert einfach jeden 2 screen zu löschen aber das sieht dan nich mehr wirklich gut aus.

PS: danke für den tip mit der auflösung
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Also wenn du dir eine Demo ansiehst und dann 'F5' drückst zum aufnehmen ist das normal daß die Bilder langsam ablaufen.

Ein Demo-File ('.dm##') beinhaltet ein NetLog.
Also alle Daten die zwischen dem ET-Client und ET-Server über das Netzwerk übertragen wurden.
Wenn du dir eine Demo ansiehst, bekommt der Client die Netzwerkdaten nicht von einem Server wie bei einem normalen Connect auf einem Server, sondern liest die Daten aus der Demo-Datei.
Ein Demo-File ist also kein Film, sondern ein NetLog.
Mit den Daten aus dem NetLog kann der Client das aufgezeichnete Spiel rekonstruieren.
Diese Rekonstruktion läuft grafisch aber genau wie ein Spiel. Der Client versucht soviele Frames wie möglich zu berechnen, aber maximal soviele wie in der CVAR 'com_maxfps' angegeben ist.
Wenn du dir in einem Spiel mal die FPS anzeigen lasst, wirst du sehen das die FPS nicht konstant sind. Das liegt daran, daß je nach Ansicht mehr oder weniger Polygone berechnet und gerendert werden müssen.

Ein Film muss aber konstante FPS haben damit er flüssig läuft und die Zeitabstände zwischen jedem Frame müssen gleich lang sein.
Wenn du beim ansehen der Demo 'F2' drückst, beginnt der Client Einzelbilder zu erzeugen die den exaten Zeitabstand einhalten.
'F2' steht für 10 FPS, also berechnet der Client ein Vollbild und macht einen Screenshot davon. Danach liest er die Daten aus der Demo-Datei (NetLog) die in der darauf folgenden 1/10 Sekunde (= 0,1 Sek = 10tel Sek) aufgezeichnet wurden und wertet die aus. Dadurch weis er wie die Situation nach genau 1/10 Sekunde ausgesehen hat und berechnet ein exaktes Bild davon und macht wieder einen Screenshot. Das geht solange bist du 'F1' (stop record) drückst, oder das Demo-File zu ende ist.

Dadurch daß der Client nicht fliesend rechnet wie bei einem Spiel, sondern eine exakte Zeitschiene einhalten muss, siehst du die Demo langsamer, weil der Client hierbei ganz anders rechnen muss.
Die Screenshots werden im Verzeichnis 'screenshots' mit den Dateinamen 'shot####.tga' ('####' stehen für Zahlen) abgelegt. Sie sind durch nummeriert von '0001' aufwärts.

Um diese Bilderreihe zu einem AVI zusammen zu fügen, brauchst du ein Film-Programm das Einzelbilder zu einem Film zusammenfügen kann.
Das Ergebnis ist das ein Film (AVI) der mit der richtigen Geschwindichkeit wiedergegeben wird.

Mit der Taste '5' (auf dem Numblock) wird nur die Demo auf Speed 1.0 gesetzt.
Das hat mit dem erstellen der Bildsequenzen für einen Film nichts zutun.

Ich hoffe du siehst jetzt etwas klarer wie das alles funktioniert ;)

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Antworten