Animações Complexas em Tempo Real Utilizando Movimentos Capturados

 

Fernando Wagner Serpa Vieira da Silva1

Paulo Roma Cavalcanti2

 

1,2 LCG - Laboratório de Computação Gráfica, COPPE - Sistemas / UFRJ

21945-970, Rio de Janeiro, RJ, Brasil, Caixa Postal 68511

2 Instituto de Matemática -UFRJ

nando@lcg.ufrj.br

roma@lcg.ufrj.br

 

Abstract. In the last three years, Motion Capture (MC) has become very popular in Computer Animation. The precision of movements, the capability of real-time interaction and the quality of the produced animation are some of the advantages of this method over traditional methods like keyframing and simulation. This paper describes a prototype of a real time animation system in wich the user will be able to choose several MC files and then mix and edit them in order to produce new complex movements.

Keywords: Computer Animation, Motion Capture, Natural Human Movement, Keyframing.

 

1 Introdução

Um dos grandes problemas da área de Animação por Computador é a visualização realística de movimentos complexos. O caminhar de um ser humano, por exemplo, envolve dezenas de músculos e articulações, tornando impraticável uma representação fisicamente correta por meio de técnicas tradicionais como keyframing. Uma solução sugerida foi o uso de simulação numérica para representar tais movimentos, porém o alto custo computacional torna impraticável a interatividade e os resultados ainda não são extremamente realistas.

A técnica de Motion Capture (MC) [3] é recente e foi utilizada pela primeira vez em filmes como Terminator 2: Judgment Day. Ela consiste em capturar a posição e orientação de certas partes de um objeto real (no caso de um ser humano, em geral as articulações), utilizando processos que podem ser óticos ou eletro-magnéticos. O uso de MC não está restrito apenas ao cinema: fabricantes de jogos de computador se utilizam desta técnica para obter movimentos mais suaves e com maior realismo. Um exemplo é o jogo de luta FX Fighter.

O objetivo deste trabalho é apresentar o protótipo de um sistema de animação que permitirá ao usuário carregar diversos arquivos contendo diferentes movimentos humanos, capturados via MC, para então concatená-los de forma suave, criando assim uma animação de alta qualidade com movimentos complexos. Além disso, o usuário poderá selecionar "sub-movimentos" básicos, formando uma base, que poderá ser utilizada para gerar novos tipos de movimentos, mantendo as características de realismo oferecidas pelos dados capturados via MC.

2 Processo Ótico vs. Processo Eletro-Magnético

Atualmente, existem dois tipos de sistemas para a aquisição dos dados - ótico e eletro-magnético. Cada um deles possui vantagens e desvantagens que vão desde o preço até a qualidade e precisão dos movimentos adquiridos.

Os sistemas óticos são mais indicados para capturar movimentos complexos e rápidos, pois possuem uma taxa maior de amostragem. Já os eletro-magnéticos capturam os dados em tempo real, permitindo assim a representação, também em tempo real, do processo.

3 Visualizando os Dados Capturados

Um arquivo de dados MC geralmente é composto por uma sequência de informações contendo os nomes dos marcadores utilizados no processo, juntamente com as suas posições e/ou orientações para cada quadro da animação. O primeiro passo para visualizar a animação é montar a estrutura humana [4] a partir dos marcadores fornecidos no arquivo. Os arquivos utilizados neste trabalho são compostos por 20 marcadores, representando as principais articulações de um ser humano.

Montado o esqueleto, basta então exibí-lo em cada quadro para completar a animação, respeitando-se logicamente o frame rate utilizado no processo de captura. Como a visualização dos dados é, basicamente, um processo de leitura e armazenamento, não necessitando então de cálculos extras, é possível produzir animações em tempo real em máquinas com um razoável poder de processamento. Veja no final do artigo uma sequência de imagens mostrando parte da animação de um personagem caminhando.

4 Concatenando Diferentes Animações

A grande desvantagem do processo de Motion Capture é a limitação da variedade de movimentos que podem ser utilizados numa animação - cada arquivo define um conjunto limitado e específico de ações. Além disso, as informações contidas no arquivo definem um script de movimento do personagem na cena, inviabilizando portanto um controle interno destes dados. Animações complexas exigem movimentos detalhados que nem sempre estão num mesmo arquivo MC de dados. A idéia é desenvolver um método que possibilite a união e a edição desses arquivos, gerando então uma animação mais complexa.

Para aumentar ainda mais a gama de movimentos MC que podem ser utilizados, pretende-se permitir ao usuário a edição interativa dos arquivos MC existentes, extraindo assim "sub-movimentos" que podem ser utilizados e fundidos durante a animação, formando uma base de movimentos que poderá ser acessada quando necessário.

Uma aplicação prática deste método é a criação de coreografias pelo computador. Movimentos de dança são, em geral, repetitivos. Com uma base razoável de movimentos MC, o usuário poderia criar uma nova coreografia concatenando-os de forma adequada, fazendo com que o frame rate destes movimentos seja coerente com o número de BPM (batidas por minuto) da música, obtendo-se desta forma sincronia.

5 Perspectivas Futuras

Para tentar contornar as limitações do processo de Motion Capture, estamos implementando um sistema de animação [5] no qual o usuário pode editar diversos arquivos MC, selecionando os movimentos desejados e concatenando-os de modo a obter uma animação mais complexa, porém mantendo a característica realista do método de MC. Também pode ser utilizado um módulo de cinemática inversa [1] (inverse kinematics) para auxiliar o usuário na edição e fusão dos movimentos.

Um outro problema que será abordado é a criação de um ator sintético a partir dos marcadores contidos nos arquivos.

Toda a parte de interpretação, construção e display da animação do esqueleto contido nos arquivos MC já foi implementada, assim como o módulo externo de keyframing [2]. O estágio atual se encontra na elaboração do algoritmo de fusão dos arquivos de dados. A implementação está sendo feita utilizando a liguagem C juntamente com a biblioteca gráfica OpenGL. A interface do programa utiliza a liguagem Tcl/Tk.

 

Figura 1: Animação do caminhar humano utilizando dados MC.

5 Referências

[1] - A. Watt, M. Watt, Advanced Animation and Rendering Techniques - Theory and Practice, Addison-Wesley, 1992.

[2] - N. M. Thalmann, D. Thalmann, Computer Animation - Theory and Practice, Springer-Verlag, 1992.

[3] - R. Bindiganavle, "Generating Motions From Motion Capture Data", Technical Report, University of Pennsylvania, PA, 1994.

[4] - J. Blinn, "Nested Transformations and Blobby Man", IEEE Transactions, 59-65, October 1987.

[5] - Wagner, F. S. V. S., Motion Capture Animation, http://www.cos.ufrj.br/~nando/thesis/motcap.html