Curso de Cinemachine en Unity: Domina las Cámaras 3D Paso a Paso✅

Curso de Cinemachine en Unity: Domina las Cámaras 3D Paso a Paso
Actualizado a Unity 6 & Cinemachine 3.x (2026 Edition)

Curso de Cinemachine en Unity:
Domina las Cámaras 3D Paso a Paso

¿Cansado de pelear con scripts de cámaras complejos que atraviesan paredes? 🎬 Descubre el superpoder de Cinemachine: el sistema cinematográfico profesional de Unity para crear seguimiento suave, cambios de plano épicos, temblores de explosión y movimientos de cámara nivel AAA sin sudar.

Sin Código Obligatorio

Configuración 90% mediante Inspector

Transiciones Suaves

Blends automáticos inteligente

Impulse Shake

Impactos y explosiones realistas

Script C# Listo

Sistema de Priority Switcher

MÓDULO 1

Instalación y Cinemachine Brain

En las versiones modernas de Unity (Unity 6 y superiores), Cinemachine 3.x se instala como un paquete nativo optimizado. ¡No necesitas instalar paquetes raros de terceros!

Pasos para instalar Cinemachine:

  1. Abre tu proyecto en Unity.
  2. Ve al menú superior: Window > Package Manager.
  3. Selecciona Packages: Unity Registry.
  4. Busca "Cinemachine" y haz clic en Install.

🧠 ¿Qué es el Cinemachine Brain?

Es el "cerebro" que se añade a tu Main Camera habitual. El Brain se encarga de escuchar a todas las cámaras virtuales de la escena y decidir cuál debe renderizarse, controlando la velocidad de transición (Smooth Blend) entre ellas.

Arquitectura Cinemachine
Main Camera (Cinemachine Brain)
Ejecuta las transiciones en pantalla
ACTIVO
Elige según Prioridad (Priority)
vcam_player
Priority: 10
vcam_aim
Priority: 20 ★ (Activa)
MÓDULO 2

Virtual Cameras (VCams): Las Protagonistas

Una Virtual Camera (CinemachineCamera en 3.x) no renderiza píxeles por sí misma. Piensa en ella como un camarógrafo invisible colocado en tu escenario 3D. Contiene dos campos principales indispensables:

1. Campo "Follow" (Seguimiento)

Define qué objeto o personaje seguirá la cámara en el espacio 3D. La cámara se desplazará para mantener la distancia programada con respecto a este objetivo.

// Asignar en Inspector:
Follow = Transform del Jugador

2. Campo "Look At" (Orientación)

Define hacia dónde debe rotar o apuntar la lente de la cámara. Ideal para mantener a un enemigo o punto de interés siempre centrado en el encuadre.

// Asignar en Inspector:
Look At = Transform del Enemigo / Target
MÓDULO 3

Configuraciones de Posición (Body) y Rotación (Aim)

Dependiendo del tipo de juego que estés creando (3ª persona, plataformas, carreras, sigilo), Cinemachine ofrece algoritmos integrados:

Orbital Follow / 3rd Person

Permite orbitar la cámara alrededor del jugador usando el ratón o joystick. La cámara clásica para juegos como Zelda o Genshin Impact.

Ideal: Acción 3D / RPG
Tracked Dolly (Vías)

Obliga a la cámara a moverse exclusivamente a lo largo de un riel o vía 3D (Smooth Path) predefinida, ideal para juegos de desplazamiento lateral o cinemáticas.

Ideal: Platformer 2.5D / Carreras
Framing Transposer

Diseñado para cámaras 2D y 2.5D. Mantiene al jugador dentro de una zona de encuadre cómoda (Dead Zone y Soft Zone) sin giros bruscos.

Ideal: Juegos 2D / Vista Cenital
MÓDULO 4

Cinemachine Impulse: Temblores y Shakes de Impacto

¡Dale jugo y feedback a tus golpes!

Olvídate de mover la cámara manualmente mediante corrutinas. Con Cinemachine Impulse, cualquier objeto (una granada, un golpe o un salto) puede emitir un impulso de vibración en el espacio 3D.

1. Impulse Listener Añade el componente Cinemachine Impulse Listener a tu Cámara Virtual.
2. Impulse Source Añade Cinemachine Impulse Source al objeto que explota o golpea.
// Disparar shake en C# cuando hay impacto
using Unity.Cinemachine;

public class Explosion : MonoBehaviour {
  private CinemachineImpulseSource impulse;

  void Explotar() {
    impulse.GenerateImpulse();
  }
}
MÓDULO 5

Script C#: CinemachineCameraSwitcher.cs

Este script optimizado y limpio te permite alternar dinámicamente entre múltiples cámaras virtuales (por ejemplo: vista normal, vista de apuntado con mirilla, o vista de mapa cenital) modificando sus prioridades en tiempo real. Compatibilidad nativa con namespaces modernos de Cinemachine.

CinemachineCameraSwitcher.cs
C# Script • Unity 6 / Cinemachine 3.x
using UnityEngine;
using Unity.Cinemachine;

/// <summary>
/// Permite alternar entre diferentes Cámaras Virtuales de Cinemachine
/// cambiando las prioridades (Priority) en tiempo real.
/// </summary>
public class CinemachineCameraSwitcher : MonoBehaviour
{
    [Header("Cámaras Virtuales de la Escena")]
    [SerializeField] private CinemachineCamera mainPlayerCamera;
    [SerializeField] private CinemachineCamera aimCamera;
    [SerializeField] private CinemachineCamera topDownCamera;

    [Header("Valores de Prioridad")]
    [SerializeField] private int activePriority = 20;
    [SerializeField] private int inactivePriority = 10;

    private void Start()
    {
        // Establecer la cámara de jugador como activa por defecto al iniciar
        SwitchToCamera(mainPlayerCamera);
    }

    private void Update()
    {
        // Ejemplo: Mantener presionado Click Derecho para Apuntar
        if (Input.GetMouseButtonDown(1))
        {
            SwitchToCamera(aimCamera);
        }
        else if (Input.GetMouseButtonUp(1))
        {
            SwitchToCamera(mainPlayerCamera);
        }

        // Ejemplo: Presionar M para vista de Mapa / Cenital
        if (Input.GetKeyDown(KeyCode.M))
        {
            SwitchToCamera(topDownCamera);
        }
    }

    /// <summary>
    /// Asigna prioridad máxima a la cámara seleccionada y baja la prioridad al resto.
    /// </summary>
    public void SwitchToCamera(CinemachineCamera targetCamera)
    {
        if (targetCamera == null) return;

        // Desactivar prioridades
        if (mainPlayerCamera != null) mainPlayerCamera.Priority = inactivePriority;
        if (aimCamera != null) aimCamera.Priority = inactivePriority;
        if (topDownCamera != null) topDownCamera.Priority = inactivePriority;

        // Activar la cámara deseada
        targetCamera.Priority = activePriority;
    }
}

No hay comentarios