Gamestudio Links
Zorro Links
Newest Posts
loading historical data 1st time
by AndrewAMD. 04/14/23 12:54
Trade at bar open
by juanex. 04/13/23 19:43
Bug in Highpass2 filter
by rki. 04/13/23 09:54
Adding Limit Orders For IB
by scatters. 04/11/23 16:16
FisherN
by rki. 04/11/23 08:38
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
4 registered members (AndrewAMD, fogman, Grant, juanex), 972 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
rki, FranzIII, indonesiae, The_Judge, storrealba
18919 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
time_step ... noch mal #372644
06/03/11 11:24
06/03/11 11:24
Joined: Mar 2007
Posts: 1,852
A
alpha_strike Offline OP
Serious User
alpha_strike  Offline OP
Serious User
A

Joined: Mar 2007
Posts: 1,852
Hallo JCL, ich habe mal eine technische Frage...
ich will einen Schwenk über eine 2D-Landschaft auf einem Panel mit verschiedenen Layern per window-Verschiebung realisieren.

Jetzt verstehe ich nicht den Zusammenhang zwischen time_step und fps_max... Ich möchte gerne eine 100Pixel-Horizontalverschiebung in einer Sekunde realisieren.
Irgendwo gab es mal eine Angabe, dass wait(1) etwa einer sechzehntel Sekunde bei fpx_max von 30 entspricht.

Wie genau kann ich das justieren?

Re: time_step / fps_max / wait [Re: alpha_strike] #372645
06/03/11 11:34
06/03/11 11:34
Joined: Jul 2000
Posts: 27,935
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,935
Frankfurt
Für 100 Pixel pro Sekunde bewegen Sie sich einfach pro Frame um den Betrag 100*time_step/16.

Re: time_step / fps_max / wait [Re: jcl] #372646
06/03/11 11:39
06/03/11 11:39
Joined: Mar 2007
Posts: 1,852
A
alpha_strike Offline OP
Serious User
alpha_strike  Offline OP
Serious User
A

Joined: Mar 2007
Posts: 1,852
o.k. Wenn ich jetzt fps_max auf 30 setze, dann zeigt die Engine als Sollwert, der nicht überschritten werden darf: 30fps an. Das würde bedeuten, wenn ich meinen Schwenk 100Pixel machen will - dann muss ich mit +3.33 verschieben.

Wenn ich +3.33*time_step schreibe, dann bedeutet dies, dass ein langsameres System (das weniger als 30 Bilder pro Sekunde bringt) trotzdem die 100 Pixel in der geplanten Sekunde schwenkt... ist das korrekt?

Und als letztes möchte ich noch einmal an die Bitte für den get_pos-Befehl erinnern. Wäre echt toll, wenn man diesen Befehl zu set_pos ergänzen könnte.

Re: time_step / fps_max / wait [Re: alpha_strike] #372647
06/03/11 11:41
06/03/11 11:41
Joined: Mar 2007
Posts: 1,852
A
alpha_strike Offline OP
Serious User
alpha_strike  Offline OP
Serious User
A

Joined: Mar 2007
Posts: 1,852
ok, Sie haben editiert... der Divisor 16 ist also mein Schlüssel.
(time_step/16) gewährt mir also diese gewollte Verschiebung. Danke!

Dann verbleibt es für mein Zeichentrick-Vorhaben noch bei der get_pos-Bitte.
Vielen Dank

Re: time_step / fps_max / wait [Re: alpha_strike] #372648
06/03/11 11:43
06/03/11 11:43
Joined: Jul 2000
Posts: 27,935
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,935
Frankfurt
Ja, das ist korrekt. - get_pos bekommen Sie im nächsten Update.

Re: time_step / fps_max / wait [Re: jcl] #372652
06/03/11 12:27
06/03/11 12:27
Joined: Mar 2007
Posts: 1,852
A
alpha_strike Offline OP
Serious User
alpha_strike  Offline OP
Serious User
A

Joined: Mar 2007
Posts: 1,852
Danke für get_pos. Das ist echt gut!

Aber sorry, wenn ich mit meinen persönlichen Problemchen nerve… im Ergebnis habe ich so eine „Ungefähr Lösung“ erhalten, die nicht ganz hinhaut.

