Warning: strpos() expects parameter 1 to be string, array given in /home/site/wwwroot/wp-content/themes/twentynineteen-child/functions.php on line 163
Para comenzar con las interacciones y física en el desarrollo de los videojuegos, uno de los puntos principales a tocar son los Rigidbodies. Los Rigidbodies son Componentes que permiten a los GameObjects actuar bajo el control del motor de física de Unity. Rigidbody significa ‘cuerpo rígido’, que en física es “aquel cuya forma no varía pese a ser sometido a la acción de fuerzas externas” (Merino, M. 2009). Rigibody es en Unity una clase que hereda de la clase Component, el cual a su vez hereda de la clase Object (Unity Technologies. 2021).
La clase Rigidbody permite tratar a los objetos como objetos físicos, con masa, los cuales se ven afectados por la fuerza de la gravedad que pueden colisionar con otros objetos, ejercer fuerzas sobre ellos, tener un coeficiente de rozamiento, una velocidad linear, una velocidad angular, inercia o momento angular. Por lo tanto, añadir un Rigidbody a un GameObject le posibilita lo siguiente:
- Moverse de manera realista en escena, influenciado por la fuerza de la gravedad o por fuerzas agregadas vía scripting.
- Interactuar con otros GameObjects a través del motor de física NVIDIA Physx (Unity Technologies. 2021). De esta manera, los Rigidbodies posibilitan:
- Colisiones realistas
- Articulaciones
Conformación con Rigidbodies
Manipular un GameObject utilizando su Rigidbody genera una sensación muy diferente a hacerlo a través de su Componente Transform, que, como se ha visto, es el Componente que almacena la situación en el espacio de un GameObject (posición, rotación y escala). Normalmente, se manipulará el Transform o el Rigidbody de un GameObject, no ambos. La principal diferencia entre manipular el Transform y manipular el Rigidbody es el uso de fuerzas. Los Rigidbodies pueden recibir fuerzas y torque, mientras que el Transform no. Un Transform puede trasladarse y girarse, pero el resultado es distinto a usar físicas y puede apreciarse con facilidad en escena.
Agregar fuerzas/torque al Rigidbody cambia la posición y rotación del Componente Transform del GameObject, por lo cual no deben modificarse ambos Componentes. Además, manipular el Transform mientras se está usando física puede generar problemas con colisiones y otros cálculos del motor (Unity Technologies. 2021). El Rigidbody también tiene una API de scripting, la cual permite aplicar fuerzas al objeto para controlarlo de manera realista.
Unity Technologies lo explica de la siguiente manera: Por ejemplo, el comportamiento de un coche podría ser especificado en términos de fuerzas aplicadas por las ruedas. Con esa información, el motor de físicas puede manejar la mayor parte de otros aspectos del movimiento del coche, así se acelerará de manera realista y responderá correctamente a las colisiones (Unity Technologies. 2021).
Colliders
Los Colliders son Componentes que definen la forma de un GameObject para propósitos de colisiones físicas (Unity Technologies. 2021). Al igual que la clase Rigidbody, la clase Collider hereda de la clase Component. Los Colliders son invisibles y no tienen por qué ajustarse perfectamente a la manera de la malla o mesh del GameObject, pues tener una forma aproximada resulta más eficiente y no será perceptible en el gameplay.
Tipos de Colliders
- Colliders primitivos. Los Colliders más simples (y que menos recursos consumen) son los Collider primitivos. En la figura 4 se pueden ver los tipos de Colliders primitivos disponibles.
- Colliders compuestos. Utilizando estos Colliders primitivos se pueden crear formas compuestas que sigan consumiendo pocos recursos. Por ejemplo, para un prop se podría generar un Collider compuesto formado por un Box Collider y un Capsule Collider.
- Mesh Colliders. Aunque usando Colliders primitivos se pueden configurar muchos Colliders para personajes y props, es posible que en algunos casos estas configuraciones de Colliders no sean lo suficientemente precisas. En ese caso, en 3D se pueden usar Mesh Colliders, componentes que se ajustan exactamente a la malla del objeto.
- Polygon Collider 2D. Para 2D se tiene el componente “Polygon Collider 2D”, el cual no se ajusta a la forma del sprite a la perfección, pero permite refinar la forma al nivel de detalle deseado (Unity Technologies. 2021).
- Static y Dynamic Colliders. Los Colliders estáticos o static Colliders son aquellos que se añaden a un objeto sin Rigidbody, en contraposición a aquellos añadidos a un GameObject con Rigidbody, conocidos como Colliders dinámicos o dynamic Colliders (Unity Technologies. 2021). Los Colliders estáticos permiten a un objeto interactuar con Colliders dinámicos, pero no moverse en respuesta a colisiones y pueden utilizarse, por ejemplo, en paredes o suelos del nivel.
Joints (articulaciones)
El componente Joint permite adjuntar un Rigidbody a otro o a un punto fijo en el espacio. En función del efecto que se busque, se querrá que el Joint o articulación dé una mayor o menor libertad de movimiento, para lo cual Unity proporciona distintos componentes Joint que hacen cumplir diferentes restricciones (Unity Technologies. 2021). Es decir, los Joints unen un cuerpo a otro y, dependiendo del tipo de Joint, el movimiento está restringido (GameDevTraum, s.f.).
Tipos de Joints
Existen cinco tipos distintos de Joints en Unity que permiten simular distintos tipos de movimiento.
- Fixed Joint. “Los Fixed Joints restringen el movimiento de un objeto en ser dependiente a otro objeto” (Unity Technologies. 2021). Es decir, el movimiento de un objeto está restringido a seguir el movimiento del objeto al que está adjunto. El resultado es similar al obtenido al hacer un objeto hijo de otro en la Jerarquía, pero implementado a través de la física.
Los Fixed Joints. requieren que ambos cuerpos tengan un componente Rigidbody para funcionar. Al añadir un componente Fixed Joint a un GameObject, se añade automáticamente un componente Rigidbody. Se pueden utilizar las propiedades “Break Force” y “Break Torque” para determinar los límites de fuerzas que soportará la unión. Superados esos límites, los objetos se separarán o se romperá la unión entre ellos. Cuando su valor es “infinity” la unión es irrompible. Es interesante recalcar que no es necesario asignar un “Connected Body” para que la articulación funcione. - Hinge Joint. “El Hinge Joint agrupa dos Rigidbodies, restringiendo su movimiento para que se muevan como si estuvieran conectados por una bisagra. Es perfecto para puertas, pero también puede ser utilizado para modelar cadenas, péndulos, etc.” (Unity Technologies. 2021).
- Spring Joint. “El Spring Joint junta dos Rigidbodies, pero permite que la distancia entre ellos cambie como si estuvieran conectados por un resorte” (Unity Technologies. 2021).
- Character Joint. Los Character Joints se usan principalmente para crear efectos de Ragdoll en personajes. “Los Ragdolls son variantes de objetos animados cuyos huesos están completamente dominados por la fuerza de la física” (Unity Technologies. 2021).
- Configurable Joint “Los Configurable Joints son extremamente personalizados, ya que estos incorporan toda la funcionalidad de otros tipos de articulaciones” (Unity Technologies. 2021).
Desarrollo de videojuegos desde cero
En el proceso de desarrollo de videojuegos existen diferentes características y procesos que hacen parte de esta obra. Por esta razón, se hace necesario que el profesional de este campo tenga el pleno conocimiento que le permita dominar en su totalidad cada herramienta. Para ello, los expertos de este campo se están informando y capacitando diariamente, mejorando sus conocimientos a la vez que toma las tendencias como guía. Esto a menudo es realizado mediante la especialización académica, tomada como primera opción para complementar sus conocimientos.
TECH Universidad Tecnológica actualmente se posiciona como la mayor universidad digital del mundo. Esto se ha logrado mediante el diseño y el desarrollo constante de su portafolio educativo. En el caso de su Facultad de Videojuegos, destacan especializaciones tales como el Máster en Arte para Videojuegos y el Máster en Animación 3D y Realidad Virtual para Videojuegos. Sin embargo, para aquellos profesionales que buscan dominar temáticas como la revisada en el presente artículo, no cabe duda que su mejor elección será tomar el Máster en Programación para Videojuegos.