Cinemachine para 2D: Dicas e truques

ETHAN BRUINS / UNITY TECHNOLOGIES Contributor
Jul 17, 2018|8 Min
Cinemachine para 2D: Dicas e truques
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

Você está trabalhando em um sistema de câmera para o seu jogo 2D há muito tempo e gostaria que houvesse algo como o Cinemachine para 2D? Poucas pessoas sabem disso, mas já existe! Esta postagem do blog fornece algumas dicas para você aproveitar ao máximo o Cinemachine e como essa ferramenta pode beneficiar e acelerar significativamente o desenvolvimento do seu jogo 2D. Continue lendo para saber mais sobre as câmeras virtuais Cinemachine, Confinadores e muito mais, especificamente para uso em jogos 2D.

Obtendo o Cinemachine

Você pode obter o Cinemachine em nosso Package Manager no Unity se estiver usando uma versão superior à 2018.1.0b7.

Isso pode ser feito em Window > Package Manager > All e, em seguida, selecionando Cinemachine.

Imagem
Importando do PackageManager
Criação de uma câmera para 2D

Com o Cinemachine, é relativamente fácil começar a criar seu sistema de câmera para um ambiente 2D. Vamos dar uma olhada na criação de uma câmera virtual para 2D.

1. Crie uma câmera virtual 2D indo até a barra de menus e selecionando Cinemachine > Create 2D Camera. Isso criará uma câmera virtual configurada para um ambiente 2D. Se for a sua primeira câmera virtual na cena, ela também adicionará um componente Cinemachine Brain à sua câmera principal.

Imagem

2. Arraste seu jogador da hierarquia para o alvo Seguir.

3. Certifique-se de que não haja nada no LookAt Target; se houver algo lá, selecione-o e pressione backspace ou delete para remover a referência.

4. Ajuste as configurações de Orthographic Size e Body para atender às suas necessidades.

O principal aspecto que você notará entre uma câmera virtual 2D e uma câmera virtual 3D é o fato de estarmos usando um transpositor de enquadramento. Esse transpositor especial seguirá um alvo no plano X-Y da câmera e impedirá a rotação da câmera. Para que o transpositor de enquadramento funcione corretamente, precisamos garantir que o "LookAt target" das câmeras virtuais seja nulo. Outro aspecto a ser observado é que os jogos 2D usam uma visualização ortográfica. Ao criar sua câmera virtual pela primeira vez, você precisará alterar a projeção para ortográfica na câmera do cérebro da Cinemachine da sua cena.

Imagem

Um aspecto importante a ser lembrado é que, com a Cinemachine, você não deve tentar fazer com que uma câmera faça tudo. Em vez disso, você pode ter diferentes "câmeras virtuais" ao redor da cena e mesclar entre elas usando o Cinemachine Brain. Essa mescla pode ocorrer se o jogador estiver com a saúde baixa, se o jogador tiver entrado em uma determinada área ou em qualquer outro cenário que você possa imaginar que exija uma mudança no enquadramento da câmera ou no pós-processamento. Você pode ajustar as configurações de mistura no Cinemachine Brain, dependendo de como deseja que os visuais sejam.

Assista ao vídeo abaixo para ver como ajustar a câmera virtual durante o modo de jogo.

Dica: Você pode ajustar as configurações da câmera no modo Play e elas serão salvas, desde que a opção "Save During Play" esteja marcada na câmera virtual
Confinamento de uma câmera

Outra coisa legal que podemos fazer com o Cinemachine é usar uma caixa de limite para confinar a câmera virtual a uma determinada área. Esse recurso está disponível na seção de extensão da Câmera Virtual. Abaixo estão as etapas para criar esse efeito.

1. Configure uma caixa de limite para o nosso nível. Isso será usado para limitar o nível. Isso é feito por:

  • Crie um "GameObject" vazio.
  • Adicione um "CompositeCollider2D" ao GameObject.
  • Defina o tipo de geometria do 'CompositeCollider2D' como Polygons.
  • Defina o "Rigidbody" no GameObject como Static.
  • Adicione um "BoxCollider2D" ao GameObject.
  • Ajuste o "BoxCollider2D" para se adequar ao seu nível.
  • Defina o "BoxCollider2D" como "Used by Composite".
Imagem

2. Adicione a extensão do Confiner à sua câmera virtual.

3. Arraste a caixa de limite que criamos anteriormente para a Bounding Shape 2D Box.

4. Decida se deseja que a câmera fique confinada às bordas da tela, o que pode ser ajustado com a caixa de seleção "Confine Screen Edges" (Confinar bordas da tela).

5. Por fim, podemos decidir se queremos que o Confinador tenha amortecimento. Isso permitirá que a câmera se sobreponha suavemente à borda do colisor de confinamento. Se você não quiser esse efeito, defina o Tempo de amortecimento como 0.

Veja os resultados disso abaixo:

Dica: Ao usar a caixa de seleção "Confinar bordas da tela", a área delimitadora precisa ser maior do que o tamanho ortográfico da câmera virtual. Se a caixa delimitadora for menor que a tela, o confinador não se comportará corretamente nessa área.

