0% acharam este documento útil (0 voto)
49 visualizações8 páginas

Criando Personagem Animado no Unity

O documento fornece um guia passo a passo para criar um projeto 3D no Unity, incluindo a preparação do ambiente, importação de personagens, configuração de animações e scripts. Ele detalha como criar um controlador de personagem em C# para gerenciar animações de movimento e velocidade. O guia também aborda ajustes finais e explicações sobre o código utilizado.

Enviado por

Pires Ąp
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
49 visualizações8 páginas

Criando Personagem Animado no Unity

O documento fornece um guia passo a passo para criar um projeto 3D no Unity, incluindo a preparação do ambiente, importação de personagens, configuração de animações e scripts. Ele detalha como criar um controlador de personagem em C# para gerenciar animações de movimento e velocidade. O guia também aborda ajustes finais e explicações sobre o código utilizado.

Enviado por

Pires Ąp
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

1.

Preparar o Ambiente

1. Abrir o Unity e Criar um Projeto

o Abra o Unity Hub e crie um novo projeto 3D (pode ser do tipo Core 3D).

o Escolha um nome para o projeto (ex.: "PersonagemAnimado") e clique em Create


Project.

2. Baixar ou Criar um Personagem

o Se você já tem um modelo de personagem (ex.: .fbx ou .obj), pule para o próximo
passo.

o Caso não tenha, procure na Unity Asset Store:

▪ No Unity, vá em Window > Asset Store.

▪ Pesquise por "Free Characters" e baixe um pacote como o Unity Standard


Assets ou algo similar.

2. Importar o Personagem para a Cena

1. Importar o Arquivo do Personagem

o Arraste o arquivo do personagem para a pasta Assets no Unity (normalmente no


formato .fbx, .obj ou .prefab).

2. Adicionar à Cena

o Arraste o modelo do personagem da pasta Assets para a janela de cena (a janela


com o ambiente 3D).

o Ajuste o personagem:

▪ Use as ferramentas de Move, Rotate, e Scale no topo do Unity para


posicioná-lo corretamente (posição (0, 0, 0) é um bom ponto inicial).

3. Configurar o Animator

1. Criar um Animator Controller

o Na pasta Assets, clique com o botão direito e selecione Create > Animator
Controller.

o Nomeie-o (ex.: "PersonagemAnimator").

2. Adicionar o Animator ao Personagem

o Selecione o personagem na cena.

o No painel Inspector, localize o componente Animator.


▪ Se não tiver um, adicione-o clicando em Add Component e procurando
por Animator.

o No campo Controller, arraste o Animator Controller que você criou.

3. Adicionar as Animações

o Certifique-se de que seu modelo 3D tem animações.

▪ Se for um modelo .fbx, clique nele na pasta Assets e veja no Inspector se


ele tem animações listadas.

o Arraste as animações (ex.: Idle, Walk, Run) para dentro do Animator (clique duas
vezes no Animator Controller para abrir a janela Animator).

o Conecte as animações com transições:

▪ Clique com o botão direito em uma animação e escolha Make Transition


para conectá-la a outra.

4. Configurar Parâmetros no Animator

1. Adicionar um Parâmetro de Velocidade

o No Animator, clique na aba Parameters (à esquerda da janela).

o Clique em + e escolha Float.

o Nomeie o parâmetro como Speed.

2. Configurar Transições

o Clique nas transições (as setas entre as animações) no Animator e, no Inspector,


configure condições:

▪ Idle → Walk: Adicione a condição Speed > 0.1.

▪ Walk → Run: Adicione a condição Speed > 3.0.

▪ Run → Walk: Adicione a condição Speed <= 3.0.

▪ Walk → Idle: Adicione a condição Speed <= 0.1.

5. Criar um Script para Controlar o Personagem

1. Criar o Script

o Na pasta Assets, clique com o botão direito e selecione Create > C# Script.

o Nomeie o script como "PlayerController".

2. Escrever o Código

o Dê um duplo clique no script para abri-lo no editor (geralmente o Visual Studio).


o Substitua o conteúdo com o seguinte:

using UnityEngine;

public class PlayerController : MonoBehaviour

public Animator animator;

public float walkSpeed = 2f;

public float runSpeed = 5f;

private float speed = 0f;

void Update()

// Capturar entrada do jogador

float horizontal = [Link]("Horizontal");

float vertical = [Link]("Vertical");

// Calcular movimento

Vector3 direction = new Vector3(horizontal, 0, vertical).normalized;

if ([Link] >= 0.1f)

// Detectar se o jogador está correndo

bool isRunning = [Link]([Link]);

speed = isRunning ? runSpeed : walkSpeed;

// Mover o personagem

[Link](direction * speed * [Link], [Link]);

