Para hacer que la cámara principal siga al jugador en Unity, todo lo que tienes que hacer es configurar la posición de la cámara para que sea la misma que la del personaje del jugador, ¿verdad?… ¿verdad? Bueno, seguro, si todo lo que quieres hacer es hacer que la cámara siga al jugador exactamente cuadro por cuadro.
Si desea hacer algo más elegante, como suavizar el movimiento de la cámara o un efecto de vibración de pantalla, requerirá bastante codificación si hace todo a mano. Pero aquí está el truco: hay una manera fácil de lograr un seguimiento fluido de la cámara en Unity con el uso de un conjunto de herramientas llamado Cinemachine.
Cinemachine es un conjunto de herramientas de cámara inteligente altamente personalizable para Unity que se puede usar para lograr varios efectos relacionados con la cámara y movimientos de cámara matemáticamente complejos en tiempo real con menos esfuerzo y está diseñado para funcionar bien en todos los géneros de juegos.
Cinemachine es gratuito y está disponible como uno de los paquetes en Unity Registry para que lo descargue e instale a través del Administrador de paquetes. En esta guía, le mostraré cómo lograr un seguimiento fluido de la cámara con Cinemachine.
Cómo usar Cinemachine para lograr un efecto de seguimiento de cámara fluido
Se puede lograr fácilmente un efecto de seguimiento de cámara suave con Cinemachine, ya que está diseñado para ayudar a reducir el tiempo de desarrollo relacionado con las manipulaciones de la cámara.
Al final de esta guía, tendrá una cámara que puede seguir un objeto con un poco de retraso y movimientos suaves y suaves mientras intenta moverse hacia el objeto con solo unos pocos pasos de configuración con Cinemachine.
Antes de que comencemos
En esta guía, usaré Unity Editor versión 2021.2.14f1 Personal Edition. Si usa Unity Editor versión 2020 LTS, no se preocupe. El LTS 2020 usa una versión un poco más antigua de Cinemachine, pero sus funcionalidades son en su mayoría las mismas. Me aseguraré de señalar las cosas que son diferentes.
La escena de muestra que usaré en la guía
Además, por conveniencia, he creado un juego en 2D con un personaje de jugador y controles de movimiento simples. Usaré esto para demostrar cómo funciona Cinemachine.
Los recursos de pixel art que se usan en esta guía provienen de un paquete gratuito llamado Sunny Land en la tienda de recursos de Unity. Ve a verlo si te interesa.
Instalar el paquete Cinemachine
Cinemachine no viene instalado de forma predeterminada cuando crea un nuevo proyecto de Unity, pero puede encontrarlo e instalarlo fácilmente a través del Administrador de paquetes.
Ventana > Administrador de paquetes
Si aún no tiene el Administrador de paquetes abierto o si no sabe dónde encontrarlo, ábralo yendo a Ventana > Administrador de paquetes.
Seleccionar registro de unidad
Cinemachine es uno de los paquetes disponibles en el registro de paquetes de Unity. Haga clic en el cuadro desplegable Paquetes y seleccione Unity Registry para ver la lista de todos los paquetes disponibles en el registro.
Desplácese hacia abajo o busque Cinemachine
Espere a que el registro termine de cargar la lista de paquetes. Una vez que haya terminado, desplácese hacia abajo en la lista para encontrar o buscar Cinemachine a través de la barra de búsqueda.
Haga clic en el botón Instalar en la parte inferior derecha y espere a que Unity Editor termine de instalarlo. Eso es.
Agregar una cámara virtual
Ahora, necesitamos crear una cámara virtual. Se llama virtual porque no es una cámara de Unity, sino un objeto de juego que tiene la capacidad de manipularlo y controlarlo.
El proceso de creación de una cámara virtual es ligeramente diferente según la versión de Cinemachine que esté utilizando:
Unidad 2021Unidad 2020
- Cinemachine versión 2.7.0 y anteriores
- Esta es la versión que obtendrá si usa Unity Editor versión 2020 y anterior.
- El grupo de menú para Cinemachine está en la barra de menú en la parte superior del editor: Cinemachine > Crear cámara virtual (o Crear cámara 2D para proyectos 2D).
- Cinemachine versión 2.7.1 y superior
- Esta es la versión que obtendrá si usa Unity Editor versión 2021 y posteriores.
- El grupo de menú para Cinemachine está en el menú Crear en la ventana de jerarquía (el mismo lugar donde creas otros objetos del juego): Crear > Cinemachine > Cámara virtual (o Cámara 2D para proyectos 2D).
Una nueva Cámara Virtual en escena
Nómbralo como quieras. Ignore las advertencias amarillas por ahora.
Ambas opciones (Cámara virtual y Cámara 2D) son en realidad el mismo objeto de juego pero con diferentes configuraciones en el componente CinemachineVirtualCamera.
– La cámara virtual tiene el valor de Cuerpo establecido en Transposer y Aim establecido en Composer de forma predeterminada.
– La cámara 2D tiene el valor del cuerpo establecido en Framing Transposer y el objetivo establecido en No hacer nada de forma predeterminada.
Entonces, si accidentalmente crea el objeto de juego incorrecto y no desea eliminarlo y crear otro, puede cambiar esta configuración en su lugar.
Para el proyecto utilizado en esta guía, usaré una cámara 2D.
Componente CinemachineBrain en una cámara de Unity
Una vez que se haya creado la cámara virtual, también adjuntará un componente CinemachineBrain a la primera cámara de Unity creada en la escena. Si tiene varias cámaras en una escena y desea controlarlas con Cinemachine, deberá agregar manualmente el componente CinemachineBrain a cada una de ellas.
CinemáquinaCerebro icono
Así es como la cámara virtual controla la cámara de Unity. Una vez que una cámara de Unity tenga un CinemachineBrain, ya no podrá controlarla directamente. Será administrado por la cámara virtual que está actualmente en vivo, lo que significa que puede tener varias cámaras virtuales con diferentes configuraciones que se turnan para controlar la misma cámara.
Esta es una guía básica sobre cómo lograr un efecto de seguimiento simple, por lo que solo trabajaremos con una cámara de Unity y una cámara virtual.
Elija un objetivo para que la cámara lo siga
Ahora que se ha creado una cámara virtual. La cámara necesitará un objetivo a seguir. Este paso es muy simple.
Arrastra un objeto del juego al campo Seguir
Todo lo que tiene que hacer es agregar un objeto de juego que desea que siga la cámara al campo Seguir en la cámara virtual.
Para proyectos 3D, también puede agregar el objeto de juego de destino al campo Mirar. Esto hará que la cámara gire y gire para mirar en la dirección del siguiente objetivo.
Establezca Apuntar a No hacer nada si no hay un objetivo Mirar
Déjalo en blanco si no quieres este comportamiento, pero no olvides establecer la opción Apuntar en No hacer nada.
Un ejemplo de seguimiento de una cámara en funcionamiento
Eso es todo lo que tienes que hacer. Pruébelo en el modo de reproducción. La cámara debería seguir correctamente y sin problemas al objetivo ahora.
Ajústalo a tu gusto
Si no le gusta el comportamiento predeterminado de la siguiente cámara, puede ajustarlo a su gusto en el objeto de cámara virtual.
Opciones de Framing Transposer
Las opciones disponibles dependen del modo de movimiento que esté utilizando. En esta guía, estamos usando el modo predeterminado para la cámara 2D, por lo que el Cuerpo (que controla cómo se mueve la cámara) está configurado en Framing Transposer y el Aim (que controla cómo gira la cámara y mira al objetivo) está configurado en No hagas nada ya que la cámara no necesita girar en los juegos 2D.
Antes de hacer nada, asegúrese de que las Guías de la ventana del juego y Guardar durante el juego estén habilitados.
Guardar durante la reproducción hace que pueda ajustar la configuración de Cinemachine durante el modo de reproducción sin que se revierta una vez que salga del modo de reproducción. Esto ayuda mucho cuando se trata de ajustar la configuración sobre la marcha.
Guías de ventana de juego habilitadas
Game Window Guides muestra guías visuales interactivas en la pantalla en la vista del juego. Puede hacer clic y arrastrar las guías para ajustar varias configuraciones en lugar de cambiarlas en la ventana del inspector.
Nota: Si no puede ver las guías visuales aunque la opción esté habilitada, expanda la sección Cuerpo y/o Objetivo en el inspector.
Guías visuales en la vista del juego durante el modo Jugar
Las guías visuales pueden tener un aspecto diferente según el modo que esté utilizando. Para esta guía, daré una pequeña explicación de cada parámetro para el modo Framing Transpose:
- Desplazamiento de objeto rastreado: compensa el punto de origen del objetivo.
- Lookahead (el punto amarillo): Esto hace que la cámara prediga la dirección en la que se mueve el objetivo y se adelanta al objetivo.
- Amortiguación X/Y/Z: controla qué tan rápido se mueve la cámara mientras intenta seguir el objetivo.
- Pantalla X/Y: cambia la vista de la cámara de forma similar a la compensación del objeto rastreado, pero en su lugar se basa en la posición en la pantalla.
- Distancia de la cámara: Prácticamente lo mismo que la posición Z en el componente Transformar. Esto generalmente se usa para determinar qué se muestra en la cámara dependiendo de si están delante o detrás de la posición Z de la cámara.
- Zona muerta (las 4 líneas que forman una cruz en el centro): Haz que la cámara no se mueva a menos que el objetivo cruce la zona muerta.
- Soft Zone (la zona roja): Obliga a la cámara a mantener el objetivo dentro del área visible cuando el objetivo intenta pasar la zona roja. Útil cuando el objetivo se mueve demasiado rápido y la cámara no puede seguirlo.
- Bias X/Y: Cambia el centro de la Soft Zone.
Intenta jugar y experimentar con cada parámetro para encontrar la mejor configuración para tu juego.
Arreglar el movimiento de cámara Laggy/Choppy Cinemachine
Si siente que el movimiento de la cámara no es tan suave y se siente entrecortado. Es probable que esto se deba a la configuración de interpolación del siguiente objetivo.
No establezca Interpolar en Ninguno
Verifique y asegúrese de que el objeto que sigue la cámara Cinemachine tenga la opción Interpolar de Rigidbody establecida en cualquier otra cosa que no sea Ninguno. Ajústelo a Interpolar o Extrapolar en su lugar y debería notar inmediatamente la diferencia.
¿Eres capaz de hacer que funcione?
Esta es la forma más rápida y sencilla de hacer que una cámara de Unity siga un objetivo con amortiguación y suavizado.
Cinemachine es una herramienta de manipulación de cámara muy potente. Te sugiero que juegues y pruebes diferentes configuraciones. Explora las posibilidades. También puede consultar el manual oficial de Cinemachine si desea saber qué hace cada opción.
Deje un comentario en la sección de comentarios si está atascado en algo o si quiere que haga una guía para cualquier otra cosa en el futuro.
¡Feliz codificación!
Atribución
Logotipo de Cinemachine por Unity Technologies