Projeto de jogos RAD: 
Animações – Parte 2 
Modelos Animados 
Augusto Bülow
Unity3D 
• Modelos Animados: 
• Produzidos em softwares de criação 3D 
• Animações: Mocap e outras técnicas 
• Formatos (p...
Unity3D 
• Formatos comuns, não necessitam 
software adicional 
• FBX, OBJ, 3DS... 
• Formatos específicos, necessitam 
pr...
Unity3D 
• Animações exportadas junto ao modelo 
• Animações: Arquivo único 
• Split: define-se quadros para cada animação...
Unity3D 
• Incluir modelo = Import New Asset 
• Arquivo principal modelo 
• Animações arquivos separados 
(nome@anima)
Unity3D 
• Modelo tem constituição variada 
• Número de meshes, partes, bones, etc 
• Depende do artista que o fez 
• Tama...
Unity3D
Unity3D 
• Importando textura do modelo 
• Importar BMAP 
• Material criado automaticamente * 
• Re-atribuir BMAP para o m...
Unity3D 
• Importar animações 
• Arquivos adicionais 
• Mesma Escala (fator)* 
• Animações disponíveis 
no modelo (cena) 
...
Unity3D 
• Animações disponíveis, como usar? 
• Criar: 
• Scripts ativando animações na hora certa 
• Criar regras para an...
Unity3D 
• Usando Modelo como player 
• Atribuir tipo de colisão 
• (Rigidbody ou CharacterController) 
• Criar códigos pa...
Unity3D 
• Código base – move (CharacterController) 
var forca_move : Vector3; 
var forca_rota : Vector3; 
var velocidade ...
Unity3D 
• Animações, definir regras básicas 
• Movimento = velocidade = anima anda 
//ANIMACAO 
if (Mathf.Abs(forca_move....
Unity3D 
• Animações por comandos específicos 
• Pulo = anima pular 
var no_chao : boolean; 
if (Input.GetKeyDown("space")...
Unity3D 
• Necessário criar / aprimorar regras 
• Se pulando não entra na regra de animação por 
velocidade 
• Como fazer?...
Unity3D 
if (Input.GetKeyDown("space") && (no_chao)) { 
forca_move.y = forca_pulo; 
animation.CrossFade("jump"); 
pulando ...
Unity3D 
• Sincronizar momento da animação com ação 
• Atirar no momento certo da animação 
• Pular no momento certo da an...
Unity3D 
• Segurando uma animação (pulo = no ar) 
• Possível usar animações separadas para os estágios: 
• pular, no ar, v...
Próximos SlideShares
Carregando em…5
×

Aula anima-modelos

327 visualizações

Publicada em

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

Publicada em: Educação
  • Seja o primeiro a comentar

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

×