• Nenhum resultado encontrado

Uma Representação Flexível de Controladores para Animação Fisicamente Realista de Personagens Virtuais

N/A
N/A
Protected

Academic year: 2021

Share "Uma Representação Flexível de Controladores para Animação Fisicamente Realista de Personagens Virtuais"

Copied!
12
0
0

Texto

(1)

Uma Representação Flexível de Controladores para Animação Fisicamente Realista de Personagens Virtuais

Rubens Fernandes Nunes, Creto Augusto Vidal e Joaquim Bento Cavalcante-Neto Departamento de Computação – Universidade Federal do Ceará (UFC)

Caixa Postal 12.166 – 60455-760 – Fortaleza, CE, Brasil

{rubens, cvidal, joaquimb}@lia.ufc.br

Abstract. In this paper, we propose an improved representation of controllers, which uses high-level sensors and possess a general and intuitive structure that offers the animator several types of parameters to manipulate. This structure, with the feedback signals provided by its sensors, allows that several state machines act simultaneously on the model, or in a subset of its actuators.

It also permits that procedures with general instructions, in accordance with a specified motion, be defined during its design phase and be adequately associated with it by the animator, in order to be automatically executed by the controller during the dynamic simulation.

Resumo. Neste trabalho, é proposta uma representação de controladores, que utiliza sensores de alto nível e tem uma estrutura geral e intuitiva, que disponibiliza vários tipos de parâmetros para o animador. Essa estrutura permite, de acordo com a retroalimentação de seus sensores, que várias máquinas de estados atuem simultaneamente no modelo, ou em subconjuntos de seus atuadores. Também permite que, durante seu projeto, procedimentos com instruções gerais, de acordo com o movimento desejado, possam ser definidos e adequadamente associados a ela pelo animador, para serem executados automaticamente pelo controlador durante a simulação dinâmica.

1. Introdução

Desde as primeiras tentativas de gerar animações fisicamente realistas [1, 16], as técnicas de animação de personagens virtuais incluindo leis da física vêm sendo aprimoradas graças, principalmente, ao interesse das indústrias cinematográficas e de jogos de computador e da área de realidade virtual. Em algumas situações, o movimento realista de personagens é indispensável para a boa aceitação da aplicação desenvolvida.

A utilização das leis da dinâmica garante uma geração de movimentos realísticos mais automática do que a obtida através de técnicas cinemáticas, facilitando o trabalho do animador em determinadas seqüências. Entretanto, para sistemas atuados (sistemas que criam e regulam seus próprios movimentos através de forças e torques internos gerados por seus atuadores, sem depender exclusivamente de forças externas [9]), apenas a simulação dinâmica não garante a naturalidade do movimento, necessitando a solução de um problema de controle, para determinar forças e torques adequados a serem gerados pelos atuadores a fim de conseguir o movimento desejado.

Uma abordagem possível para solucionar esse problema utiliza um elemento

controlador, projetado para um tipo específico de movimento. O projeto de um

(2)

controlador é bastante complexo para ser desenvolvido manualmente e não menos complexo e caro computacionalmente quando desenvolvido automaticamente. O custo computacional depende muito de como o controlador é representado e dos parâmetros escolhidos para serem gerados automaticamente, os quais geram o espaço de busca.

A representação do controlador define sua forma de calcular as forças e torques aplicados pelos atuadores durante a simulação dinâmica, e é essencial para sua geração automática, a qual torna seu desenvolvimento mais fácil e acessível a qualquer usuário.

Neste trabalho, é proposta uma representação de controladores, que utiliza sensores (que fornecem feedback, mantendo o controle mais estável), e tem uma estrutura mais geral e intuitiva, disponibilizando vários tipos de parâmetros para o animador. Essa estrutura permite, de acordo com a retroalimentação proveniente de seus sensores, que várias máquinas de estados atuem simultaneamente no mesmo modelo, ou em subconjuntos de seus atuadores. Também permite que, durante seu projeto, procedimentos com instruções gerais, de acordo com o movimento desejado, sejam definidos e adequadamente associados a ela pelo animador, para serem executados automaticamente pelo controlador durante a simulação dinâmica. Além das inovações propostas na representação de controladores, neste trabalho também é proposta uma estrutura mais geral e elaborada para os sensores utilizados, permitindo que eles sejam melhor explorados na geração automática dos controladores.

