Cinemachine para 2D: Consejos y trucos

ETHAN BRUINS / UNITY TECHNOLOGIES Contributor
Jul 17, 2018|8 minutos
Cinemachine para 2D: Consejos y trucos
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

¿Has estado trabajando en un sistema de cámara para tu juego 2D durante años y desearías que hubiera algo como Cinemachine para 2D? No mucha gente lo sabe, ¡pero ya existe! Esta entrada de blog te ofrece algunos consejos para aprovechar al máximo Cinemachine y cómo esta herramienta puede beneficiar y acelerar significativamente el desarrollo de tu juego 2D. Sigue leyendo para descubrir más sobre las cámaras virtuales Cinemachine, Confiners y más, específicamente para usar en juegos 2D.

Conseguir Cinemachine

Puedes obtener Cinemachine desde nuestro Administrador de paquetes dentro de Unity si estás usando cualquier versión superior a 2018.1.0b7.

Esto se puede hacer yendo a Ventana > Administrador de paquetes > Todos y luego seleccionando Cinemachine.

Imagen
Importación desde PackageManager
Creación de una cámara para 2D

Con Cinemachine, es relativamente fácil comenzar a crear su sistema de cámara para un entorno 2D. Echemos un vistazo a la creación de una cámara virtual para 2D.

1. Cree una cámara virtual 2D yendo a la barra de menú y seleccionando Cinemachine > Crear cámara 2D. Esto creará una cámara virtual configurada para un entorno 2D. Si es su primera cámara virtual en la escena, también agregará un componente Cinemachine Brain a su cámara principal.

Imagen

2. Arrastre a su jugador desde la jerarquía hasta el objetivo Seguir.

3. Asegúrese de que no haya nada en el LookAt Target, si hay algo allí, selecciónelo y presione la tecla de retroceso o eliminar para eliminar la referencia.

4. Ajuste la configuración de tamaño ortográfico y cuerpo según sus necesidades.

Lo principal que notará entre una cámara virtual 2D y una cámara virtual 3D es el hecho de que estamos usando un transpositor de encuadre. Este transpositor especial seguirá un objetivo en el plano XY de la cámara y evitará que la cámara gire. Para que el transpositor de encuadre funcione correctamente, debemos asegurarnos de que el objetivo 'LookAt' de las cámaras virtuales sea nulo. Otra cosa a tener en cuenta es que los juegos 2D utilizan una vista ortográfica; cuando crees por primera vez tu cámara virtual, deberás cambiar la proyección a ortográfica en la cámara Cinemachine Brain de tu escena.

Imagen

Una cosa importante a recordar es que con Cinemachine no debes intentar que una sola cámara haga todo. En lugar de ello, puedes tener diferentes 'Cámaras virtuales' alrededor de tu escena y combinarlas entre sí usando Cinemachine Brain. Esta combinación puede ocurrir si el jugador tiene poca salud, ha ingresado a un área determinada o cualquier otro escenario que puedas imaginar que requiera un cambio en el encuadre de la cámara o el posprocesamiento. Puedes ajustar la configuración de fusión en Cinemachine Brain dependiendo de cómo quieres que sean las imágenes.

Mira el video a continuación para ver cómo puedes ajustar tu cámara virtual durante el modo de juego.

Consejo: Puedes ajustar la configuración de la cámara mientras estás en el modo de juego y se guardará siempre que tengas marcada la opción “Guardar durante el juego” en la cámara virtual.
Cómo confinar una cámara

Otra cosa interesante que podemos hacer con Cinemachine es usar un cuadro delimitador para confinar la cámara virtual a un área determinada. Esta función está disponible en la sección de extensión de la Cámara Virtual. A continuación se muestran los pasos para crear este efecto.

1. Establezca un cuadro delimitador para nuestro nivel. Esto se utilizará para limitar el nivel. Esto se hace mediante:

  • Crea un 'GameObject' vacío.
  • Agregue un 'CompositeCollider2D' al GameObject.
  • Establezca el tipo de geometría de 'CompositeCollider2D' en Polígonos.
  • Establezca 'Rigidbody' en GameObject en Estático.
  • Agregue un 'BoxCollider2D' al GameObject.
  • Ajuste el 'BoxCollider2D' para adaptarlo a su nivel.
  • Establezca 'BoxCollider2D' en "Usado por compuesto".
Imagen

2. Agregue la extensión Confiner a su cámara virtual.

3. Arrastre el cuadro delimitador que creamos anteriormente hasta el Cuadro delimitador 2D.

4. Decide si quieres que la cámara se limite a los bordes de la pantalla; esto se puede ajustar con la casilla de verificación “Confinar bordes de la pantalla”.

5. Finalmente, podemos decidir si queremos que el Confiner tenga amortiguación. Esto permitirá que la cámara se superponga suavemente con el borde del colisionador que la confina. Si no desea este efecto, configure el Tiempo de amortiguación en 0.

Vea los resultados a continuación:

Consejo: Al utilizar la casilla de verificación “Limita los bordes de la pantalla”, el área delimitadora debe ser más grande que el tamaño ortográfico de la cámara virtual. Si el cuadro delimitador es más pequeño que la pantalla, el limitador no se comportará correctamente en esa área.

