Tutorial Unity Cinemachine e Timeline

Cinemachine é um pacote para Unity que oferece aos desenvolvedores controle de câmera profissional e aprimora a capacidade de criar cenas cinematográficas.

Este tutorial abordará os seguintes tópicos:

  • Instalação do cinema
  • Configuração da câmera em terceira pessoa
  • Criação de cena da linha do tempo

Instalação do cinema

Para instalar o Cinemachine, siga os passos abaixo:

  • Em Unity vá para Janela -> Gerenciador de Pacotes

Menu do gerenciador de pacotes Unity

  • Alterar pacotes para "Unity Registro"

Registro do gerenciador de pacotes Unity

  • Selecione "Cinemachine" na lista e clique em "Install"

O Cinemachine agora está pronto para uso.

Configuração da câmera em terceira pessoa

Abaixo vou mostrar como configurar uma câmera em terceira pessoa usando a Câmera Virtual do Cinemachine.

Uma câmera virtual é uma versão leve de uma câmera Unity, que não renderiza sozinha, mas é meramente usada como um ponto de referência para a câmera principal.

Como exemplo para este tutorial, usarei um controlador de terceira pessoa, exceto sem configurar a colisão da câmera e sem mover a câmera dentro da hierarquia do jogador:

Sharp Coder Reprodutor de vídeo

Como você pode ver, o jogador está se movendo, mas a câmera não o segue.

Configurar uma câmera de terceira pessoa usando o Cinemachine é muito fácil:

  • Vá para GameObject -> Cinemachine -> Câmera Virtual para criar uma nova câmera virtual

Cinemachine criar câmera virtual

  • Nomeie a câmera virtual "TPS Camera"
  • Selecione TPS Camera e em CinemachineVirtualCamera atribua a variável Follow (no meu caso será o objeto "CameraParent", que está localizado dentro de uma hierarquia do player e representa a rotação vertical do visual)
  • Definir o valor do corpo para "3rd Person Follow"
  • Defina Ignorar tag como "Player" e também selecione o objeto raiz do jogador e defina sua tag como "Player" (se houver algum colisor filho na hierarquia do jogador, faça certifique-se de mudar suas tags para "Player" também)
  • Ajuste outros valores no CinemachineVirtualCamera, como distância da câmera, lado da câmera, deslocamento do ombro e amortecimento até ficar satisfeito com o resultado.
  • Definir o valor de mira de CameraParent como "Do nothing"

Valores do componente CinemachineVirtualCamera

A câmera agora deve seguir o jogador:

Sharp Coder Reprodutor de vídeo

Criação de cena da linha do tempo

Aqui mostrarei como compor uma cena usando Unity's Linha do tempo.

Timeline é um editor embutido que permite aos desenvolvedores compor cutscenes animando a câmera e também usando animações existentes (ex. passeio de personagem), além de eventos e sinais, organizando-os de maneira sequencial.

O pacote Cinemachine adiciona algumas opções extras a um editor de linha do tempo, como a capacidade de alternar entre câmeras virtuais.

Para criar uma cutscene, siga os passos abaixo:

  • Crie um novo GameObject e chame-o de "TimelineManager"
  • Abra a janela Timeline indo para Window -> Sequencing -> Timeline

Menu da linha do tempo de sequenciamento da janela do Unity

  • Selecione o objeto "TimelineManager" e na janela Timeline, você deve ver uma opção para criar um componente Director e recurso Timeline, clique nele.

Cinemachine cria o componente Director e um recurso Timeline

  • Depois de criar o componente Director e o recurso Timeline, você deve ver a janela Timeline vazia (certifique-se de que o objeto TimelineManager esteja selecionado para poder editá-lo).

Janela da Linha do Tempo do Cinemachine

  • Agora podemos começar a adicionar componentes à linha do tempo clicando com o botão direito do mouse na janela.

Componentes da Linha do Tempo Criar

