A armadilha da Interpolação de keyframes e a busca pelo Rig Efêmero – Ctrl+Alt+N

Nota do Layer Lemonade: Essa é uma tradução livre que funde dois artigos escritos por Raf Anzovin (do ‘Just to do something bad!’). Os artigos “Trapped by Keyframe Interpolation!” & “What makes a rig “ephemeral?”, se complementam e foram publicados cronologicamente, por isso decidimos coloca-los lado a lado como se fossem apenas um.


A armadilha da Interpolação de Keyframes

Bom… Logo, logo começaremos a discutir sobre Rig Efêmero, mas antes preciso explicar alguns conceitos básicos e princípios fundamentais estabelecidos em CG animation (aos quais estou rompendo), sem o qual a abordagem de Rig Efêmero não fará muito sentido. Comecemos com o grandiosíssimo, o dogma mais sagrado que quero exterminar:

Interpolação de keyframes. Sim, TODOS os tipos de interpolações de keyframes.

Acredito que a ideia de interpolação contínua e sempre presente em keyframes de qualquer tipo, é ruim desde o início, e é algo extremamente nocivo para animação de personagem. Não vemos muitos modeladores de personagens usando NURBs, e do mesmo modo não deveríamos usar curvas. Mas aqui estamos.

Para ser justo, esta não é uma ideia completamente nova. Artistas animam há muito tempo puramente com step keys, e seguem nesse processo o máximo possível antes de abrir o temido Curve Editor. É uma técnica que, basicamente, tenta anular (ou adiar), o uso de interpolação – que sabemos ser a base ostensiva da animação por computador -, até o último momento possível. Mas acredito que o horror da interpolação de keyframes ainda não é completamente compreendido.

Comecei a entender o quanto a interpolação nos ferrou quando brinquei com o Source Filmmaker, a ferramenta da Valve. Como ele é usado principalmente para editar dados capturados de uma partida de game, acaba lidando com a animação em termos de “samples” (amostras), em vez de keyframes. Para que animadores compreendam o comportamento desses ‘samples’, é bom pensar neles como keyframes que existem para todos os controles em cada frame.

O Source filmmaker trata a animação como samples, em vez de keyframes. Ele não é um software real para animação de personagens, mas sugere possibilidades que seriam impensáveis com keyframes interpolados.

Com um ‘sample’ em cada frame e sem interpolação, você pode fazer coisas que não poderiam ser consideradas no contexto do keyframing convencional e interpolado. Talvez você queira editar o movimento de uma mão, em um trecho da cena em que a mão está na cabeça do personagem; e você deseja editar a mão no contexto do movimento da cabeça. Você pode tentar, mas precisará gerenciar um monte de transições entre diferentes estados e controles.

Ou… Você poderia simplesmente parentar a mão à cabeça! Um sistema como o Source Filmmaker já sabe onde a mão está em cada frame de toda uma cena, porque não há interpolação que torne o movimento dependente do contexto. Assim, ele pode calcular perfeitamente uma nova posição para a mão, no espaço da cabeça, para cada frame. Você pode modificar a mão no espaço da cabeça da maneira que quiser, então basta ajustá-la para algum outro espaço sempre que conveniente. O movimento será idêntico em qualquer espaço em que você a coloque.

O fato de que não podermos fazer isso quando trabalhamos com interpolação, levou a um crescimento desenfreado na complexidade de Rigs. Ter uma série de maneiras diferentes de manipular um personagem é claramente desejável, mas a necessidade de fazer Rigs que acomodem diferentes métodos de manipulação e também interpolem adequadamente, fazem com que trabalhemos com um milhão de controladores e outras coisas mais. Então, o animador deve se preocupar não somente com o que é importante na animação – como os personagens se expressarão e coisas do gênero -, mas também em usar os infinitos controles sobrepostos de um Rig moderno para produzir movimento sem que que se torne uma bagunça irreparável. Mas em um sistema sem interpolação… Nada disso importa! Você pode reparentar controles como quiser, alterar seus pontos pivô, ou simplesmente trocar um Rig por outro quando quiser. Você é livre para manipular o personagem de qualquer maneira em qualquer momento, e não há conseqüências na interpolação, porque não há interpolação.