else
{

speed = 0f; // Parar movimento

// Atualizar o parâmetro "Speed" no Animator

[Link]("Speed", speed);

6. Conectar o Script ao Personagem

1. Adicionar o Script

o Arraste o script PlayerController para o personagem na cena (ou clique em Add


Component no Inspector e procure pelo script).

2. Conectar o Animator

o No campo Animator no script (no painel Inspector), arraste o componente


Animator do personagem.

7. Testar o Jogo

1. Iniciar o Jogo

o Clique em Play no topo do Unity.

o Use as teclas WASD ou setas do teclado para mover o personagem.

o Pressione Shift enquanto anda para correr.

2. Verificar as Animações

o O personagem deve alternar entre as animações Idle, Walk e Run dependendo da


velocidade.

8. Ajustes Finais

• Animações Travando?

o Ajuste o tempo das transições no Animator para deixá-las mais suaves.

• Velocidade ou Movimento Não Está Bom?

o Tente ajustar os valores de walkSpeed e runSpeed no script ou diretamente no


Inspector.
• A Câmera Não Segue o Personagem?

o Adicione uma câmera que siga o personagem. Você pode usar o Cinemachine
(baixe via Unity Package Manager).

EXPLICAÇAÕ DO SCRIPT
O Código Explicado

using UnityEngine;

• using UnityEngine;

o Importa o namespace do Unity, que contém todas as classes e métodos


necessários para trabalhar com jogos (ex.: MonoBehaviour, Transform, Animator,
etc.).

public class PlayerController : MonoBehaviour

• public class PlayerController : MonoBehaviour

o Define uma classe chamada PlayerController.

o MonoBehaviour: É a classe base que todos os scripts do Unity devem herdar para
interagir com objetos na cena (ex.: detectar entradas do jogador, atualizar
animações, etc.).

public Animator animator;

public float walkSpeed = 2f;

public float runSpeed = 5f;

private float speed = 0f;

• Animator animator;

o Permite controlar o componente Animator do Unity para trocar as animações do


personagem.

o Você conecta este campo ao Animator do personagem no Inspector.

• float walkSpeed e float runSpeed

o walkSpeed define a velocidade do personagem ao andar.

o runSpeed define a velocidade do personagem ao correr.

• float speed
o Armazena a velocidade atual do personagem, que muda dependendo se ele está
parado, andando ou correndo.

void Update()

• void Update()

o O método Update é chamado uma vez por quadro (frame) durante o jogo.

o É aqui que verificamos as entradas do jogador e atualizamos a lógica do


movimento e animação.

float horizontal = [Link]("Horizontal");

float vertical = [Link]("Vertical");

• [Link]

o Detecta as entradas do jogador pelo teclado:

▪ Horizontal: Corresponde às teclas A/D ou setas esquerda/direita.

▪ Vertical: Corresponde às teclas W/S ou setas cima/baixo.

• Esses valores vão de -1 (movimento na direção oposta) até 1 (movimento na direção


correta).

o Por exemplo:

▪ Pressionar W ou seta para cima faz vertical = 1.

▪ Pressionar S ou seta para baixo faz vertical = -1.

Vector3 direction = new Vector3(horizontal, 0, vertical).normalized;

• Vector3 direction

o Cria um vetor 3D com as direções capturadas.

o normalized: Garante que a direção tenha um comprimento de 1 (normaliza o


vetor), o que evita que o personagem mova mais rápido ao andar diagonalmente.

if ([Link] >= 0.1f)

• [Link]

o Calcula o comprimento do vetor (a força do movimento).

o Se o comprimento for maior ou igual a 0.1, significa que o jogador está tentando
se mover.
bool isRunning = [Link]([Link]);

speed = isRunning ? runSpeed : walkSpeed;

• [Link]([Link])

o Detecta se a tecla Shift Esquerdo está pressionada.

o isRunning será verdadeiro se o jogador estiver segurando Shift.

• speed = isRunning ? runSpeed : walkSpeed;

o Operador ternário (? :):

▪ Se isRunning for verdadeiro, speed = runSpeed.

▪ Caso contrário, speed = walkSpeed.

[Link](direction * speed * [Link], [Link]);

• [Link]

o Move o personagem na direção indicada.

• direction * speed

o Multiplica a direção pelo valor de velocidade (andar ou correr).

• [Link]

o Garante que o movimento seja independente da taxa de quadros (frames). Sem


isso, o movimento seria mais rápido em computadores mais potentes.

• [Link]

o Move o personagem no espaço global (não depende de sua rotação).

else

speed = 0f;

• Se o jogador não estiver pressionando as teclas de movimento, a velocidade é definida


como 0, para que ele fique parado.

[Link]("Speed", speed);

• [Link]
o Atualiza o valor do parâmetro Speed no Animator.

o Isso controla qual animação será exibida:

▪ Speed = 0: O personagem está parado (Idle).

▪ Speed > 0 e <= walkSpeed: O personagem está andando (Walk).

▪ Speed > walkSpeed: O personagem está correndo (Run).

Resumo do Fluxo

1. O script captura as entradas do jogador (teclas WASD, setas e Shift).

2. Calcula a direção do movimento e define a velocidade (andar ou correr).

3. Move o personagem na cena usando Translate.

4. Atualiza o parâmetro Speed no Animator para trocar entre as animações.

Você também pode gostar