Como você pode ver, a janela Timeline tem várias opções:

  • Track Group - este é um grupo que pode conter ações de linha do tempo e é útil para organização.
  • Acompanhamento de ativação - define o objeto que deve estar ativo somente durante um período de tempo definido.
  • Animation Track - isso reproduzirá uma animação específica durante um período de tempo definido.
  • Faixa de áudio - isso reproduzirá um áudio específico durante um período de tempo definido.
  • Control Track - uma faixa cujos clipes controlam elementos relacionados ao tempo em um GameObject.
  • Signal Track - permite executar uma ampla variedade de ações em um objeto de jogo específico em um momento específico (ex. ativar o script de movimento do jogador ou chamar uma função específica quando a linha do tempo atinge um determinado quadro, etc.)
  • Faixa reproduzível - uma faixa cujos clipes podem ser reproduzidos de forma personalizada.
  • Cinemachine Track - permite misturar várias câmeras virtuais de cinemachine.

Para este tutorial, usarei apenas Animation Track e Signal Track.

Configurar

  • Crie outra câmera virtual e nomeie-a como "CutsceneCamera" e defina seu valor "Priority" para um nível acima de "TPS Camera" (ex. 11)
  • Clique com o botão direito na visualização do projeto -> Criar -> Sinal e nomeie-o como "DisablePlayer"

Unity Criar sinal de linha do tempo

  • Duplica o sinal "DisablePlayer" e renomeia-o para "EnablePlayer"

Ativos de sinal da linha do tempo do Unity

  • Crie um novo GameObject na cena e nomeie-o como "SignalReceiver"
  • Anexar componente SignalReceiver a um objeto "SignalReceiver"
  • Clique em "Add Reaction" 2 vezes
  • Atribuir "DisablePlayer" a uma primeira reação e "EnablePlayer" a uma segunda reação

Reação de adição de sinal da linha do tempo do Unity

"DisablePlayer" ativará a câmera de cena, desativará a câmera do jogador e o script de controle do jogador e será colocado no início da linha do tempo.

"EnablePlayer" desativará a câmera da cena, ativará a câmera do jogador e o script de controle do jogador e será colocado no final da linha do tempo.

  • Clique (+) para adicionar um slot de reação e atribua o objeto cujo script ou componente precisa ser ativado/desativado.

Dica: Para criar um sinal oposto, basta configurar as reações para "DisablePlayer" e clicar no ícone de engrenagem -> Duplicar, alterar o sinal para "EnablePlayer" e inverta as caixas de seleção.

Sinal Duplicado Unity

Configuração das reações do sinal da linha do tempo do Unity

  • Selecione o objeto "TimelineManager" e, na janela Timeline, adicione uma nova trilha de sinal clicando com o botão direito do mouse -> Track de sinal e atribua o objeto "SignalReceiver" a ela.
  • Arraste e solte "DisablePlayer" recurso de sinal no início da linha do tempo e "EnablePlayer" no quadro em que deseja que a cena termine:

Visualização do sinal da linha do tempo do Unity

Isso fará com que o script do controlador do jogador e a câmera sejam desativados no início e reativados quando a linha do tempo chegar ao fim.

Por último, vamos criar uma animação de câmera simples.

  • Clique com o botão direito do mouse em Timeline -> Animation Track e atribua "CutsceneCamera" (isso solicitará a adição do componente Animator ao objeto, se não houver nenhum)
  • Clique no botão de gravação

Registro de clipe de animação da linha do tempo do Unity

  • Mova o "CutsceneCamera" levemente, para que o quadro-chave seja aplicado, em seguida, mova a alça do quadro da Linha de tempo para o final e, por último, mova a câmera para uma nova posição e clique em parar a gravação.

Linha do tempo da cena Unity Cinemachine

Vamos apertar o play e ver o resultado:

Sharp Coder Reprodutor de vídeo

A cena é reproduzida no início do jogo.

Artigos sugeridos
Como pintar árvores no terreno no Unity
Como importar animações para o Unity
Tutorial de gamepad para Unity
Construindo um sistema de menu interativo no Unity
Escolhendo o Skybox certo para o seu ambiente no Unity
Estratégias para proteger os jogos Unity da pirataria
Como fazer um jogo inspirado em FNAF no Unity