A apresentação detalhada dos aspectos abordados nesta Introdução está distribuída do seguinte modo: na Seção 2, os trabalhos relacionados são discutidos; na Seção 3, a representação de controladores proposta é explicada; na Seção 4, seus aspectos de implementação são descritos; na Seção 5, os testes realizados são apresentados e analisados; e, na Seção 6, as conclusões são apresentadas.

2. Trabalhos Relacionados

As técnicas de controle de sistemas dinâmicos atuados podem ser subdivididas segundo duas abordagens principais [6]: a baseada em trajetória e a baseada em controlador. Na abordagem baseada em trajetória, o problema de controle é mapeado em um problema de otimização, onde se busca a trajetória completa descrita pelo modelo que minimize (ou maximize) uma função objetivo (por exemplo, o esforço gasto pelo modelo) [17], sujeita, entre outras restrições, às leis da física. Essa abordagem permite maior controle do movimento, especificando restrições explícitas da trajetória gerada. Na segunda abordagem, um controlador é definido para controlar as forças e torques gerados pelos atuadores durante a simulação dinâmica. A não imposição de restrições explícitas quanto à trajetória gerada garante uma maior liberdade em nível de posição. Essa característica permite a reutilização de controladores em configurações ligeiramente diferentes do modelo ou do ambiente [13]. Controladores podem ser concatenados, gerando seqüências de movimentos mais complexas [3], e apresentam um baixo custo computacional, considerando que os controladores já tenham sido gerados.

O ponto central da técnica de controladores é o projeto da representação do

controlador, por definir como ele calcula as forças e os torques dos atuadores a serem

utilizados pelo simulador dinâmico. Controladores são projetados tanto manualmente

(necessitando conhecer detalhes do comportamento gerado), quanto automaticamente.

(3)

As primeiras versões de controladores usavam funções explícitas de forças e torques especificadas pelo animador, baseadas em dados medidos ou observados [6]. O animador atuava no nível mais baixo da geração do controlador. Utilizando máquinas de estados finitos projetadas manualmente (cada estado corresponde a uma fase do controlador, determinando como ele deve agir), Raibert e Hodgins [9] animam robôs bípedes e quadrúpedes e um modelo de canguru correndo e pulando, e Hodgins e seus co-autores geram animações de corrida, ciclismo e salto sobre cavalo [5].

Alguns autores propõem representações de controladores que podem ser projetadas automaticamente, utilizando otimização estocástica [2, 12, 14]. Auslander e seus co-autores [2] analisam uma representação baseada em respostas a estímulos. Pares constituídos por uma função de estímulo e uma resposta são projetados considerando o modelo e o movimento desejado. A cada passo da simulação dinâmica, as funções de estímulo são avaliadas, e a função vencedora ativa a resposta correspondente, influenciando o movimento gerado. Van de Panne e Fiume [14] representam o controlador conectando os sensores aos atuadores do modelo através de uma rede de conexões com pesos. Os atuadores recebem os valores resultantes das operações internas dessa rede, em função dos sensores, e mapeiam em ângulos desejados a serem assumidos pelas juntas. Controladores do tipo PD (Proportional Derivative) calculam os torques correspondentes a esses ângulos desejados. Van de Panne [12] propõe grafos de controle de pose (Pose Control Graph - PCG), que são máquinas de estados finitos, onde cada estado possui uma pose associada. Essas poses consistem de um conjunto de ângulos desejados a serem assumidos pelas juntas, também utilizando controladores do tipo PD.

Transições entre estados são responsáveis por realizar a troca do estado ativo.

Sims [10] projeta automaticamente tanto a representação do controlador quanto o modelo de estruturas articuladas controlado. Van de Panne [12] sintetiza controladores interpolando linearmente os parâmetros de outros controladores já projetados. Laszlo [6]

analisa o ciclo do movimento de caminhada gerado por um controlador instável de laço aberto, projetado manualmente, e perturba esse ciclo automaticamente, de acordo com o feedback obtido, para estabilizar o movimento, mantendo sua periodicidade. Van de Panne e Lamouret [15] utilizam forças externas para guiar o processo de otimização, mantendo o equilíbrio do modelo, e facilitando o aprendizado do movimento desejado, sendo eliminadas posteriormente. Hodgins e Pollard [4] utilizam controladores projetados para um personagem e os adaptam automaticamente a novos personagens.

