
Os desenvolvedores da Universidade de Edimburgo introduziram um novo algoritmo para criar movimentos de personagens realistas nos jogos. Treinado nas trajetórias de captura de movimento, a rede neural está tentando copiar os movimentos de pessoas reais, mas ao mesmo tempo os adapta aos personagens dos videogames.
Uma rede neural é capaz de gerenciar várias ações no jogo ao mesmo tempo. Abrindo portas, movendo itens, usando móveis. Ao mesmo tempo, ela muda dinamicamente a posição das pernas e braços para que o personagem possa segurar realisticamente gavetas de tamanhos diferentes, sentar em cadeiras de tamanhos diferentes e também rastejar em passagens de diferentes alturas.
Geralmente, sob o controle de personagens em jogos usando IA, significa controle completo dos esforços nos membros, com base em algum tipo de mecanismo físico que imita as leis da física. Esse é o domínio do aprendizado de máquina chamado Aprendizado por Reforço. Infelizmente, dessa maneira, movimentos realistas ainda
não podem ser alcançados.
Por outro lado, você pode tentar treinar a rede neural para simular os movimentos de pessoas reais capturadas usando o Motion Capture. Dessa forma, há cerca de um ano, houve um progresso significativo na animação realista de personagens 3D.


Houve vários trabalhos científicos consecutivos sobre esse tópico, mas a descrição mais completa pode ser encontrada no trabalho de
Rumo a um dublê virtual na rede neural DeepMimic (
https://www.youtube.com/watch?v=vppFvq2quQ0 ).
A idéia principal é simular movimentos humanos durante o treinamento para iniciar o episódio não desde o início da faixa do Motion Capture, como fizeram antes, mas de pontos aleatórios ao longo de todo o caminho. Os algoritmos de Aprendizado por Reforço existentes exploram a vizinhança do ponto de partida, portanto, na maioria das vezes, eles não atingiram o fim da trajetória. Mas se cada episódio começa ao longo de toda a trilha, aumenta a chance de a rede neural aprender a repetir toda a trajetória.

Mais tarde, essa ideia foi adotada em áreas completamente diferentes. Por exemplo, ensinando as pessoas a jogar uma rede neural nos jogos, e também iniciando episódios não desde o início, mas a partir de pontos aleatórios (especificamente neste caso, do final e passando gradualmente para o início), a OpenAI ensinou a rede neural
a jogar a Vingança de Montezuma . O que não resultou nos algoritmos usuais de Aprendizado por Reforço antes.
Sem esse truque, as tentativas de treinar a rede neural para copiar movimentos complexos terminaram em falha porque a rede neural encontrou um caminho mais curto. Apesar de não dar uma recompensa tão grande quanto para toda a trajetória, ainda assim havia algum tipo de recompensa. Por exemplo, em vez de dar uma cambalhota nas costas, a rede neural simplesmente saltou um pouco e caiu de costas.

Mas com essa abordagem, a rede neural sem problemas estuda a trajetória de quase qualquer complexidade.

O principal problema do DeepMimic, que impedia a aplicação direta em videogames, é que não era possível treinar a rede neural para executar várias animações diferentes ao mesmo tempo. Era necessário treinar uma rede neural separada para cada animação. Os autores tentaram combiná-los de maneiras diferentes, mas mais de 3-4 animações não puderam ser combinadas.
No novo trabalho, esse problema também não está completamente resolvido, mas muito progresso foi feito no sentido de uma transição suave entre diferentes animações.
Deve-se notar que esse problema afeta todas as redes neurais de animação semelhantes atualmente existentes. Por exemplo,
essa rede neural , também treinada em imitação do Motion Capture, é capaz de controlar honestamente um grande número de músculos (326!) De caráter humanóide em um motor físico. Adaptação a pesos diferentes de pesos levantados e várias lesões nas articulações. Mas, ao mesmo tempo, para cada animação, é necessária uma rede neural treinada separada.
Deve-se entender que o objetivo dessas redes neurais não é apenas repetir a animação humana. E repita-o no mecanismo de física. Ao mesmo tempo, os algoritmos de Aprendizado por Reforço tornam esse treinamento confiável e resistente a interferências. Então, essa rede neural pode ser transferida para um robô físico que difere em geometria ou em massa de uma pessoa, mas ainda continuará a repetir realisticamente os movimentos das pessoas (começando do zero, como já mencionado, esse efeito ainda não foi alcançado). Ou, como no trabalho acima, você pode explorar virtualmente como uma pessoa com lesões nas pernas se moverá para desenvolver próteses mais confortáveis.
Mesmo no primeiro DeepMimic, houve o início de tal adaptação. Era possível mover a bola vermelha, e o personagem jogava a bola para ele a cada vez. Visando e medindo a força de arremesso para atingir exatamente o alvo. Embora ele tenha sido treinado na única pista do Motion Capture, o que não oferece essa oportunidade.

Portanto, isso pode ser considerado um treinamento completo de IA, e a imitação de movimentos humanos simplesmente permite acelerar o aprendizado e tornar os movimentos visualmente mais atraentes, familiares para nós (embora, do ponto de vista da rede neural, eles possam não ser os melhores ao mesmo tempo).
Novos trabalhos foram ainda mais longe nessa direção.
Não existe um mecanismo físico, é um sistema puramente de animação para videogames. Mas a ênfase está na troca realista entre várias animações. E para interagir com itens do jogo: mover itens, usar móveis, abrir portas.

A arquitetura da rede neural consiste em duas partes. Um (rede Gating), com base no estado atual do estado e na meta atual, escolhe qual animação usar e o outro (rede de previsão de movimento) prevê os próximos quadros da animação.

Tudo isso foi treinado em um conjunto de faixas do Motion Capture usando a simulação de Aprendizado por Reforço.
Mas a principal conquista deste trabalho é diferente. Na maneira como os desenvolvedores ensinaram a rede neural a trabalhar com objetos de tamanhos diferentes e se espremer em passagens de diferentes larguras ou alturas. Para que as posições dos braços e pernas pareçam realistas e correspondam ao tamanho do objeto com o qual o personagem interage no jogo.
O segredo era simples: aumento!
Primeiro, a partir da pista do Motion Capture, eles determinaram os pontos de contato das mãos com os braços da cadeira. Em seguida, eles substituíram o modelo da cadeira por um mais amplo e recalcularam a trajetória de captura de movimento para que as mãos tocassem nos apoios de braços nos mesmos pontos, mas em uma cadeira mais larga. E eles forçaram a rede neural a simular essa nova trajetória gerada pelo Motion Capture. Da mesma forma com as dimensões das caixas, a altura dos corredores, etc.

Repetindo isso muitas vezes com vários modelos 3d do ambiente com o qual o jogador irá interagir, a rede neural aprendeu a lidar realisticamente com objetos de tamanhos diferentes.

Para interagir com o ambiente no próprio jogo, foi necessário voxelizar os objetos ao redor para que funcionassem como sensores na entrada da rede neural.

O resultado foi uma animação muito boa para os personagens do jogo. Com transições suaves entre ações e com a capacidade de interagir realisticamente com objetos de vários tamanhos.
Eu recomendo fortemente assistir o vídeo, se alguém ainda não o fez. Ele descreve detalhadamente como eles conseguiram isso.
Essa abordagem pode ser usada para animação, incluindo animais de quatro patas, obtendo a qualidade e o realismo insuperáveis dos movimentos de animais e monstros:
Referências
VídeoPágina do projeto com origemArquivo PDF com uma descrição detalhada do trabalho:
SIGGRAPH_Asia_2019 / Paper.pdf