Como animar Mapmodels do Sauerbraten usando o Blender

Não é mistério animar Mapmodels do Sauerbraten e colocá-los ingame, veja como é fácil:
Primeiro você precisa de um programa 3D, provavelmente você já conhece o Blender (nessa postagem usamos a versão Blender 2.79).
O objetivo dessa postagem não é te ensinar a usar o Blender, não é possível explicar todos os detalhes aqui, por isso fique de olho nos links...
Vamos supor que você já possui um mapmodel pronto e que só deseja animá-lo. O Sauerbraten suporta vários arquivos 3D, entre eles estão: OBJ, MD2, MD3, MD5, IQM. E desses formatos apenas OBJ não suporta animações de personagens (com bones). MD5 pode ser considerado o mais complexo (na questão de importar/exportar), MD3 é o mais fácil de exportar com o Blender (tirando o OBJ, claro), e ele suporta as animações de personagens.
Vamos por etapas:

  • Rigar (adicionar bones ao mapmodel)
  • Animar os bones
  • Exportar para .md3
  • E por fim, configurar o MD3.cfg no Sauerbraten

Nessa postagem vamos modificar um mapmodel que já existe no Sauerbraten, mas o processo com o seu próprio mapmodel seria o mesmo.
Como iremos modificar um mapmodel do Sauerbraten, e não podemos importar MD2 ou MD3 com o Blender (não encontrei nenhum addon que funcionasse), nós vamos usar uma ferramenta online para converter um arquivo .MD2 para .OBJ (assim podemos importar para o blender de boas), eu recomendo o Online 3D Converter, é bem simples usá-lo.
Nosso arquivo de testes será o inseto que fica na pasta 'sauerbraten/packages/models/dcp/insect'

Pegue o arquivo "tris.md2" dessa pasta e envie ele para o 3D Converter, clicando em "Start Uploading" para iniciar. Com o upload pronto, clique em Next, selecione o formato (OBJ) e clique novamente em Next.


Feito isso, pressione o botão START e clique no primeiro arquivo (obj) quando ele terminar de ser convertido (o segundo arquivo é para as texturas, não é necessário baixá-lo). Pronto, agora você já pode importá-lo para o Blender (menu file > import > wavefront obj) e deletar o cubo padrão, vamos ao rigging.
Para adicionar um bone, abra o menu de Add apertando SHIFT A, selecione Armature e então Single Bone.

Você verá que um bone minúsculo apareceu na cena, aperte S e mude a escala, rotacione e etc (veja mais aqui e aqui também). Sugiro ativar o modo X-ray para ver o bone através do modelo.
Com todos os bones prontos, vamos aplicá-los ao modelo, você pode fazer isso ao selecionar o modelo, seguranr shift e selecionar a armadura, e então pressionar CTRL P e escolher "With automatic weights" (veja mais aqui).


Para testar se tudo está funcionando, selecione a armadura e mude o modo de visualização para "Pose Mode" (o atalho é CTRL TAB) e tente mover um bone. Veja aqui, como inserir keyframes no Blender, ou assista um tutorial.


Após fazer o pobre coitado acima criar vida, vamos agora exportar para MD3. Você vai precisar instalar um addon que possibilite o Blender exportar em md3, o addon que utilizamos foi o Blender 2.7 MD3 Export Script
Veja aqui como instalar um addon no Blender, caso fique assustado com o estilo desse site, tente outro.
Instalou? Agora basta ir em 'file > export > md3 (+shaders)' Pronto, você já tem o seu modelo em MD3, agora vamos configurar no Sauerbraten.
Para o Sauer entender que o modelo é MD3, você precisa de um arquivo de configuração "md3.cfg" na mesma pasta do tris.md3. CFG é só um formato de texto normal, você pode criá-lo com qualquer editor. No caso do inseto, você deve remover os arquivos anteriores do MD2, md2.cfg e tris.md2, para substitui-los com os arquivos MD3. No md3.cfg teremos as linhas:

  • md3load tris.md3 //diz para o sauer carregar o modelo tris.md3
  • md3skin tris "skin.jpg" "masks.jpg" //diz para o sauer adicionar a textura skin.jpg com a masks.jpg
  • md3anim mapmodel 0 115 24 //adiciona a animação do tipo "mapmodel"

Nota sobre o comando md3anim:
md3anim 'tipo' 'frame de inicio' 'frame de fim' 'frames por segundo'
O "tipo" nesse caso é Mapmodel, isso significa que a animação ficará rodando infinitamente. Outros tipos de animação são "jump" "attack" "idle" e etc (não deixe de verificar essa lista aqui), que na maioria dos casos só são úteis para personagens.
Veja que a animação que fizemos resultou 115 frames, começando no 0, por isso usamos md3anim mapmodel 0 115 24


É importante que todos os arquivos (md3.cfg/tris.md3/skin.jpg/masks.jpg) façam parte da mesma pasta, nesse caso: 'sauerbraten/packages/models/dcp/insect'. E pronto, você criou o seu mod, qualquer dúvida deixe ai na área de comentários.

Comentários