Controladores podem ser projetados durante a simulação, com a intervenção do animador, usando interfaces apropriadas para mapear informações de dispositivos de entrada nos parâmetros do controlador. Laszlo [7] interativamente guia o movimento de vários modelos 2D, explorando ações de controle contínuas e discretas. Zhao e van de Panne [18] apresentam uma interface mais elaborada e amigável e a utilizam para gerar animações em 3D de saltos ornamentais, saltos de esqui e snowboarding.

3. Máquinas de Estados Sensoriais

O controlador ideal deve ser capaz de gerar movimentos que se aproximem ao máximo

dos requisitos de movimento estabelecidos pelo animador, e da maneira mais rápida e

automática possível. É justamente a dificuldade de gerar controladores com esse grau de

versatilidade o principal problema da utilização da técnica de controladores.

(4)

A representação de um controlador consiste de uma estrutura, que é a base da representação, e de um conjunto de parâmetros modificáveis a ela associados. A estrutura permanece imutável após sua modelagem, que é feita visando um movimento específico. A geração do controlador fica completa após a atribuição dos valores do conjunto de parâmetros associados à sua estrutura.

Nesta seção, é apresentada uma proposta de representação de controladores chamada máquinas de estados sensoriais, que é baseada em máquinas de estados finitos, por serem bem organizadas e intuitivas, e que utiliza a idéia de PCGs.

3.1. Estrutura do controlador

Modelos físicos controlados por grafos de controle de pose (PCGs) geralmente são associados a um único PCG que é responsável pelo controle simultâneo de todos os seus atuadores [12]. Diferente de PCGs convencionais, a estrutura proposta neste trabalho permite que um conjunto de máquinas de estados seja definido para um mesmo modelo.

O nível mais alto de abstração dessa estrutura consiste na organização de seu conjunto de máquinas de estados. Já o nível mais baixo consiste nas estruturas individuais das máquinas de estados componentes e nas estruturas dos sensores utilizados.

3.1.1. Organização das máquinas de estados componentes

A estrutura da representação “máquinas de estados sensoriais” consiste de um conjunto de máquinas de estados e de um conjunto de sensores associados a algumas dessas máquinas de estados (vide Figura 4.1). É importante ressaltar que dado o modelo da estrutura articulada a ser animada (Figura 3.1) e o tipo de movimento desejado (levantar, caminhar, correr, saltar, etc.), um conjunto de máquinas de estados é definido para representar as mudanças de estados de partes do modelo durante o movimento especificado. Assim, uma máquina de estados pode estar associada à movimentação das pernas, uma outra máquina pode representar a movimentação do conjunto tronco e braços, e assim por diante. Essas máquinas de estados são semelhantes a PCGs e também enviam valores de ângulos desejados para controladores do tipo PD, que são utilizados para calcular os torques correspondentes a serem aplicados pelos atuadores.

Figura 3.1: Modelo humanóide 2D (os pontos numerados correspondem às juntas).

Em função das partes do modelo atreladas a uma máquina de estados, ela pode

afetar subconjuntos de atuadores do modelo [8]. Um atuador também pode ser afetado

por mais de uma máquina de estados ao mesmo tempo, isto é, um controlador do tipo

PD pode receber mais de um valor de ângulo desejado numa mesma iteração da

simulação dinâmica, calculando então os torques correspondentes a todos esses valores

(5)

recebidos e computando a média ponderada desses torques, para obter o torque resultante a ser aplicado pelo atuador. Os pesos utilizados nessa média são os respectivos pesos associados às máquinas de estados que enviam os sinais.

A principal vantagem de máquinas de estados atuando em subconjuntos dos atuadores de um modelo é poder gerar o movimento desejado por partes, sem precisar analisar todos os atuadores ao mesmo tempo. Dessa forma, diferentes partes do modelo podem ser tratadas com mais independência. Ajustes podem ser realizados posteriormente para que as máquinas de estados funcionem bem em conjunto.

A divisão e organização das máquinas de estados para obtenção do movimento desejado é uma questão de projeto do controlador. Elas podem ser organizadas para atuar simultaneamente no modelo ou em seqüência cronológica.

