Aula anima-modelos

301 visualizações

Publicada em

Tutorial para adição de animação de modelos no unity3D

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
301
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula anima-modelos

  1. 1. Projeto de jogos RAD: Animações – Parte 2 Modelos Animados Augusto Bülow
  2. 2. Unity3D • Modelos Animados: • Produzidos em softwares de criação 3D • Animações: Mocap e outras técnicas • Formatos (programas) • Maya, Max, Blender, Cinema4D, Lightwave... • Formatos .FBX, .OBJ, .3DS, .DXF • FBX – bom formato (exportação / importação)
  3. 3. Unity3D • Formatos comuns, não necessitam software adicional • FBX, OBJ, 3DS... • Formatos específicos, necessitam programas adicionais no sistema • MAX, MAYA...
  4. 4. Unity3D • Animações exportadas junto ao modelo • Animações: Arquivo único • Split: define-se quadros para cada animação • Saber o plano de animações: definir quadros • Animações: Arquivos separados • EX: nomemodelo@nomeanima.FBX • Importa-se todos arquivos • Junção – uso - automático
  5. 5. Unity3D • Incluir modelo = Import New Asset • Arquivo principal modelo • Animações arquivos separados (nome@anima)
  6. 6. Unity3D • Modelo tem constituição variada • Número de meshes, partes, bones, etc • Depende do artista que o fez • Tamanho controlável na importação • Propriedades do modelo • FBX Importer • Scale Factor
  7. 7. Unity3D
  8. 8. Unity3D • Importando textura do modelo • Importar BMAP • Material criado automaticamente * • Re-atribuir BMAP para o material
  9. 9. Unity3D • Importar animações • Arquivos adicionais • Mesma Escala (fator)* • Animações disponíveis no modelo (cena) • Atribuição animas = automático (mesmo nome@anima) • Anima selecionável: testar
  10. 10. Unity3D • Animações disponíveis, como usar? • Criar: • Scripts ativando animações na hora certa • Criar regras para animações básicas • Com velocidade = andando • Sem velocidade = parado (idle) • Comandos – iniciam animações • Botão pulo = pular • Eventos • Atingido = anima / morre • Etc
  11. 11. Unity3D • Usando Modelo como player • Atribuir tipo de colisão • (Rigidbody ou CharacterController) • Criar códigos para movimento (script) • EX: Player com CharacterController • Inserir CharacterController no modelo • Criar script básico de controle do movimento
  12. 12. Unity3D • Código base – move (CharacterController) var forca_move : Vector3; var forca_rota : Vector3; var velocidade = 20.0; var gravidade = 0.5; function Update () { forca_move.x = Input.GetAxis("Horizontal") * Time.deltaTime * velocidade; forca_move.y -= gravidade * Time.deltaTime; forca_move.z = Input.GetAxis("Vertical") * Time.deltaTime * velocidade; forca_move = transform.TransformDirection(forca_move); pointer = GetComponent(CharacterController); pointer.Move(forca_move); forca_rota.y = Input.GetAxis("Mouse X") * 2; transform.Rotate(forca_rota); }
  13. 13. Unity3D • Animações, definir regras básicas • Movimento = velocidade = anima anda //ANIMACAO if (Mathf.Abs(forca_move.z) > 0) { //animation.CrossFade("walk"); animation.Play("walk"); } else { //animation.CrossFade("idle"); animation.Play("idle"); }
  14. 14. Unity3D • Animações por comandos específicos • Pulo = anima pular var no_chao : boolean; if (Input.GetKeyDown("space") && (no_chao)) { forca_move.y = forca_pulo; animation.CrossFade("jump"); } pointer.Move(forca_move); no_chao = pointer.isGrounded; // APÓS O MOVE
  15. 15. Unity3D • Necessário criar / aprimorar regras • Se pulando não entra na regra de animação por velocidade • Como fazer? Variáveis. EX: var pulando • Só acessa regra velocidade senão pulando • Algumas animações tem que ser protegidas, priorizadas • Alguns casos, travando inclusive controles adicionais do player
  16. 16. Unity3D if (Input.GetKeyDown("space") && (no_chao)) { forca_move.y = forca_pulo; animation.CrossFade("jump"); pulando = 1; } ... if (no_chao && pulando == 1) { pulando = 0; }
  17. 17. Unity3D • Sincronizar momento da animação com ação • Atirar no momento certo da animação • Pular no momento certo da animação • Vários modos de fazê-lo • Evento vinculado na animação* • Checar tempo atual da animação e disparar código if ((animation["jump"].time >= 0.2 ) && (pulando == 1)) { forca_move.y = forca_pulo; pulando = 2; }
  18. 18. Unity3D • Segurando uma animação (pulo = no ar) • Possível usar animações separadas para os estágios: • pular, no ar, volta chão • Possível codificar para manter animação em um ponto: if (pulando == 2 && animation["jump"].time >= 0.6 ) animation["jump"].time = 0.6; if (no_chao && pulando >= 2) { if (animation["jump"].time < 0.9) { pulando = 3; } else { pulando = 0; } }

×