Exemplo de vídeo:

Câmera de grupo

Outro recurso interessante do Cinemachine que podemos usar em 2D é a Group Camera. Essa câmera nos permite criar um grupo-alvo para a nossa câmera observar. Uma Group Camera é útil se você estiver fazendo uma cena em que deseja mostrar algo importante, se quiser manter mais de um objeto em cada quadro ou se quiser criar um jogo multijogador local em 2D.

No Cinemachine, podemos fazer isso da seguinte maneira:

1. Criar uma nova câmera virtual 2D

2. Criar um novo GameObject na cena

Imagem

3. Adicionar componente > Cinemachine > "Cinemachine Target Group

4. Adicione os GameObjects nos quais você deseja se concentrar ao Target Group

5. Arraste o grupo-alvo para a propriedade "Follow Target" (Seguir alvo) das câmeras virtuais no Inspetor.

6. Ajuste o Orthographic Size mínimo e máximo - que, em termos de câmera, define o "zoom" da câmera - para a sua configuração preferida

7. Determine o tipo de enquadramento de grupo que você deseja. 'Horizontal' considera apenas a dimensão horizontal do quadro ao enquadrar a câmera. 'Vertical' considera apenas a dimensão vertical da moldura ao enquadrar. O tipo "Horizontal e Vertical" leva em conta as duas dimensões.

Um "Grupo de alvos" é um componente do Cinemachine que permite visualizar vários alvos na mesma câmera virtual. Ele ajusta o tamanho da câmera para garantir que os alvos fiquem visíveis, dependendo do peso. Por exemplo, se todos os alvos tiverem um peso de 1, o grupo-alvo garantirá que todos os alvos estejam visíveis.

Aqui está um exemplo de uma câmera de grupo que focaliza o jogador e um baú.

Imagem
Dica: Ao adicionar ou remover membros do grupo enquanto a Câmera Virtual de Grupo estiver ativa, faça o lerp do peso do membro para e de zero. Isso permitirá que a câmera seja reenquadrada sem problemas.
Agitação da câmera usando o Impulse

Com o Cinemachine V2.2, adicionamos uma nova extensão Impulse. Essa extensão permite que os usuários criem efeitos de vibração da câmera sem criar nenhum código. O Impulse Extension pode ser adicionado como uma extensão à sua câmera virtual. Vou orientá-lo sobre como adicionar isso à sua cena:

  • Crie uma câmera virtual 2D usando a opção de menu Cinemachine e configure-a para seguir nosso alvo.
  • Clique em Add Extension > Cinemachine Impulse Listener.
  • No Impulse Listener, verifique se a caixa de seleção denominada "Use 2D Distance" está marcada.
  • A máscara de canal permite que você filtre os impulsos que deseja ouvir. Neste exemplo, usaremos o canal padrão.
  • Selecione o GameObject do qual enviar o Impulse; neste exemplo, usaremos uma bola que quica. Sempre que atingir o piso, ele transmitirá um sinal de impulso no canal padrão e nosso Impulse Listener o captará.
  • Clique em Add Component e procure "Cinemachine Collision Impulse Source".
  • No cabeçalho "Signal Shape" (Forma do sinal), selecionaremos um sinal para a variável Raw Signal (Sinal bruto). Esse é um perfil "NoiseSettings". Podemos usar as predefinidas ou criar as nossas próprias.
  • Crie um novo perfil "NoiseSettings" clicando no ícone de engrenagem e selecione "New Noise Setting" (Nova configuração de ruído). Salve isso em seu projeto.
  • Podemos optar por fazer com que o ruído afete a Posição e a Rotação ou apenas uma delas. Como se trata de um jogo 2D, afetaremos as posições X e Y e a rotação Z. Um bom perfil de ruído é imprevisível. Com o ruído, a única coisa que queremos fazer é replicar parte da aleatoriedade da natureza. Podemos fazer isso com várias camadas com detalhes diferentes.
  • Se quiséssemos, poderíamos adicionar um ganho à frequência e à amplitude que o perfil de ruído aplica.
  • No cabeçalho Spatial Range (Faixa espacial), ajustaremos a Dissipation Distance (Distância de dissipação). Isso determina a que distância não sentimos mais o impulso. Defina-o como 25 por enquanto.

Se quiséssemos, poderíamos ajustar o Modo de Dissipação para alterar o tipo de decaimento. Há outras configurações que podem ser ajustadas, mas, por enquanto, isso é tudo o que precisamos.

Você pode ver o resultado abaixo:

ImagemImagem

Portanto, para resumir, agora sabemos como fazer:

  • Obtenha o Cinemachine com o Package Manager
  • Criar uma câmera virtual 2D
  • Confinar uma câmera virtual em um espaço 2D
  • Componha uma câmera virtual para seguir vários alvos
  • Configure um Impulse Module para adicionar a vibração da câmera

Espero que tenha gostado desta postagem do blog e que agora se sinta pronto para usar o Cinemachine em seu próximo projeto 2D! Se você quiser se manter atualizado sobre o Cinemachine? Participe da discussão em nosso fórum.