Pesquisar em Unity

Luzes, câmera, ação! Configura as suas câmeras com Cinemachine

Last updated: November 2018

Cinemachine tornou-se o sistema de câmeras de-facto em Unity desde o ciclo do Unity 2017. Sob a superfície, há um sistema refinado com diversas opções e possibilidades. Continue lendo para conhecer casos de uso mais avançados e dicas para Cinemachine oferecidos por Ciro Continisio, um evangelista técnico na Unity.

Várias cérebros do Cinemachine

Às vezes, você precisa de mais de uma câmera na cena para um multijogador de tela dividida ou talvez você queira criar um efeito “picture-in-picture” (por exemplo, uma câmera de vigilância). Embora pareça que o Cinemachine assuma o controle de todas as câmeras, por meio do componente de cérebro, há um jeito de ter vários cérebros na cena, cada um olhando para um conjunto de câmeras virtuais.

Nesta situação, você pode ver uma IU com feed de vídeo nela apenas usando uma câmera secundária apontada para os rostos dos personagens e renderizando para uma RenderTexture. Para adicionar um toque especial a este vídeo, você pode usar Cinemachine para manter os rostos dos personagens no quadro.

cinemachine-RenderTexture-MultipleBrains

O cenário aqui é muito simples: crie duas câmeras do Unity e associe um cérebro do Cinemachine a cada uma. Depois, você poderá criar quantas câmeras virtuais precisar.

Multiple-Cinemachine-Brains

Para garantir que um cérebro veja apenas algumas dessas VCams, você só precisa fazer três coisas:

  1. Garantir que as VCams que devem afetar uma Camera específica estejam em uma única camada (por exemplo, “Personagens”).
  2. Definir a Culling Mask dessa Camera para renderizar essa camada.
  3. Definir a Culling Mask da outra Camera para excluir essa camada.

Lembre-se de que mesmo que o processo esteja usando a Culling Mask da Camera, isso não significa que você precisa alterar a renderização. Com 31 camadas para utilizar, basta criar uma especificamente para as VCams.

O processo completo também está resumido no vídeo abaixo:

Um eixo “global” diferente

Cinemachine opera na presunção de que há um eixo “global” que, por padrão, é o Y vertical. Usando isso como referência, ele sabe qual movimento de câmera não deve ser realizado, por exemplo, olhar para cima ou para baixo em um alvo (câmeras reais não fazer isso!).

No caso de câmeras 2D (câmeras marcadas como ortográficas), o Cinemachine comporta-se de maneira diferente e restringe os movimentos da câmera no plano do solo, que será o plano composto pelos dois eixo restantes, nesse caso, X e Z.

No entanto, às vezes é necessário forçar esse eixo “global” e o plano correspondente a realizar outra ação. Por exemplo, você pode estar trabalhando em um jogo que usa física 2D, de modo que você seja forçado a usar o plano XY durante a jogabilidade. Mas, talvez você queira que a câmera olhe para esse plano de um ângulo, aplicando uma leve inclinação ao plano da câmera, como na imagem abaixo:

world-up-override-cinemachine

Para isso, basta atribuir uma transformação à propriedade de “substituição global” no cérebro do Cinemachine. Você pode criar um GameObject vazio e usá-lo como um manipulador, rotacionando esse objeto para encontrar a referência “global” adequada para a configuração do Cinemachine.

Uso inteligente do pós-processamento

O Cinemachine funciona com as versões 1 e 2 da pilha de pós-processamento, mas a v2 é a mais adequada pois possibilita alguns truques interessantes quando usada junto com o Cinemachine devido ao sistema baseado em volume.

Ao usá-los em conjunto, é recomendado dividir os efeitos em duas categorias:

  1. Efeitos gerais que deve afetar todas as cenas.
  2. Efeitos exclusivos para uma cena (ou, no jargão do Cinemachine, VirtualCamera).

No geral, efeitos como AmbientOcclusion, Colour Grading, Grain e outros efeitos de estilo geralmente fazem parte do primeiro grupo, já que você deseja manter o estilo consistente ao longo do jogo ou do filme. Efeitos como Depth of Field, Lens Distortion, Chromatic Aberration e outros efeitos que simulam as propriedades físicas da câmera podem viver nas câmeras virtuais. Essas regras não são difíceis!

Por exemplo, no exemplo abaixo você perceberá o uso de um volume de pós-processamento muito local para transmitir a impressão de imagem de uma câmera de segurança antiga:

post-processing-intro

Para isso, basta ter um volume pós-processo na própria câmera virtual que não está marcada como “é global” e adicionar um collider. Geralmente um collider Sphere muito pequeno é suficiente (talvez 0,05 de raio), portanto, verifique se a câmera não entre nesse volume por engando durante a jogabilidade.

Então, vamos lá. Câmera virtual, volume pós-processo e collider no mesmo objeto:

smart-use-post-processing

Depois, você pode adicionar todos os efeitos desejados e até mesmo substituir alguns no perfil principal marcando as caixas de seleção adequadas. Lembre-se, uma caixa de seleção não marcada assume o valor base para a propriedade, que geralmente é obtido do volume global. Se você marcar, substituirá somente para esse volume.

Criação de um efeito Dolly Zoom

Finalmente, um pequeno truque de cinematografia. Já viu o efeito chamado “Dolly Zoom”? Foi introduzido pela primeira vez no filme “Um Corpo que Cai” de Alfred Hitchcock em 1958 e, desde então, tem sido usado em um monte de filmes.

Na tela, parece que o espaço entre o personagem e o plano de fundo está aumentando ou contraindo. É uma técnica muito legal e muito fácil de recriar com o Cinemachine.

Veja o exemplo abaixo, que está configurado para acionar no durante o jogo:

Cinemachine-Dolly-Zoom

Para criar esse efeito, você pode começar com duas câmeras virtuais com as mesmas configurações. Depois, você precisa trazer uma delas para trás e reduzir seu valor de Field of View. Ao combinar as duas, via Timeline ou usando a prioridade, você obtém o efeito Dolly Zoom.

Lembre-se que esse efeito não funciona com câmeras ortográficas, somente com as de perspectiva!

Mais recursos

Queremos saber! Você gostou deste conteúdo?

Sim, continue. Bem. Poderia ser melhor