Apesar de poderem atuar todas simultaneamente, as máquinas de estados da representação “máquinas de estados sensoriais” não atuam assim o tempo todo. Algumas permanecem ativas durante toda a simulação, mas outras são ativadas ou desativadas em função dos sinais recebidos do conjunto de sensores da estrutura. Em cada iteração da simulação dinâmica, todo o conjunto de sensores é analisado, determinando quais as máquinas de estados que estão ativas. Quanto à dependência desse conjunto de sensores, essas máquinas de estados são classificadas como:

• Constantes – quando não possuem nenhum sensor associado, e permanecem ativas durante todo o tempo;

• Sensoriais – quando possuem um sensor associado, e estão ativas quando esse sensor está ativo (um sensor pode ser associado a mais de uma dessas máquinas sensoriais);

• Padrões – quando dependem de todos os sensores para estarem ativas, embora não possuam nenhum associado. Estão ativas quando nenhum sensor está ativo.

Comparando à representação estímulo-resposta (Seção 2), as ações das máquinas de estados sensoriais correspondem às respostas, enquanto seus sensores associados correspondem aos estímulos. Entretanto, uma diferença significativa é que mais de uma máquina de estados sensorial pode estar ativa ao mesmo tempo, enquanto que apenas uma resposta pode ser escolhida em cada iteração da simulação física. Além disso, essas máquinas podem controlar o modelo de uma maneira mais geral e expressiva do que as respostas produzidas na representação estímulo-resposta.

A Figura 3.2 ilustra uma situação em que um conjunto de máquinas de estados controla o movimento de caminhar do modelo, quando uma força externa empurra a cabeça do humanóide para frente. Um sensor torna-se ativo ao perceber que o modelo está caindo e a máquina de estados sensorial a ele associada começa a atuar no modelo para que os braços sejam erguidos e protejam a cabeça durante a queda.

A rápida oscilação indesejada dos estados (ativo e inativo) dos sensores

associados às máquinas de estados sensoriais é tratada através de mecanismos de retardo

que definem o número mínimo de iterações em que o estado de um sensor deve ser

mantido, mesmo que o sinal de retorno do sensor indique a mudança de seu estado.

(6)

Figura 3.2: Ativação de uma máquina de estados sensorial durante a queda.

3.1.2. Estrutura individual das máquinas de estados

A estrutura das máquinas de estados utilizadas neste trabalho possui características semelhantes às de PCGs, entretanto, apresenta algumas peculiaridades. Como em PCGs, cada estado possui uma pose associada, que pode se referir a qualquer subconjunto dos atuadores do modelo. As transições entre estados podem ser de três tipos: temporal, sensorial e por método. As temporais realizam a troca do estado ativo quando um determinado número de iterações é executado. As sensoriais, quando o sensor associado está ativo. E transições por método, quando o método apropriado é executado, possibilitando interação. Independentemente de estarem ativas, as máquinas de estados podem ser desabilitadas ou habilitadas para facilitar a composição de movimentos.

Nas transições entre dois estados consecutivos, interpolação dos ângulos desejados das poses é utilizada para produzir transições suaves. Cada transição possui um atraso associado ao tempo de duração da interpolação correspondente. Essa interpolação também evita que torques muito grandes sejam aplicados nas juntas do modelo e instabilidades numéricas ocorram. Além disso, a cada atuador é associado um limite máximo ao torque gerado, que é obedecido pelos controladores do tipo PD.

Essa estrutura permite que procedimentos com instruções gerais, de acordo com o movimento desejado, sejam definidos e adequadamente associados a ela pelo animador durante seu projeto, para serem executados automaticamente pelo controlador durante a simulação dinâmica. Esses procedimentos podem ser associados a estados e a transições, assim como a sensores associados às máquinas de estados sensoriais. A associação de procedimentos a estados é a idéia básica utilizada na representação de controladores por máquinas de estados, porém PCGs, geralmente limitam as ações dos seus estados a tentar atingir determinada pose. O diferencial da estrutura da representação “máquinas de estados sensoriais”, quanto à maneira e às opções de utilização de procedimentos, é permitir ao animador fornecer instruções mais gerais para o controlador e permitir ao controlador executar essas instruções nos momentos mais adequados.

3.1.3. Estrutura dos sensores

