Upload
marcos-batista
View
388
Download
0
Embed Size (px)
Citation preview
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
• 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• 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)