Unity 3D Animações – Parte I
Unity3D Animações (modelos): Animações via Unity3D 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: Editor de animações 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 Criar Anima 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 animation function 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”].propriedade if (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