Um ponto importante no uso de controladores é a utilização de sensores (feedback). Em PCGs, os sensores utilizados ainda requerem aprimoramentos. Suas estruturas não permitem que eles sejam tão explorados na geração automática. Nos trabalhos discutidos na Seção 2 em que os sensores utilizados podem ser modificados automaticamente, o funcionamento desses sensores já é pré-especificado e o significado de seus parâmetros modificáveis automaticamente se limita ao intervalo em que eles se tornam ativos [2, 14].

Estruturas de sensores mais sofisticadas devem ser utilizadas para melhor explorá-los.

(7)

A estrutura aqui proposta possui parâmetros vinculados, cujos significados são determinados pelo próprio animador, na definição do sensor. Isso não limita os significados dos parâmetros, permitindo utilizar parâmetros mais expressivos. Assim, modificações nos valores desses parâmetros possibilitam alterações mais gerais e intuitivas no funcionamento do sensor, de acordo com o desejo do animador ao defini-lo.

Isso facilita a especificação do movimento desejado e permite que os sensores sejam melhor explorados na geração automática do controlador. Possibilitar modificações automáticas significa livrar o animador da especificação precisa dos parâmetros dos sensores, deixando essa tarefa de nível mais baixo sob a responsabilidade da otimização.

3.2. Parâmetros

Os parâmetros são responsáveis por completar a estrutura modelada, determinando exatamente as ações realizadas pelo controlador. A Figura 3.3 apresenta os tipos de parâmetros disponíveis (indicados pelas elipses) na representação proposta e encaixa-os no modelo de sua estrutura. Seus significados estão explicados na Seção 3.1.

Figura 3.3: Parâmetros vinculados à estrutura da representação proposta.

3.3. Atribuição de valores aos parâmetros

Modelada a estrutura, os valores dos parâmetros são especificados e podem ser avaliados e modificados para obter melhores resultados. Os parâmetros disponíveis pela representação proposta podem ser modificados de diferentes maneiras: fora da simulação dinâmica (off-line); ou durante a simulação dinâmica (on-line). Baseado no movimento desejado, o animador decide as maneiras mais adequadas para modificar cada um dos parâmetros.

3.3.1. Modificações off-line

Essas modificações podem ser realizadas diretamente pelo animador, ou automaticamente. A modificação direta ocorre logo após a especificação dos parâmetros com o intuito de diminuir o espaço de busca na modificação automática ou para fornecer valores iniciais razoáveis, e é indispensável para modelos mais complexos. Na modificação automática, os parâmetros são atribuídos através de otimização estocástica.

A escolha dos parâmetros a serem modificados automaticamente é uma tarefa difícil. A

representação proposta oferece uma estrutura intuitiva para facilitar essa escolha, e

permite uma otimização realizada em vários estágios, onde, em cada estágio, um

conjunto possivelmente diferente de parâmetros é modificado. Tal como no trabalho de

van de Panne [12], esta representação fornece diversas variações de modificação

automática.

(8)

3.3.2. Modificações on-line

As modificações on-line podem ser realizadas com a intervenção do animador ou automaticamente. O animador pode habilitar ou desabilitar as máquinas de estados, facilitando a composição de movimentos; pode também, enquanto acompanha a simulação dinâmica, perceber os tempos mais apropriados de algumas transições, modificá-los e armazená-los. Utilizar interação em controladores é interessante para produzir animações fisicamente realistas em tempo real nas aplicações em jogos [18].

Os procedimentos associados à estrutura do controlador podem possuir instruções para modificar seus parâmetros automaticamente. Para isso, eles utilizam tanto as informações do próprio controlador, tais como as de seus sensores; quanto as informações do modelo ou do ambiente. Assim, por exemplo, um procedimento vinculado a um sensor associado a uma máquina de estados sensorial pode cuidar de manter o equilíbrio de um modelo, modificando automaticamente os ângulos desejados das poses dessa máquina de estados, em função do retorno desse sensor, responsável por perceber quando o modelo perde o equilíbrio. No exemplo simplificado da Figura 3.4, o ângulo desejado, θ

d

, entre o tronco e o quadril é atualizado contínua e automaticamente com o valor do ângulo atual multiplicado por –1, gerando um torque correspondente responsável por manter o equilíbrio.

