Colisiones en videojuegos (Unity Tutorial)

Como se logran crear colisiones eficientes entre objetos tridimensionales en los videojuegos ?


Los "colliders" o cajas de colisiones en Videojuegos definen los limites físicos de un objeto tridimensional


La primera pregunta que nos hacemos es porqué delimitarlo de nuevo si ya tenemos a disposición la geometría original del modelo. Es porque muchas veces el objeto original es muy denso en polígonos y el motor de juegos no puede calcular suficientemente rápido las colisiones.


Por ejemplo la geometría de un personaje en un juego AAA puede llegar a 50,000 polígonos que equivalen a mas de 100000 vértices . Si utilizamos esta geometría para calcular las colisiones , el motor debería de calcular por cada imagen ( de 24 a 60 imágenes por segundo ) las colisiones de esos 100000 vértices con el entorno del personaje. Los procesadores y GPU de las computadoras colapsarían en el intento. Es muy diferente a una simulación de colisión en una producción de película animada donde la simulaciones pueden durar días o semanas en varias computadoras por algunos segundos de animación.


Por eso , empleamos técnicas que permiten reducir la cantidad de vértices a colisionar guardando el aspecto físico general de la geometría visible en pantalla.




Unity 3D tiene primitivas geométricas muy practicas para generar colisiones.

  1. Sphere Collider

  2. Capsule Collider

  3. Box Collider

















Esas primitivas calculan rápido , son eficientes en recursos y pueden ser combinadas para englobar un objeto complejo o denso en polígonos.


A esas 3 opciones , podemos sumar la opción de utilizar una geometría simplificada del modelo original para calicular colisiones.


4. El Mesh Collider


Como lo vemos a continuación :




La baranda de madera ( objeto visible y complejo, de aproximadamente 850 vértices ) , puede ser resumido a la caja de colisión ( objeto invisible en el juego, verde, de 15 vértices) simplificada para lograr colisiones dentro del juego. Las interacciones serán por lo tanto simplificadas pero es parte de las concesiones que se deben hacer para lograr la velocidad de cuadros deseada. Todo dependerá de la plataforma y recursos de tu computadora.


A continuación el video tutorial : https://youtu.be/PwjX3rR5GVU



Saludos a todos !