Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

17
Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Transcript of Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Page 1: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Animação de Personagens

1º Semestre 2010 > PUCPR > Pós Jogos

Bruno C. de PaulaBruno C. de Paula

Page 2: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Nós já vimos que ...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).

211/04/23

Page 3: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Técnicas para produção de modelos animados Software 3D: Maya, 3D Max, Blender, etc; Motion Capture (mocap);

Page 4: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Representação dos arquivos de animação Arquivo único;

Definição dos quadros para cada animação;

Arquivos em separado:Nome com @;

WrapMode indica o tratamento do tempo

Page 5: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Importação de modelosAssets > Import New Asset;OUAssets > Import Package;Cuidados na importação:

Configuração da Escala;Associação da textura com o

material.

Page 6: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Escala deve ser configurada

Page 7: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Associação da textura com o material

Page 8: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Componente Animação Controle das animações disponíveis para o

modelo; Teste das animações.

Page 9: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Componente AnimaçãoPropriedadesAnimation: 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.

Page 10: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

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

Page 11: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Comandos script para interagir com animaçõesDiversas 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");

Page 12: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

ScriptTransição simples entre walk e idle

function Update (){ if (Input.GetAxis("Vertical") > 0.2) animation.CrossFade ("walk"); else animation.CrossFade ("idle");}

Page 13: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Layers de animaçãoNecessá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;

Page 14: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

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();}

Page 15: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

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");}

Page 16: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

DicasPara 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;

Page 17: Animação de Personagens 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula.

Leitura complementarManual sobre animação de personagens:

http://unity3d.com/support/documentation/Manual/Character-Animation.html

Projeto com exemplos de animação de personagens:http://unity3d.com/support/resources/

example-projects/character-animationÓtimo artigo sobre implementação de

animation blending:http://www.gamasutra.com/features/

20030704/edsall_01.shtml