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
3 registered members (AndrewAMD, Grant, Neb), 908 guests, and 6 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
polygon flag bug? #294935
10/22/09 01:00
10/22/09 01:00
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline OP
Senior Expert
Superku  Offline OP
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Sehr geehrter Herr Lotter,
ein Video sagt mehr als tausend Worte: Video.

Die Wippe trägt das POLYGON flag, verändert nur ihren Kippwinkel, die Spielfigur wird per c_move(me,nullvector,sspeed,IGNORE_PASSABLE | GLIDE); bewegt, hat das obige flag nicht (!) gesetzt, sondern benutzt eine bounding box. Der Fehler ist offensichtlich das unbeabsichtigte Hindurchfallen durch die unpassierbare Wippe. Erstaunlicherweise verschwindet dieser Fehler beim Laden des Checkpointes, welcher mit game_save("start",0,SV_ALL-SV_BMAPS); gespeichert wird.

Obiger Fehler trat nicht sofort, sondern erst ein paar Arbeitsstunden nach Vergrößerung des Levels (dennoch < 13000 quants) auf, skybox existiert, Model-Datei wurde neu abgespeichert (sprich ist nicht beschädigt), durch im Level einzigartige Kopie ersetzt, Fehler besteht weiterhin (vor Level-Reload).

Mittlerweile weiß ich immerhin, dass ein c_setminmax vorher das Problem behebt.

Vielen Dank für Ihre Zeit!


"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: polygon flag bug? [Re: Superku] #294946
10/22/09 05:48
10/22/09 05:48
Joined: Jul 2000
Posts: 27,935
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,935
Frankfurt
Wenn nach c_setminmax die Kollision funktioniert, dann war vermutlich die Bounding Box der Wippe zu klein.

Kollisionserkennung testet zuerst die Bounding Box und erst bei positivem Ergebnis die Polygongestalt. Wenn ein Objekt eine zu kleine Bounding Box hat, kann trotz POLYGON flag die Kollisionserkennung die Aussenbereiche des Objekts nicht erfassen. Um alle Polygone zu erfassen, müssen also POLYGON und Bounding Box gesetzt werden. Das wurde im Handbuch nicht explizit erwähnt, ich habe das jetzt ergänzt. c_setminmax setzt die Bounding Box automatisch.

Bei einer sich bewegenden Wippe müssen Sie ausserdem verhindern, dass sich die Wippe in den Player hinein bewegt. Denn sobald Objekte verschmelzen, können sie nicht mehr kollidieren.

Re: polygon flag bug? [Re: jcl] #295066
10/22/09 20:17
10/22/09 20:17
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline OP
Senior Expert
Superku  Offline OP
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Vielen Dank für Ihre Antwort und die Informationen, der Punkt mit der "Verschmelzung" ist aber nicht das Problem (denn letzteres besteht auch, wenn die Wippe keine Bewegungsaktion besitzt). Und warum kann ich auf der rechten Seite der Wippe laufen, nicht aber auf der linken (ein zentriertes Modell)?
Desweiteren ist es verwunderlich, warum die Wippe nach dem Laden des Spielstandes, wie im Video ersichtlich, ein anderes (Kollisions-) Verhalten aufweist?

Außerdem, was ich vergaß, zu erwähnen, ist ein weiteres Problem mit besagtem flag. Ein Modell besitzt als erstes Frame die zu verwendende Hülle ("[...] tatsächliche Form einer Modellentity, die von ihrem ersten Animationsframe genommen wird, für die Kollisionserkennung benutzt." - POLYGON-Flag, Manual), schaltet später aber auf andere Frames mit herausstehendem Hebel um. Nun entscheidet aber der Zufall anscheinend oder auch nur scheinbar über die Kollisionshülle, mal nach erstem Animationsframe, mal nach zweitem.
Das Modell wird erst dann potentiell sichtbar, wenn ein anderer Frame als der erste bereits gesetzt worden ist - kann dies der Grund für das Verhalten sein?
Oder ist der folgende Satz komplett ohne Interpretationsspielraum zu lesen:
"Setzen Sie dieses [Polygon] Flag nicht bei bewegten Objekten oder bei animierten Modellen." ?


"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: polygon flag bug? [Re: Superku] #295164
10/23/09 09:16
10/23/09 09:16
Joined: Jul 2000
Posts: 27,935
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,935
Frankfurt
Ihr Video kann ich wegen schlechter Internetverbindung im Moment leider nicht sehen. Aber hier die Antwort auf Ihre Fragen:

Wenn sich durch Laden eines Spielstands Flags oder andere Parameter ändern, dann wird sich Ihr Spiel nach dem Laden entsprechend anders verhalten als vorher. Der letzte Aufruf von c_updatehull wird allerdings nicht gespeichert, nach dem Laden ist also die Kollisionshülle wieder Frame 1. Ggf. müssen Sie also c_updatehull nach dem Laden noch einmal durchführen.

Generell gilt für bewegliche Modelle, mit denen Player kollidieren sollen, wie Wippen oder Lifte:

- Keine Animation! Animierte Objekte sind für polygongenaue Kollision ungeeignet, da sich ihr Mesh ständig ändert.
- Zu Beginn POLYGON flag und Bounding Box setzen.
- Solange Player darauf herumläuft und sich das Objekt zugleich bewegt, Player stets per Skript mit dem Objekt mitbewegen.

Dann klappt die Kollision bestimmt.




Moderated by  HeelX, Spirit 

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