Rilevamento e movimento di collisioni FPS


11

In che modo viene generalmente gestito il rilevamento e il movimento delle collisioni in un FPS, in particolare gestendo lievi variazioni dell'altezza del suolo come le scale (sia in pendenza che in discesa)?

Risposte:


12

Entità tipicamente rappresentate da una capsula (cilindro con sfere alle estremità) contro la geometria del mondo (o una rete di collisione semplificata) per la collisione con il mondo.

Le scale di solito sono o non si scontrano con una rampa invisibile, o al di sotto di una certa altezza di solito si ottiene un sollevamento come effetto collaterale della risoluzione delle collisioni. (otterrai la compenetrazione con il movimento come parte della dimensione del gradino e la risoluzione lo esporrà verso l'alto come il piano più vicino)

Penso che sia così che funziona Unreal 3, ma potrei sbagliarmi. Ricordo di aver visto una gerarchia di limiti in Source, ma non ricordo se fosse solo per il combattimento. a prescindere, le capsule sono semplici e veloci


1

In Unity 3D, il modo più semplice è avere il controller in prima persona. Di solito il personaggio deve saltare se l'altezza del gradino è superiore all'offset del gradino. Ma un altro modo per farlo è aggiungere un collettore di scatole e ruotarlo in modo che il personaggio possa sfogliare facilmente le scale, come se fosse una rampa.


0

La risposta di Brady è buona, ma se vuoi un modo bizzarro per farlo, puoi semplicemente lanciare un raggio sulla geometria di collisione del terreno, capire quale triangolo colpisce e quindi utilizzare una media ponderata dell'altezza dei vertici del triangolo per capire l'altezza del terreno.


E se fosse un grande triangolo inclinato? Non riesci in qualche modo a trovare il punto di intersezione del raggio?
Gustavo6046,

Conosci già la posizione nel piano, hai solo bisogno dell'altezza, motivo per cui ho specificato la media ponderata. Ti consiglio di prendere un libro sul rilevamento delle collisioni se vuoi davvero andare oltre. Questo non è il formato migliore per imparare la matematica.
BigSandwich,

O si. Media ponderata . Penso di averlo frainteso. Colpa mia.
Gustavo6046,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.