No entanto, o Source Filmmaker não é realmente uma ferramenta de animação de personagens. Não podemos simplesmente mudar para ele e obter esses benefícios. Em vez disso, precisamos descobrir como obter os benefícios da animação sem interpolação no Maya (ou em qualquer outra aplicação que queira).

O que torna um Rig Efêmero?

Agora que já sabemos os problemas da interpolação de keyframes (e os benefícios de se trabalhar sem ela), vamos adiante. A pergunta é: como obter esses benefícios no Maya?

Alguns desses benefícios são fáceis de se ter acesso. O Maya foi projetado para ter uma série de curvas de animação separadas para cada atributo, com sua própria colocação e interpolação de keyframes. Mas não precisamos pensar nelas dessa maneira – podemos fazer uma “pose” com um keyframe em cada atributo associado ao personagem, e escolher animar apenas com poses. Ferramentas de “Breakdown” como a Tween Machine de Justin Barrett, ou a minha própria Anzovin Breakdown Tool, podem ser usadas para gerar in-betweens facilmente. Na verdade, esse é um fluxo de trabalho bem estabelecido para blocking, mesmo quando a animação final será ajustada através do graph editor.

Alguns benefícios são mais difíceis de se obter. Trabalhar com poses efetivamente exige que possamos ver outras poses enquanto trabalhamos, o que é melhor feito através de algum tipo de ferramentas para onion skin. O Maya não foi projetado para fazer isso, mas há uma série de soluções possíveis.

E alguns benefícios parecem, à primeira vista, impossíveis. Em teoria, um sistema verdadeiramente baseado em poses deixaria você mudar completamente o comportamento do Rig entre as poses. Mas mesmo que pensemos em termos de animação pose-a-pose, o Maya não ajuda tanto, pois ele ainda tem um monte de curvas de animação dirigindo um conjunto de atributos que devem permanecer consistentes para permitir a interpolação – na verdade, mudar o Rig de forma arbitrária destruirá completamente sua animação. O Maya é construído para pensar em Rig como pequenas máquinas pré-definidas, e isso é o oposto do que queremos.

Então, precisamos de um conceito de “rig efêmero” que não use o node graph! No Maya, o Rig efêmero seria essencialmente invisível, e é desencadeado por algum callback ou manipulador, executando algum comportamento de Rig na cena, e depois desaparece, tão misteriosamente quanto pareceu!

Aqui estão os dois testes iniciais que expus para o sistema de Rig efêmero em que estou trabalhando atualmente:

Note-se que o rig de controle não tem keyframes, permitindo que você altere arbitrariamente o rig. Eu uso comando “anexar” aqui apenas para parentar o controle no que quiser. Isso inclui a possibilidade de reverter completamente a hierarquia, se desejar, ou o pai controla algo externo ao personagem. Nenhuma consideração especial é necessária para “comutação de espaço”, porque os controles não têm espaço canônico!

Usando este sistema, você decide se deseja, por exemplo, que a mão seja parentada com a cabeça. Depois de ajustar a pose, você vai para outra. Quando você faz isso, a mão ainda está parentada com a cabeça, mas os controles da mão e da cabeça se conformaram com a pose que você acabou de ir. Isso permite que configuremos o Rig da maneira que quisermos sem perturbar qualquer pose, e usemos essa configuração para manipular qualquer pose que escolhermos.

Há também várias maneiras de implementação. O que estou fazendo aqui usa API node callbacks que disparam quando o Rig de controle é manipulado. Quando o fazem, eles conseguem que a matriz de transformação mundial do control rig node seja manipulada e use-a para descobrir quais valores o Rig de geometria precisa receber para corresponder à sua pose. A hierarquia é irrelevante nesse processo, pois uso o world-space node desde o começo.


Fonte – Just to do something bad!

Comentários

comments