Figura 3.4: Manutenção do equilíbrio com modificações on-line automáticas.

4. Implementação

Nesta seção, são discutidos os aspectos de implementação da simulação dinâmica, e os relativos à representação de controladores “máquinas de estados sensoriais” proposta.

4.1. Simulação dinâmica

Neste trabalho, a simulação dinâmica é realizada pelo motor dinâmico aberto (Open Dynamics Engine - ODE) [11]. O ODE calcula e integra as equações de movimento. Ele permite a recompilação das equações de movimento durante a simulação. Assim, corpos e juntas podem ser adicionados, removidos ou alterados durante a simulação dinâmica.

Isso o torna mais flexível do que outros simuladores dinâmicos em que os modelos só podem ser compilados antes da simulação. Além disso, o ODE dispõe de um detector de colisões, que determina quais corpos estão em contato em cada iteração.

O sistema de animação implementado foi programado em C++, utilizando uma

interface gráfica, também disponibilizada pelo ODE, que utiliza OpenGL para renderizar

os quadros da animação. A simulação dinâmica é realizada em tempo real em um PC

com processador de 2.2 GHz. Como o custo computacional com o uso de controladores

é determinado principalmente pelo custo da simulação dinâmica, as animações também

são obtidas em tempo real, considerando que os controladores já tenham sido gerados.

(9)

4.2. Visão geral do processo de controle

Dado o modelo a ser animado e o ambiente em que a animação ocorre, a estrutura do controlador é definida de acordo com o movimento desejado, e especificada a partir de seu conjunto de máquinas de estados e de seu conjunto de sensores. A Figura 4.1 apresenta uma visão geral do processo de controle, o qual é sintetizado a seguir.

A partir das especificações do modelo a ser animado e do ambiente de animação, o compilador dinâmico fornece as equações de movimento ao integrador numérico. Este, então, utiliza essas equações e os valores dos torques gerados pelos atuadores para, a partir da configuração atual, obter a próxima configuração. A nova configuração é disponibilizada para o controlador e reutilizada pelo integrador numérico. Os valores dos torques são enviados pelo controlador ao integrador numérico.

Figura 4.1: Visão geral do processo de controle.

A cada iteração, o controlador utiliza a configuração atual para avaliar seu conjunto de sensores e determinar as máquinas de estados ativas, de acordo com seus tipos. Cada máquina de estados ativa e habilitada é analisada, obtendo-se os valores dos ângulos desejados associados ao seu estado ativo e verificando-se se sua próxima transição deve ser realizada. Esses valores são enviados aos controladores do tipo PD, que obtêm os torques correspondentes e calculam os torques resultantes em cada atuador através de médias ponderadas, considerando o peso da máquina de estados correspondente a cada torque. Esses torques resultantes são então utilizados pelo integrador numérico. Em algumas dessas iterações, procedimentos podem ser disparados e interações com o animador podem ocorrer. Isso pode provocar alterações nas propriedades tanto do próprio controlador quanto do modelo e do ambiente.

5. Testes

Nesta seção, são apresentados os resultados de testes realizados com um modelo de humanóide 2D, para avaliar a representação “máquinas de estados sensoriais” proposta.

5.1. Modelo

O modelo de humanóide 2D da Figura 3.1 possui 14 corpos rígidos, 14 graus de

liberdade internos e 14 atuadores associados a cada grau de liberdade. Suas propriedades

geométricas e físicas são baseadas em [6]. No Teste 2, os dois braços do modelo são

mantidos unidos e duas juntas fixas unem as duas mãos a uma bola.

(10)

5.2. Teste 1: Humanóide caminhando em uma superfície plana

A Figura 5.1 mostra duas máquinas de estados constantes, projetadas para fazer o humanóide caminhar sobre uma superfície plana. A máquina de estados responsável pelo movimento do tronco e das pernas possui seis estados que foram projetados manualmente baseados em [6]. Suas transições são sensoriais e alguns de seus sensores foram modificados automaticamente. A máquina responsável pelo movimento dos braços foi projetada manualmente, e possui quatro estados e transições sensoriais e temporais.

A utilização de mais de uma máquina de estados torna o movimento de diferentes partes do modelo mais independentes, podendo aumentar o realismo. No exemplo, os braços não obedecem rigorosamente ao ritmo das pernas, tornando o caminhar mais natural.

