Posicionamento Automático de Câmera em Ambientes Virtuais Dinâmicos Rodrigo Hermann, Waldemar Celes Tecgraf - Departamento de Informática, PUC-Rio {hermann,celes}@tecgraf.puc-rio.br Abstract Os jogos eletrônicos mais sofisticados tentam realizar tomadas de cenas baseadas em princípios da cinematografia, aumentando a imersão experimentada pelos usuários (jogadores e espectadores). Existem dois grandes desafios na adaptação dos princípios da cinematografia em jogos: as linguagens cinematográficas são subjetivas, não sendo diretamente mapeadas para um programa de computador; além disso, os ambientes virtuais são dinâmicos e as ações são imprevisíveis, não sendo possível definir a priori os posicionamentos de câmera adequados para cada cena. Sistemas de controle de câmera em ambientes virtuais podem ser estruturados em três módulos: roteirista, responsável por identificar o que está ocorrendo; diretor/editor, responsável por definir as melhores tomadas para a cena em questão; e cinegrafista, responsável por posicionar a câmera no ambiente virtual segundo as regras cinematográficas estabelecidas. Neste trabalho, propomos a implementação de um módulo cinegrafista descrevendo a câmera por um modelo físico submetido a restrições. As restrições são tratadas de forma independente e satisfeitas através do método de relaxação. Desta forma, podemos realizar tomadas de cena usualmente encontradas na cinematografia através da composição de restrições simples. Resultados demonstram a eficiência, robustez e estabilidade do sistema proposto para o posicionamento automático de câmera em ambientes virtuais dinâmicos. Propomos ainda um mecanismo de validação da configuração de câmera obtida, permitindo que o módulo externo (diretor/editor) possa validar e, se for o caso, optar por um corte e a especificação de uma nova tomada de cena. 1 Introdução O cinema desenvolveu técnicas específicas com o objetivo de melhorar nossa interpretação dos filmes. A cinematografia procura explorar a dramaticidade das cenas, aumentando a imersão do espectador. Com o passar dos anos, aprendemos a interpretar os filmes segundo as linguagens cinematográficas. Da mesma forma, os jogos eletrônicos mais sofisticados têm procurado explorar a cinematografia para obter melhores tomadas de cena. O principal objetivo é usar a cinematografia para melhor explorar as emoções das cenas, tornando os jogos mais atrativos. O uso da cinematografia em jogos torna-se ainda mais interessante quando consideramos o número crescente de espectadores de jogos. Num futuro próximo, provavelmente teremos sessões de jogos eletrônicos sendo transmitidas para um grande número de espectadores. Para que a transmissão destes eventos seja de interesse do público, é necessário apresentar o desenrolar do jogo com posicionamentos de câmera que explorem a dramaticidade das cenas. A adaptação das técnicas cinematográficas em jogos (ambientes virtuais) não se dá de forma direta. Podemos identificar duas dificuldades principais. A primeira diz respeito à subjetividade com que é tratada a cinematografia. Não existe um conjunto de regras rígidas que pode ser aplicado diretamente por um programa de computador. A segunda dificuldade é o caráter dinâmico e imprevisível das cenas. No cinema, o diretor tem o conhecimento prévio do roteiro e a liberdade de experimentar diferentes tomadas de cena; no entanto, em um ambiente interativo, não sabemos a priori o que irá acontecer e o que deve ser capturado. Portanto, o sistema de controle da câmera deve ser capaz de coletar informações à medida que os fatos acontecem e conseguir realizar a tomada da cena de forma adequada, num curto espaço de tempo para não comprometer o desempenho da aplicação. A dificuldade aumenta se também quisermos aplicar os princípios da cinematografia para fazer o posicionamento da câmera que é utilizada pelo jogador, pois a jogabilidade não pode ser prejudicada. Para a adaptação da cinematografia em jogos, Hawkins [5] propõe a estruturação do sistema em três módulos: roteirista, diretor/editor e cinegrafista. O módulo roteirista é 1
responsável por identificar o que está ocorrendo no ambiente, definir o que deve ser mostrado e qual linguagem cinematográfica é mais adequada para a cena. O módulo diretor/editor é responsável por definir, a partir das informações recebidas do roteirista, quais são as melhores tomadas para capturar a cena. Por fim, o módulo cinegrafista é responsável por posicionar a câmera no ambiente dinâmico para melhor atender às demandas do módulo diretor/editor. Na prática, o módulo diretor/editor traduz a tomada de câmera desejada num conjunto de regras (restrições) que devem ser atendidas pelo módulo cinegrafista (Figura 1). Figura 1. Estruturação do sistema para adaptação da cinematografia para ambientes virtuais Este trabalho propõe a implementação de um módulo cinegrafista capaz de posicionar uma câmera automaticamente a partir de regras cinematográficas especificadas por um módulo externo. As regras são expressas através de um conjunto de restrições que devem ser atendidas pelo modelo de câmera. Cada restrição atua sem se valer do conhecimento da existência de outras restrições e possui um grau de prioridade de atendimento que a torna flexível quanto à sua importância na resolução do sistema. O módulo proposto descreve a câmera através de um modelo físico baseado em um sistema de partículas e usando o método de integração Verlet. O método de relaxação é utilizado para a convergência do sistema a fim de atender às restrições impostas. Como estas podem ser conflitantes ou inviáveis, propomos ainda uma métrica que retorna ao módulo externo uma resposta informando o quanto as restrições impostas ao sistema estão sendo satisfeitas. Com base nesta informação, o módulo externo (diretor/editor) pode optar por um corte e a especificação de uma nova tomada de cena. Experimentos computacionais demonstram a robustez e eficiência do módulo proposto. Tomadas de cena usualmente utilizadas em linguagens cinematográficas são conseguidas através da especificação de um conjunto de restrições simples. O restante deste artigo está organizado da seguinte forma. Na próxima seção são apresentados os trabalhos relacionados. Na seção seguinte propomos o módulo cinegrafista, detalhando o modelo físico de câmera e as restrições desenvolvidas para a obtenção das tomadas de cena. A seguir, descrevemos a interface externa do módulo proposto. Na seção 5 são apresentados os resultados obtidos com o módulo, exemplificando a obtenção de tomadas de cena inspiradas na cinematografia com o uso do módulo proposto. Por fim, na seção 6, apresentamos nossas conclusões. 2 Trabalhos Relacionados Otten [9] e Druker et al. [2] analisaram a viabilidade de se explorar a transmissão de jogos eletrônicos da mesma forma que são transmitidos eventos esportivos, identificando a existência dos espectadores de jogos, definindo a infra-estrutura necessária e o apelo comercial destas transmissões. Para a adaptação da linguagem cinematográfica em ambientes virtuais dinâmicos, podemos identificar duas linhas de pesquisa distintas. Na primeira, utiliza-se um conjunto pré-definido de linguagens cinematográficas que determinam o posicionamento das câmeras, tais como as linguagens utilizadas em diálogos entre dois personagens, aproximação de personagens, perseguições de carro, etc. Para cada uma destas linguagens, prevê-se a utilização de um determinado número de câmeras com posicionamento pré-estabelecido. Em tempo real, o sistema identifica a linguagem cinematográfica a ser utilizada e tenta posicionar as câmeras especificadas. He et al. [6] organizaram as linguagens cinematográficas como nós de uma árvore, em que cada linguagem funciona como uma máquina de estado. Amerson e Kime [1] desenvolveram a linguagem FILM que também se utiliza de uma árvore para descrever as linguagens cinematográficas. Apesar de conseguir dar um melhor aspecto cinematográfico à cena por utilizar uma linguagem com a qual o espectador já está acostumado, os modelos propostos se mostram muito rígidos quanto ao posicionamento de câmera, muitas vezes não conseguindo encontrar um posicionamento satisfatório que atenda às exigências da linguagem cinematográfica em uso. Na segunda linha de pesquisa, encontram-se os trabalhos que buscam utilizar apenas os conceitos básicos da cinematografia, em vez de linguagens nas quais a seqüência de tomadas já está pré-estabelecida. Drucker [3] define uma série de restrições ligadas a conceitos da cinematografia e tenta posicionar a câmera de forma que as restrições impostas sejam atendidas. Halper et al. [4] utilizam uma metodologia similar, procurando explorar a coerência entre quadros consecutivos. Estas propostas tendem a ser mais flexíveis pois não se pré-estabelece o posicionamento de câmera. As restrições guiam a câmera para uma tomada de acordo com a cinematografia respeitando o ambiente virtual da cena. No entanto, o sistema proposto por Halper et al. não é extensível, sendo difícil a inclusão de novos tipos de restrições, e o sistema proposto por Drucker apresenta
instabilidade no posicionamento da câmera. Neste trabalho, optamos por seguir esta segunda linha de pesquisa e propomos o uso de um modelo físico para representar a câmera. Todas as restrições são tratadas de forma independente dentro do mesmo modelo físico, sendo possível a inserção de novos tipos de restrições e a livre composição de restrições para a realização de uma tomada de câmera. A estabilidade do sistema é alcançada com o uso do método de relaxação para a atender às restrições impostas ao modelo. 3 Módulo cinegrafista O módulo proposto neste trabalho parte do conceito apresentado por Drucker [3] sobre o uso de restrições que, agrupadas, conseguem produzir o posicionamento e o movimento de câmera esperado. Assim como Halper et al. [4], assumimos que a aplicação terá uma alta taxa de quadros por segundo e que a solução para o sistema não precisa ser ótima, mas apenas satisfatória. A câmera é modelada por um sistema de partículas com restrições. Inspirados pelo trabalho de Jakobsen [8], utilizamos o método de integração Verlet [11] para evoluir o sistema e o método de relaxação [10] para satisfazer as restrições. Uma vez encontrado o novo estado da câmera, as restrições são avaliadas quanto a seu atendimento e os parâmetros da câmera são atualizados de acordo com o novo estado do modelo físico. A Figura 2 ilustra o funcionamento do módulo cinegrafista proposto. significa simular o comportamento de uma câmera real, mas se valer dos princípios da física para ajudar na resolução do sistema. O uso de um modelo físico para a definição dos parâmetros da câmera torna o sistema mais versátil, por permitir a adição de forças externas que alterem o comportamento da câmera (por exemplo, forças gravitacionais, forças de amortecimento e forças de atrito). Uma câmera virtual possui sete parâmetros de configuração: posição, direção, up, fovy, aspect, znear e zfar. O modelo de câmera proposto é composto por cinco partículas conectadas por barras rígidas. Cinco dos parâmetros da câmera, excetuando-se os parâmetros znear e zfar, são extraídos a partir do posicionamento das partículas. Um valor dist é passado ao modelo de câmera como a distância da partícula p0 ao centro do plano formado pelas partículas p1, p2, p3 e p4. A Figura 3 ilustra o modelo físico proposto. Figura 3. Visão frontal, lateral e sob perspectiva do modelo de câmera. A tradução do posicionamento das partículas para os parâmetros de uma câmera virtual se dá de acordo com as equações abaixo: pos = p0 (1) up = ( p4 + p3 2 p2 ) ( + p1 ), ûp = up 2 up (2) Figura 2. Funcionamento do módulo cinegrafista dx = ( p2 + p4 2 p1 ) ( + p3 dx ), dx = 2 dx dir = ûp dx (3) 3.1 Modelo de câmera A câmera é descrita por um conjunto de partículas conectadas por barras rígidas. O sistema evolui submetido a um conjunto de restrições, podendo-se aplicar forças externas. O uso de um modelo físico para descrever a câmera não dx fovy = arctan( 2 znear ) (4) aspect = dx up (5)
3.2 Restrições Cada restrição inserida no sistema é satisfeita de forma independente, alterando apenas o posicionamento das partículas diretamente relacionadas com a restrição em questão. Isso significa que uma restrição altera o modelo da câmera sem se preocupar com a qualidade do sistema como um todo, mas buscando apenas satisfazer a si própria. O uso de restrições que atuem de forma simples e independente se traduz num sistema eficiente e flexível, pois novas restrições podem ser adicionadas livremente ao sistema. A convergência do sistema se dá através do método de relaxação: o conjunto de restrições aplicadas ao modelo, incluindo suas restrições de barras rígidas implícitas, são satisfeitas por um processo iterativo. A alta taxa de quadros da aplicação assegura a convergência do sistema como um todo. Através da composição de restrições simples, conseguese a criação de uma grande variedade de movimentos de câmera. Algumas das restrições já incorporadas ao sistema são descritas a seguir. Barra Rígida A restrição de barra rígida define uma distância mínima e máxima entre duas partículas. O próprio modelo físico da câmera utiliza esta restrição para definir os espaçamentos entre as partículas (com valores mínimos e máximos iguais). Uma barra rígida conecta duas partículas, cada uma possuindo uma massa. Se as partículas estiverem fora da distância exigida, elas são aproximadas ou afastadas proporcionalmente à sua massa a fim de atender a restrição. A Figura 4 ilustra o procedimento de atendimento à restrição de uma barra formada por duas partículas de massas iguais. (a) (b) (c) Figura 4. Restrição de barra rígida: (a) barra não atendendo à restrição; (b) transformação do estado inválido da barra para o estado válido; (c) restrição satisfeita Posicionamento em um volume A restrição de posicionamento em um volume fixa uma partícula dentro de um volume. Quando aplicada à partícula p0 do modelo de câmera, força a câmera a atuar sempre posicionada dentro de um volume, área ou ponto específico do ambiente. O funcionamento da restrição verifica se a partícula p0 do modelo de câmera está dentro do volume especificado e, se não estiver, a partícula é arrastada para a borda mais próxima do volume. A Figura 5 ilustra o modelo de câmera atendendo à restrição. Note que o posicionamento das demais partículas é inalterado, devido à independência no tratamento das restrições. As restrições de barra rígida contidas no modelo de câmera se responsabilizam por tornar válido o estado final do modelo. (a) (b) (c) Figura 5. Restrição de posicionamento em volume: (a) câmera não atendendo à restrição; (b) transformação do estado inválido para o estado válido; (c) câmera com a restrição satisfeita. Enquadramento A restrição de enquadramento posiciona um objeto em uma área específica da tela rotacionando o modelo de câmera em torno de um eixo escolhido. A escolha do eixo de rotação permite que dois objetos sejam enquadrados simultaneamente na tela. Para enquadrar um primeiro objeto na área da tela, rotacionamos o modelo em torno da partícula p0. Para conseguir o enquadramento de um segundo objeto sem perder o enquadramento do primeiro, o modelo é rotacionado em relação à posição do primeiro objeto. Direção de um objeto A restrição de direção de um objeto posiciona a câmera em relação à direção para a qual um objeto está voltado. Dessa forma é possível, por exemplo, colocar a câmera atrás de um objeto. A restrição é atendida arrastando a partícula p0 para uma área que satisfaça a restrição. Colisão A restrição de colisão impede que a câmera colida com o cenário. A câmera possui um volume envolvente definido por uma esfera centrada na posição p0 + dir znear. O diâmetro da esfera é definido a partir dos planos do frustum de visão (up, bottom, left, right, znear e zfar) e é formado pela diagonal do quadrilátero extraído da interseção do plano znear com os planos up, bottom, left e right. A detecção de colisão define o quanto e em que direção houve a colisão, e a reação à colisão arrasta as partículas do modelo de câmera na direção contrária à direção de colisão.
Visibilidade A restrição de visibilidade impede que o volume envolvente de um objeto fique encoberto pelo cenário, desviando a câmera quando o cenário impede a visualização do objeto de interesse. Para encontrar uma solução que satisfaça a restrição de visibilidade, são lançados raios em direção ao objeto de interesse a partir da posição da partícula p0 do modelo de câmera. Primeiro, lançam-se raios considerando apenas o objeto de interesse. A seguir, os mesmo raios são lançados considerando o cenário sem o objeto de interesse. Os raios retornam a distância entre a partícula e o objeto de interesse ou a cena. A partir dessas duas distâncias, é possível determinar se o ponto do objeto de interesse atingido pelo raio está visível pela câmera. Considerando-se apenas os raios interceptados pelo cenário, calcula-se o centro geométrico dos pontos de interseção (raio contra cenário). A restrição de visibilidade opta por mover a partícula p0 do modelo de câmera na menor distância possível para tirar esse centro geométrico da área visualizada do objeto de interesse. A restrição tende a ser satisfeita repetindo este procedimento diversas vezes. Além das restrições citadas, foram incorporadas ao sistema proposto restrições de posicionamento em segmento de reta, orientação, fov, velocidade de translação, velocidade de rotação, velocidade do fov, distância de um objeto, tamanho na tela e respeito à linha de ação. Detalhes quanto ao funcionamento das restrições podem ser encontrados em [7]. 4 Interface externa A configuração de um comportamento de câmera é feita através do agrupamento de restrições de acordo com a necessidade do módulo diretor/editor. Dois parâmetros são comuns a todas as restrições: prioridade, responsável por estabelecer uma relação de importância entre as restrições; e valor de referência, responsável por definir uma margem de tolerância quanto ao atendimento da restrição, possibilitando que o módulo cinegrafista analise o quanto a restrição está sendo atendida. 4.1 Prioridade Ao agrupar as restrições em busca de uma determinada configuração de câmera, certas restrições possuem um grau de importância maior que outras. Por exemplo, as barras rígidas que formam o modelo da câmera devem ter uma prioridade de atendimento maior do que restrições como de enquadramento, uma vez que se não forem satisfeitas o modelo de câmera se tornará inválido. O valor de prioridade cria uma relação entre as restrições, e seu uso se dá da seguinte forma: uma vez calculado o quanto a restrição deverá alterar o estado do modelo, esse valor é multiplicado pelo valor da prioridade da restrição, que varia de 0 a 1. Dessa forma, restrições de baixa prioridade levam um número maior de iterações para serem satisfeitas, enquanto restrições com altos valores de prioridade são atendidas em poucas iterações. Valores de prioridade mais baixos também suavizam o movimento da câmera, enquanto valores mais altos tornam os movimentos mais bruscos. 4.2 Valor de referência O módulo cinegrafista precisa ser capaz de analisar o atendimento às restrições impostas, repassando essa informação ao diretor/editor. Dessa forma, o módulo diretor/editor consegue avaliar se as restrições definidas por ele devem permanecer como estão ou se a configuração atual deve ser alterada. A utilização de um valor de referência permite que o módulo cinegrafista dê uma resposta linear (0 a 1) quanto ao atendimento da restrição. O valor 1 indica que a restrição foi atendida; o valor 0 indica que a restrição não foi atendida mesmo considerando a tolerância definida pelo valor de referência. Além do valor de resposta de cada restrição, é retornado ao módulo diretor/editor um valor de resposta global, baseado nas respostas de todas as restrições. Esse valor é calculado através de uma média ponderada que se utiliza da prioridade de cada uma das restrições impostas. 5 Resultados Nesta seção, analisaremos o funcionamento do módulo cinegrafista proposto. Foram realizados dois tipos de testes para a avaliação do módulo cinegrafista. O primeiro corresponde a uma análise do custo computacional de cada uma das restrições, assim como uma análise da variação do custo computacional total referente à adição de restrições no sistema. O segundo teste consiste em verificar se o módulo cinegrafista é capaz de posicionar a câmera de maneira satisfatória e se as restrições implementadas conseguem criar, através de seus agrupamentos, os movimentos de câmera esperados. A seguir, é explicado como cada um desses testes foi desenvolvido. 5.1 Análise de Desempenho O cálculo do custo computacional do módulo cinegrafista não pode ser feito a partir de uma configuração específica. Como o módulo é configurado a partir de uma
composição qualquer de restrições, primeiramente propomos uma análise de desempenho do pior caso para cada restrição em separado. O pior caso de uma restrição ocorre quando a câmera não atende às definições da restrição, isto é, a restrição força um reposicionamento da câmera. A Figura 6 apresenta um gráfico do custo computacional médio em milissegundos de cada restrição. Para a obtenção dos valores, foi utilizado um computador Pentium IV 2.4Ghz com 512Mb de memória RAM e retirada a média do tempo gasto para a restrição atuar dez mil vezes em seu pior caso. Salientamos que o custo das restrições de oclusão e colisão depende da complexidade do sistema. Neste experimento computacional, o ambiente externo utilizado foi muito simples, definido apenas por duas esferas. O gráfico demonstra o alto custo relativo destas restrições em relação às demais. real. O custo real foi calculado posicionando a câmera em um estado no qual nenhuma restrição estivesse sendo atendida, e a partir daí foi calculado o custo computacional da execução das nitr iterações. A Figura 7 permite observar que o custo real acompanha o crescimento do custo calculado à medida que novas restrições são adicionadas ao módulo. Dessa forma, é possível fazer uma aproximação do custo computacional real do módulo a partir do conhecimento dos custos individuais das restrições e do número total de iterações do sistema. Com isto, pode-se prever um limite máximo do tempo necessário para posicionar a câmera no ambiente virtual seguindo as regras impostas. Figura 7. Comparação entre custo real e custo calculado A partir dos desempenhos constatados, podemos concluir que, para a cena com baixa complexidade utilizada no experimento, o posicionamento da câmera pode ser feito de forma eficiente. Figura 6. Custo individual de cada restrição A partir do custo médio por iteração de cada restrição, é possível avaliar um custo aproximado do módulo como um todo. A função de custo se baseia no número de iterações do sistema (nitr), no custo de cada uma das restrições adicionadas (r i ) e no custo das dez restrições de barras rígidas que pertencem ao modelo físico (stick) da câmera. Como os custos utilizados correspondem ao custo de pior caso, a função do custo do módulo também se refere ao seu pior caso. A equação 6 permite calcular um valor máximo do custo computacional total esperado do módulo com diferentes restrições. custo = nitr (10 stick + k r i ) (6) i=1 Com o objetivo de validar a fórmula acima, foi realizado um experimento comparando o custo calculado com o custo 5.2 Exemplos de configurações de câmera Para exemplificar o uso do módulo cinegrafista proposto, foram criados modelos de movimentação de câmera. O resultado alcançado demonstra que a composição de restrições simples é capaz de realizar configurações de câmera usualmente encontradas na cinematografia e nos jogos eletrônicos. Fixa Este experimento consiste em posicionar a câmera em um local fixo na cena e enquadrar um determinado objeto no centro da tela. Para criar esta configuração foi adicionada uma restrição de Posicionamento em um volume com prioridade 1.0 que fixa a câmera em uma posição, uma restrição de Enquadramento com prioridade 0.05 que força o objeto a aparecer sempre no meio da tela, e uma restrição de Orientação com prioridade 0.9 que fixa o up da câmera. O uso de uma baixa prioridade para a
restric a o de enquadramento permitiu que a ca mera assumisse um movimento mais suave, criando um atraso na rotac a o da ca mera em relac a o a movimentac a o do objeto. Sobre trilhos Esta configurac a o posiciona a ca mera sobre uma linha, procurando manter uma dista ncia mı nima de um objeto que deve sempre ser enquadrado no centro da tela. Movimentos como este sa o utilizados quando se procura seguir um determinado objeto, como em transmisso es de determinados jogos esportivos, como o futebol (Figura 8). Este movimento foi realizado adicionando uma restric a o de Posicionamento em segmento de reta(prioridade 0.5) ale m de restric o es quanto a Velocidade de translac a o(0.9), Orientac a o(0.9), Velocidade de rotac a o(0.2), Enquadramento(0.1), Visibilidade(0.5) e Dista ncia de um objeto(0.2). objeto, deixando-o levemente deslocado do centro da tela. A Figura 9 ilustra uma tomada de cena com esta configurac a o. Esta configurac a o foi conseguida atrave s da adic a o de restric o es de Orientac a o(0.9), para na o alterar a direc a o up da ca mera; Dista ncia de um objeto(0.1), para a ca mera seguir o objeto; Direc a o de um objeto(0.01), para manter a ca mera atra s do objeto; Enquadramento(0.5), para enquadrar o objeto deslocado do centro da tela; e Colisa o(0.05), para evitar que a ca mera colida com a cena. O uso de uma esfera envolvente na restric a o de colisa o permite detectar a colisa o antes do plano de projec a o da ca mera (znear) entrar em colisa o com o cena rio. Isto permite que valores mais baixos de prioridade sejam utilizados na restric a o de colisa o, criando uma desacelerac a o da ca mera a medida que esta se aproxima de um obsta culo. (a) (a) (b) (b) Figura 8. Posicionamento de ca mera sobre trilho: a esquerda a vista da ca mera e a direita uma vista superior incluindo a representac a o gra fica do frustum de visa o. Note que nas extremidades do segmento de reta que representa o trilho a ca mera e rotacionada para enquadrar o personagem Sobre os ombros A ca mera sobre os ombros e muito utilizada em jogos com visualizac a o de terceira pessoa. Consiste em posicionar a ca mera sempre atra s de um Figura 9. Posicionamento de ca mera sobre os ombros: a esquerda a vista da ca mera e a direita uma vista superior incluindo a representac a o gra fica do frustum de visa o. 6 Concluso es O mo dulo cinegrafista proposto neste trabalho permitiu o posicionamento automa tico de ca mera em ambientes virtuais dina micos. A utilizac a o de um modelo
físico para descrever a câmera, com o uso do método de integração Verlet e da técnica de relaxação, se mostrou adequada ao problema, resultando num sistema eficiente, eficaz e estável. O uso de restrições independentes se relacionando através de valores de prioridades permitiu a obtenção de diversas configurações de câmera baseada em agrupamentos de restrições simples. Resultados experimentais demonstram a capacidade do modelo proposto de simular diversas tomadas de cenas com base na cinematografia, para câmeras voltadas tanto para os jogadores quanto para os espectadores. 7 Agradecimentos Dissertação de Mestrado, Departamento de Informática, PUC-Rio, 2005. [8] Jakobsen, Thomas Advanced Character Physics In Proceedings of Game Developers Conference, pp. 383-401, 2001. [9] Otten, Martin Broadcasting Virtual Games in the Internet, 2001. [10] Press, William and Teukolsky, Saul Numerical Recipes, Comput. Phys., Vol. 3, pp. 91-94, 1993. [11] Verlet, L. Computer experiments on classical fluids. I. Thermodynamical properties of Lennard-Jones molecules, Phys. Rev., Vol. 159. pp. 98-105, 1967. Durante o desenvolvimento desta pesquisa, o primeiro autor recebeu auxílio financeiro da CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior). Referências [1] Amerson, Daniel and Kime, Shaun Real-time Cinematic Camera Control for Interactive Narratives, American Association for Artificial Intellingence, pp. 1-4, 2000. [2] Drucker, Steven and He, Li and Cohen, Michael and Wong, Curtis and Gupta, Anoop Spectator Games: A New Entertainment Modality For Networked Multiplayer Games, Microsoft Research, 2002. [3] Drucker, Steven Intelligent Camera Control for Graphical Environments, PhD Thesis, MIT Media Lab, 1994. [4] Halper, Niclas and Helbing, Ralf and Strothotte, Thomas A Camera Engine for Computer Games: Managing the Trade-off Between Constraint Satisfaction and Frame Coherence, In Proceedings of EUROGRAPHICS, Vol. 20, pp. 174-183, 2001. [5] Hawkins, Brian Creating an event-driven cinematic camera, In Game Developer Magazine, Sep/Nov, 2002. [6] He, Li and Cohen, Michael and Salesin, David The Virtual Cinematographer: A Paradigm for Automatic Real-Time Camera Control and Directing, In Proceedings of SIGGRAPH 96, pp. 217-224, 1996. [7] Hermann, Rodrigo Controle Automático de Câmera em Ambientes Virtuais Dinâmicos,