Voltar para o Blog
Quest Log

Cinemachine na Unity: Câmeras Profissionais sem Código

Várias câmeras virtuais flutuando ao redor de um personagem 3D numa arena, ligadas por linhas de transição suaves

Unity Cinemachine 3 do zero: Cinemachine Brain, CinemachineCamera, alvo, prioridade e blends, câmera 2D e 3D e os nomes novos dos tutoriais do Cinemachine 2.

Ferramenta:Unity

Cinemachine na Unity: Câmeras Profissionais sem Código

Unity Cinemachine é o pacote oficial de câmeras da Unity: em vez de escrever um script que segue o jogador, suaviza o movimento, respeita os limites da fase e faz transição entre ângulos, você configura isso em componentes. Uma câmera real recebe o Cinemachine Brain, e você cria quantas CinemachineCamera quiser; o Brain escolhe a de maior prioridade e faz a transição entre elas.

Este guia é para quem nunca usou o Cinemachine ou aprendeu pela versão 2 e está perdido nos nomes. Você vai ver o que o pacote resolve, como instalar, como montar uma câmera que segue o personagem em 2D e em 3D, trocar de câmera por prioridade com blend, a tabela de nomes do Cinemachine 2 para o 3 e quando não vale a pena usar.

Unity cinemachine: o que resolve

Câmera parece simples até você fazer a primeira. "Seguir o jogador" vira: seguir com atraso para não dar enjoo, deixar uma zona morta no meio da tela para pulos pequenos não mexerem a câmera, olhar um pouco à frente na direção do movimento, não mostrar fora do mapa, tremer na explosão, trocar para outro ângulo numa cutscene e voltar suave. Cada um desses itens é um script, e eles brigam entre si.

O Cinemachine separa o problema em duas partes:

  • CinemachineCameras (câmeras virtuais): descrevem como uma câmera deveria se comportar. Não renderizam nada. Você pode ter dez na cena.
  • Cinemachine Brain: fica na câmera real e, a cada frame, copia posição, rotação e lente da câmera virtual ativa, misturando duas durante uma transição.

Isso transforma trocar de câmera em mudar um número (a prioridade), e a transição suave sai de graça.

Instalar e o Cinemachine Brain

Em Window > Package Management > Package Manager, aba Unity Registry, procure Cinemachine e clique em Install. Em outubro de 2026, a documentação da Unity lista o Cinemachine 3.1.7 como a versão liberada para a Unity 6.3 LTS; o Package Manager instala a versão certa para o seu editor.

Para criar a primeira câmera: GameObject > Cinemachine > Cinemachine Camera. A Unity cria um objeto com o componente CinemachineCamera na posição atual da Scene view e, se a câmera real da cena ainda não tem, adiciona o Cinemachine Brain nela automaticamente. Selecione a Main Camera e confira o componente: a partir daqui, quem move essa câmera é o Brain, e mexer no Transform dela à mão não adianta.

Três configurações do Brain que você vai mexer:

  • Default Blend: a transição usada quando você não definiu uma específica. Opções: Cut, Ease In Out, Ease In, Ease Out, Hard In, Hard Out, Linear e Custom, mais a duração em segundos.
  • Custom Blends: um asset para definir transições entre câmeras específicas (corte seco da gameplay para a cutscene, blend lento da cutscene de volta).
  • Update Method: Fixed Update, Late Update, Smart Update ou Manual Update. A documentação recomenda Smart Update, que se ajusta a alvos movidos por física ou não. Se o personagem tremer, este é o primeiro lugar a olhar.

CinemachineCamera, alvo e componentes

Selecione a CinemachineCamera. Os campos principais:

  • Tracking Target: o objeto que a câmera segue. Arraste o personagem aqui.
  • Look At Target: opcional. Só aparece se você quiser que a câmera mire num objeto diferente do que segue.
  • Priority: número inteiro, padrão 0. Maior vence. Pode ser negativo.
  • Lens: as configurações da câmera real (Field of View ou Orthographic Size, planos de corte, Dutch).
  • Standby Update: com que frequência uma câmera que não está ao vivo se atualiza (Never, Always, Round Robin).

Abaixo deles ficam os comportamentos procedurais, que você escolhe em listas:

  • Position Control: Follow, Orbital Follow, Third Person Follow, Position Composer, Hard Lock to Target, Spline Dolly.
  • Rotation Control: Rotation Composer, Hard Look At, Pan Tilt, Rotate With Follow Target.
  • Noise: tremor procedural (respiração da câmera, câmera na mão).
  • Add Extension: extensões como Confiner 2D, Deoccluder e Pixel Perfect.