Figura 5.1: Máquinas de estados para o caminhar de um humanóide 2D.

A Figura 5.2 compara o caminhar antes e depois da otimização. Os parâmetros modificados automaticamente estão indicados na Figura 5.1 pelas elipses. O critério de otimização (fitness) utilizado foi a distância atingida pelo centro de massa do modelo. O fitness é obtido no final de 1000 iterações a cada avaliação. Com o controlador otimizado, o modelo continuou andando após as 1000 iterações, atingindo uma distância maior do que 10.558642 m.

Figura 5.2: Comparação do caminhar antes e depois da otimização.

Para avaliar a estrutura proposta para os sensores, as transições sensoriais foram substituídas por transições temporais, em que os tempos de transição foram otimizados.

A otimização com sensores produziu um controlador mais estável, que interagiu melhor

com alterações do ambiente, tais como forças externas aplicadas ao modelo; e que

manteve um melhor desempenho após o número de iterações avaliadas na otimização.

(11)

5.3. Teste 2: Humanóide arremessando uma bola ao cesto

Foram projetadas duas máquinas de estados do tipo constante para o arremesso de uma bola de basquete em direção ao cesto. Uma delas foi desenvolvida apenas para manter o tronco e as pernas numa posição ereta. A outra, responsável pelo movimento dos braços, possui três estados. O último deles não tem efeito no modelo e serve apenas para soltar os braços após o arremesso. Os dois primeiros estados foram gerados automaticamente.

As transições do primeiro para o segundo e deste para o terceiro estado são temporais, enquanto a terceira é por método e não é realizada, determinando um movimento acíclico. A segunda transição também foi gerada automaticamente e possui um procedimento associado responsável por soltar a bola.

Figura 5.3: Arremesso ao cesto com procedimento associado a uma transição.

O critério de otimização utilizado foi a menor distância entre a bola e um ponto determinado um pouco acima do cesto, durante toda a simulação dinâmica. A altura máxima atingida pela bola também foi levada em consideração com um menor peso. As avaliações foram realizadas até o momento em que a bola caiu no chão. A Figura 5.3 mostra o controlador gerado automaticamente, atuando no modelo.

6. Conclusão

Este trabalho abordou o problema de controle de movimentos de caracteres autônomos e a dificuldade de projetar automaticamente um repertório de habilidades específicas a serem incorporadas por esses caracteres. Foi proposta uma representação de controladores com estrutura geral e intuitiva (disponibilizando vários tipos de parâmetros), que permite que, de acordo com os retornos dos seus sensores, várias máquinas de estados atuem no mesmo modelo, simultaneamente, e em subconjuntos dos seus atuadores. Também foi proposta uma estrutura mais geral e elaborada para os sensores utilizados. A representação proposta facilita o projeto dos controladores, a composição de movimentos e a geração automática de controladores.

Os resultados dos testes com a representação proposta, em contraste com aquelas apresentadas na literatura, permitem concluir que: ela é capaz de tratar diferentes partes do modelo com mais independência; sua estrutura elaborada de sensores é mais adequada à geração automática dos controladores; e permite que instruções mais gerais sejam definidas pelo animador, através de procedimentos associados a sua estrutura.

Além de reações de proteção, como no exemplo da Figura 3.2, ações, tais como levantar, sentar e pular, podem ser disponibilizadas para o modelo, projetando-se máquinas de estados sensoriais, cujos sensores associados são responsáveis por determinar as condições apropriadas para suas execuções (composição de movimentos).

Uma limitação da representação proposta, também encontrada nos trabalhos

relacionados, é a necessidade de uma escolha cuidadosa dos parâmetros a serem

(12)

modificados automaticamente para obtenção de bons resultados, não permitindo que controladores para modelos muito complexos sejam completamente projetados de maneira automática. Além disso, mesmo para um número de parâmetros razoável, não há garantias de que uma boa solução será encontrada. Entretanto, a representação proposta facilita essa escolha e permite que a otimização possa ser realizada em vários estágios, onde diferentes conjuntos de parâmetros são modificados.

Referências

[1] Armstrong, W. W. & Green, M. (1985). The Dynamics of Articulated Rigid Bodies for Purposes of Animation. Proceedings of Graphics Interface’ 85 (pp. 407-415). Montreal, Quebec, Canada.