Ejemplo de vídeo:

Cámara de grupo

Otra característica interesante de Cinemachine que podemos usar en 2D es la Cámara de Grupo. Esta cámara nos permite crear un grupo objetivo para que nuestra cámara lo mire. Una cámara de grupo es útil si estás haciendo una escena en la que quieres mostrar algo importante, quieres mantener más de un objeto en cada cuadro o si quieres crear un juego multijugador local en 2D.

En Cinemachine podemos hacerlo de la siguiente manera:

1. Crear una nueva cámara virtual 2D

2. Crea un nuevo GameObject en la escena

Imagen

3. Agregar componente > Cinemachine > 'Grupo de destino de Cinemachine'

4. Añade los GameObjects en los que quieres centrarte al grupo objetivo

5. Arrastre el grupo de destino a la propiedad 'Seguir objetivo' de Cámaras virtuales en el Inspector.

6. Ajuste el tamaño ortográfico mínimo y máximo (que en términos de cámara define el "zoom" de la cámara) a su configuración preferida.

7. Determina el tipo de encuadre de grupo que deseas. 'Horizontal' solo considera la dimensión del marco horizontal al encuadrar la cámara. 'Vertical' solo considera la dimensión del marco vertical al enmarcar. El tipo 'Horizontal y Vertical' tiene en cuenta ambas dimensiones.

Un 'Grupo de objetivos' es un componente de Cinemachine que le permite ver múltiples objetivos en la misma cámara virtual. Ajusta el tamaño de la cámara para garantizar que los objetivos sean visibles dependiendo del peso. Por ejemplo, si todos los objetivos tienen un peso de 1, el grupo de objetivos garantizará que todos los objetivos sean visibles.

Aquí hay un ejemplo de una cámara grupal que se enfoca en el jugador y un cofre.

Imagen
Consejo: Al agregar o eliminar miembros del grupo mientras la cámara virtual del grupo está activa, cambie el peso del miembro desde y hacia cero. Esto permitirá que la cámara reencuadre sin problemas.
Movimiento de la cámara con impulso

Con Cinemachine V2.2, hemos agregado una nueva extensión Impulse. Esta extensión permite a los usuarios crear efectos de movimiento de la cámara sin crear ningún código. La extensión Impulse se puede agregar como una extensión a su cámara virtual. Te mostraré cómo agregar esto a tu escena:

  • Crea una cámara virtual 2D usando la opción de menú Cinemachine y configúrala para seguir nuestro objetivo.
  • Haga clic en Agregar extensión > Cinemachine Impulse Listener.
  • En Impulse Listener, asegúrese de que la casilla de verificación denominada 'Usar distancia 2D' esté marcada.
  • La máscara de canal le permite filtrar los impulsos que desea escuchar. En este ejemplo, utilizaremos el canal predeterminado.
  • Selecciona el GameObject desde el cual enviar el Impulso, en este ejemplo vamos a utilizar una Pelota que rebota. Cada vez que golpea el suelo, emitirá una señal de impulso en el canal predeterminado y nuestro oyente de impulsos la captará.
  • Haga clic en Agregar componente y busque "Fuente de impulso de colisión Cinemachine".
  • Bajo el encabezado 'Forma de la señal', vamos a seleccionar una Señal para la variable Señal bruta. Este es un perfil 'NoiseSettings'. Podemos utilizar los predeterminados o crear los nuestros.
  • Cree un nuevo perfil 'NoiseSettings' haciendo clic en el ícono del engranaje y seleccione 'Nueva configuración de ruido'. Guarde esto en su proyecto.
  • Podemos elegir que el ruido afecte la Posición y la Rotación o solo una de ellas. Como es para un juego 2D, afectaremos las posiciones X e Y y la rotación Z. Un buen perfil de ruido es impredecible. Con el ruido, lo único que queremos hacer es replicar algo de la aleatoriedad de la naturaleza. Podemos hacer esto teniendo múltiples capas con diferentes detalles.
  • Si quisiéramos, podríamos agregar una ganancia a la Frecuencia y Amplitud que aplica el Perfil de Ruido.
  • Bajo el encabezado Rango espacial, vamos a ajustar la Distancia de disipación. Esto determina a partir de qué rango ya no sentimos el impulso. Configúrelo en 25 por ahora.

Si quisiéramos podríamos ajustar el modo de disipación para cambiar el tipo de descomposición. Hay otras configuraciones que podemos ajustar, pero por ahora eso es todo lo que necesitamos.

Puedes ver el resultado a continuación:

ImageImage

Así que, para resumir, ahora sabemos cómo:

  • Obtenga Cinemachine con el Administrador de paquetes
  • Crear una cámara virtual 2D
  • Limitar una cámara virtual a un espacio 2D
  • Componga una cámara virtual para seguir múltiples objetivos
  • Configurar un módulo de impulso para agregar movimiento de cámara

¡Espero que hayas disfrutado de esta publicación de blog y que ahora te sientas listo para usar Cinemachine en tu próximo proyecto 2D! ¿Quieres estar al día con Cinemachine? Únase a la discusión en nuestro foro.