Ich habe mal vor über 10 Jahren ein Flash-Movie gemacht
http://www.newgrounds.com/portal/view/10092 für eine Punkband. Da konnte ich mit irgendeiner Einstellung den Flash-Film hundertprozentig an den Sound-File anpassen.
So war es mir möglich, bildgenau mit dem Gesang eine Lippen-Synchronisation zu animieren.

Jetzt habe ich ganz genau folgendes Problem..
Ich starte meinen Soundfile (ganz normal mit snd_play und einem Handle). Dieser File geht messerscharf genau 3.1 Sekunden. Und genau wenn mein Befehl snd_playing mir mitteilt, dass der Soundfile nicht mehr spielt – will ich meine Verschiebung punktgenau an einer ganz bestimmten Position beenden. Und genau an dieser Position soll mein Endbild sein. Und das funktioniert nicht mit der time_step/16- Berechnung. Nur eben so ungefähr.

Wie kann man so etwas lösen. Haargenau nach 3.1 Sekunden soll die Zielposition erreicht werden. Von x=2000 auf x=0. Ich könnte im letzten Moment, wenn die Pos nicht erreicht ist => Rücken. Das sieht nicht toll aus… oder eben die Verschiebung beschleunigen… sieht auch nicht toll aus. Weil dann eben die Zielposition zu früh erreicht wurde.
Was für eine Lösung gibt es dafür?

Re: time_step / fps_max / wait [Re: alpha_strike] #372675
06/03/11 15:19
06/03/11 15:19
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
3.1sek sind 49,6 ticks. Nun sei
var zeit = 0;
Dann müsste die korrekte Position per

x = 2000 * (49.6-zeit)/49.6;
zeit = minv(zeit + time_frame, 49.6);

angegeben werden. Ich denke, dass sich time_frame für zeitkritische Prozesse besser eignet als time_step (wegen der fehlenden Glättung).


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: time_step / fps_max / wait [Re: Superku] #372759
06/04/11 04:03
06/04/11 04:03
Joined: Mar 2002
Posts: 1,774
Magdeburg
F
FlorianP Offline
Serious User
FlorianP  Offline
Serious User
F

Joined: Mar 2002
Posts: 1,774
Magdeburg
Softwareseitig lässt sich sowas nur sehr schwer synchronisieren. Je nach Codec, Treiber, Buffergröße und Soundkarte(vorallem onboard-mist) kann jeder Ton den du ausgibst locker mal mehrere 100ms delay haben.
Totale Lippensynchronität erreicht man in der Regel nur auf hardwarenahem Level und mit Interploation...Flash hat bedingt durch den eigentlichen Verwendungszweck built-it Lösungen für sowas - gamestudio wirds da nicht so genau nehmen.

Für wirklich exakte Bewegungen eignen sich die time_... Geschichten eh nicht. Da var nur 10 Bit für den Nachkommabereich hat addierst du dir in den 3.1s bei 60fps 200 mal potenzielle Rundungsfehler drauf.
Unanfälliger ist da z.B.
= 2000 - 2000 * total_ticks / 49.6;


I <3 LINQ
Re: time_step / fps_max / wait [Re: FlorianP] #372763
06/04/11 06:07
06/04/11 06:07
Joined: Jan 2003
Posts: 4,615
Cambridge
Joey Offline
Expert
Joey  Offline
Expert

Joined: Jan 2003
Posts: 4,615
Cambridge
lad dir mal meine terrain demo runter, die ich für den contest vor... ohje. sind das schon 8 jahre? gemacht hab. da ist die musik zum demo synchronisiert.
edit: in der sequence.wdl stehen so wait-blöcke, die fürs beatgenaue timing geeignet sind. die verhindern auch rundungsfehler.

Last edited by Joey; 06/04/11 06:10.
Re: time_step / fps_max / wait [Re: Joey] #372801
06/04/11 14:22
06/04/11 14:22
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Was soll denn
= 2000 - 2000 * total_ticks / 49.6;
besser machen? Wie wird total_ticks denn aufsummiert, weißt du das?


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Page 1 of 2 1 2

Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1