Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Animação de Personagens
Bruno C. de Paula Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos
2
Autodesk FBX; Nós já vimos que ...
2 25/03/2017 Modelos 3D possuem: meshes (malhas de polígonos), texturas, animações e bones (esqueleto); O Unity 3D trabalha com arquivos nos formatos: Autodesk FBX; DAE / Collada; 3DS (só meshes); OBJ (só meshes); DXF (só meshes).
3
Técnicas para produção de modelos animados
Software 3D: Maya, 3D Max, Blender, etc; Motion Capture (mocap); Fonte da imagem:
4
Representação dos arquivos de animação
Arquivo único; Definição dos quadros para cada animação; Arquivos em separado: Nome WrapMode indica o tratamento do tempo
5
Importação de modelos Assets > Import New Asset; OU
Assets > Import Package; Cuidados na importação: Configuração da Escala; Associação da textura com o material.
6
Escala deve ser configurada
7
Associação da textura com o material
8
Componente Animação Controle das animações disponíveis para o modelo;
Teste das animações.
9
Componente Animação Propriedades
Animation: animação padrão; Animations: lista de animações acessíveis via script; Play Automatically: toca automaticamente quando o jogo inicia; Animate Physics: animação interage com a física; Animate Only If Visible: só anima se estiver na câmera.
10
Blending de animações Essencial para transição suave entre uma animação e outra; Por exemplo, se o personagem está parado e vai começar a andar, a transição entre as duas animações deve ser natural; Mistura entre 2 ou mais animações; Deixar wrap mode em loop, para que quando chegue no fim continue do início. Video Fonte da imagem:
11
Comandos script para interagir com animações
Diversas opções! Executar a animação padrão sem blending: animation.play(); Tocar uma animação específica: animation.play("jump"); Transição para uma animação aos poucos (fade) fazendo blending: animation.CrossFade("walk");
12
Script Transição simples entre walk e idle
function Update () { if (Input.GetAxis("Vertical") > 0.2) animation.CrossFade ("walk"); else animation.CrossFade ("idle"); }
13
Layers de animação Necessário utilizar layers quando é necessária a priorização das animações; Por exemplo, walk (andar) e idle (parado) podem ter uma transição suave entre elas, mas a animação shoot (de tiro) deve ser prioritária, substituindo imediatamente;
14
Script Exemplo com layers (1/2)
function Start () { // Todas as animações com loop animation.wrapMode = WrapMode.Loop; // menos o tiro animation["shoot"].wrapMode = WrapMode.Once; // As animações por padrão estão no layer 0, //shoot tem maior prioridade animation["shoot"].layer = 1; // Pára as animações que estão rodando animation.Stop(); }
15
Script Exemplo com layers (2/2)
function Update () { if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1) animation.CrossFade("walk"); else animation.CrossFade("idle"); if (Input.GetButtonDown ("Fire1")) animation.CrossFade("shoot"); }
16
Dicas Para usar um modelo como personagem do jogador, associe:
Rigidbody: precisão física; Character Controller. O Character Controller possui o isGrounded para indicar se está no solo ou não; O script SmoothFollow é útil em jogos de 3a Pessoa para que a câmera siga o personagem; O estágio da animação pode ser controlado: animation["jump"].time = 0.5;
17
Leitura complementar Manual sobre animação de personagens:
Projeto com exemplos de animação de personagens: Ótimo artigo sobre implementação de animation blending:
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.