Escolar Documentos
Profissional Documentos
Cultura Documentos
Mecanim
O sistema de animação da Unity é baseado no conceito de clipes de animação
(Animation Clip), que contém informações sobre como determinados objetos devem
alterar sua posição, rotação ou outras propriedades ao longo do tempo.
Os clipes de animação são então organizados em um sistema estruturado
semelhante a um fluxograma, denominado Animator Controller. O Animator Controller
atua como uma “Máquina de Estado”, que controla qual clipe deve estar sendo
reproduzido no momento e quando as animações devem ser alteradas.
Importando os Assets
Importe para dentro do seu projeto 2D todos os Sprites referentes ao
personagem que será animado. Nesse material utilizaremos como base os Sprites do
personagem Cute Girl baixados do site gameart2d.
Criando o Personagem
Arraste pare dentro da aba Hierarchy o sprite chamado “Idle (1)”, ele servirá
como base para a criação do GameObject do personagem. Renomeie o GameObject
para Personagem.
Em alguns casos os sprites que utilizaremos em nossos projetos podem não estar
como a proporção adequada para o nosso jogo, sejam muito grandes ou muito
pequenos. Para contornar essa situação devemos alterar a sua proporção em relação a
cena apenas modificando a sua propriedade Scale em todos os eixos. No caso do
personagem Cute Girl, ela está um pouco grande, para isso vamos reduzir a sua escala
para 0.4.
Animator Component
Selecione o personagem Cute Girl e adicione o componente Animator. Não
confundir com “Animation”.
Animator Controller
Agora que o nosso personagem possui um componente Animator, precisamos
criar um Animator Controller e depois associá-lo ao personagem. Dentro do projeto crie
uma pasta chamada Animações, dentro dela crie o Animator Controller clicando com o
botão direito do mouse CREATE >> Animator Controller. Renomeie o Animator
Controller para CuteGirl.
Ao clicarmos duas vezes em cima do Animator Controller será exibida uma nova
aba chamada Animator como a mostrada a seguir:
Animation Clip
Os clipes de animação (Animation Clip) são um dos principais elementos do
sistema de animação da Unity. A Unity suporta a importação de animação de fontes
externas e oferece a capacidade de criar clipes de animação a partir do zero no editor
usando a janela Animation, que pode ser acessado em WINDOW >> ANIMATION ou
pelo atalho CTRL + 6.
Na maioria das situações, é normal termos várias animações e alternar entre elas
quando certas condições do jogo ocorrem. Por exemplo, você pode alternar de uma
animação de caminhada para um salto sempre que a barra de espaço for pressionada.
No entanto, mesmo se você tiver apenas um único clipe de animação, ainda precisará
colocá-lo em um Animator Controller para usá-lo em um objeto de jogo.
Para criarmos um Animation Clip, clique com o botão direito do mouse dentro
da pasta Animações e selecione CREATE >> ANIMATION. Renomeie o arquivo para
“Parado”.
Figura 6 - Criando uma animação
Queremos também que essa animação seja tocada de forma ininterrupta (loop),
ou seja, quando todos os quadros forem tocados a animação deverá ser tocada
novamente a partir do início. Selecione o Animation Clip “Parado” e dentro do painel
Inspector marque a opção Loop Time como mostra a imagem a seguir:
Ao entrarmos no modo Play, podemos visualizar que existe uma transição entre
as animações. A animação de “Parado” é tocada uma vez até o seu fim e em seguida
ocorre a transição para a animação “Correndo”. Ela também é tocada apenas uma vez e
retorna novamente para a animação “Parado” e esse ciclo é repetido enquanto o jogo
está sendo executado.
Em nosso jogo não queremos que as transições entre as animações ocorram de
forma automática e sim quando determinadas condições forem alcançadas. Por
exemplo, queremos que a animação “Correndo” seja tocada de forma ininterrupta
enquanto o personagem estiver se movendo do contrário a animação “Parado” deve
estar em execução.
Em ambas as setas que representam a transição das animações devemos fazer
algumas modificações. Primeiro, selecione a seta que aponta de “Parado” para
“Correndo” e acesse o painel Inspector.
Movimentando o jogador
Com as animações de “Parado” e “Correndo” já criadas e configuradas, vamos
adicionar o movimento ao nosso personagem. Primeiro devemos adicionar alguns
outros componentes como o Box Collider 2D e o Rigidbody 2D.
Após adicionar o Box Collider 2D ao personagem ajuste o colisor (clicando em
Edit Collider) para que fique mais ou menos com a mesma dimensão do sprite do
personagem. Tente alinhar a parte de baixo do colisor com os pés do personagem para
evitar dar a impressão que o personagem está flutuando na cena.
Para evitar que o personagem cai no “infinito” por causa da ação da física da
Unity, vamos adicionar uma plataforma a cena. Dentro da pasta Sprites clique com o
botão direito e acesse CREATE >> SPRITES >> SQUARE. Renomeie o arquivo para bloco.
Movimentar(movimentoHorizontal);
}
Clique no botão “+” e selecione a opção float. Renomeie esse parâmetro para
velocidade.
O sistema de pulo
Para criarmos um mecanismo de pulo eficiente dentro do jogo é necessário
adicionarmos novos elementos ao projeto. Primeiro, precisamos criar algo que sirva
como referência para a posição dos “pés” do personagem. Esse mecanismo deverá ser
capaz de nos informar quando o personagem estiver em contato com o chão ou em algo
no qual ele possa se locomover normalmente.
Segundo, precisamos criar uma forma de diferenciar os tipos de terreno
existentes no jogo e que também que seja capaz de enviar a informação de que ouve
uma colisão com o jogador ou qualquer outro objeto do jogo.
Uma vez que definirmos esses dois novos componentes, podemos entrar em
ação com o sistema de pulo. O sistema de pulo deverá entrar em ação apenas quando o
jogador apertar o botão designado para pular e se o personagem estiver em contato
com alguma superfície que lhe proporcione o pulo (evitando pulos no ar ou em
superfícies grudentas por exemplo).
Vamos definir a posição dos “pés”. Crie um GameObject vazio dentro do
personagem e o posicione entre as suas pernas próximo ao seus pés. Renomeie esse
GameObject para “Posicao dos pes”. Para facilitar a visualização da posição dos pés,
vamos adicionar um ícone colorido a ele.
Em seguida vamos criar uma Layer (camada) que será usada para diferenciar qual
o tipo de terreno onde os “pés” do personagem estarão colidindo. Layers (camadas) são
comumente usadas pelas câmeras para renderizar apenas uma parte da cena e pelas
luzes para iluminar apenas algumas partes do cenário. Também podem ser utilizados
por raycasting e para ignorar seletivamente Colliders e ou para criar colisões.
Para criarmos uma nova Layer, acesse o menu Inspector, clique dentro da caixa
de seleção Layer e na opção Add Layer.
Após acessar a janela Tags & Layers, na linha oito, crie a layer chamada “chao”.
Movimentar(movimentoHorizontal);
}
/*Continua a classe ControlaPersonagem abaixo*/
• Parado → Pulando
• Pulando → Parado
• Correndo → Pulando