O que é Animation Retargeting?

por Lina Halper

Você já imitou o comportamento de outra pessoa? Tentou agir como outra pessoa?

É muito fácil para nós imitar outra pessoa no mundo real. Mas e no mundo 3D? Se você vir um personagem andando, o quanto será difícil usar o mesmo movimento para outros personagens? Parece que deveria ser fácil como colar um texto, certo?

O redirecionamento de animações é um problema no qual você quer reproduzir a mesma animação em personagens diferentes. Isso parece razoável, especialmente se você considerar humanoides muito parecidos. Você pode imaginar um animador aplicando facilmente o mesmo movimento em personagens diferentes.

Esse é um dos meus tópicos favoritos. Qualquer um que tenha trabalhado comigo na última década sabe o quanto eu amo falar sobre isso, e ainda é um desafio.

Por quê? É complicado explicar. Todas as articulações, hierarquia e skinning, tudo é um tópico muito difícil, e as pessoas se perdem rapidamente na discussão. Com humanos digitais, geração de dados sintéticos e metaverso, temos um grande público de pessoas que não têm experiência no mundo 3D.

Agora, a criação de avatares 3D é um tema para todos, não apenas para o público tradicional de videogames e cinema. Porém, explicar quais tipos de problemas existem com a transferência de movimento é um longo processo rigoroso. Além disso, física! Como estamos tão familiarizados com isso em nossas vidas diárias, sabemos exatamente como deve funcionar em nosso mundo, mas não em um mundo 3D virtual. Temos que implementar todas essas informações de volta, o que não é um trabalho fácil. Como podemos facilitar isso?

Quais são os Desafios?

No centro da animação, controlamos os movimentos com articulações (ignorando os blendshapes). Articulações são pontos no espaço para descrever transformações como essa.

As articulações compõem a hierarquia em um espaço 3D com uma relação pai-filho. Essa relação é mostrada com linhas, o que forma uma imagem mais semelhante com o que se espera de um personagem.

Com isso, agora podemos mover a junção como neste gif. Mas agora, como movemos a malha com ela? O gif acima provavelmente não é o que você tem em mente quando move a articulação.

A ligação de articulações e vértices é chamada de skinning. Skinning significa deformar vértices com as articulações, e pode causar muitos problemas dependendo de como você deseja que o personagem deforme, então há muitas articulações adicionais incluídas para corrigir esses problemas.

No mundo 3D, os vértices não sabem sobre nossas expectativas até implementarmos todas elas. Eles não sabem que não devem se cruzar até que o façamos. Então, reviravoltas estranhas, perda de volumes ou ganho de volumes se tornam problemas que não vemos em nossas vidas diárias.

Linear Blend Skinning causando artefato de invólucro de doces ao torcer — src
Mostrando Linear Blend Skinning (perda de volumes) em comparação com Skinning Dual Quaternion (ganho de volumes) — src
Personagens com diferentes proporções da Reallusion

Com tudo isso, quando temos personagens muito diferentes com diferentes tipos de articulações, a transferência de movimento se torna muito mais complicada.

Porém, quando olhamos para fora, podemos facilmente imaginar em nossa cabeça como a animação deve ser em personagens diferentes.

 

Pose em T dos diferentes tipos de personagens: Reallusion
Movimentos redirecionados dos diferentes tipos de personagens: Reallusion

Troca de Expressão Simples para um Problema Complexo

Como podemos reduzir essa lacuna? De que outra forma podemos descrever um esqueleto?

src — NVIDIA unicon

Quando treinamos a AI usando movimentos, queremos as informações mínimas, então queremos um esqueleto o mais simples possível.

Isso é ótimo até que seja necessário redirecionar esse movimento para personagens sofisticados. É necessário um redirecionador de Cinemática Inversa e um redirecionador de Cinemática Direta, já que a informação de origem não é suficientemente rica.

Muitas AIs baseadas em imagens que geram movimento, como a Estimativa de Pose, mostram diferentes representações de humanos. Geralmente, elas são feitas de linhas em 2D. Isso facilita um pouco para as pessoas entenderem, já que também é 2D e conhecemos membros do corpo.

Estimativa de Pose — src

Essa é uma maneira melhor de descrever o personagem? Mas como descreveremos a complexidade da torção e do skinning?

Proto Res da Unity— src

Ou talvez possamos usar descrições menores, como olhar para os locais da mão e dos pés, e solucioná-las usando uma combinação de redirecionamento tradicional e IKs para reconstruir o movimento. Isso soluciona o problema de redirecionamento no núcleo, já que você está destacando a hierarquia como um problema separado. Mas isso poderia ser usado para criar a maioria dos movimentos que gostaríamos? Por exemplo, podemos expressar todos os movimentos de caminhada como este usando essa abordagem?

A distância entre a forma como vemos os humanos para como isso é implementado no núcleo é enorme.

Queremos que a compreensão dos usuários seja mais simples e oculte a complexidade por baixo. A superfície deve ser fácil para os usuários compreenderem, enquanto a parte inferior deve permitir que a complexidade implemente todos os detalhes das expressões que gostaríamos de ver.

Como podemos representar os personagens de uma maneira fácil de entender, permitindo que a implementação expresse a complicação nela?

Redirecionamento de Animação One Click

O NVIDIA Omniverse tem muitos usuários que estão começando a trabalhar em mundos 3D, e nosso objetivo é criar ferramentas para facilitar esse processo para eles. Nós o chamamos de “One Click”, queremos que realizar algo seja tão fácil quanto apenas um clique. Gostaríamos de transferir as animações para o alvo, mantendo o movimento e as intenções o máximo possível com o One Click.

Para criarmos o One Click, temos que ver os problemas tradicionais de diferentes ângulos. Se você quiser ver como enfrentamos esse problema no Omniverse, assista a sessão do GTC. Onde abordamos os movimentos dos personagens na palestra e como alcançamos a animação “Redirecionamento de animação One Click”.

Temos um lançamento muito empolgante para animação no Omniverse. Ele não é apenas para melhorar a animação do tempo de execução, mas também para gerar movimentos usando AI, bem como para redirecionar esses movimentos facilmente.

Para os participantes do GDC, juntem-se a mim para ver como os desenvolvedores de games podem usar isso para aprimorar os pipelines ou workflows atuais e dar uma espiada nas próximas ferramentas de animação do Omniverse.

Estou muito animada para finalmente falar sobre o que estou trabalhando. Vou me aprofundar mais em como esse sistema “One Click” funciona. Por isso, participe da palestra e saiba mais sobre esse tópico incrível e divertido.