[2] Auslander, J., Fukunaga, A., Partovi, H., Christensen, J., Hsu, L., Reiss, P., Shuman, A., Marks, J. &

Ngo, J.T. (1995). Further experience with controller-based automatic motion synthesis for articulated figures. ACM Transactions on Graphics, 14(4), 311–336.

[3] Faloutsos, P., van de Panne, M. & Terzopoulos, D. (2001). Composable controllers for physics-based character animation. Proceedings of ACM SIGGRAPH’2001 (pp. 251–260). L. A., USA.

[4] Hodgins, J.K. & Pollard, N. S. (1997). Adapting simulated behaviors for new characters.

Proceedings of ACM SIGGRAPH’1997 (pp. 153–162). Los Angeles, USA.

[5] Hodgins, J.K., Wooten, W.L., Brogan, D.C. & O’Brien, J.F. (1995). Animating human athletics.

Proceedings of ACM SIGGRAPH’1995 (pp. 71–78). Los Angeles, USA.

[6] Laszlo, J.F. (1996). Controlling Bipedal Locomotion for Computer Animation. M..Sc. thesis, University of Toronto.

[7] Laszlo, J.F., van de Panne, M. & Fiume E. (2000). Interactive control for physically-based animation. Proceedings of ACM SIGGRAPH’2000 (pp. 201–208). New Orleans, USA.

[8] Oshita, M. & Makinouchi, A. (2001). A Dynamic Motion Control Technique for Human-like Articulated Figures. Computer Graphics Forum, 20(3), 192–202.

[9] Raibert, M. & Hodgins, J.K. (1991). Animation of Dynamic Legged Locomotion. Computer Graphics, 25(4), 349-358.

[10] Sims, K. (1994). Evolving Virtual Creatures. Proceedings of ACM SIGGRAPH’1994 (pp. 15–22).

Orlando, USA.

[11] Smith, R. Open dynamics engine. http://ode.org/. Visitado em 26 de janeiro de 2006.

[12] Van de Panne, M. (1996). Parameterized gait synthesis. IEEE Computer Graphics and Applications, 16(2), 40–49.

[13] Van de Panne, M., Fiume, E. & Vranesic, Z. (1990). Reusable motion synthesis using state-space controllers. Proceedings of ACM SIGGRAPH’1990 (pp. 225–234). Dallas, USA.

[14] Van de Panne, M. & Fiume, E. (1993). Sensor-actuator networks. Proceedings of ACM SIGGRAPH’1993 (pp. 335–342). Anaheim, USA.

[15] Van de Panne, M. & Lamouret, A. (1995). Guided optimization for balanced locomotion.

Proceedings of the Eurographics Workshop on Computer Animation and Simulation'95 (165–177).

Maastricht, The Netherlands.

[16] Wilhelms, J. & Barsky, B. (1985). Using Dynamic Analysis for the Animation of Articulated Bodies such as Humans and Robots. Proceedings of Graphics Interface’85 (97-104). Montreal, CA [17] Witkin, A. & Kass, M. (1988). Spacetime constraints. Computer Graphics, 22(4) 159–168.

[18] Zhao, P. & van de Panne, M. (2005). User Interfaces for Interactive Control of Physics-based 3D

Characters. Proceedings of ACM SIGGRAPH 2005 Symposium on Interactive 3D Graphics and

Games. (87-94). Washington D.C., U.S.A.

Referências

Documentos relacionados

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

A deformação permanente nos revestimentos asfálticos pode ser definida como depressões longitudinais nas trilhas de roda, as quais aumentam com as cargas

Vários trabalhos têm demonstrado que a mortali- dade por síndrome ascítica é maior nos machos do que nas fêmeas, acreditando-se que este fato esteja relacionado com a maior

Resultados: Os parâmetros LMS permitiram que se fizesse uma análise bastante detalhada a respeito da distribuição da gordura subcutânea e permitiu a construção de

Neste capítulo, será apresentada a Gestão Pública no município de Telêmaco Borba e a Instituição Privada de Ensino, onde será descrito como ocorre à relação entre

Um tempo em que, compartilhar a vida, brincar e narrar são modos não lineares de viver o tempo na escola e aprender (BARBOSA, 2013). O interessante é que as crianças