A combinação de um Position Control com um Rotation Control define a câmera. Não precisa decorar: as seções seguintes dão as combinações para 2D e 3D.

Câmera seguindo em 2D e 3D

2D (plataforma, top-down):

  1. Câmera real em modo Orthographic.
  2. CinemachineCamera com Tracking Target = personagem.
  3. Position Control: Position Composer. Ele mantém o alvo numa região da tela em vez de colar no centro.
  4. No Position Composer, ajuste Damping (atraso de seguimento por eixo), Dead Zone (área em que o alvo anda sem mover a câmera) e Lookahead Time (olhar à frente do movimento).
  5. Rotation Control: nenhum. Câmera 2D não gira.
  6. Para não mostrar fora do mapa: Add Extension > Cinemachine Confiner 2D, e aponte para um objeto com PolygonCollider2D desenhando os limites da fase (marque o collider como Is Trigger ou ponha numa layer que não colide com nada).

O post sobre Cinemachine 2D seguindo o jogador detalha cada valor e os erros de tremedeira em jogo de pixel art.

3D terceira pessoa:

  1. CinemachineCamera com Tracking Target = personagem (ou um objeto filho na altura da cabeça).
  2. Position Control: Orbital Follow para câmera que gira em volta do personagem, ou Third Person Follow para câmera de ombro.
  3. Rotation Control: Rotation Composer para manter o personagem enquadrado.
  4. Para o jogador girar a câmera com mouse ou analógico, adicione o componente Cinemachine Input Axis Controller, que lê as actions do Input System e alimenta os eixos da órbita.

Sem uma linha de código, você tem uma câmera que muitos jogos indie lançados não têm.

A câmera, no entanto, não vive sozinha: ela conversa com o movimento do personagem, com a física, com a UI e com os efeitos de impacto. Quando essas partes se juntam num jogo completo é que aparecem os tremores, as transições fora de hora e a câmera atravessando parede. Se é nessa integração que você está travado, o curso de Unity constrói jogos inteiros com câmera, controle e game feel funcionando juntos.

Curso de Unity
Quer fazer seu primeiro jogo na Unity?

No curso de Unity 6 da CursoGame.Dev você vai do zero ao primeiro jogo, com um desafio prático em cada level e suporte individual no WhatsApp quando travar.

Conhecer o curso de Unity
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Trocar câmera por prioridade e blends

O uso que mais compensa o Cinemachine: entrar numa sala e a câmera abrir para mostrar a sala inteira, sair e voltar a seguir o jogador. Crie uma segunda CinemachineCamera enquadrando a sala, com Priority 0, e um trigger na entrada.

Arquivo CameraZone.cs:

using Unity.Cinemachine;
using UnityEngine;

[RequireComponent(typeof(Collider2D))]
public class CameraZone : MonoBehaviour
{
    [SerializeField] private CinemachineCamera zoneCamera;
    [SerializeField] private int activePriority = 20;
    [SerializeField] private int inactivePriority = 0;

    private void Awake()
    {
        zoneCamera.Priority = inactivePriority;
    }

    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            zoneCamera.Priority = activePriority;
        }
    }

    private void OnTriggerExit2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            zoneCamera.Priority = inactivePriority;
        }
    }
}

A câmera de gameplay fica com Priority 10, a da sala sobe para 20 quando o jogador entra e volta a 0 quando sai. O Brain percebe a troca e faz o blend com o Default Blend (ou o que estiver no Custom Blends para esse par). Repare no using Unity.Cinemachine;: é o namespace do Cinemachine 3. Atribuir um int à Priority funciona porque o tipo dela converte de inteiro e já marca a prioridade como habilitada.

Duas alternativas para o mesmo efeito: ativar e desativar o GameObject da câmera (uma câmera desativada não concorre) ou chamar zoneCamera.Prioritize(), que coloca a câmera no topo entre as de mesma prioridade. Prioridade é o mais legível quando várias zonas se sobrepõem, porque o número diz quem ganha.

Para o tremor de tela em explosões, o Cinemachine tem o sistema de Impulse: um componente que emite o impulso e uma extensão na câmera que reage a ele. É a forma mais limpa de fazer screen shake sem mexer no Transform da câmera, e combina com as ideias de game feel e juice.

