Aula anima1

20
Projeto de jogos RAD: Animações – Parte I Augusto Bülow

Transcript of Aula anima1

Projeto de jogos RAD:Animações – Parte I

Augusto Bülow

Unity3D

• Animações (modelos):• Produzidas em softwares de criação 3D • Motion Capture (Mocap)• Outras técnicas de animação (vídeo)• Exportadas junto ao modelo

• Animações via Unity3D• Modificar / criar animações gerais• Possível animar componentes / bones

Unity3D

• Animações Unity: • Window-> Animation (Ctrl+6)

• Editor de animações

• Linha do tempo + Keyframes• Key Frame = posição chave (quadro chave)• Quadros intermediários = criados (auto)

Unity3D

Unity3D

• Criar Objeto Cubo para animação• Re-nomear objeto = Animado

• Iniciar Animator (Window->Animator)

• Botão Gravar (Rec) = nova animação• Arquivo externo: anima-cubo.ANIM• Ou Click sobre o nome anima (Create Clip)

Unity3D

• Cria-se Keyframes:• Posições desejadas (chaves) em relação ao

tempo• Transforma-se posições e/ou rotações do(s)

objeto(s)• Edição pelo animator e Inspector (entrada

direta de parâmetros)

Unity3D

• Criar animação -> o que mudar?• Planejamento prévio da animação

• Click sobre a propriedade e Add Curves

Unity3D

• Keyframes = planejar a animação antes de desenvolvê-la• Identificar partes da animação• Relacionar Keys com tempo• Criar keys (modificações) = animação

Unity3D• Animar cubo

• 0’30 = rotar 180o em Y

• 1’00 = rotar 90o em X

• 1’30 = rotar 180o em Z

• Criar Anima• Click no tempo

• Add Key

• Inserir modificação• Novo parâmetro

Unity3D• Inserir keyframes para manter posição até

certo ponto

Unity3D• Modificar Curvas

• tipo transformação

• como chegam ao keyframe

• suavidade = smooth

• modificação livre

• curvas pré-prontas e editáveis

• Broken: lados da curva independentes

Unity3D• Completar a animação proposta

• Desligar a gravação (Play = teste)

• Ligar o game = animação roda uma vez default

• Animação pode ser Física• RigidBody = Checando colisões

Unity3D• Wrap mode: como animações são cortadas

(continuadas)

• Animator (abaixo)

• Once (roda única vez)

• Loop (volta ao começo)

• Ping Pong (vai e volta)

• Clamp forever • Fica no último quadro

Unity3D• Criar nova animação para o cubo

• Animator : Create Clip : anima-cubo2.anim

• Animar giro completo• 1’00 = rotação X 180

• 2’00 = rotação X 360

Unity3D• Rodando animações por script

• Classe animationfunction Update () {

if (Input.GetKeyDown("1")) {

animation.Play ("anima-cubo");

}

if (Input.GetKeyDown("2")) {

animation.Play ("anima-cubo2");

}

}

Unity3D• Stop:

if (Input.GetKeyDown("0")) {

animation.Stop();

}

• IsPlaying:

function OnMouseEnter() {

if (!animation.IsPlaying(“anima-cubo2“)){

animation.Play("anima-cubo2");

}

}

Unity3D• AnimationState : Classe

• Controles sobre a animação

• Controles de Blend (mistura) animações (peso)

• Uso: animation[“nomedaanima”].propriedadeif (Input.GetKeyDown("4")) {

animation["anima-cubo2"].speed = 0.3;

animation.Play ("anima-cubo2");

}

if (Input.GetKeyDown("5")) {

animation["anima-cubo2"].time= 0;

}

Unity3D• AnimationState : Classe

• Mudando o wrap mode da anima por código:animation["Walk"].wrapMode = WrapMode.Loop;

Unity3D• Incluindo eventos na animação

• Keyframe = roda função pré-programada

• Criar a função desejada, exemplo:

var velo_anima = 0.5;

function aumenta_velo() {

velo_anima += 0.2;

animation["anima-cubo2"].speed = velo_anima;

}

• Aumenta velocidade da anima

• Atribuir essa função a keyframe (animator)

Unity3D• Incluindo eventos na animação