Quais são as técnicas de animação de personagens comuns usadas em jogos de hack & slash baseados em blocos?

10

Eu me pergunto que tipo de técnicas de animação são usadas para a animação de criaturas e personagens em jogos modernos baseados em blocos do tipo hack & slash ? O quadro-chave para ações diferentes pode ser uma opção. O enquadramento esquelético pode ser outro. Mas e a física? Ou eles usam um sistema totalmente híbrido de cinemática inversa suportado por um esqueleto, física e misturado com quadros-chave interpolados para animações mais realistas? Se sim, como e por que razões? Posso pensar em muitas soluções diferentes para os problemas abaixo, mas me pergunto o que é usado e mais adequado para problemas como:

  1. Caminhar ou se mover em um terreno irregular
  2. Interação de combate, física de combate e colisões
  3. Anexando itens rígidos ao personagem e suas interações no mundo da física
  4. Dinâmica do corpo mole, como cabelos, vegetação, roupas e tecidos, de acordo com as animações e as interações.
Gorky
fonte

Respostas:

6

Embora possa parecer 3D, jogos de 'hack and slash' (como Diablo) são realmente jogos em 2D. Geralmente, os componentes (os sprites) são criados em uma ferramenta de modelagem 3D, mas apenas as renderizações 2D dos sprites são usadas no jogo real. Esse tipo de jogo tende a ser muito mais sobre as interações de dados (o mapa, o jogador, os tesouros e os monstros) do que sobre a representação visual.

Os jogos 2D tendem a não usar animação dinâmica (esqueletos e deformações.) Em vez disso, as animações geralmente são criadas em um pacote 3D e salvas como uma biblioteca de imagens. O sprite então possui uma tabela de pesquisa de imagens (armazenada como uma única planilha maciça de sprite ou como uma série de imagens individuais.) Durante a fase de animação do jogo, o sprite determina qual imagem exibir com base no estado atual do sprite. Por exemplo, tenho uma animação de uma vaca (http://www.aharrisbooks.net/pythonGame/ch08/cow.py) que caminha em oito direções. Cada direção é uma animação de dez quadros.

(mais exemplos em Python em http://wwww.aharrisbooks.net/pythonGame )

O programa de amostra verifica a direção e o quadro e exibe a imagem apropriada. Meu exemplo está escrito em Python, mas a linguagem não é importante; a ideia permanece a mesma.

Os aspectos visuais de estar em diferentes estados (combate, feridos, etc.) seriam tratados simplesmente adicionando mais animações à pilha.

No entanto, os aspectos mais difíceis dessas coisas são os aspectos de dados. Por exemplo, como é gerenciado o terreno. Eu provavelmente usaria uma variação do algoritmo A * para escolher um caminho entre onde o sprite está e para onde ele quer ir, e adicionaria algum tipo de peso a cada nó para representar a dificuldade desse terreno. (as estradas teriam um peso muito leve, as montanhas e os oceanos seriam muito 'pesados')

Eu provavelmente não me preocuparia com a dinâmica do corpo mole em um mecanismo 2D. Isso pode ser adicionado mais tarde, mas não é essencial para o funcionamento do jogo.

Você certamente poderia criar um 'hack and slash' em 3D. No entanto, os desafios adicionais da modelagem em 3D tornam mais difícil se concentrar na mecânica de jogo que costuma atrair jogadores para esse tipo de jogo.

Boa sorte para você....

Dois pi
fonte
Primeiro, você está certo sobre a dinâmica e os detalhes do jogo que fazem a diferença nos jogos de hack e slash. E para o exemplo de Diablo isso é verdade. Eu sei que o conceito de sprite é o mesmo para muitos jogos de h & s, frp e mmorpg baseados em ladrilhos, como ultima online. Mas o que eu queria saber são os movimentos no estilo warcraft. Se você aumentar o zoom o suficiente para ver os pés da criatura, verá que pode haver ladrilhos inclinados e enquanto um pé da criatura está em um terreno mais alto, outro pode estar em um terreno mais baixo e sem colisões. Pode ser hack & slash não é a palavra correta para minha pergunta.
Gorky
Ouvi dizer que existe uma ferramenta / método para extrair as informações de malha / objeto dos arquivos do jogo WoW. Gostaria de saber se isso pode lançar alguma luz?
Kara Marfia