Quem já montou uma máquina de estados de animação numa engine conhece o problema. Entre o clipe de correr e o clipe de pular existe uma transição, e na maioria das ferramentas ela tem duração fixa, definida por quem configurou o blend. Funciona bem quando as poses são parecidas, mas quebra quando os dois movimentos estão longe um do outro, e o resultado é aquele personagem que desliza, flutua ou atravessa a própria perna por alguns quadros.
O grupo de Haemin Kim, Junghyun Nam, Seokhyeon Hong, Vanessa Tan e Junyong Noh resolveu isso em três etapas, descritas na página oficial do projeto. Primeiro, os movimentos de entrada são agrupados em clusters de poses semelhantes. Depois, o sistema monta um grafo em que cada nó é um desses grupos e cada aresta indica uma passagem possível, e procura o caminho entre a pose de saída e a de chegada. Por fim, um codificador do tipo Transformer gera as poses intermediárias ao longo desse caminho. Como o caminho pode ser curto ou longo, a transição também pode ter 48 quadros num caso e 64 no outro, conforme a distância entre as poses.
Os exemplos do paper vão de rastejar a arremessar no basquete e caminhar devagar, e o método funcionou também com movimentos de outros bancos de dados que não estavam no treino. Dá ainda para o usuário controlar a direção da transição, o que importa num jogo em que o personagem precisa virar para um alvo enquanto muda de ação.
A premissa vai na direção oposta à da maior parte da pesquisa recente de animação com IA, como a Kimodo da NVIDIA, que chegou ao Animcraft 6.0 e gera movimento a partir de texto ou de restrições. O trabalho do KAIST faz algo mais humilde e talvez mais útil no curto prazo, já que pega o mocap que o estúdio já tem e só preenche o buraco entre dois clipes. Não sei quanto disso roda em tempo real dentro de uma engine, e o paper não promete isso.
Animador de gameplay passa uma parte enorme do tempo ajustando exatamente essas costuras, e nenhuma delas aparece em trailer.