Tutorial em Cinemachine 2: o que mudou de nome

A maior parte dos vídeos e respostas de fórum sobre Cinemachine foi feita na versão 2. A lógica é a mesma, os nomes não. A tabela do guia de novidades do Cinemachine 3:

Cinemachine 2Cinemachine 3
CinemachineVirtualCameraCinemachineCamera
CinemachineFreeLookCinemachineCamera (com Orbital Follow)
CinemachineTransposerCinemachineFollow
CinemachineOrbitalTransposerCinemachineOrbitalFollow
CinemachineFramingTransposerCinemachinePositionComposer
CinemachineComposerCinemachineRotationComposer
CinemachinePOVCinemachinePanTilt
CinemachineTrackedDollyCinemachineSplineDolly
CinemachineColliderCinemachineDeoccluder
CinemachineConfinerCinemachineConfiner2D ou CinemachineConfiner3D
Cinemachine3rdPersonFollowCinemachineThirdPersonFollow
CinemachineSameAsFollowTargetCinemachineRotateWithFollowTarget
CinemachineBlendListCameraCinemachineSequencerCamera

Mudanças que afetam código:

  • Namespace: using Cinemachine; passa a ser using Unity.Cinemachine;.
  • Campos sem o prefixo m_: m_Lens virou Lens, m_Priority virou Priority, e assim por diante.
  • Follow e Look At viraram um Tracking Target único, com Look At separado só quando você precisa.
  • Caminhos (CinemachinePath, CinemachineSmoothPath) foram trocados pelo Spline Container nativo da Unity, e o Dolly Cart virou CinemachineSplineCart.
  • Filtro por layer em tela dividida passou a usar Channels.

Se você abriu um projeto antigo, o Inspector de qualquer câmera virtual antiga mostra o Cinemachine Upgrader, com três opções: converter um objeto, uma cena ou o projeto inteiro. A conversão do projeto inteiro atualiza animações, referências de script e prefabs, mas não tem desfazer. Faça commit ou backup antes.

Quando não usar Cinemachine

Cinemachine não é obrigatório, e em alguns casos atrapalha:

  • Câmera fixa: puzzle de tela única, jogo de cartas, menu. Uma câmera parada não precisa de pacote.
  • Câmera totalmente sistêmica: um jogo de estratégia com câmera RTS (arrastar com o mouse, zoom na roda, limites do mapa) costuma ficar mais simples num script próprio de 80 linhas do que forçando os componentes de seguimento.
  • Projeto que você está usando para aprender câmera: escrever um seguidor com Vector3.SmoothDamp uma vez ensina damping, dead zone e LateUpdate. Depois disso, o Cinemachine faz muito mais sentido.

Fora desses casos, ele economiza dias de trabalho e é o padrão em projeto profissional na Unity.

Próximo passo

Monte uma cena 2D com o personagem, uma CinemachineCamera com Position Composer e Confiner 2D, e uma sala com CameraZone. Ajuste damping e dead zone até a câmera parar de chamar atenção. Para comparar com outra engine, veja como a Godot resolve o mesmo problema no post sobre câmera 2D seguindo o jogador na Godot.

Perguntas frequentes

Qual versão do Cinemachine usar na Unity 6?

Use o Cinemachine 3. Em outubro de 2026, a documentação da Unity lista o pacote Cinemachine 3.1.7 como liberado para o editor 6000.3 (Unity 6.3 LTS). Tutoriais com CinemachineVirtualCamera são do Cinemachine 2 e usam nomes que mudaram.

O que é o Cinemachine Brain?

É o componente que fica na câmera real da Unity. Ele olha todas as CinemachineCameras ativas da cena, escolhe a de maior prioridade e move a câmera real para a posição e as configurações dela, fazendo a transição (blend) quando a câmera escolhida muda.

Como trocar de câmera no Cinemachine?

Mude a prioridade. A CinemachineCamera ativa com o maior valor de Priority vira a câmera ao vivo, e o Brain faz o blend até ela usando o Default Blend ou um blend personalizado. Ativar e desativar o GameObject da câmera também funciona.

CinemachineVirtualCamera não existe mais?

No Cinemachine 3 ela foi substituída pela CinemachineCamera, e o namespace passou a ser Unity.Cinemachine. Transposer virou CinemachineFollow, Framing Transposer virou CinemachinePositionComposer e Composer virou CinemachineRotationComposer. O pacote traz um upgrader que converte objetos antigos.