Colliders: colisiones de objetos en Unity y mayor realismo

¿Qué es un collider?

Los colliders son áreas que se le añaden a un GameObject (personajes, props, escenarios, etc). Se usan para que sea posible detectar colisiones entre distintos objetos del juego. Una de estas colisiones puede ser incluso la del personaje principal con un determinado GameObject. 

En otras palabras, un collider es una estructura que nos permite establecer o delimitar una zona de contacto, esta zona de contacto nos permite saber si un objeto entró en contacto con otro o si acaba de dejar de estar en contacto con determinado objeto.

Los colliders más sencillos y que son menos intensos para el procesador se les conoce como primitivos.

Cuando nos encontramos trabajando nuestro videojuego en 3D los primitivos son los box colliders, sphere collider y capsule collider. Para cuando trabajamos nuestro proyecto en 2D los primitivos son el box collider 2D y el circle collider 2D. 

Cuando agregamos varios de estos colliders podemos crear compound collider o colliders compuestos. Estos colliders compuestos pueden mantener una sobrecarga baja al procesador siendo que son bastante precisos a la hora de aproximar la forma de un objeto. 

Sin embargo, podemos encontrarnos con casos en los que incluso los collider compuestos no tienen la precisión suficiente. Por ello, en un proyecto 3D de Unity podremos utilizar mesh colliders para encajar la figura del mesh del objeto de manera exacta. Para el caso de un proyecto en 2D contamos con el Polygon Collider 2D, con el cual podemos redefinir la figura del objeto al nivel de detalle que queramos. 

Se debe tener en cuenta que tanto los mesh colliders como el polygon collider 2D son más intensivos al procesador que los primitivos, por ello se debe tener una baja cantidad de estos colliders para conservar un buen rendimiento. Otro punto que debemos tener en cuenta es que dos objetos con mesh colliders no colisionan, para esto debemos marcar el mesh collider como Convex en el inspector. Esto provocará que un Convex mesh collider colisione con cualquier otro mesh collider.

Tipos de colliders:

Box collider: Este collider define un área con forma de cubo alrededor del objeto.

Mostrar como funcionan los box colliders y como se ven.

Sphere collider: Es un collider de esfera que define un área con forma de esfera alrededor del objeto.

Mostrar como funcionan los sphere colliders y como se ven.

Capsule collider: Es un collider de cápsula que define un área con forma de cápsula o elipsoide alrededor del objeto.

Mostrar como funcionan los capsule colliders y como se ven.

Mesh collider: Es un collider de malla. Este collider se ajusta a la malla del objeto, a su forma. Por esto, las colisiones son muchísimo más precisas que con otros colliders pero llega a consumir bastantes recursos.

Mostrar como funcionan los mesh y como se ven.

Rigidbody: Este componente permite añadir a nuestros objetos características que tendría un objeto en el mundo real, como por ejemplo masa, gravedad, fricción, etc. Puede ser muy útil para que los objetos de nuestra escena interactúen entre sí añadiendo más realismo al videojuego.

Materiales y propiedades físicas con colliders

Cuando los colliders interactúan, las superficies deben simular las propiedades del material que están representando con el fin de brindar más realismo al videojuego.

Por ejemplo, si nos paramos sobre un piso de hielo este deberá ser resbaloso, si pisamos barro podría ralentizar nuestro movimiento. La figura de los colliders no cambia con las colisiones pero si se puede cambiar su fricción y rebote utilizando Physics Materials. Aquí podremos ajustar los parámetros de fricción y rebote según el material que queramos simular.

Motores de física

En nuestro juego es importante que se tenga un comportamiento físico que sea convincente y que aporte realismo a nuestro videojuego. Aquí es donde entran los motores de física que tiene incorporados Unity. Estos motores manejan la simulación de física para el usuario. Mediante un ajuste de parámetros se pueden crear objetos que se comporten de manera realista, por ejemplo, se pueden por colisiones, caídas, pueden tener fricción, rebote, etc. 

El tener una buena física puede brindarle dinamismo a los objetos que utilizamos en nuestra escena y mejorar la calidad de nuestro proyecto. 

Collision callbacks

Cuando suceden las colisiones, el motor de física llama a las funciones con nombres específicos en cualquier script adjuntando los a los objetos involucrados. Nosotros podemos colocar un código que queramos en estas funciones para que se ejecute una vez ocurra el evento de colisión. Por ejemplo, podemos añadir un efecto sonido que se ejecute cuando chocamos un objeto y lo recogemos, como una moneda.

Autor: Miguel Ángel Vargas Pérez

Editor: Carlos Pinzón

Código: UCRV-4

Universidad: Universidad Central

Fuentes:

10minbasics. (2015). unity-collider-types [Fotografía]. 10minbasics. http://10minbasics.com/unity3d-collider-types/
Academia Android. (2016). BoxCollider [Fotografía]. WordPress. https://academiaandroid.com/wpaa/wp-content/uploads/2016/09/BoxCollider.jpg
Academia Android. (2016). CapsuleCollider [Fotografía]. WordPress. https://academiaandroid.com/wpaa/wp-content/uploads/2016/09/CapsuleCollider.jpg
Academia Android. (2016). Colliders: detección de colisiones en videojuego Unity 3D. Academia Android. https://academiaandroid.com/colliders-deteccion-colisiones-juego-unity-3d/
Academia Android. (2016). MeshCollider_img [Fotografía]. WordPress. https://academiaandroid.com/wpaa/wp-content/uploads/2016/09/MeshCollider_img.jpg
Academia Android. (2016). SphereCollider [Fotografía]. WordPress. https://academiaandroid.com/wpaa/wp-content/uploads/2016/09/SphereCollider.jpg
Mula, J. (2018). Qué son las colisiones y físicas 3D en Unity. Deusto Formación. https://www.deustoformacion.com/blog/diseno-produccion-audiovisual/que-son-colisiones-fisicas-3d-unity
Unity User Manual. (s. f.). Colliders. Unity. https://docs.unity3d.com/es/2018.4/Manual/CollidersOverview.html
Unity User Manual. (s. f.). Física. Unity. https://docs.unity3d.com/es/2018.4/Manual/PhysicsSection.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *