69
Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre em Engenharia Informática e Computadores Júri Presidente: Prof. Paulo Ferreira Orientador: Prof. Mário Rui Gomes Vogais: Prof. João António Madeiras Pereira Prof. Mauro Figueiredo Prof. Pedro Faria Lopes Novembro 2007

Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Bandos no NAC

Comportamento de grupo na aplicação

Narrativa Assistida por Computador

Estela Barros Barroco

Dissertação para obtenção do Grau de Mestre em

Engenharia Informática e Computadores

Júri

Presidente: Prof. Paulo Ferreira

Orientador: Prof. Mário Rui Gomes

Vogais: Prof. João António Madeiras Pereira

Prof. Mauro Figueiredo

Prof. Pedro Faria Lopes

Novembro 2007

Page 2: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

ii

AGRADECIMENTOS

Agradeço todo o apoio que recebi no desenvolvimento do projecto, da família, dos

amigos e colegas que me conseguiram estimular nos momentos mais difíceis.

Obrigada Pedro pelo apoio incondicional e Leonora pela disponibilidade total.

Lisboa, 12 de Novembro de 2007

Page 3: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

iii

ABSTRACT

Flocks and Herds movement has always been subject of great interest from humans.

Although it might seem quite simple, computer simulating it turned out a great challenge,

subject of various studies all around the globe.

This thesis summarizes the work done in this area, while searching for the best method to

support a flock in NAC, Narrativa Assistida por Computador1, a program developed

aiming towards aiding users creating stories.

There was a successful integration between the program and the modulation of such

synchronized animal group.

KEYWORDS

NAC, Algorithms, Flocks/Herds/Schools, Models, Imagination, Choice

1 Computer Assisted Narrative

Page 4: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

iv

RESUMO

O movimento de bandos e outros grupos de animais sempre foi do interesse dos seres

humanos. Embora, à partida, possa parecer bastante simples, simulá-lo

computacionalmente tem-se revelado uma tarefa bastante difícil, sendo o objectivo de

estudo de vários investigadores a nível mundial.

Esta tese sumariza o trabalho realizado nesta área, com o propósito de suportar o

melhor método para criar um bando no sistema Narrativa Assistida por Computador

(NAC), um programa desenvolvido no intuito de auxiliar o utilizador na produção de

histórias/narrativas.

Obteve-se uma integração de sucesso entre o programa existente, o NAC, e a modelação

de conjuntos sincronizados de animais pretendida.

PALAVRAS-CHAVE

NAC, Algoritmos, Bando/Cardume, Modelos, Imaginação, Escolha

Page 5: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

v

ÍNDICE

AGRADECIMENTOS.............................................................................................................................. II

ABSTRACT............................................................................................................................................ III

RESUMO................................................................................................................................................ IV

ÍNDICE.....................................................................................................................................................V

LISTA DE TABELAS ............................................................................................................................VII

LISTA DE FIGURAS............................................................................................................................VIII

1 INTRODUÇÃO................................................................................................................................ 1

2 TRABALHO RELACIONADO........................................................................................................ 3

2.1 REYNOLDS ............................................................................................................................... 3 2.2 TU E TERZOPOULOS ................................................................................................................. 4 2.3 BOUVIER ET AL. ........................................................................................................................ 5 2.4 BROGAN E HODGINS................................................................................................................. 6 2.5 MUSSE E THALMANN................................................................................................................. 7 2.6 NIEDERBERGER E GROSS ......................................................................................................... 8 2.7 SÍNTESE................................................................................................................................... 8

3 CONCEITOS, TÉCNICAS E METODOLOGIAS.......................................................................... 11

3.1 NAC – NARRATIVA ASSISTIDA POR COMPUTADOR ................................................................... 11 3.2 MOTORES GRÁFICOS .............................................................................................................. 26 3.3 CARACTERÍSTICAS RELEVANTES ............................................................................................. 27 3.4 CRITÉRIOS/MÉTRICAS DE SUCESSO ........................................................................................ 29 3.5 METODOLOGIA DE TRABALHO.................................................................................................. 30 3.6 GESTÃO DE RISCO ................................................................................................................. 33

4 DESCRIÇÃO DO TRABALHO..................................................................................................... 35

4.1 ACESSIBILIDADE ..................................................................................................................... 35 4.2 INTEGRAÇÃO .......................................................................................................................... 36 4.3 MODELOS GRÁFICOS.............................................................................................................. 38 4.4 ALGORITMOS.......................................................................................................................... 39

Page 6: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

vi

5 RESULTADOS ............................................................................................................................. 43

5.1 CARACTERÍSTICAS RELEVANTES.............................................................................................. 43 5.2 ANÁLISE DOS CRITÉRIOS/MÉTRICAS DE SUCESSO.................................................................... 44 5.3 COMPARAÇÃO DE ALGORITMOS............................................................................................... 44

6 CONCLUSÕES............................................................................................................................. 48

6.1 TRABALHO FUTURO ................................................................................................................ 51

7 BIBLIOGRAFIA............................................................................................................................ 52

7.1 REFERÊNCIAS PARA MODELAÇÃO GRÁFICA ............................................................................. 54

APÊNDICE A – DADOS DOS TESTES DE CARGA ........................................................................... 55

APÊNDICE B – DADOS DOS TESTES DE DISPERSÃO................................................................... 56

B.1 DADOS DO ALGORITMO 1 ........................................................................................................ 56 B.2 DADOS DO ALGORITMO REYNOLDS ......................................................................................... 57 B.3 DADOS DO ALGORITMO COMBINADO........................................................................................ 58

APÊNDICE C – MANUAL DE UTILIZADOR DO NAC ........................................................................ 59

C.1 INICIAR A APLICAÇÃO .............................................................................................................. 59 C.2 ABRIR/GUARDAR UMA NARRATIVA ........................................................................................... 59 C.3 CRIAÇÃO E DEFINIÇÃO DE UM ACTO ......................................................................................... 59 C.4 ESCOLHA DE PERSONAGENS E OBJECTOS............................................................................... 59 C.5 CRIAR NARRATIVA .................................................................................................................. 60 C.6 VISUALIZAR A NARRATIVA ....................................................................................................... 61 C.7 INFORMAÇÕES ADICIONAIS...................................................................................................... 61

Page 7: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

vii

LISTA DE TABELAS

TAB. 2.7-1 – CARACTERIZAÇÃO DOS SISTEMAS RELACIONADOS. ....................................................................... 10 TAB. 3.3-1 – CARACTERÍSTICAS RELEVANTES .................................................................................................... 28 TAB. 3.4-1 – CRITÉRIOS DE SUCESSO................................................................................................................. 29 TAB. 3.4-2 – MÉTRICAS DE AVALIAÇÃO ............................................................................................................... 30 TAB. 3.6-1 – IDENTIFICAÇÃO DE RISCOS.............................................................................................................. 33 TAB. 3.6-2 – ANÁLISE DE RISCOS ........................................................................................................................ 34 TAB. 3.6-3 – PLANO DE CONTINGÊNCIA .............................................................................................................. 34 TAB. 5.3-1 – RESULTADOS DOS TESTES DE CARGA, EM FPS ............................................................................. 45 TAB. 5.3-2 – RESULTADOS DAS MEDIDAS DE DISPERSÃO ................................................................................... 46

Page 8: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

LISTA DE FIGURAS

FIG. 2.1-1 – SIMULAÇÃO DE UM BANDO POR REGRAS SIMPLES EM CADA BOID................................................ 3 FIG. 2.2-1 – DEMONSTRAÇÃO DA FRAMEWORK, COM COMPORTAMENTO DE ACASALAMENTO E SCHOOLING..... 4 FIG. 2.4-1 – GRUPO DE 100 ROBOTS COM UMA PERNA (5 MINS DE PROCESSAMENTO)................................... 6 FIG. 2.5-1 – DIÁLOGO ENTRE LÍDER E MULTIDÃO; LÍDER COMUNICA E MULTIDÃO REAGE. ................................ 7 FIG. 2.6-1 – CERCA DE 700 AGENTES, COM ESQUEMA DE CORES DE MANEIRA A ILUSTRAR A DIVERSIDADE. .... 8 FIG. 3.1-1 – TEATRIX EM MODO PALCO. .................................................................................................... 13 FIG. 3.1-2 – DIFERENTES COMPONENTES DO CALIFIA. ............................................................................... 15 FIG. 3.1-3 – CASA VIRTUAL CONSTRUÍDA NO ZORA. ................................................................................... 15 FIG. 3.1-4 – MENU DAS DEFINIÇÕES ........................................................................................................ 17 FIG. 3.1-5 – ESQUEMA DE CICLO CRIATIVO................................................................................................ 18 FIG. 3.1-6 – ZONAS DA INTERFACE ........................................................................................................... 18 FIG. 3.1-7 – DIAGRAMA DE PACOTES........................................................................................................ 20 FIG. 3.1-8 – NAC NO MODO DE VISUALIZAÇÃO .......................................................................................... 24 FIG. 3.1-9 – BOUNDING BOX NO NAC ....................................................................................................... 25 FIG. 3.5-1 – PLANEAMENTO DO PROJECTO................................................................................................ 31 FIG. 3.5-2 – DIAGRAMA DE PERT DO PROJECTO....................................................................................... 32 FIG. 4.1-1 – ACESSIBILIDADE ATRAVÉS DO NAC........................................................................................ 35 FIG. 4.1-2 – DEFINIÇÃO DO ALGORITMO A UTILIZAR.................................................................................... 36 FIG. 4.2-1 – PONTOS BASE NO REFERENCIAL ............................................................................................ 36 FIG. 4.3-1 – MODELOS 3D PARA A FUNCIONALIDADE. ................................................................................ 39 FIG. 4.4-1 – POSIÇÃO RELATIVA DE ELEMENTOS NO ALGORITMO 1. ............................................................ 40 FIG. 4.4-2 – MOVIMENTO DO ALGORITMO 1 COM FACTOR DE CORRECÇÃO. ................................................. 41

viii

Page 9: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

1 INTRODUÇÃO

O movimento de bandos e outros grupos de animais sempre suscitou a curiosidade e o

interesse dos seres humanos. Embora, à partida, possa parecer bastante simples, simulá-lo

computacionalmente tem-se revelado uma tarefa bastante difícil, pelo que tem sido o objectivo

de estudo por vários investigadores a nível mundial.

Com este trabalho, propõem-se uma simulação desse movimento, ou seja, conceber o

programa/aplicação e funcionalidades necessárias para simular um bando/cardume, incluindo

uma simulação do seu comportamento em grupo. Contudo está-se perante uma área

extremamente diversa, envolvendo simulação de bandos, cardumes, rebanhos entre outros

animais, assim como humanos. Dada a grande complexidade dos últimos, normalmente os

trabalhos realizados nesta área estão vocacionados para uma actividade específica de entre as

inúmeras possibilidades; os mais recentes envolvem simulação de evacuação tendo por

suporte cartas geográficas previamente conhecidas, muito útil para a protecção civil e planos

de emergência, ou figuração para jogos 3D de grande realismo, também em ambientes

citadinos. Uma vez que não se estuda uma actividade específica, o trabalho realizado foi

focado no movimento de animais.

Para uma possível visualização do trabalho desenvolvido, optou-se por desenvolve-lo sobre

uma aplicação já existente, o NAC, Narrativa Assista por Computador [BH06], desenvolvida no

passado ano lectivo de 2005/2006, no âmbito do TFC2, que visa auxiliar os utilizadores na

criação das suas histórias, suportando a definição de cenários/personagens e a selecção de

acções, às quais é associada tanto uma descrição visual como textual.

Numa história existem não só personagens principais e secundárias mas também figurantes. O

trabalho realizado tem por finalidade aumentar o realismo visual da história, incidindo apenas

sobre os figurantes ou sobre o cenário. Foi este facto que motivou a escolha de um grupo de

animais em lugar de humanos, proporcionando ao utilizador novos ambientes com algum

realismo.

Assim, pretende-se oferecer uma possibilidade de controlo mais genérico e autónomo,

permitindo controlar um grupo de sujeitos, que funcionarão como uma só entidade, sem

necessitar de delinear previamente acções, ao contrário do que se passa com todos os outros

elementos da aplicação. É importante realçar, que esta nova funcionalidade não vem, de

maneira nenhuma, abolir os pressupostos enunciados anteriormente; apenas adiciona mais

2 Trabalho Final de Curso

1

Page 10: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

funcionalidade ao programa, dando mais uma opção ao utilizador e, consequentemente, mais

liberdade ao mesmo.

Com as ideias bem assentes, parte-se para a integração da nova funcionalidade no NAC. Isto

implica disponibilizar as opções para esta na interface do sistema, para além de arranjar um

gestor para a funcionalidade e controlo dos algoritmos.

Na Internet estão disponíveis vários modelos 3D dos mais variados objectos e animais. Assim

encontrar o modelo pretendido revelou-se uma tarefa relativamente pouco morosa, sendo

apenas necessário adaptar a qualidade e formato dos mesmos ao pretendido.

Finalmente, implementaram-se 3 algoritmos para simular o comportamento pretendido. Durante

a execução é dada a possibilidade de se alterar o algoritmo utilizado, observando de imediato a

resposta no mundo virtual.

Assim, resumidamente, esta tese apresenta o trabalho realizado nesta área, com o propósito

de explicitar o melhor método para criar um bando no sistema Narrativa Assistida por

Computador (NAC). Obteve-se uma integração de sucesso entre o programa existente, o NAC,

e a pretendida modelação de conjuntos sincronizados de animais.

Estruturalmente, o relatório começa com a identificação do tema objecto de estudo para, no

capítulo seguinte, se analisarem os trabalhos desenvolvidos sobre o assunto. O capítulo 3,

Conceitos, Técnicas e Metodologias, contêm toda a informação relevante para a resolução do

problema proposto. Para tal, o mesmo encontra-se dividido em várias secções, subdivididas,

respectivamente, em subsecções de modo a abordar os vários assuntos. De entre as secções,

destaca-se o NAC, com a apresentação do programa de base, os Motores Gráficos, estudando

brevemente os motores gráficos mais relevantes e respectiva escolha, as características mais

importantes, considerando-se estes elementos os parâmetros vitais do projecto, a Metodologia

de Trabalho, a Gestão de Risco com a respectiva análise e, finalmente, Critérios e Métricas de

Sucesso essenciais à posteriori avaliação do projecto.

Na descrição do trabalho é feita a ligação de todos os anteriores elementos, necessários à

execução do projecto. Aqui estão presentes 4 importantes secções; acessibilidade ligando o

NAC ao novo trabalho, do ponto de vista do utilizador; a integração, abordando o mesmo tema

mas a nível do sistema, elucidando alguns detalhes inerentes à física do movimento; segue-se

a secção dos modelos gráficos e finalmente a secção que descreve os algoritmos utilizados.

Apresentam-se seguidamente, no capítulo 5, os Resultados, onde se comparam resultados e

se analisam as opções tomadas, revelando-se inerentemente a resolução do problema, tal

como inicialmente proposto. Este apresenta assim 3 secções; na primeira, avalia-se o projecto

face às características enunciadas como relevantes anteriormente; na segunda, é debatido o

projecto face aos pressupostos assumidos nos critérios/métricas estabelecidos; na última,

termina-se o capítulo fazendo uma análise comparativa dos algoritmos apresentados.

Finalmente, o relatório termina com o capítulo das Conclusões que também apresenta algumas

propostas de possíveis trabalhos futuros na área e envolventes.

2

Page 11: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

2 TRABALHO RELACIONADO

Sendo o trabalho proposto destinado a ser interligado a uma aplicação já existente, grande

parte dos problemas de representação já foi resolvida com o projecto de base NAC [BH06],

pelo que os trabalhos que se apresentam a seguir encontram-se vocacionados para o estudo

do modelo de comportamento / representação dos grupos (bandos/cardumes).

Assim, foram estudados vários trabalhos de referência para grupos, quer humanos quer

animais, uma vez que, apesar do trabalho a desenvolver incidir sobre animais, muitos dos

mecanismos do funcionamento em grupo são semelhantes para as várias espécies.

Nas secções seguintes resumem-se esses estudos, apresentando, relativamente a cada um, o

problema abordado assim como os principais aspectos positivos e negativos do mesmo.

No final é feito uma pequena análise/resumo das alternativas estudadas.

2.1 REYNOLDS

Reynolds [Rey87] descreve um modelo de comportamento para simular o funcionamento de

uma bando de pássaros, tendo introduzido a ideia revolucionária de que se pode modelar um

comportamento complexo de um grupo de actores a partir de regras locais para cada um dos

elementos, em lugar de forçar condições globais para todo o grupo.

Neste trabalho o bando é simulado por um sistema de partículas, em que cada pássaro

simulado, aqui designado por boid, é representado por uma partícula. Cada boid é

implementado como agente independente, condicionado pelas regras da física, percepção do

ambiente e conjunto de comportamentos; deste modo os boids tentam evitar colisões com

outros e com o ambiente, acertam a velocidade com a dos outros elementos mais próximos e

deslocam-se para o centro do bando.

Fig. 2.1-1 – Simulação de um bando por regras simples em cada boid.

3

Page 12: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Mais tarde, em 1999, dada a simplicidade do bando simulado, Reynolds estende o seu trabalho

com a introdução de novos objectivos, como sejam evitar de obstáculos e percorrer

determinado caminho. Posteriormente (2000), é introduzida uma simples máquina de estados

de modo a permitir interacção em tempo real com o bando.

ASPECTOS POSITIVOS Modelação e apresentação de resultados rapidamente, através da definição de regras locais

condicionantes do movimento, sem necessidade de determinação/condições globais para

determinar o comportamento do grupo. Outra vantagem deste trabalho é a modelação de

cada boid independentemente dos restantes.

ASPECTOS NEGATIVOS A ideia inicial de Reynold embora revolucionária revelou-se não ser suficiente para

conseguir simular um bando com grande realismo, daí as extensões realizadas sobre o seu

trabalho original.

2.2 TU E TERZOPOULOS

Este trabalho [TT94] propõe uma framework para a simulação de ecossistemas naturais com

um mínimo de dados introduzidos pelo utilizador. Com esta pretendem atingir movimentos

realistas, comportamento individual dos animais e modelos de comportamento para grupos de

animais.

Para a demonstração deste trabalho, a framework foi aplicada ao ambiente submarino, criando

um ambiente povoado por vários peixes artificiais. Para além de apresentarem grande controlo

de movimento, o seu comportamento está dependente da sua percepção do mundo dinâmico

que o rodeia, não sendo, assim, possível prever completamente o seu comportamento. Para

além de comportamentos individuais complexos, estes peixes virtuais exibem algumas

emoções colectivas nomeadamente schooling e fuga aos predadores, semelhante aos bandos

de Reynolds descritos no ponto anterior.

Fig. 2.2-1 – Demonstração da framework, com comportamento de acasalamento e schooling.

4

Page 13: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Em termos de implementação, o trabalho está baseado numa máquina de estados, que lhe

permite seleccionar/manter o objectivo (schooling, acasalamento, fuga predador, etc.) até que o

mesmo seja alcançado, excepção feita se outro objectivo mais importante se sobrepõe.

Existem 3 tipos de peixes – predadores, presas e pacifistas – para que, tal como na natureza,

se possam observar vários tipos de comportamento. Estes tipos condicionam as variáveis e

seu peso no cálculo do objectivo a manter.

ASPECTOS POSITIVOS Uma das grandes vantagens deste trabalho é a simulação do ambiente ser independente do

utilizador, sendo os elementos guiados pelos seus objectivos e percepções do mundo. Ao

mesmo tempo apresenta grande realismo e heterogeneidade de peixes artificiais.

ASPECTOS NEGATIVOS Apesar de ser referida a sua heterogeneidade, esta está limitada aos peixes artificiais. Outro

ponto a ter em conta é o baixo número de peixes com que o sistema foi testado.

2.3 BOUVIER ET AL.

O trabalho destes autores [BG96, BCN97] consistiu em criar um simulador de multidões

humanas em ambientes urbanos. Para tal combinaram o sistema de partículas e máquina de

estados, numa abordagem em tudo semelhante aos boids de Reynolds.

Para a geração do movimento, no nível mais baixo, as pessoas apresentam forças atractivas e

repulsivas análogas às forças físicas, em que os objectivos apresentam forças atractivas e os

obstáculos forças repulsivas. No nível superior, o comportamento pretendido é conseguido

através da alteração de estado na máquina de estados; esta mudança está associada ao

tempo, ao alcance de determinados objectivos e à alteração da densidade da população

local/eventos globais.

ASPECTOS POSITIVOS Tal como no trabalho de Reynolds, este trabalho também apresenta a grande vantagem de

permitir controlar individualmente cada elemento, sem necessidade de variáveis globais,

através de regras locais.

ASPECTOS NEGATIVOS Apesar das regras simples que condicionam as pessoas artificiais, aquelas revelam-se

insuficientes para conseguir manter um objectivo nas mesmas, sendo assim preciso recorrer

a máquina de estados.

5

Page 14: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

2.4 BROGAN E HODGINS

Brogan e Hodgins [BH97, HB94] produziram um simulador de bandos, tendo o comportamento

do bando atingindo grande dinâmica através de um algoritmo de movimento (herding algorithm)

que adiciona propriedades físicas do movimento, originando um movimento muito mais realista

quando comparado aos boids.

O algoritmo apresenta 3 fases distintas: um modelo perceptual para a determinação das

criaturas visíveis por cada elemento do grupo; um algoritmo de posicionamento que calcula a

posição desejável para cada elemento assim como suas velocidades e ambiente envolvente e,

finalmente, o sistema de controlo que determina qual a posição dos membros para que os

objectivos de velocidade e posicionamento sejam atingidos.

Fig. 2.4-1 – Grupo de 100 robots com uma perna (5 mins de processamento)

Este sistema foi utilizado em inúmeros simuladores, nomeadamente grupos de robots com

apenas uma perna, ciclistas e sistemas de pontos de massa.

ASPECTOS POSITIVOS Grande realismo introduzido pelo algoritmo de movimento que pode ser facilmente aplicado

a uma grande variedade de grupos, independentemente da sua natureza.

ASPECTOS NEGATIVOS O verdadeiro problema do modelo passa pela determinação da velocidade, dado que não é

possível utilizar um sensor para a sua medição. Segundo os próprios autores, para maior

realismo, a velocidade devia ser a real e não uma previamente fixada. Infelizmente, com

velocidade real não são conseguidos resultados estáveis para o correcto funcionamento.

6

Page 15: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

2.5 MUSSE E THALMANN

Este trabalho [Mus00, MT01] consiste num simulador em tempo real para multidões, sendo a

sua grande inovação o modelo hierárquico. Em lugar de indivíduos, são apresentados níveis na

estrutura; multidão, grupos e elementos, sendo o grupo a estrutura mais inteligente, em que

cada elemento do grupo segue o comportamento especificado para o grupo.

Fig. 2.5-1 – Diálogo entre líder e multidão; líder comunica e multidão reage.

Existem vários tipos de grupos, consoante o seu nível de autonomia:

Grupos Guiados – São conduzidos por ordem específica dada pelo utilizador. Estas

ordens podem ser localizações para onde se devem dirigir ou adoptarem determinada

animação.

Grupos Programados – Seguem um determinado script de comportamento.

Grupos Autónomos – Conseguem comportamentos mais complexos face aos

anteriores, dado reagirem a eventos e situações. Para tal o ambiente está marcado

com pontos de interesse/objectivos, designados waypoints, assim como as acções

associadas a outros objectivos e pontos. Os agentes movem-se entre os waypoints por

curvas de Bezier.

Assim, o controlo sobre os elementos é feito através de comportamentos predefinidos, regras e

controlo guiado.

ASPECTOS POSITIVOS Simulador em tempo real que possibilita vários comportamentos distintos por parte dos seus

elementos, baseando os mesmos numa estrutura hierárquica, em lugar de controlo local.

Privilegia a simplicidade a nível do agente, onde o número de elementos é maior, reduzindo

os custos computacionais.

ASPECTOS NEGATIVOS O principal problema do modelo é a sua grande complexidade, implicando a aplicação de 3

modelos distintos, para cada uma das 3 camadas existentes: multidão, grupo e agente. Para

além disso, o comportamento inteligente implica uma pré-marcação do cenário, com a

definição dos waypoints.

7

Page 16: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

2.6 NIEDERBERGER E GROSS

Explorando o modelo hierárquico apresentado anteriormente, foi proposta, recentemente, uma

hierarquia baseada em agentes hierárquicos e heterogéneos para aplicações em tempo real

[NG03].

Neste trabalho, os comportamentos são definidos através de uma especialização nos tipos de

comportamentos existentes, numa herança múltipla de maneira a atingir-se novos tipos de

comportamentos. Os grupos, por sua vez, são recursivos e baseados em padrões de módulos.

De maneira a manter a fluidez do sistema, o motor de comportamento tem um tempo limite

para a sua actividade.

Fig. 2.6-1 – Cerca de 700 agentes, com esquema de cores de maneira a ilustrar a diversidade.

ASPECTOS POSITIVOS Grande realismo visual, o que torna este sistema particularmente indicado para jogos.

ASPECTOS NEGATIVOS O tempo computacional pode ser muito elevado, levando à introdução de limitação temporal

do mesmo. Isto pode implicar que nem sempre o comportamento dos elementos seja o mais

adequado, dado o processamento ter sido parado por falta de tempo. Assim, os próprios

autores reconhecem como futuras melhorias a introdução de melhores algoritmos de

temporização, scheduling algorithms, de modo a reduzir o impacto da limitação.

2.7 SÍNTESE

Em seguida é apresentado uma tabela esquemática onde é feita a análise dos sistemas

referenciados nos pontos anteriores.

As características utilizadas para a avaliação das pesquisas apresentadas pretendem facilitar

não só a definição dos requisitos do trabalho a realizar como também clarificar

comparativamente os diversos trabalhos.

8

Page 17: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Entidade: que entidades são representadas e qual a sua natureza?

Participantes: número de elementos apresentados nas demonstrações dos

programas/simuladores.

Física: o sistema integra as leis da física na modelação do movimento?

Inteligência: os elementos representam comportamentos demonstrativos de

inteligência, individual ou colectiva?

Hierarquia: os elementos estão organizados de forma hierárquica ou a cada um é

aplicado o modelo de comportamento?

Heterogeneidade: identifica a existência de variedade de elementos a simular, quer

em termos físicos quer comportamentais/emocionais.

Tempo Real: é possível interagir com o sistema em tempo real, ou seja, o sistema vai

calculando a informação necessária ou simplesmente actua de acordo com os dados

previamente calculados?

Colisão: sistema prevê a colisão (Avoidance3) ou simplesmente desvia depois de a

detectar (Acção/Reacção)?

Controlo: tipo de controlo exercido sobre os elementos do grupo, forma como os

elementos definem o seu comportamento.

Classificação: de acordo com o sistema original de classificação de Parent 2002,

incluindo a aproximação ViCrowd Model (Musse and Thalmann 2001) [Mus00]. Os

sistemas são, assim, classificados de acordo com um dos seguintes modelos: Particle

Systems (PS), Flocking Systems (FS), Vicrowd Model (VM) e Behavioural Systems

(BS).

Em seguida é apresentada uma tabela que sumariza a análise de todos os trabalhos estudados

na área de Comportamento de Grupo. Na primeira linha é indicado o sistema avaliado

enquanto na primeira coluna é indicado o elemento da avaliação, a característica relevante.

Pela observação da mesma, pode concluir-se que nenhum sistema possui todas as

características enumeradas. Contudo, todos eles obtêm bons resultados em relação aos seus

objectivos, no domínio específico em que actuam, verificando-se assim, ser uma questão de

adaptar o modelo ao objectivo pretendido.

3 Em português é traduzido por evitar colisões

9

Page 18: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Reynolds [Rey87]

Tu [TT94] Bouvier [BG96]

Brogan [BH97]

Musse [Mus00]

Niederberger [NG03]

Entidade Bando Peixes

artificiais

Multidão Bandos

animais

Multidão Multidão

Participantes Alguns Poucos Muitos Alguns Muitos Muitos

Física Não Sim Sim Sim Não Não

Inteligência Pouca

(extensão)

Muita Sim Pouca Pouca /

Nenhuma4

Pouca /

Nenhuma4

Hierarquia Bandos e

boids

opcional Não Bandos e

boids

Multidão,

grupos,

agentes

Multidão,

grupos,

agentes

Heterogeneidade N/A5 Sim N/A Não N/A Sim

Tempo Real Sim

(extensão)

Sim Sim Não Sim Sim

Colisão Avoidance Avoidance Acção /

Reacção

Avoidance Avoidance Avoidance

Controlo Tendência

local

Regras Campos

forças

Tendência

global

Tendência

local

Predefinidos

Regras

Controlo

guiado

Especialização

Herança

Padrões

Classificação FS BS PS FS VM VM

Tab. 2.7-1 – Caracterização dos sistemas relacionados.

4 Dependendo das regras comportamentais especificadas 5 Não Aplicável

10

Page 19: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3 CONCEITOS, TÉCNICAS E METODOLOGIAS

Em sequência da investigação apresentada no capítulo anterior, segue-se a introdução de toda

a informação relevante para a resolução do problema. Assim, é vital dar a conhecer o ambiente

de trabalho/programa de base onde todo o trabalho irá decorrer, o NAC. De modo a simplificar

largamente o trabalho da autora, libertando-a dos detalhes inerentes ao grafismo, permitindo,

consequentemente, maior atenção aos algoritmos/funcionamento, dedica-se também uma

secção aos motores gráficos e sua escolha.

Para garantir o sucesso do projecto é necessário elaborar um plano de execução que deve ser

revisto ao longo do trabalho para garantir a sua adequação. Para isso foi executado um

planeamento e feita a sua análise. Pela mesma ordem de ideias, é também enunciada a

comunicação entre os envolvidos no trabalho. De forma a controlar os principais possíveis

problemas do projecto, foi introduzida uma análise de risco. Este trabalho revela-se

extremamente importante dado permitir identificar estratégias que possam ser aplicadas em

projectos futuros.

Finalmente, é feita a avaliação dos termos da conclusão do projecto. Para se conseguir

concluir um trabalho é necessário identificar as metas a atingir e os parâmetros pelos quais o

trabalho deve ser avaliado. Por esse motivo, são aqui também apresentados os critérios e

métricas de sucesso.

Assim, estruturalmente, o capítulo encontra-se dividido em 6 secções. Tanto no NAC como nos

motores gráficos é apresentada a tecnologia base do desenvolvimento. Nas características

relevantes, metodologia de trabalho, gestão de risco e critérios/métricas de sucesso

introduzem-se os elementos que devem constar no projecto de forma a atingir os objectivos

propostos.

3.1 NAC – NARRATIVA ASSISTIDA POR COMPUTADOR

O projecto "NAC: Narrativa Assistida por Computador" [BH06] é num programa desenvolvido

para tentar satisfazer uma necessidade, assistir os utilizadores adultos na criação de histórias,

controlando mais do que uma personagem. O NAC visa auxiliar os utilizadores na criação das

suas histórias, suportando a definição de cenários/personagens e a selecção de acções, às

quais é associada tanto uma descrição visual como textual. A introdução das personagens na

história é totalmente manual, sendo o utilizador o responsável por este processo para além de

deter total controlo sobre a personagem recém-criada, o que implica que a mesma está

11

Page 20: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

completamente condicionada pelo utilizador; só realizando as tarefas que lhe forem

especificamente atribuídas. O NAC permite definir o contexto e depois torna possível qualquer

realização, não impõe limites ou barreiras. Há liberdade para fazer o que quiser com qualquer

personagem; não há limites à imaginação do utilizador. Para tal, o programa apoia o

desenvolvimento do cenário, personagens e acção de forma interactiva para cada acto que se

construir. Dá sugestões de modo a facilitar sempre o trabalho do utilizador, tornando o

desenvolvimento da história o mais interessante possível.

O sistema apresenta algumas novas características. Em primeiro lugar, o utilizador tem poder

para criar livremente a sua história, dando-lhe total controlo sobre a aplicação e ajuda, quando

necessário. Para além disso, o sistema permite:

Definição dos componentes da história (Cenário, Personagens, Objectos)

Especificação do enredo, total ou parcial.

Ajuda criativa através de um botão mágico

Controlo sobre as várias personagens

Possibilidade de vários utilizadores

Introdução de background para Personagens e Objectos

O objectivo do projecto NAC é obter uma aplicação divertida e fácil de utilizar; um programa

que active a imaginação do utilizador. Com ele, será possível criar histórias e visualizá-las em

seguida, sendo o utilizador senhor absoluto, controlando totalmente o mundo criado e tudo o

que ocorre no mesmo. Resumidamente, o NAC apresenta-se como uma aplicação simples que

fornece toda a liberdade precisa para a criação literária.

Para informação mais detalhada consulte a referência bibliográfica [BH06].

Este capítulo serve de introdução ao programa. Para isso, na secção 3.1.1 começa-se com a

pesquisa realizada relativamente a trabalhos dentro da mesma área, na subsecção Geração de

Narrativa e Histórias; segue-se uma breve panorâmica geral, onde são introduzidos os dois

grandes modos de visualização do NAC, explicando-se um pouco a lógica por trás do mesmo.

Segue-se a subsecção Aplicação, na sequência da anterior. Na implementação, faz-se uma

análise das classes e outros detalhes inerentes à estrutura interna do programa, seguindo-se a

subsecção em que são apresentadas as principais funcionalidades do programa;

adição/remoção de elementos, adição de acções, botão mágico, geração de prosa,

visualização de histórias e detecção de colisões. Finalmente, a secção termina com uma breve

enumeração das grandes vantagens do NAC.

Nota: que para um melhor entendimento do funcionamento do programa, o leitor deverá

recorrer ao manual de utilizador em anexo, ou consultar o artigo completo das autoras [BH06].

12

Page 21: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.1.1 GERAÇÃO DE NARRATIVA E HISTÓRIAS

Na área de geração de narrativa/criação de histórias, que serviu de base para o

desenvolvimento do NAC, têm sido desenvolvidos muitos novos trabalhos. As abordagens

também são bastante distintas, desde geração de caminhos possíveis a tomar (KidPad [B99])

até a interacção com componentes do Mundo Real (Pogo [B99]).

Em seguida serão brevemente analisados sistemas que englobam aspectos interessantes

sobre a geração da narrativa; contudo muitos outros ficaram por mencionar, nomeadamente o

StoryBuilder [AA03], que permite criar histórias através da construção de páginas ao estilo dos

livros de banda desenhada.

3.1.1.1 TEATRIX

O Teatrix [MP01] consiste num ambiente virtual para criação de histórias, destinado a crianças

(4-8 anos) criado no grupo GAIPS6 do IST. A aplicação encontra-se dividida em três partes:

bastidores (backstage), palco (on stage) e audiência (audience).

Nos Bastidores, as crianças podem escolher o cenário, os objectos e as personagens que irão

constituir a história. No Palco é criada a história em si; cada criança escolhe uma personagem

e entra na história, que vai evoluindo consoante as acções realizadas por cada um dos

intervenientes. Na terceira e última parte, a audiência, as crianças, podem visualizar a história

criada.

Fig. 3.1-1 – Teatrix em modo Palco.

6 Grupo de Agentes Inteligentes e Pessoas Sintéticas

13

Page 22: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Uma das vantagens deste sistema é a possibilidade de interagir com outras pessoas na

construção da história, assim como a divisão da construção da história em partes distintas que

são mais facilmente seguidas pelas crianças, potenciais utilizadores.

Pelo lado negativo aparece o facto de só ser possível controlar uma personagem, o que limita a

construção da história. Para além disso, a cada personagem é atribuído um papel na história

que condiciona a sua actuação e, consequentemente, a liberdade do utilizador.

3.1.1.2 SAGA

Support and Guidance Architecture [MP01] é uma arquitectura aberta que tem por objectivo ser

integrável com os actuais sistemas de criação de histórias destinados a crianças,

providenciando aos referidos sistemas:

Criar Histórias que possibilitem às crianças tomarem papéis diferentes em situações

diferentes;

Ajudar na criação e compreensão das histórias geradas, pelas próprias crianças;

Levar à reflexão sobre a sua personagem e seu comportamento.

Actualmente está a ser utilizado em colaboração com o sistema Teatrix, descrito anteriormente.

3.1.1.3 CALIFIA

O Califia [G01] é um sistema onde se explora uma novela interactiva com fundo histórico sobre

um tesouro perdido na Califórnia. Foi criado pela investigadora M. D. Coverley. No Califia é

possível observar como diferentes caminhos se cruzam consoante o utilizador/leitor decide que

acção tomar, que documento ler. Embora seja constituído por 4 secções/caminhos distintos é

possível relacioná-los e ligá-los ao longo da leitura. A parte da história em si que pode ser lida,

vivida e condicionada pelo leitor, existindo um enquadramento histórico de todos os

personagens que construíram os diferentes caminhos que a história pode tomar. Assim, com

este sistema, o utilizador fica a saber mais sobre as personagens, quando comparado a outros

mais habituais.

A sua grande vantagem prende-se com o facto de existir um grande historial sobre as

personagens existentes na história, assim como a presença de diferentes narradores,

permitindo visualizar a história de pontos de vista diferentes.

Tem, no entanto, a desvantagem de toda a acção se desenrolar num espaço fixo; o utilizador

encontra-se preso dentro do mundo do tesouro perdido na Califórnia. Tal como no Teatrix,

também aqui só é possível personificar uma personagem o que pode comprometer a

construção livre da história.

14

Page 23: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Fig. 3.1-2 – Diferentes componentes do Califia.

3.1.1.4 ZORA

O Zora [B99] consiste num Mundo Virtual 3D baseado em narrativa e foi criado pela

investigadora Marina Bers no MIT. Neste trabalho, os utilizadores são representados por

avatares e podem navegar pelo mundo (uma cidade virtual). O mundo de Zora encontra-se

dividido em várias zonas; casas pessoais, centros comunitários, templos, espaços públicos,

etc. Os utilizadores podem popular a cidade criando casas, objectos, personagens. A

comunicação entre utilizadores é baseada em texto e gestos. A história evolui consoante os

espaços visitados pelo utilizador, assim como as pessoas e objectos com que ele interagem.

O sistema Zora apresenta inúmeras vantagens; além da liberdade extrema dos seus

utilizadores para percorrerem um mundo dinâmico, é possível introduzir novas personagens e

objectos que por sua vez poderão ser acedidos por diferentes utilizadores.

Contudo, tal como acontecia com os sistemas anteriores, também aqui o utilizador está

confinado a uma única personagem; só esta é controlada por si, existindo deste modo as

limitações já referidas anteriormente.

Fig. 3.1-3 – Casa virtual construída no Zora.

15

Page 24: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.1.1.5 SÍNTESE

Durante a investigação sobre Geração de Narrativa e Histórias, foram estudados alguns

sistemas e aplicações. No fundamental, independentemente da implementação escolhida, são

apresentadas duas abordagens à criação de narrativas, em termos da acção, aqui designadas

por abordagem jogo e abordagem liberal.

Abordagem Jogo. O utilizador selecciona uma personagem e é inteiramente responsável pelo

controlo da mesma. Ou seja, a pessoa passa a mover-se na primeira pessoa, unificando-se

com a personagem que escolheu. As restantes personagens estão-lhe vedadas; não tem poder

para as controlar. Daí o paralelismo com um jogo, nomeadamente os de acção. O acesso do

utilizador ao mundo que criou está condicionado pela personagem que controla; pode ver o que

esta vê, e não mais.

Abordagem Liberal. Ao contrário do que acontece no primeiro caso, aqui o utilizador continua

a controlar todas as personagens e, deste modo, mantém o seu papel de terceira pessoa face

as mesmas; está em todas sem se comprometer exclusivamente a nenhuma.

Consequentemente, está no mundo na medida em que consegue ver tudo o que se passa sem,

no entanto, ter correspondente físico para si no mesmo – é omnipresente.

Uma narrativa é algo que se constrói pelo uso da imaginação, sendo esta uma das poucas

componentes do ser humano sem regras ou limites. Esta total liberdade é facilmente

trespassada para a abordagem liberal, aproximando-a desta.

Por outro lado, para este caso específico, a abordagem jogo tem dois grandes problemas

associados que condicionam a sua escolha; o primeiro desses problemas é a limitação do

utilizador a apenas um jogador/personagem, não podendo assim saber o que se passa com as

restantes quando não existe contacto directo entre elas e a personagem controlada pelo

utilizador; o segundo, vem do facto de estamos a jogar um jogo para o qual não existe

objectivo. Mesmo que se considere a condicionante à primeira pessoa de menos importância, o

mesmo não se poderá dizer de se retirar a um jogo a sua verdadeira essência, o objectivo. Por

estes motivos, o NAC segue a abordagem liberal.

3.1.2 PANORÂMICA GERAL

Existem duas grandes componentes no NAC: a visualização e a edição: No editor constrói-se a

história, sendo depois possível observá-la, colocando o utilizador perante uma interface

semelhante a um vídeo. Estas foram desenhadas de maneira a que o utilizador passe de uma

para a outra sem grande dificuldade, de maneira a que o utilizador possa ir recebendo

feedback do seu trabalho.

16

Page 25: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.1.2.1 VISUALIZADOR

É essencial ver as histórias criadas, sendo este um dos pontos fortes do NAC face a outros

sistemas concorrentes. Neste caso, a aplicação dispõe de uma interface semelhante a um

vídeo, com as funcionalidades normais destes dispositivos:

Play – Corre a história, podendo ver-se a sequência de acções;

Stop – Pára a visualização da história, reiniciando-a em seguida;

Pause – Pára a história no momento em que a mesma se encontra, iniciando-se a

visualização da mesma a partir desse ponto;

Foward/Backward – Avança/atrasa um instante na história;

Fast-Forward/Fast-Backward – Avança/atrasa um acto na história, o que inclui algumas

acções que se encontrem associadas ao mesmo.

3.1.2.2 EDITOR

Dado que o NAC é um projecto destinado a ajudar a construir histórias que não se encontram

pré-definidas, ou seja, normalmente o utilizador não tem uma ideia clara da história a contar,

vai seguindo a sua imaginação. Convém, por isso, que haja uma certa flexibilidade na ordem

das definições que o criador da história terá que realizar. Atendendo a isto, o programa NAC,

após uma breve introdução apresenta o menu das definições, esquematizado na figura que se

segue.

Fig. 3.1-4 – Menu das Definições

Existem dois ciclos acedidos pelos botões dentro das respectivas áreas limitadas a azul, como

se explica em seguida:

Ciclo Inicial – Seleccionam-se tanto o cenário e personagens como os objectos de

importância para a história. A ordem pela qual se escolhem os componentes não é

relevante e não é imperativo ter todos os elementos escolhidos, dado que durante o

ciclo seguinte é possível regressar a este para adicionar o que se considerar

necessário.

17

Page 26: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Ciclo Criativo – É aqui que efectivamente se conta a história, podendo o utilizador

navegar ou criar actos ao mesmo tempo que para cada um destes pode definir as

acções realizadas por cada uma das personagens presentes no mesmo acto.

Fig. 3.1-5 – Esquema de ciclo criativo

Em qualquer momento é possível guardar o trabalho realizado até ao momento e sair da

aplicação; antes de sair deve ser escolhido um nome para a narrativa que permitirá identifica-la

futuramente.

Dado que o processo de criação de narrativa é descontínuo, muitas vezes faltam ideias e

motivação ao utilizador para continuar na construção da sua história. Assim, a aplicação conta

com um botão de geração aleatória; quando solicitado, gerará um novo evento, que se traduz

na introdução de algo novo e inesperado na narrativa de modo a estimular e renovar o fluxo de

ideias no utilizador.

3.1.3 APLICAÇÃO

Quando se inicia a interacção com a aplicação, o utilizador depara-se com várias opções que

se podem agrupar em três grandes áreas principais: Display, Menus e Narrativa/Timeline,

esquematizadas na figura que se segue, e brevemente apresentadas em seguida. Acima

destas áreas está sempre presente um menu com as funcionalidades essenciais, como aliás se

verifica em qualquer programa comercializado actualmente.

Fig. 3.1-6 – Zonas da Interface

Narrativa / Timeline – Onde é apresentada a descrição textual, à medida que é gerada

automaticamente pelas escolhas de acções feitas pelos utilizadores. Nesta área é

18

Page 27: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

ainda possível adicionar uma nova acção seleccionando os respectivos intervenientes

das listas disponibilizadas. Também aqui se encontra a linha temporal, timeline,

representando o tempo associado com a história.

Display – Onde a aplicação 3D corre, ou seja, na área onde o utilizador vê a história

criada em todos os seus detalhes. Simultaneamente permite alguma interacção directa

com o utilizador nomeadamente de modo a permitir o correcto posicionamento de cada

um dos elementos que compõem a história.

Menus – Onde são apresentados os menus, dependendo não só das tarefas realizadas

como também na vista seleccionada. Na Vista de Visualização, o menu apresenta os

botões e funcionalidades normais de qualquer vídeo; na Vista Editor, este menu

depende da tarefa a realizar, mudando à medida que vão sendo concluídas ou de

acordo com a preferência do utilizador.

3.1.4 IMPLEMENTAÇÃO

O NAC foi desenvolvido sob a plataforma .NET, em C#, recorrendo ao motor gráfico Irrlicht,

para manipulação de parte da componente gráfica (escolha justificada na secção 3.2, Motores

Gráficos). Para suporte à execução os dados são mantidos em listas e hashtables suportadas

pelo próprio C#, que posteriormente são registados em ficheiros XML, aos quais foram

mudadas as extensões para facilitar a sua identificação quando se pretende abrir uma história

guardada.

Estas escolhas não foram aleatórias, resultando da extrema importância da interface neste tipo

de aplicações e pela preferência das autoras, o leva naturalmente ao desenvolvimento em C#;

para simplificar a componente gráfica, e tendo em conta o objectivo do projecto, recorreu-se a

um motor gráfico (Irrlicht [3], escolha justificada na secção seguinte), para o controlo dos

detalhes relacionados com o desenho e animação dos modelos e elementos da história.

Embora o Irrlicht suporte muitos mais modelos, devido ao tratamento que implicam, o NAC só

suporta modelos 3D .ms3d e .md2. Para os editar, recorreu-se ao MilkShape3D [1] sendo,

contudo, necessários alguns programas para conversão do tipo de ficheiros para os editáveis

por este programa.

Na figura que se segue, diagrama de pacotes, são visíveis 6 grandes áreas: persistência,

historia, modelos, gestão, narrativa e apresentação.

19

Page 28: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Fig. 3.1-7 – Diagrama de Pacotes

O pacote Histórias é responsável pela informação e controlo da mesma; uma história é

constituída por componentes, acções e actos, todos eles presentes neste grupo. Nas

componentes encontram-se as personagens, objectos e cenários, ou seja, os elementos com

tradução física, associados a modelos 3D; na história encontramos outros elementos vitais

para a narrativa como acções, actos e utilizadores registados, caso haja mais do que um. A

Persistência é responsável pelo carregamento e armazenamento dos dados, o que implica não

só o tratamento da informação derivada das criações do utilizador, nomeadamente história,

acções, actos, etc., como também os modelos físicos associados às personagens/elementos.

Dentro da informação gerida pelo programa é possível distinguir dois tipos diferentes; os dados

relativos à história em si, presentes no pacote anterior, e os modelos 3D e sua representação

gráfica (no Irrlicht [3]), do pacote Modelos. Na Narrativa incluem-se todas as classes que lidam

com o discurso; ou seja, todos os ficheiros necessários para gerar o discurso decorrente das

acções seleccionadas pelos utilizadores. É também responsável por carregar e guardar esta

informação, para além de ser a responsável por determinar as acções disponíveis em cada

momento. O pacote Apresentação tem a responsabilidade de apresentar as funcionalidades ao

utilizador, tem todos os momentos, maneira de a visualizar e editar as suas histórias. De uma

maneira geral, é possível dividir estes menus em dois grupos; os responsáveis pelo editar/criar

histórias e os de visualização das histórias criadas. No primeiro caso temos as funcionalidades

de adição/remoção de personagens, objectos e acções, controlo sobre a posição e movimento

do elenco, criação/edição e remoção de actos – ou seja, a generalidade das interacções com

20

Page 29: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

os elementos de modo a dar vida aos elementos, construindo a história; no caso da

visualização, temos um menu semelhante a um Vídeo, permitindo as funcionalidades básicas

deste tipo de aparelhos. Finalmente, no Gestor (Manager) estão várias classes, cada uma

delas responsável por garantir que a informação está convenientemente guardada, a geração

de narrativa bem integrada e os menus controlados, para além de se assegurar do correcto

funcionamento do motor gráfico. Dado que cerne do projecto é informação, este pacote é

essencial para a unificação de todo o programa.

3.1.4.1 ESTRUTURAS DE DADOS MAIS IMPORTANTES

O NAC está organizado de maneira a que o fluxo de informação seja claro e bem organizado.

As histórias são uma sequência de acções, envolvendo personagens e objectos num espaço e

tempo claramente definidos.

Componente é o nível mais baixo deste programa, estando fortemente relacionado com os

modelos 3D e sua representação espacial; pode ser um cenário, personagem ou objecto. Estes

últimos dois partilham informação como nome, modelo3D, caracterização e género. Um cenário

é definido pelo seu nome, identificador de skybox (fundo), terreno e lista de elementos

decorativos associados, billboards, sem qualquer papel na história, adicionando realismo,

aproximando o mundo virtual ao imaginado pelo utilizador.

Acção, Acto e Utilizador são classes sem ligação a um modelo físico. Acção é um evento

premeditado, ocorrendo num instante particular, estendendo-se por um intervalo de tempo,

envolvendo um ou mais componentes (personagens e/ou objectos). Acto está um nível acima

da acção, dado que envolve um conjunto de acções desenroladas num determinado cenário,

normalmente associadas ao acto em si. Finalmente, o Utilizador é quem está a criar a história.

Cada história deve ter pelo menos um utilizador; ainda assim, pode ser mais do que um,

desenvolvendo a história como uma sequência de escolhas de cada um dos envolvidos na sua

criação. A História é o elemento essencial do programa, sendo definida pelo seu nome, lista de

personagens, objectos, cenários e número de actos editáveis/visualizáveis.

Num projecto com tanta informação, é vital mantê-la organizada e controlada, tornando o

registo o mais simples possível. Para tal, o NAC dispõe dos seguintes gestores:

Modelos (ModelosManager) lidando com os modelos, seu carregamento e

armazenamento, assim como o controlo do Irrlicht, fazendo o carregamento dos

modelos de maneira a serem visualizados pelo utilizador de acordo com as

preferências do mesmo.

Animação (AnimacaoManager) é responsável pela animação das histórias guardadas,

para além de permitir o tratamento de todo o ciclo de visualização e dos diferentes

comandos possíveis.

21

Page 30: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

História (HistoriaManager) que, ao contrário do gestor de modelos que lida com os

mesmos sem compreender o seu significado, controla a informação por trás, ignorando

os modelos gráficos, envolvendo ainda o controlo dos utilizadores.

Geral (NacAppManager), o gestor máximo, mantendo os gestores de modelos e

história sob apertado controlo. Funciona como controlador do motor gráfico, Irrlicht,

detendo informações essenciais ao seu correcto funcionamento como o device, driver,

controlador de cena e câmara. É ainda responsável por controlar a Narrativa,

encarregada das acções disponíveis e geração da descrição textual.

3.1.4.2 ALTERAÇÕES/ADIÇÃO DE NOVAS FUNCIONALIDADES

No caso de se pretender adicionar nova funcionalidade ao programa, deve-se ter em conta

toda a estrutura do NAC de modo a minimizar os efeitos das alterações ao longo de todo o

código assim como manter o encapsulamento da informação como acontece no programa

base.

Posto isto, as alterações devem ser confinadas o máximo possível. No caso de ser adicionadas

várias novas funcionalidades ou uma única funcionalidade que implique muito tratamento de

informação deve-se considerar a introdução de um gestor para a gerir uma pasta dedicada

exclusivamente à nova funcionalidade, pasta essa que poderá não ser necessária caso a

informação a manter seja pouca.

À partida, para o registo da informação dever-se-á recorrer às classes da Persistência; este

pressuposto deve ser sempre respeitado, com excepção no caso de se tratar de informação

que não se reflicta na história directamente podendo assim adicionar-se uma nova pasta de

persistência dedicada exclusivamente à nova funcionalidade.

No caso de se pretender adicionar mais modelos 3D, a estrutura para os carregar e

disponibilizar já se encontra toda montada pelo que o programador deve aproveitá-la em lugar

de adicionar um novo meio de tratamento da informação. Isto aplica-se tanto a modelos de

elementos como todos os outros elementos 3D existentes e skyboxes. Assim, basta adicionar o

novo elemento à pasta DATA e referenciá-lo nos ficheiros de configuração para que o

programa o reconheça.

3.1.5 PRINCIPAIS FUNCIONALIDADES

3.1.5.1 ADIÇÃO/REMOÇÃO DE ELEMENTOS

Os elementos, que podem ser personagens, objectos ou elementos cénicos, encontram-se

definidos pelo modelo tridimensional que os representam. É a cadência destes elementos que

cria a história, o modo como interagem entre eles, assim como as alturas em que são

adicionados ou removidos. Dada a estrutura do programa, esta operação é simples bastando

22

Page 31: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

adicionar/remover uma entrada da lista de elementos da história e seu respectivo modelo

gráfico.

3.1.5.2 ADIÇÃO/REMOÇÃO DA ACÇÃO

Uma acção é algo que tanto uma personagem como um objecto podem realizar, embora

apenas as personagens as possam iniciar, tendo os objectos um papel meramente passivo nas

mesmas.

As classes da Narrativa lêem um ficheiro onde todas as acções possíveis se encontram

discriminadas. Estas acções são posteriormente mostradas ao utilizador, durante a construção

da história, nas áreas menu e narrativa/timeline. Sempre que o utilizador adiciona uma acção, o

programa associa-a ao acto corrente, assim como os seus intervenientes, personagens e

objectos, o local em que a acção foi gerada.

Se for guardada a história, estas acções serão registadas num ficheiro que descreve a

narrativa gerada, de modo que possam ser repetidas se assim entender o utilizador.

3.1.5.3 BOTÃO MÁGICO

Estudos independentes, com pessoas maioritariamente entre os 12 e os 19 anos de idade,

mostraram que diversas vezes o utilizador sofre de falta de imaginação/criatividade. Isto

provoca uma quebra na produção da narrativa, causando falta de confiança e instabilidade no

utilizador.

De modo a minorar este problema introduziu-se o conceito de Botão Mágico. O seu uso é

bastante simples; tudo o que é necessário é premir o botão, sempre disponível na vista de

edição da aplicação. Uma vez activado o botão gera uma acção aleatória sobre uma das

personagens. Este facto introduz acção e mistério, uma vez que é quase impossível prever o

resultado da acção uma vez esta ter sido iniciada. Um exemplo bastante simples é a escolha

de uma acção aleatória a realizar por uma das personagens da história.

Com esta acção gerada, espera-se impulsionar o utilizador e a sua imaginação, reiniciando o

processo criativo, como verificado em testes realizados anteriormente. Caso não se verifique a

situação desejada, existe sempre a possibilidade de pedir uma nova acção ao botão.

3.1.5.4 GERAÇÃO DE PROSA

Outra das funcionalidades existentes é a geração de texto, produzindo uma descrição das

acções realizadas. Após uma acção ter sido seleccionada é produzida uma descrição textual

da mesma sob a forma: Sujeito Verbo Complemento.

Foi assim necessário proceder à implementação de um gerador de formas verbais que

tornassem exequível a construção de frases gramaticalmente correctas. Através de um ficheiro

XML, as bases das formas verbais são lidas assim como certas características. Depois de se

23

Page 32: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

determinar a classe a que o verbo pertence é gerada a forma verbal pretendida. De forma a

tornar o gerador o mais modular possível a forma e tempo do verbo pretendidos são

caracterizáveis.

Como resultados finais obtidos obtêm-se frases do tipo “A formiga olhou para a tartaruga.”, “A

Lara Croft correu até a Fada.”, etc.

3.1.5.5 VISUALIZAÇÃO DE HISTÓRIAS

Geração de narrativa pode ser extremamente estimulante; contudo, se não for relatá-la a

terceiros, o seu interesse é muito reduzido. Assim, qualquer história guardada pelo programa

contém uma descrição completa da mesma, de maneira a permitir que possa ser visualizada

posteriormente, operação que implica duas fases distintas; carregamento e visualização. No

carregamento lê-se toda a história dos ficheiros para o programa; é bastante simples dado que

se tratam de ficheiros XML em que lhes foi mudada a extensão de maneira a facilitar a sua

identificação. Na visualização, após a conclusão do carregamento, é feita a tradução de toda a

informação para o ecrã (zona de Display). Depois de terminar esta tarefa basta seguir a lista de

acções descritas pelo utilizador, acompanhadas pela descrição textual das mesmas. É este

processo contínuo, o fluxo de informação que dá a noção de movimento, definindo a história.

Fig. 3.1-8 – NAC no modo de visualização

24

Page 33: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.1.5.6 DETECÇÃO DE COLISÕES

A funcionalidade de detecção de colisões veio somente melhorar a apresentação visual das

animações minorando a superfície de contacto entre os modelos que colidem. O modo

escolhido para realizar esta detecção foi através da intersecção de volumes envolventes,

minimizando desta forma a intersecção de modelos.

Fig. 3.1-9 – Bounding box no NAC

Esta funcionalidade é intrínseca à aplicação, não sendo por isso manipulável pelos utilizadores.

3.1.6 VANTAGENS DO NAC

A principal vantagem do NAC face a narrar histórias prende-se com o acompanhamento gráfico

da história para completar a descrição textual feita pelo narrador. Para além disso, permite uma

melhor aproximação entre o mundo imaginado (original) e o mundo criado, tornando mais fácil

aos ouvintes/destinatários conhecerem o mundo imaginado directamente a partir do criador,

dado que é este que cria o Mundo Virtual. Neste aspecto, o NAC actua como facilitador de

conversação, simplificando a transmissão das características físicas dos vários intervenientes

da história a narrar aos observadores. Entenda-se por estes últimos todas as pessoas que

observam/seguem a história, ainda que não participem na sua criação.

À partida, a construção do NAC viabiliza a criação de mundo diferente na história, à

semelhança do imaginado pelo utilizador, não estando, deste modo, limitado a deambular por

um mundo pré-definido. Também incentiva o utilizador a controlar mais do que uma

personagem, alargando a visão do utilizador sobre o sistema, características derivadas

directamente da abordagem liberal seguida, descentralizando a atenção do

narrador/observador, levando a um enriquecimento do mundo imaginado. Outro ponto que vale

a pena realçar é o público-alvo; ao contrário da maioria das aplicações que se destinam a

segmentos reduzidos, o NAC impõem apenas 3 condições:

25

Page 34: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Desejar narrar histórias,

Maturidade mínima - normalmente associada a maiores de 11 anos,

Aceitação de computadores e sistemas informáticos - associado a menores de 60

anos,

o que implica um maior leque de possíveis utilizadores, não estando limitado apenas a

crianças, como acontece com alguns dos projectos na área.

3.2 MOTORES GRÁFICOS

Para desenvolver tanto o NAC como atingir os objectivos propostos, optou-se por utilizar um

motor gráfico uma vez que o mesmo liberta o programador dos pormenores inerentes ao

desenho gráfico, facilitando largamente o seu trabalho. Os elementos do grupo são

dependentes do motor gráfico; para além da óbvia ligação com qualquer outro elemento

gráfico, estes dependem do motor gráfico que assegura a fluidez e a noção de sequência.

Em seguida é apresentada uma breve descrição de 3 dos vários motores estudados,

culminando com a justificação da escolha feita; de notar que esta investigação já tinha sido

realizada para a implementação do NAC, uma vez que o motor gráfico está integrado no

mesmo.

3.2.1 OGRE3D

O Ogre3D [4] (Object-oriented Graphics Rendering Engine) consiste num motor gráfico escrito

em C++. Este motor é independente da plataforma que se utiliza podendo ser utilizado num

sistema Linux, Mac ou Windows, suportando tanto Direct3D como OpenGL. Apresenta uma

interface orientada a objectos com vista a minimizar o esforço de rendering de cenas 3D e uma

documentação de todas as classes do motor.

Entre as características do Ogre3D encontramos Guardar/Carregar, suporte básico de física, e

detecção de colisões, diferentes modos de iluminação, sombras, mapeamento de texturas,

gestão de cena (Octrees, LOD), animação (cinemática inversa, animação por esqueleto) e uma

grande variedade de efeitos especiais (água, nevoeiro, fogo, sistemas de partículas).

3.2.2 AXIOM

O Axiom [2] é o motor Ogre3D escrito em C# de modo a possibilitar a utilização desta

linguagem para a criação de aplicações 3D. Este motor foi desenhado para se utilizar com o

Microsoft .NET, suportando tanto Direct3D como OpenGL. As suas principais desvantagens

face aos outros motores 3D são a sua dependência do sistema Windows e o facto de existir

pouca documentação sobre o motor.

26

Page 35: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Entre as suas características encontramos um suporte básico da física, e detecção de colisões,

modo de iluminação por vértice, diferentes modos de mapeamento de texturas, gestão de cena

(Octrees, LOD), animação (animação por imagens chave, animação por esqueleto) e uma

grande variedade de efeitos especiais (nevoeiro, espelho, sistemas de partículas).

3.2.3 IRRLICHT

O Irrlicht [3] consiste num motor gráfico escrito em C++. Este motor é independente da

plataforma que se utiliza podendo ser utilizado num sistema Linux ou Windows, suportando

tanto Direct3D como OpenGL. Apresenta uma interface de alto nível para criar aplicações 3D e

2D. Pode ser utilizado com linguagens de programação como C/C++, C# e VB.NET tendo uma

grande documentação disponível.

Entre as suas características encontramos um sistema orientado a objectos com suporte de

scripts LUA, detecção de colisões, diferentes modos de iluminação, mapeamento de texturas,

gestão de cena (Octrees, Occlusion culling), animação (Morphing, animação por esqueleto) e

uma grande variedade de efeitos especiais (água, nevoeiro, objectos transparentes, sistemas

de partículas parametrizáveis). Uma das particularidades deste motor prende-se com o facto de

suportar imensos formatos de modelos 3D, de onde se destacam .3ds, .obj, .ms3d, .bsp, .md2.

Tendo em vista as características de cada um dos motores gráficos aqui enunciados, optou-se

pela utilização do Irrlicht. Esta escolha baseou-se essencialmente nas seguintes

características:

Fácil integração deste motor gráfico com C#, no qual foi desenvolvido o resto do

projecto;

Boa documentação largamente difundida, incluindo a existência de fórum para o

esclarecimento de dúvidas;

Programa ainda em desenvolvimento, dando assim garantias da sua continuidade;

Suporte de vários formatos de ficheiros 3D;

Baixa curva de aprendizagem para a utilização;

Fácil instalação sem necessidade de aquisição de qualquer licença de funcionamento.

3.3 CARACTERÍSTICAS RELEVANTES

Ao longo deste relatório foram apresentadas as condicionantes e a pesquisa efectuada no

âmbito do trabalho a realizar. Assim, foram apresentados alguns sistemas relacionados com o

comportamento de grupo a resolver, em que cada um deles fornece ideias acerca das

possíveis alternativas à resolução de partes específicas do problema.

27

Page 36: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

De realçar que de facto não se provou existir um modelo melhor do que os outros; a grande

questão aqui passa por conseguir escolher um modelo ou combinação de modelos que melhor

se adapte aos recursos disponíveis e, simultaneamente, permita atingir o objectivo proposto.

Com este trabalho pretende-se adicionar um conjunto de animais no NAC, ou seja, um

conjunto de modelos 3D animados que se movem de forma autónoma e sincronizada entre

eles. Ao contrário de grande parte dos elementos disponíveis para a construção de histórias no

sistema, neste caso o objectivo é adicionar realismo e variedade, disponibilizando na aplicação

uma nova funcionalidade que não é uma personagem mas sim parte integrante do cenário ou

figurante.

Posto isto, é vital maximizar o realismo das histórias, através da introdução de elementos

animados nos cenários, minimizando o esforço computacional e o tempo envolvido no mesmo.

Assim, e tendo em conta tanto os pressupostos enunciados como as características utilizadas

anteriormente na avaliação dos vários sistemas pesquisados (secção 2.2), pretende-se obter

um sistema que detenha as seguintes características relevantes indicadas na tabela que se

segue.

Característica Descrição

Entidade Conjunto de animais. Poderá ser um cardume, bando ou outro.

Participantes Devem ser pelo menos em número suficiente para se assemelharem

efectivamente a um grupo real, por isso de alguns a muitos

Hierarquia Não é importante em termos de realismo mas poderá ser utilizada se isso

implicar menor tempo/esforço computacionais.

Tempo Real Em lugar de cálculos feitos à priori, é essencial que o grupo reaja ao ambiente

envolvente, às personagens, objectos e cenários, Isto implica que o grupo

actue de acordo com a informação que dispõem no momento.

Colisão Não devem existir colisões quer entre os elementos do grupo e os da história

(objectos e personagens) quer dos elementos do grupo entre si.

Controlo Regras locais de rápido processamento, mantendo a individualidade dos

vários elementos.

Física Apenas com a física do movimento se conseguiram obter movimentos

minimamente fidedignos.

Tab. 3.3-1 – Características relevantes

Assim, assume-se que o realismo pretendido implica um número razoável de participantes,

respeito pelas leis da física e cálculo em tempo real. A minimização do esforço implica a

28

Page 37: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

eliminação das características não absolutamente necessárias, como a inteligência, hierarquia

e heterogeneidade. Deste modo deve alcançar-se uma base sólida e adaptada aos objectivos

propostos de maior realismo.

3.4 CRITÉRIOS/MÉTRICAS DE SUCESSO

Embora tenham sido enunciadas as características relevantes para o desenvolvimento da

funcionalidade, as mesmas não devem ser entendidas como métricas para a avaliação do

projecto dado que não são facilmente quantificáveis. De modo a verificar que o projecto foi de

encontro ao pretendido, quer em matéria de objectivos quer em matéria de usabilidade

apresentam-se seguidamente critérios e métricas de avaliação do projecto. Uma vez que o

mesmo se encontra integrado sobre a plataforma do NAC, as métricas de avaliação do mesmo

serão mantidas, dado que o que se pretende é adicionar mais funcionalidade ao programa

sem, contudo, comprometer a já existente.

Assim, o programa deverá conter as funcionalidades descritas na tabela que se segue.

Critérios Funcionalidade

Critério 1 Escolha de cenário, objectos e personagens para a narrativa a criar

Critério 2 Descrição textual da acção criada

Critério 3 Botão de acção aleatória/desconhecida

Critério 4 Sistema Multi-Utilizador de modo alternado – ou seja, em cada momento só

pode jogar um jogador (como nos jogos de cartas)

Critério 5 Controlo sobre a acção a criar, mediante escolha de acções entre os

personagens e objectos

Critério 6 Comando sobre mais de uma personagem

Critério 7 Definição do passado (Background) de cada personagem, caso deseje

Critério 8 Inserção de um grupo de comportamento autónomo (nova funcionalidade)

Tab. 3.4-1 – Critérios de Sucesso

Os primeiros 7 critérios dizem respeito ao NAC; os critérios 1, 4 e 5 garantem uma proximidade

às aplicações já existentes enquanto os critérios 2, 3, 6 e 7 tem por objectivo manter a

inovação, controlo e interesse adicional que o projecto NAC pretende trazer à criação de

narrativas.

Finalmente, o critério 8 é o responsável pela avaliação da nova funcionalidade, ou seja, a

simulação do comportamento de grupo de forma autónoma.

29

Page 38: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.4.1 MÉTRICAS DE AVALIAÇÃO

A partir dos resultados dos questionários aos utilizadores e de modo a testar o desempenho do

projecto, foram definidas as métricas presentes na tabela que se segue. Mais uma vez, estão

juntamente com as métricas de avaliação do NAC as métricas específicas sobre os elementos

do grupo, dado que este último não poderia existir sem o NAC, uma vez ser implementado

sobre o mesmo.

Métricas Medição Objectivo

Métrica 1 Tempo de criação de uma narrativa Igual ou Inferior a 30 minutos

Métrica 2 Número de Cenário, Personagens e

Objectos colocados na narrativa

1 Cenário, 2 Personagens e 2

Objectos

Métrica 3 Número de Personagens controlados

na narrativa 2 Personagens

Métrica 4 Número de Objectos controlados na

narrativa 2 Objectos

Métrica 5 Número de utilizadores a controlar a

narrativa 2 Utilizadores

Métrica 6 Acções presentes na história

(baseado na historia o Pato)

Acções: Andar/Dirigir, Ver/Olhar,

Desafiar, Sobrevoar, Atirar.

Métrica 7 Grupos de elementos e sua

utilização 1 Grupo, com 5 elementos.

Métrica 8 Satisfação dos Utilizadores com a

aplicação Muito Satisfeitos7

Métrica 9 Satisfação dos Utilizadores com a

utilização da aplicação Muito Satisfeitos7

Tab. 3.4-2 – Métricas de Avaliação

3.5 METODOLOGIA DE TRABALHO

Um bom planeamento é essencial para se cumprirem os prazos estipulados, daí a importância

desta secção. Aqui é apresentado o planeamento inicial, assim como o diagrama de PERT

elaborado em consequência do mesmo, por análise dos seus pontos-chave.

7 Escala → Completamente satisfeito, Muito satisfeito, Satisfeito, Insatisfeito, Muito Insatisfeito, Inaceitável

30

Page 39: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Com este trabalho consegue-se prever em que altura do projecto se deveria estar num

determinado momento e consequentemente se o mesmo se encontra atrasado ou não; desta

maneira é mais fácil combater os deslizes temporais atempadamente, evitando-se que só

sejam detectados em alturas críticas para o trabalho.

Esta análise é ainda mais fulcral se se tiver em conta que, pela primeira vez, a autora realiza

um trabalho desta magnitude sozinha e em simultâneo com o exercício de uma actividade

profissional a tempo completo, o que implica um severo corte no número de horas de trabalho

semanais a dedicar ao projecto, sendo este executado maioritariamente no período de

descanso semanal. Por este motivo foi, à partida, previsível que o trabalho não fosse realizado

de forma constante ao longo de todo o ano, mas sim estando mais concentrado em

determinadas alturas, correspondendo normalmente a períodos de descanso académico.

Em seguida é apresentado o planeamento realizado para esta parte do trabalho.

Fig. 3.5-1 – Planeamento do projecto

O planeamento contempla os meses de Dezembro a Agosto do ano seguinte; no final de

Setembro será entregue o trabalho, pelo que esses dias são o limite máximo de deslizes no

programa. Estão discriminadas 7 actividades a realizar, ainda que os testes estejam repartidos

por dois períodos de tempo diferentes, correspondendo ao terminar e testar dos dois protótipos

enunciados. Em relação as actualizações, o mesmo foi sofrendo com o avanço do projecto,

como aliás seria de prever. No entanto, as mesmas passaram mais por ajustes temporais do

que por grandes alterações em trabalho a realizar. A única excepção foi o corte dos meses de

trabalho Outubro e Novembro de 2006, devido a questões administrativas do IST.

Perante a composição do planeamento, identificaram-se as seguintes tarefas essenciais:

Pesquisa, Survey, Recolha de modelos 3D, Integração gráfica, Algoritmos, Testes e Relatório

final. Estas não têm necessariamente tradução directa de um gráfico para o outro; contudo

mantêm-se o mesmo esquema de cores para facilitar a interpretação.

Este descritivo de tarefas a realizar, tempos associados as mesmas e respectivos milestones,

culminaram no diagrama de PERT apresentado na figura em baixo. Nele estão assinalados os

pontos-chave com um losango azul assim como, para cada tarefa, apontados o melhor tempo,

31

Page 40: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

pior tempo e tempo médio. Apesar de todos os caminhos possíveis estarem assinalados (a

cinzento), o melhor está assinalado a preto.

Fig. 3.5-2 – Diagrama de PERT do projecto

Analisando os tempos propostos e o melhor caminho obtêm-se os seguintes tempos, em dias,

para a execução do projecto:

Melhor Tempo Pior Tempo Tempo Médio

125 190 180

Pela proximidade do pior tempo ao tempo médio face ao melhor tempo pode-se inferir que se

trata de um projecto com algum risco de execução daí a elaboração da gestão de risco. Ainda

assim, dado que o pior tempo estimado para a execução é de 190 dias, cerca de 6 meses,

dispondo-se de 8 meses, à partida existem boas hipóteses do projecto estar concluído dentro

do tempo estabelecido.

Ao longo da evolução do projecto, a comunicação com o orientador foi sempre on-demand, ou

seja, sempre que necessário foram marcadas reuniões à medida das necessidades e de

acordo com a disponibilidade dos envolvidos. Ainda assim, com alguma regularidade, seria

enviado um ponto de situação do trabalho para que se mantivesse o registo do mesmo.

32

Page 41: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

3.6 GESTÃO DE RISCO

De modo organizar o trabalho rapidamente foi estabelecido um planeamento, apresentado na

secção anterior. Contudo, o mesmo foi sucessivamente detalhado e melhorado, à medida que

o problema ia sendo aperfeiçoado. Ainda assim, essas alterações foram vitais à boa evolução

do projecto, dado terem permitido terminar a tempo as tarefas cruciais e calendarizar

realisticamente as restantes.

Dada a classificação do trabalho com um médio risco de execução, partiu-se para a análise de

risco do mesmo, identificando, analisando e planeando os riscos envolvidos no

desenvolvimento.

3.6.1 IDENTIFICAÇÃO DE RISCO

Analisando o projecto a desenvolver foram identificados os seguintes riscos:

Tipo de Risco Riscos Possíveis

Tecnologia Risco 1 - Não ser possível conseguir os efeitos desejados de animação com o

motor gráfico escolhido.

Pessoal Risco 2 - A autora não estar disponível em fases críticas, por motivo de

doença ou trabalho.

Requisitos Risco 3 - Mudanças nos requisitos que implicam um grande redesenho da

aplicação.

Risco 4 - O tempo necessário para desenvolver a aplicação é subestimado. Estimativa

Risco 5 - O tamanho e complexidade da aplicação é subestimado.

Tab. 3.6-1 – Identificação de riscos

3.6.2 ANÁLISE DE RISCO

A análise de risco é realizada avaliando a probabilidade e efeitos do risco e apresentada na

tabela seguinte. Analisando os efeitos, pode observar-se que a maioria deles iria afectar

grandemente o desenvolvimento do projecto devido a esse facto risco.

Embora a probabilidade dos riscos seja baixa, procedeu-se a sucessivas revisões no

planeamento de modo a não aumentar estas probabilidades. Assim, conseguiu-se controlar os

riscos através de um bom planeamento e gestão de recursos.

33

Page 42: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Risco Efeito Probabilidade

Risco 1 Sério Baixa – o estudo realizado indica que será possível realizar os efeitos

desejados.

Risco 2 Sério Moderada – ainda que se tente minimizar o impacto com planeamento, o

cansaço na altura é algo extremamente condicionante que não se

consegue estimar com antecedência.

Risco 3 Tolerável Baixa – depende da opinião dos utilizadores alvo mas dado que a

aplicação teve uma boa aceitação não se espera grande resistência.

Risco 4 Sério Moderada – tentando de antemão minimizar possíveis efeitos deste

risco, deixou-se um mês “tampão” (Setembro 2007) de modo a de evitar

que deslizes no planeamento tenha consequências verdadeiramente

nefastas.

Risco 5 Sério Baixa – Cremos que os objectivos não escondem complexidade

demasiada.

Tab. 3.6-2 – Análise de Riscos

3.6.3 PLANEAMENTO DE RISCO

Ainda que o ideal seja evitar as situações identificadas como sendo de risco, elaborou-se um

plano de contingência, de maneira a combater ou ao menos minimizar o impacto.

Risco Plano de contingência

Risco 1 Procurar alternativas de animação, em último caso baixar os objectivos de

modo a obter uma menor animação.

Risco 2 Alterar o planeamento, aumentando as cargas horárias relativas a outras

zonas do planeamento para maximizar o tempo útil.

Risco 3 Estar a par da opinião dos utilizadores mais vezes ao longo do projecto

tendo por objectivo minimizar as alterações.

Risco 4 Recalcular o planeamento de modo a minimizar este risco. Definir objectivos

a implementar no tempo que falta.

Risco 5 Diminuir os objectivos a atingir de modo a obter um resultado final visível.

Tab. 3.6-3 – Plano de Contingência

34

Page 43: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

4 DESCRIÇÃO DO TRABALHO

Da ligação de todos os elementos do trabalho enunciados até ao momento, surge

efectivamente a descrição do trabalho, de como foi feito.

A evolução do trabalho teve duas grandes vertentes; ligação com o NAC e implementação de

algoritmos. Os algoritmos definirão o comportamento do grupo, contudo, para o mesmo ser

observável, é essencial poder-se observar o grupo assim como disponibilizar os comandos

acessíveis ao utilizador. Esta vertente de integração com o NAC teve em conta os

pressupostos enunciados na secção do NAC do capítulo anterior.

Este capítulo encontra-se separado em secções, cada uma delas correspondendo a uma área

de trabalho no projecto específica. A acessibilidade trata da ligação entre o NAC e o novo

trabalho do ponto de vista do utilizador; a integração aborda o mesmo tema mas a nível do

sistema, elucidando alguns detalhes inerentes à física do movimento. Segue-se a secção dos

modelos gráficos que explica o trabalho que se realizou na área. Finalmente a componente

algorítmica descreve os algoritmos utilizados.

4.1 ACESSIBILIDADE

Para que possa ser utilizado, é necessário integrar o trabalho realizado com o NAC. Para tal, é

vital definir a interface para esse contacto.

Sendo parte do cenário, é neste menu que se apresenta a opção de introduzir um grupo. O tipo

de elementos não é evitável, ou seja, o modelo gráfico associado a cada elemento será sempre

o mesmo. Na caixa de texto, na imagem com o número 0, o utilizador indica o número de

elementos que pretende que o grupo tenha, sendo estes automaticamente desenhados no ecrã

do programa. Caso não pretende nenhum grupo, bastará simplesmente colocar novamente o

número de elementos a 0.

Fig. 4.1-1 – Acessibilidade através do NAC

Apesar de aparecerem no ecrã, o grupo não iniciará o movimento enquanto o utilizador não

seleccionar o algoritmo pretendido, de entre os 3 disponíveis; Algoritmo1, Reynolds e

Combinado.

35

Page 44: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Fig. 4.1-2 – Definição do algoritmo a utilizar

O utilizador, com esta modularidade tem a possibilidade de alterar tanto o número de

elementos do grupo a qualquer momento, recorrendo ao menu cenário, como interactivamente

o algoritmo a utilizar, observando, de imediato, os resultados da alteração.

4.2 INTEGRAÇÃO

O novo módulo e suas funcionalidades implicaram algumas alterações no código do NAC. A

fim de minimizar e concentrar todo o trabalho numa área específica, foi adicionado um novo

gestor para os grupos, o BoidManager. Aqui está concentrado tudo o que é preciso para o

movimento do grupo, assim como sua modelação inicial. De entre as principais funções

existentes, destacam-se DefinePosicoesIniciais, VisualizaBoid, EliminaBoid, AnimaBoid e

MovimentaBoid, que se apresentam em seguida. Dada a nova funcionalidade não implicar

grande informação, optou-se por condensar tudo no gestor sem recorrer a uma pasta dedicada.

DefinePosicoesIniciais

Esta é a função responsável por determinar as posições iniciais dos elementos do grupo. Para

tal, recebe dois argumentos, o número de elementos que se pretende e a separação entre eles.

Ao contrário do que possa parecer, a colocação dos elementos não é aleatória, segue um

padrão, associados com os pontos como se pode observar na seguinte imagem do referencial.

Fig. 4.2-1 – Pontos base no referencial

36

Page 45: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Estes pontos base são multiplicados por vários múltiplos, até que todos os elementos tenham

sido colocados. Ou seja, considerando um grupo com 20 elementos com uma separação de 5

unidades, teremos o primeiro colocado na posição (5, 0, 0) e o último na posição (15, 0, 15);

isto porque os primeiros 7 verão as suas posições corresponderem aos pontos base vezes o

escalar 5, do 8º ao 14º terão os pontos base multiplicados por 10 e, finalmente, os 5 elementos

que sobram contaram com os seus pontos multiplicados por 15.

De notar, que o ponto mais óbvio de todos, a origem do referencial (0, 0, 0) foi excluído dos

pontos base uma vez que todos os seus múltiplos seriam igual a (0, 0, 0), o que implicaria

elementos sobrepostos na origem do referencial.

VisualizaBoid

Visualiza é o método que faz a ligação entre o número de elementos indicados pelo utilizador e

o seu aparecimento no ecrã de display do NAC. Por isso, é o método responsável por inicializar

toda a informação que será necessária para a correcta execução do programa, nesta

funcionalidade. Isto implica:

1. Criar cada um dos elementos.

2. Associar uma posição a cada um deles, recorrendo ao método

DefinePosicoesIniciais.

3. Associar um modelo físico ao mesmo, para que possa ser representado pelo Irrlicht

no display.

4. Atribuir uma velocidade ao elemento (não é necessário para todos os algoritmos).

5. Dar a ordem de desenho.

A partir daqui, o Irrlicht será capaz de desenhar os modelos na sua devida posição.

EliminaBoid

Responsável por eliminar todos os elementos do grupo. Para tal, tendo em vista a existência de

um vector que contêm todos os elementos do grupo, é preciso para cada um deles, removê-lo

do Irrilicht, de maneira a que já não haja representação gráfica do mesmo, e de seguida

remover o registo de maneira a que não permaneça no sistema.

AnimaBoid

Esta função é a responsável por movimentar um elemento da posição em que se encontra para

a nova posição em que se pretende que fique.

Embora o motor gráfico, Irrlicht, tenha uma função que permite movimentar um item da sua

posição actual para outra que lhe seja indicada, não orienta o modelo 3D associado para o

movimento pretendido; por isso é necessário orientar o modelo de maneira a evitar movimentos

não acompanhados pelo modelo 3D, que dá sensação de irrealismo. Para isto, em cada

37

Page 46: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

momento é necessário calcular o ângulo do deslocamento face à posição actual de maneira a

rodar o modelo 3D para a direcção pretendida, antes de iniciar o movimento propriamente dito,

calculado pelos algoritmos.

MovimentaBoid

Esta é a função responsável pela movimentação de todo o grupo. A cada ciclo de desenho do

Irrilicht, o MovimentaBoids é chamado. Se a mesma verificar que já passou mais de um

segundo desde a última vez que foi chamada então mandam-se calcular os novos destinos, de

acordo com o algoritmo seleccionado pelo utilizador. Nota que este segundo é essencial, caso

contrário em todos os ciclos seriam recalculadas as novas posições, não dando tempo aos

modelos de efectivamente se deslocarem, deixando, assim, o movimento dos elementos de ser

harmonioso para passar a uma série de saltos de uma posição para a outra. Esta verificação

aqui introduzida tem que ser realizada uma vez que o motor gráfico foi feito de maneira a

deslocar os modelos sem que o programador se tenha que preocupar em calcular as novas

posições dos elementos a cada frame.

4.3 MODELOS GRÁFICOS

Na Internet estão disponíveis, todos os dias, milhares de modelos 3D dos mais variados

objectos e animais. Contudo, a qualidade e formato dos mesmos nem sempre corresponde ao

esperado, o que se torna realmente importante quando se procura modelos 3D tão específicos

como neste caso; pássaros ou peixes.

Uma vez que o motor gráfico tem já muita funcionalidade implementada, a representação do

modelo terá certamente a qualidade correspondente à qualidade do modelo. Ao contrário da

normal suposição inicial, a maioria dos modelos disponíveis tem efectivamente muito detalhe;

no entanto, muito detalhe neste caso pode apenas tornar o processamento/carregamento mais

lento, comprometendo a fluidez do programa, sem acrescentar melhorias substanciais face a

um modelo mais simples complementado por uma boa textura.

Outro aspecto importante são os formatos dos modelos; o Irrlicht suporta vários modelos, no

entanto, devido ao tratamento específico que cada modelo necessita, nem todos os formatos

são suportados pelo NAC.

Mediante algum tratamento, recorrendo a programas para a modelação/conversão como o

Maya [5] ou o MilkShape [1], conseguiram-se dois modelos 3D bastante razoáveis para a

simulação de comportamento de grupo, que se apresenta na figura 4.3-1, em baixo.

38

Page 47: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Fig. 4.3-1 – Modelos 3D para a funcionalidade.

Ambos os modelos apresentam boas características para a representação estando, aliás,

disponíveis para personagens/objectos na história, tendo sido escolhido por defeito o atum

devido ao maior contraste com o meio envolvente. Ainda assim, é possível alterar o modelo

utilizado no menu da aplicação (menu sempre presente), estando actualmente disponíveis 3

modelos; o atum, a carpa e uma esfera, utilizada durante os testes do programa.

4.4 ALGORITMOS

Estão sempre disponíveis 3 algoritmos no menu do NAC. O utilizador deve seleccionar o

pretendido, sendo o seleccionado que condiciona o comportamento do grupo; contudo o

mesmo pode ser alterado, a qualquer momento da interacção, bastando para isso, seleccionar

o novo algoritmo pretendido.

Em seguida, será feita uma explicação de cada um dos algoritmos implementados. Nota que

durante a apresentação dos algoritmos é referido o ciclo de cálculos, aqui ciclo, correspondente

à chamada da função MovimentaBoid tendo decorrido pelo menos 1 segundo da iteração

anterior.

4.4.1 ALGORITMO 1

O nome deve-se ao facto de ter sido o primeiro algoritmo implementado.

A ideia é ter uma rota imaginária, definida por um conjunto de pontos no espaço. Em cada

iteração do ciclo, o sistema vai buscar o próximo ponto de referência da rota. Compara este

elemento com o elemento chave do grupo, o elemento guardado na posição 0. Da subtracção

dos dois pontos em questão, encontra um deslocamento, que será o deslocamento que cada

elemento do grupo terá que fazer para manter a sua posição relativamente aos outros

elementos do bando.

Assim, somando a posição de cada elemento com o calculado deslocamento, fica a conhecer-

se a nova posição para onde o elemento se deverá deslocar durante aquele ciclo de desenho

do Irrlicht [3].

A ideia era bastante simples, e parecia ser o suficiente para funcionar; contudo, uma vez que

se adiciona o deslocamento igual e ao mesmo tempo para todos os elementos do grupo, isto

39

Page 48: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

implica que todos os elementos têm, em cada momento a mesma posição relativa, como se

tenta explicar na imagem que se segue.

Fig. 4.4-1 – Posição relativa de elementos no Algoritmo 1.

Assim, tornou-se real a necessidade de alterações para os elementos, de maneira a que o

movimento não seja uniforme e, por isso, irrealista.

Como existem dois factores que levam a este deslocamento constante entre os elementos,

também existem duas maneiras de introduzir alterações para que o mesmo deixe de se

verificar; o tempo e o vector de deslocamento. A princípio, o tempo parece o mais fácil de

controlar; afinal de contas, basta não movê-los ao mesmo tempo para que o efeito se deixe de

sentir; o problema é o controlo do mesmo, visto que o cálculo das novas posições também não

é feito em cada iteração do programa. Para além disso, para um grupo de tamanho razoável,

muitos dos elementos irão ter de se mover no mesmo momento, o que implica que, ainda que

em termos de grupo haja alterações, irão formar-se alguns pequenos grupos com

comportamento semelhante ao que se queria eliminar. O que leva ao vector deslocamento. Se

todas as componentes de um vector forem normalizadas por um só escalar, então a direcção e

sentido do movimento mantém-se o mesmo, contudo o módulo do mesmo é diferente,

implicando assim, diferenças na distância percorrida. Assim, obtém-se, para cada elemento do

grupo:

novaPosicao = posicaoActual + (deslocacao * factorCorrecao) (2.1)

em que novaPosicao, posicaoActual e deslocacao são vectores e o

factorCorreccao é um escalar aleatório entre 0 e 1.

Com esta pequena alteração, conseguiu-se, a partir do mesmo estado inicial que na figura 4.4-

1 obter-se um comportamento muito mais variado e realista, apresentado na figura 4.4-2, em

baixo. Uma vez que os elementos seguem um troço demarcado inicialmente, os atrasos dos

elementos numa iteração acabam por ser compensadas na seguinte, conseguindo-se deste

modo manter o grupo coeso.

40

Page 49: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Fig. 4.4-2 – Movimento do Algoritmo 1 com factor de correcção.

4.4.2 REYNOLDS

Craig W. Reynold, cujo trabalho foi descrito na subsecção 2.1, introduziu a ideia inovadora que

se poderia simular um grupo de animais utilizando apenas regras simples para controlo local

dos elementos. Ainda que mais tarde tenha introduzido outros elementos na sua abordagem,

como uma máquina de estados, a ideia base do seu trabalho foi implementada neste algoritmo.

Em cada ciclo, é necessário recalcular as posições para todos os elementos do grupo, aqui

designados por boids. Neste algoritmo, a nova posição de um boid, posicaoDestino, é o

resultado da soma da posição actual do mesmo com a sua velocidade calculada no momento.

Por sua vez, a velocidade calculada é resultante da soma da velocidade actual com as regras

locais Regra1, Regra2 e Regra3, seguido de uma limitação para garantir que o boid permanece

dentro da área visível do ecrã (v4). No intuito de simplificar a descrição em cima, é apresentado

o extracto do pseudo-código correspondente, seguido de uma breve explicação de cada uma

das regras.

Para cada boid {

v1 = Regra1(); v2 = Regra2();

v3 = Regra3(); v4 = LimitaPosicoes();

Velocidade_Elemento = Velocidade_Elemento + v1 + v2 + v3 + v4; posicaoDestino = Posicao_Elemento + Velocidade_Elemento

}

Regra 1 – Os boids deslocam-se para o centro de massa calculado usando os boids vizinhos. Reynolds faz a média das posições de todos os boids (centro de massa); apesar de

este cálculo reduzir o esforço computacional, uma vez que o centro de massa é igual para

todos os boids, está-se a influenciar o cálculo com uma posição, a do boid em causa, que

realmente não contribui para o pretendido, o movimento. Por isso, é utilizado o centro de

percepção, semelhante ao anterior com a excepção de não ter em conta o próprio elemento

para os cálculos.

41

Page 50: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Regra 2 – Os boids tentam manter uma pequena distância de outros objectos, incluindo os outros boids. Com isto entenda-se, evitar colisões ao contrário de aproximação a objectos.

Assim, para atingir um vector que corresponda a este interesse, verifica-se para cada objecto

se a distância do mesmo ao boid em questão é ou não inferior a um determinado número; caso

seja, então procura-se movimentar o boid na direcção oposta do objecto. Com este movimento

consegue-se uma pequena repulsão, sem renunciar um movimento suave dos boids.

Regra 3 – Os boids tentam alcançar a velocidade dos outros boids. Para isso basta uma

média aritmética da velocidade de todos os boids do grupo com excepção do que se está a

calcular.

4.4.3 COMBINADO

Tal como o próprio nome sugere, este algoritmo resulta da junção dos dois algoritmos

apresentados anteriormente. A ideia subjacente ao mesmo é guiar um pouco o movimento do

grupo. Em lugar de simplesmente se guiar pelas regras locais que o interligam com os seus

vizinhos, aqui existe uma rota que se pretende cumprir, não devendo por isso deixar de cumprir

as regras locais inerentes ao seu comportamento animal.

Para o efeito, alterou-se ligeiramente o cálculo da posição destino de Reynolds, fazendo com

que a mesma dependa da calculada pelo algoritmo 1 (Posicao_A1) em lugar da posição actual

do elemento, à qual se somam as regras calculadas a partir do algoritmo de Reynolds.

posicaoDestino = Posicao_A1 + Velocidade_Elemento

Assim consegue-se sugerir um certo deslocamento no elemento, ainda que ande sempre

dentro do mesmo padrão.

42

Page 51: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

5 RESULTADOS

Neste capítulo comparam-se resultados, analisam-se os pressupostos planeados face ao que

realmente se atingiu, justificando as opções tomadas que culminaram na resolução do

problema.

Começa-se por avaliar o projecto face às características enunciadas como relevantes aquando

a apresentação do Survey e aqui presentes na secção 3.3. Para que o projecto se possa

considerar terminado, é necessário obedecer aos critérios/métricas que foram enunciados

anteriormente; esta análise constitui a segunda secção deste capítulo. Finalmente, termina-se

o capítulo fazendo uma análise comparativa dos algoritmos apresentados.

5.1 CARACTERÍSTICAS RELEVANTES

Na secção 3.3, foram enunciadas as características que se consideravam relevantes para

atingir o objectivo proposto. Com vista ao realismo, estabeleceu-se um número razoável de

participantes, respeito pelas leis da física e cálculo em tempo real. A minimização do esforço

computacional devido ao plano secundário da funcionalidade dentro de uma história implicou a

eliminação das características não absolutamente necessárias, como a inteligência, hierarquia

e heterogeneidade. A realização do trabalho ficou determinada numa abordagem semelhante à

de Reynolds, com regras locais, havendo um elemento central que segue um determinado

caminho calculado possivelmente de forma matemática ou seguindo uma trajectória pré-

definida, sendo os restantes elementos do grupo guiados por leis locais aplicadas sobre os

mesmos e em relação ao elemento central.

Número de participantes

Estabelecer um número realista de elementos de um bando pode ser uma tarefa muito

complicada, uma vez que na própria natureza os agrupamentos têm muitas condicionantes,

nomeadamente distância percorrida e porte do animal migratório. Tendo em vista que se

pretendia um grupo com alguns a muitos elementos, considera-se que o sistema responde às

expectativas suportando sem problemas grupos de 50 elementos em qualquer dos algoritmos.

Leis da Física e Tempo Real

As leis da física e o tempo real estabelecem o realismo da animação, sendo por isso dados

como vitais na funcionalidade desenvolvida. Para garantir que as mesmas seriam respeitadas,

teve-se em consideração dois aspectos fundamentais. Primeiro, em cada iteração é analisada

a posição dos elementos no ecrã e por isso consegue-se garantir que os elementos reagem às

alterações no mundo, ao mesmo tempo que são capazes de evitar colisões. Segundo, os

43

Page 52: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

elementos são orientados de acordo com o seu movimento e destino, de maneira a garantir

que efectivamente têm um objectivo, evitando-se assim que um elemento se esteja a dirigir

para um ponto, olhando para o sentido oposto.

Assim, foram integradas no projecto todas as características dadas como relevantes aquando a

análise do mesmo, sendo, por isso, um objectivo cumprido.

5.2 ANÁLISE DOS CRITÉRIOS/MÉTRICAS DE SUCESSO

Anteriormente (secção 3.4), foram apresentados os critérios/métricas de sucesso para a

realização do projecto, ou seja, foram definidos pontos vitais para o projecto se pudesse dar

como terminado. Uma vez que o projecto se encontra integrado sobre uma ferramenta

desenvolvida o ano passado, considerou-se correcto garantir que os critérios e métricas para

avaliar o mesmo seriam respeitados, adicionando-se critérios/métricas específicas para avaliar

a funcionalidade que se esteve a desenvolver.

Critérios. Todos os critérios foram respeitados, tanto os 7 primeiros referentes ao NAC como o

oitavo referente à nova funcionalidade, sendo assim possível inserir um grupo com

comportamento autónomo;

Métricas. Conseguiu-se manter os objectivos propostos em relação às métricas para a

avaliação do NAC. A nova métrica, 7, que estabelecia um grupo de 5 elementos foi também

atingida, sendo de facto possível constituir grupos com um número de elementos superior.

Dado que todas as métricas e critérios foram atingidos, considera-se que o projecto foi

realizado com sucesso.

5.3 COMPARAÇÃO DE ALGORITMOS

Para a avaliação dos algoritmos foram efectuados dois tipos de teste; teste de carga e medidas

de dispersão. Estas últimas, baseadas em modelos matemáticos estatísticos, permitem

alcançar números facilitando a avaliação e interpretação de resultados.

5.3.1 TESTES DE CARGA

Estes testes são utilizados no universo informático para medir o desempenho das aplicações,

podendo inclusive definir-se qual o ponto de vista, ainda que o mesmo seja vulgarmente

associado ao utilizador final do sistema.

Neste caso, uma vez que se trata de uma nova funcionalidade de um sistema, pretende-se

determinar a partir de que momento é que o processamento começa a condicionar o correcto

funcionamento do NAC. Com este objectivo em mente, constitui-se o seguinte teste; Para

44

Page 53: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

grupos com N elementos, qual a fluidez do programa? Em lugar da abordagem exaustiva, ou

seja, para cada algoritmo ir adicionando sucessivamente um elemento ao grupo até que se

note condicionamento no programa, decidiu-se por grupos múltiplos de 50 elementos. Os

resultados obtidos, em frames por segundo (FPS), podem ser consultados em anexo, estando

na tabela seguinte apenas as amostras em que o número de elementos é múltiplo de 100.

N.º elementos Algoritmo 1 Reynolds Combinado

100 90 75 142

200 48 20 29

300 33 0 0

400 25 0 0

500 20 0 0

Tab. 5.3-1 – Resultados dos testes de carga, em FPS

Para o preenchimento da tabela, considerou-se que o programa está OK quando a sua

execução foi completamente fluida, sem qualquer denúncia de processamento, com os FPS

acima dos 25; Falha implica que o tempo de cálculo é superior ao tempo do movimento, o que

implica ausência de fluidez, associado a FPS inferiores a 25.

Pela análise da tabela 5.3-1, rapidamente se consegue verificar que o Algoritmo com melhor

desempenho é Algoritmo 1, tendo conseguido chegar aos 400 elementos sem denunciar

qualquer processamento, notando-se o mesmo apenas em grupos com acima dos 450

elementos.

Estes valores nos testes de carga tem correspondência com a complexidade do algoritmos

[CS01] em questão. O Algoritmo 1 é de complexidade N, uma vez que para cada iteração é

realizado um cálculo para cada um dos N elementos do grupo. Os algoritmos Reynolds e

Combinado apresentam resultados semelhantes, resultados explicados pela sua semelhante

complexidade. No primeiro, cada iteração dos N elementos implica a aplicação de cada uma

das regras que por sua vez percorre os N elementos para efectuar os cálculos. Assim, tendo

em conta os cálculos em baixo,

N x (N + N + N) = N x 3N = 3N2

obtêm-se uma complexidade igual a N2 para o algoritmo de Reynolds.

O combinado aplica a mesma base que o algoritmo de Reynolds, adicionando o resultado das

regras aos cálculos realizados pelo Algoritmo 1, pelo que tem uma complexidade igual ao

mesmo, N2.

45

Page 54: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

De notar que a implementação do algoritmo de Reynolds foi feita de modo transparente, em

que cada regra é independente das outras em termos de cálculo. Isto implica que possa haver

algumas melhorias de processamento, juntando os cálculos. Numa primeira fase, é possível

obtendo assim uma bem mais desejável complexidade de N; contudo, torna-se praticamente

impossível reconhecer a aplicação ao passar os 3 ciclos para um, calculando, deste modo, de

uma só vez, os valores para as 3 regras. Neste caso a complexidade é de N x N, ou seja, N2.

Ainda que uma melhoria de coeficientes, a complexidade mantém-se face à anterior. Pode-se

condensar todos os cálculos numa única iteração, das actuais regras, sendo o esforço

conseguido à custa total da leitura de código e memória durante o processamento.

Na natureza, o número de elementos do bando ronda os 20 elementos, ainda que por vezes o

número dos mesmos possa ser bastante superior. Por esta razão, pode-se considerar que os

algoritmos são bastante razoáveis, conseguindo todos superar largamente este valor. Pela

avaliação da complexidade dos algoritmos pode-se concluir que quanto maior for o número de

elementos melhor será o desempenho do Algoritmo 1 face aos restantes.

5.3.2 MEDIDAS DE DISPERSÃO

O objectivo deste estudo é determinar o posicionamento relativo e distância entre os elementos

do grupo, para que estes dados possam sugerir uma melhor comparação face aos movimentos

dos grupos de animais na natureza. Assim, para comparar os algoritmos recorreu-se a medidas

de dispersão utilizadas normalmente em estudos estatísticos de dados.

Para a recolha dos dados, efectuar as medições necessárias para este tipo de cálculos,

introduziu-se uma nova opção de menu no programa para captar as posições actuais dos

elementos do grupo e as imprimisse, disponibilizando, assim, os valores. Foram realizadas

duas observações distintas para cada um dos algoritmos, uma com 10 elementos no grupo e

outra com 20 elementos. Para cada uma delas foram recolhidas as posições dos elementos no

espaço 3D em que se encontram.

Todos os resultados obtidos podem ser observados nas tabelas no Anexo A – Dados dos

testes de dispersão; na tabela que se segue são apresentados somente os resultados já

tratados.

Nº Média Desvio Padrão Amp. Inter-Quartil elems X Y Z X Y Z X Y Z

10 23,6 19,1 48,9 12,5 13,3 27,8 14,8 17,2 19,0 Algoritmo1 20 27,8 27,8 4,5 17,0 15,1 5,4 30,7 26,0 10,0 10 74,8 78,7 65,1 27,5 29,3 25,4 43,8 47,9 31,3 Reynolds 20 28,5 988,6 1348,3 268,3 434,2 350,3 366,1 680,4 463,6 10 77,2 68,5 110,6 22,6 19,9 32,7 14,2 16,2 28,6 Combinado 20 114,1 93,4 134,3 33,9 35,8 49,0 45,4 43,8 41,2

Tab. 5.3-2 – Resultados das medidas de dispersão

46

Page 55: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

De notar que se está a trabalhar com vectores, com posições no espaço 3D; como tal, cada

elemento detêm 3 componentes de posicionamento; X, Y e Z. Os dados das coordenadas são

estudadas independentemente, dado não fazer sentido considerá-los todos como pontos

distintos para análise.

Das várias medidas de dispersão de estatística, foram utilizadas a média, o desvio-padrão e a

amplitude Inter-Quartil. O desvio padrão dá uma medida da variabilidade ou dispersão com as

mesmas unidades que os dados, sendo tanto maior quanto a dispersão dos dados. A amplitude

Inter-Quartil, ao contrário da amplitude que é extremamente sensível à existência de um

número pequeno de observações demasiado grandes ou demasiado pequenas, é uma solução

de compromisso, pois não é afectada deste modo. Esta medida é definida como sendo a

diferença entre os 1º e 3º Quartis, ou seja, concluí-se que 50% dos elementos do meio da

amostra, estão contidos num intervalo com aquela amplitude. Mais uma vez, essa medida será

tanto maior quanto maior for a variabilidade nos dados, ainda que, neste caso, uma amplitude

Inter-Quartil nula não significa, necessariamente, que os dados não apresentem variabilidade.

Aplicando estes conceitos aos valores obtidos através das observações, constata-se que os

dados se encontram relativamente próximos uns dos outros, verificando-se de facto a sensação

de unidade/bando que se pretende transmitir.

Nos algoritmos com as regras de aproximação/repulsão, como acontece nos algoritmos de

Reynolds e Combinado, em cada momento, os elementos estão a afastar-se ou a aproximar-

se, sendo difícil prever qual será o tipo de movimento no momento da colheita da amostra

tendo em conta que as “fotos” das posições foram completamente aleatórias. Esta é a razão

pela qual o algoritmo Reynolds apresenta tão grandes intervalos para conter os seus elementos

na segunda observação (20 elementos).

Por outro lado, ainda que não muito evidente, também existe uma tendência para as segundas

observações apresentarem valores maiores. Isto porque com mais elementos torna-se mais

complicado concentrar os elementos em torno de si mesmos e, simultaneamente, evitar as

colisões, acabando, consequentemente, por se afastarem mais rapidamente.

47

Page 56: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

6 CONCLUSÕES

The aggregated motion is both beautiful and complex to contemplate: beautiful due

to the synchronisation, homogeneity and unity described in this type of motion, and

complex because there are many parameters to be handled in order to provide

these characteristics.

O movimento de bandos e outros grupos de animais sempre foi do interesse dos seres

humanos. Embora aparentemente simples, simulá-lo computacionalmente tem-se revelado o

objectivo de estudo de vários investigadores a nível mundial. Com este trabalho, propõem-se

uma simulação do referido comportamento de grupo.

No intuito de se entender a complexidade envolvida no trabalho e atingir a beleza da natureza,

estudou-se inúmeros trabalhos já desenvolvidos na área nas últimas décadas. Da análise dos

mesmos, concluiu-se não existe o melhor modelo face aos restantes; a grande questão aqui

passou por conseguir escolher um modelo ou combinação de modelos que melhor se adapte

aos recursos disponíveis e, simultaneamente, permita atingir o objectivo proposto, adicionar ao

NAC [BH06] um conjunto de peixes (modelos 3D animados) que se deslocam de forma

autónoma e sincronizada entre eles. Para isso é essencial conseguir integrar no projecto uma

entidade, um conjunto de animais, com um número mínimo de participantes para se

assemelhar a um grupo real, reagindo ao mundo virtual em que se integra em tempo real,

evitando colisões e respeitando as leis da física; dispensando hierarquia e controlo global,

apontado apenas aos resultados finais com baixos custos temporais e processamento.

Uma integração com sucesso passa por respeitar a estrutura do trabalho já realizado, definindo

claramente os pontos de contacto entre a nova funcionalidade e o já existente. Para evitar que

o código exclusivo da nova funcionalidade ficasse disperso por toda a aplicação, seguiu-se a

metodologia do NAC, criando um gestor dedicado à mesma, o BoidManager. Esta classe

contém os 3 algoritmos elaborados para a resolução do problema; Algoritmo 1, Reynolds e

Combinado. A ideia do Algoritmo 1 é seguir uma rota imaginária, definida por um conjunto de

pontos no espaço. Em cada iteração, o sistema determina o próximo ponto da rota, movimenta

o elemento chave para o mesmo e, simultaneamente o deslocamento do mesmo. Este

deslocamento é em parte aplicado aos outros elementos do grupo. O algoritmo de Reynolds

defende que o movimento de bandos pode ser conseguido com a aplicação de regras locais a

cada um dos elementos; por isso determina a nova posição de cada elemento ao considerar a

proximidade ao centro de massa do grupo, a distância aos seus vizinhos mais próximos e a

48

Page 57: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

velocidade dos elementos. O algoritmo Combinado resulta da aplicação das regras de

Reynolds ao seguir de trajecto característico do Algoritmo 1.

Com esta abordagem de concentrar ao máximo toda a informação de grupo numa classe,

conseguiu-se assim manter a modularidade e encapsulamento, louváveis características do

NAC.

Para evitar os problemas inerentes ao desenvolvimento de qualquer projecto, foi elaborado um

plano de gestão de risco. Foram identificados 5 riscos no projecto; um tecnológico, pessoal, de

requisitos e dois de estimativa. Pela análise dos mesmos, conclui-se que a grande maioria dos

mesmos iria condicionar fortemente o desenvolvimento do trabalho. Por isso, foi elaborado um

bom planeamento, assim como efectuado um plano de contingência para cada um dos riscos,

caso o mesmo se viesse a verificar. O desenvolvimento do projecto decorreu dentro do

previsto, tendo-se apenas verificado alguns deslizes temporais. Ainda assim, tendo em conta a

existência do mês “tampão”, Setembro 2007, conseguiram-se respeitar os prazos impostos

para além de se atingir o pretendido para o trabalho proposto.

Avaliou-se o projecto em três vertentes distintas; características relevantes, análise de

métricas/critérios de sucesso e comparação de algoritmos. Com os dois primeiros pretende-se

verificar se o projecto obedece aos pressupostos estabelecidos aquando da sua análise inicial,

enquanto que o terceiro passa por determinar a aderência do projecto à realidade.

Em termos de características, considerou-se que o projecto foi bem-sucedido. Com vista ao

realismo, estabeleceu-se um número razoável de participantes, respeito pelas leis da física e

cálculo em tempo real. A minimização do esforço computacional devido ao plano secundário da

funcionalidade dentro de uma história implicou a eliminação das características não

absolutamente necessárias, como a inteligência, hierarquia e heterogeneidade. Na natureza, o

tamanho dos grupos é muito variável, dado que está dependente de inúmeros factores.

Considerou-se um número satisfatório para o requerido de muitos elementos, 50, valor

suportado em qualquer dos algoritmos. Para respeitar as leis da física e o tempo real, teve-se

em consideração dois aspectos fundamentais: em cada iteração é analisada a posição dos

elementos e os elementos são orientados de acordo com o seu movimento e destino. Assim,

garante-se que o elemento tem um objectivo delineado para o movimento e que o mesmo

reage as alterações no mundo, evitando colisões.

Na questão das métricas e critérios, conseguiu-se alcançar todos os objectivos propostos para

o programa, tanto os relativos à nova funcionalidade como os anteriores, considerando-se

assim que o projecto foi terminado com sucesso.

49

Page 58: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Finalmente, na comparação de algoritmos utilizaram-se dois testes distintos; testes de carga e

medidas de dispersão. O primeiro consistia em ir aumentando sucessivamente o número de

elementos dos grupos até que o sistema não conseguisse processar a informação toda em

tempo útil. Na natureza, o número de elementos do bando ronda os 20 elementos, ainda que

por vezes o número dos mesmos possa ser bastante superior. Por esta razão, pode-se

considerar que os algoritmos tiveram comportamentos bastante razoáveis, uma vez que

superaram em grande escala este valor. Estes dados são consequência directa da

complexidade dos algoritmos utilizados. O Algoritmo 1 apresenta uma complexidade N

enquanto os outros 2 algoritmos têm complexidades da ordem de N2. Apesar de a

complexidade ser elevada, esta poderia ser reduzida utilizando apenas um ciclo para todos os

cálculos.

Nas medidas de dispersão, verifica-se que os elementos se encontram sempre próximos uns

dos outros ainda que, nos algoritmos Reynolds e Combinado, algoritmos com regras de

aproximação/repulsão, possam existir alguns momentos de grande espaçamento entre os

elementos, principalmente quando o número de elementos do grupo é elevado. Ainda assim,

existe uma tendência para a gradual reunião, ao longo do tempo de execução.

Todos os algoritmos propuseram uma abordagem semelhante à de Reynolds, em que o grupo

é controlado apenas por regras locais; a isto equivale uma classificação de Flocking System

ainda que a mesma não seja rígida uma vez que, tendo em vista o objecto de realismo, a

classificação do sistema torna-se irrelevante. A razão desta proximidade de abordagem detém-

se com a simplicidade do funcionamento aliada ao facto de se estar perante um trabalho de

enriquecimento de um programa já existente, não o tema central de toda uma nova aplicação.

Assim, não se perde independência face a variáveis globais, a evitar, mas cada um dos

elementos mantêm-se como elemento autónomo.

Após as várias análises, considerou-se que o algoritmo que apresenta melhores resultados é o

Algoritmo 1, conseguindo sempre os menores valores de dispersão, melhores performances

nos testes de carga e em que a imagem do movimento mais se aproxima do que pretende

reproduzir.

No entanto, todos os algoritmos conseguiram atingir os objectivos propostos e, ainda que, com

movimentos bem distintos, todos conseguem simular um grupo de animais, estando a escolha

do mesmo dependente do efeito pretendido para a história que se está a criar.

Tendo-se obtido o efeito pretendido, uma simulação semelhante à que se observa na natureza,

cumprido as 8 métricas propostas assim como implementado as características consideradas

relevantes, considera-se que se atingiram os objectivos propostos e, portanto, o projecto foi

terminado com sucesso.

50

Page 59: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

6.1 TRABALHO FUTURO

O movimento apresentado está disponível apenas sobre uma espécie. Contudo, muitos outros

animais detêm um comportamento semelhante, pelo que também eles podem ser modelados

por estes algoritmos. Para tal é preciso dispor dos modelos 3D dos animais e seguidamente

dar ao utilizador a possibilidade de escolher qual dos animais pretende. Por outro lado, o

animal deveria movimentar os membros de acordo com a deslocação que está a realizar; para

isso, em lugar de modelos estáticos, deveriam ser usados modelos com definição de

movimento integrada, modelos dinâmicos, normalmente não disponíveis gratuitamente na

Internet. Este tópico é relevante e pertinente para a credibilidade de grupos simulados.

Os animais têm comportamentos mais elaborados e abstractos do que simplesmente seguir o

grupo e evitar colisões; tem motivações mais complexas do que seguir para um determinado

ponto. Existem trabalhos para modelos de comportamento, que têm em atenção outros

factores como fome, busca de alimento, fuga a predadores, sono entre muitos outros. Ainda

que estas motivações não tenham sido consideradas, dariam provavelmente resultados

bastante interessantes. Igualmente com o intuito de obter comportamentos mais complexos,

poderia recorrer-se a hierarquia dos elementos, passando as motivações de elemento em

elemento, ao longo da cadeia de poder.

Em termos de processamento, a sua simplificação poderá passar pela utilização de smart-

objects, uma mais-valia para o projecto ao melhorar a interacção agente-objecto e,

consequentemente, a própria animação [KT98].

51

Page 60: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

7 BIBLIOGRAFIA

[AA03] ALISSA ANTLE.: Case Study: The Design of CBC4Kids’ StoryBuilder. 2003.

[B99] M. U. BERS.: Narrative Construction Kits:“Who am I? Who are you? What are we?”,

"Narrative Intelligence" Fall Symposium, AAAI'99.

http://xenia.media.mit.edu/~marinau/Zora/

[BCN97] BOUVIER E., COHEN E., NAJMAN L.: From crowd simulation to airbag deployment:

particle systems, a new paradigm of simulation. Journal of Electrical Imaging 6, 1

(January 1997), 94–107. 2, 5

[BG96] BOUVIER E., GUILLOTEAU P.: Crowd simulation in immersive space management. In

Proc. Eurographics Workshop on Virtual Environments and Scientific Visualization’96

(1996), Springer-Verlag, pp. 104–110. 1, 5

[BH97] BROGAN D., HODGINS J.: Group behaviours for systems with significant dynamics.

Autonomous Robots 4 (1997), 137–153. 2, 5

[BH06] BARROCO E., HENRIQUES L.: NAC: Narrativa Assistida por Computador. TFC LEIC –

IST Lisbon (2006).

[CS01] CORMEN. T., LEISERSON C., RIVEST R., STEIN C.: Introduction to Algorithms 2nd Edition,

MIT Press, 2001.

[G01] GUERTIN. C.: Multi-Dimensional Dementia: M.D. Coverley’s Califia and The

Aesthetics of Forgetting, Zazil2, Set, 2001.

[HB94] HODGINS J., BROGAN D.: Robot herds: Group behaviors for systems with significant

dynamics. In Proc. Artificial Life IV (1994), pp. 319–324. 1, 2, 5, 9

[MP01] I. MACHADO AND A. PAIVA.: The Child Behind the Character, em Socially Intelligent

Agents - The Human in the Loop, edição especial de IEEE Transactions on Systems,

Man and Cybernetics, vol. 31 (5), 2001.

[KT98] KALLMANN, M., AND THALMANN, D., Modeling Objects for Interaction Tasks, Proc.

Eurographics Workshop on Computer Animation and Simulation ’98, pp. 73-86

Springer-Verlag, 1998.

[MT01] MUSSE S. R., THALMANN D.: A hierarchical model for real time simulation of virtual

human crowds. IEEE Transactions on Visualization and Computer Graphics 7, 2

(April-June 2001), 152–164. 1, 5, 11.

52

Page 61: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

[Mus00] MUSSE S. R.: Human Crowd Modelling with Various Levels of Behaviour Control. PhD

thesis, EPFL, Lausanne, 2000. 2, 5, 11.

[NG03] NIEDERBERGER C., GROSS M.: Hierarchical and heterogenous reactive agents for real-

time applications. Computer Graphics Forum 22, 3 (2003). (Proc. Eurographics’ 03).

2, 5.

[OCV02] O’SULLIVAN C., CASSELL J., VILHJÁLMSSON H., DINGLIANA J., DOBBYN S., MCNAMEE B.,

PETERS C., GIANG T.: Levels of detail for crowds and groups. Computer Graphics

Forum 21, 4 (Nov. 2002), 733–741. 6.

[Rey87] REYNOLDS C.: Flocks, herds, and schools: A distributed behavioral model. SIGGRAPH

’87: Proceedings of the 14th Annual Conference on Computer Graphics and

Interactive Techniques (1987), 25–34. http://www.red3d.com/cwr/

[Rey99] REYNOLDS C.: Steering behaviors for autonomous characters. Proceedings of the

Game DevelopersConference (1999), 763–782.

[T06] THALMANN D., O'SULLIVAN C., CIECHOMSKI P., DOBBYN S. : EG 2006 Course on

Populating Virtual Environments with Crowds

[TT94] TU X., TERZOPOULOS D.: Artificial fishes: Physics, locomotion, perception, behavior.

SIGGRAPH’94: Proceedings of the 21st Annual Conference on Computer Graphics

and Interactive Techniques (1994), 43–50.

[UCMT] ULICNY B., CIECHOMSKI P., MUSSE S. & THALMANN D.: State-of-the-art: Real-time Crowd

Simulation. In Proc. Eurographics Workshop on Populating Virtual Environments with

Crowds (2006).

[UT01] ULICNY B., THALMANN D.: Crowd simulation for interactive virtual environments and vr

training systems. In Proc. Eurographics Workshop on Animation and Simulation

(2001), Springer-Verlag, pp. 163–170. 5, 11.

[UT02b] ULICNY B., THALMANN D.: Towards interactive real-time crowd behaviour simulation.

Computer Graphics Forum 21, 4 (Dec.2002), 767–775. 1, 2, 5, 11.

53

Page 62: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

7.1 REFERÊNCIAS PARA MODELAÇÃO GRÁFICA

[1] CIRAGAN M.: Milkshape3D from chUmbaLum sOft, 3D models editor initially designed

for Half-Life http://chumbalum.swissquake.ch/

[2] Developers Community: Axiom 3D Engine.

http://axiomengine.sourceforge.net/wiki/index.php/Main_Page

[3] GEBHARDT N., ALTEN T., STEHNO C., DAVIDSON G., CELIS A. F., GOEWERT J.: Irrlicht.

http://irrlicht.sourceforge.net/features.html

[4] STREETING S., XIE J., CASTANEDA P., WALSH J.: Ogre3D, http://www.ogre3d.org/

[5] ALIAS AUTODESK.: Maya, http://www.alias.com/glb/eng/support/index.jsp

54

Page 63: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Apêndice A – DADOS DOS TESTES DE CARGA

Aqui são apresentados todos os valores obtidos, em frames por segundo (FPS), nos testes de

carga realizados aos algoritmos.

Algoritmo 1 Algoritmo Reynolds Algoritmo Combinado

50 155 138 165

100 90 75 142

150 63 50 84

200 48 20 29

250 39 0 0

300 33 0 0

350 28 0 0

400 25 0 0

450 22 0 0

500 20 0 0

Apêndice A

Apêndice B

55

Page 64: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Apêndice B – DADOS DOS TESTES DE DISPERSÃO

Aqui são apresentados todos os valores obtidos nos testes de dispersão realizados aos

algoritmos. Os mesmos encontram-se separados por tabelas independentes, cada uma

correspondente ao algoritmo indicado em cima.

B.1 DADOS DO ALGORITMO 1

Algoritmo 1

Elem X Y Z Elem X Y Z 0 42,05 42,05 0 0 49,921 41,521 110,3421 43,686 38,686 0 1 30,95787 22,00987 56,850742 23,548 28,548 0 2 13,49358 10,26158 37,277163 41,209 41,209 5 3 13,99237 5,844372 43,169744 5,841 5,841 0 4 22,96421 22,88021 36,033425 25,6045 20,6045 5 5 15,98136 9,637361 28,642726 4,205 9,205 5 6 35,93829 36,82229 82,021587 29,389 29,389 5 7 8,005971 3,217971 16,996948 44,481 34,481 0 8 24,48108 10,44908 34,002169 3,7845 13,7845 0 9 20,46425 28,36425 43,553510 6,307501 6,307501 10 11 28,0815 28,0815 0 12 23,0355 13,0355 10 13 13,456 23,456 10 14 48,686 48,686 10 15 54,1065 39,1065 0 16 31,117 46,117 0 17 6,728 6,728 15 18 53,686 53,686 0 19 28,0355 28,0355 15

27,85188 27,85188 4,5 Média 23,62 19,1008 48,889 289,3899 228,3067 28,68421 Variância 156,2044 177,3125 771,9489 17,01146 15,10982 5,355764 Desvio-Padrão 12,49818 13,31587 27,78397 47,799 47,3785 15 Amplitude 41,91503 38,30303 93,34506 11,774 13,59725 0 1Q 14,48962 9,793416 34,50998 28,0585 28,31475 2,5 2Q (Mediana) 21,71423 16,22948 40,22345 42,459 39,63213 10 3Q 29,33867 26,99324 53,52643 30,685 26,03488 10 Amp. Inter-Quartil 14,84906 17,19982 19,01646

56

Page 65: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

B.2 DADOS DO ALGORITMO REYNOLDS

Reynolds

Elem X Y Z Elem X Y Z 0 40,60872 571,7512 892,8442 0 35,63645 35,63645 26,69431 652,8063 476,6295 928,2943 1 36,50169 71,80743 53,789012 -64,6381 1412,33 1183,353 2 67,81379 41,9838 54,595853 -63,3733 510,8893 1631,781 3 68,831 68,97314 28,919044 -67,1618 1877,871 827,8647 4 47,77271 47,91698 51,30745 285,6804 441,6667 1745,214 5 91,12583 113,5073 81,293666 202,3792 1144,995 1643,992 6 110,0423 97,52415 82,376877 71,98523 631,3079 2299,579 7 98,41219 98,85084 83,476368 516,8414 1655,66 1247,783 8 90,87643 109,0732 93,468069 123,0193 1292,639 1239,277 9 100,9087 101,7678 94,8700810 -206,029 793,2538 1309,352 11 246,3827 708,2164 1641,195 12 111,5589 645,6745 1570,852 13 -300,854 1490,127 1249,003 14 -339,37 1461,599 1191,415 15 -273,778 754,5723 1296,813 16 -187,308 1030,273 1183,682 17 -261,034 949,7462 1104,704 18 -82,8189 1270,335 1647,59 19 164,6425 652,9955 1131,923

28,477 988,6266 1348,326 Média 74,79211 78,70411 65,07906 71985,73 188565,6 122681,7 Variância 757,962 857,6522 644,6652 268,3016 434,2414 350,2594 Desvio-Padrão 27,53111 29,2857 25,39026 585,7528 844,4525 542,886 Amplitude (Amp.) 74,40585 77,87085 68,17578 -191,988 642,0829 1170,496 1Q 52,78298 53,18102 51,9278 -11,3823 871,5 1248,393 2Q (Mediana) 79,85372 84,66579 67,94476 174,0767 1322,562 1634,135 3Q 96,5906 101,0386 83,20149 366,0646 680,4789 463,639 Amp. Inter-Quartil 43,80762 47,85754 31,27369

57

Page 66: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

B.3 DADOS DO ALGORITMO COMBINADO

Combinado

Elem X Y Z Elem X Y Z 0 164,1821 149,3702 200,8875 0 74,01545 48,19002 126,20261 57,29111 117,2192 143,023 1 80,25713 54,40096 96,583562 139,1382 54,67357 160,6616 2 58,97662 58,59947 92,305243 130,973 113,7206 76,86919 3 64,03224 73,5918 89,734634 69,08759 53,07123 136,3142 4 65,84087 56,54035 92,072965 64,10809 106,7597 71,27137 5 61,15605 65,4981 80,515436 137,5917 71,46642 108,1147 6 72,26131 60,10971 91,121587 69,61802 54,07381 71,56982 7 136,2267 118,8015 175,99988 98,42048 177,5174 241,2274 8 70,50941 72,09552 101,44939 136,7891 44,95176 181,7234 9 89,19419 76,97556 160,130810 175,0487 142,7881 106,5531 11 122,6574 90,42226 236,9455 12 94,22958 126,4743 105,4638 13 159,0216 79,17223 121,3725 14 105,1097 72,34011 108,6856 15 83,59647 103,5139 133,4539 16 127,9118 68,59834 141,1261 17 118,2999 84,76495 94,2878 18 112,7635 78,61811 119,5832 19 115,3707 78,37811 126,8992

114,0604 93,39472 134,3016 Média 77,247 68,4803 110,6116 1151,966 1278,538 2403,34 Variância 512,0613 396,963 1072,43 33,94063 35,75665 49,02387 Desvio-Padrão 22,62877 19,92393 32,74798 91,45223 74,18976 142,6577 Amplitude 77,25008 70,61148 95,48437 91,5713 70,7494 106,2808 1Q 64,4844 57,05513 91,35943 116,8353 81,96859 124,1359 2Q (Mediana) 71,38536 62,80391 94,4444 136,9898 114,5953 147,4327 3Q 78,69671 73,21773 120,0143 45,41845 43,84585 41,15188 Amp. Inter-Quartil 14,21231 16,1626 28,65485

Apêndice C

58

Page 67: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Apêndice C – MANUAL DE UTILIZADOR DO NAC

Em seguida é apresentado um pequeno manual de utilizador do NAC. São apresentadas as

principais funcionalidades por capítulos.

C.1 INICIAR A APLICAÇÃO

Seleccionar Escolher Driver.

Este processo poderá demorar algum tempo pois é necessário fazer o carregamento de todos

os modelos, estando claro dependente da maquina onde se está a correr o NAC.

C.2 ABRIR/GUARDAR UMA NARRATIVA

Seleccionar Ficheiro Abrir e Ficheiro Guardar ou Ficheiro Guardar Como.

C.3 CRIAÇÃO E DEFINIÇÃO DE UM ACTO

Seleccionar Criar História Acto

Para a definição do Acto escolher Cenário, Personagens e Objectos.

Menu Cenário - Seleccionar o cenário, ambiente, terreno e elementos pretendidos.

C.4 ESCOLHA DE PERSONAGENS E OBJECTOS

Seleccionar Menu Personagens – Escolher as personagens desejadas.

59

Page 68: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Escolha de Objectos semelhante à escolha de personagens.

C.5 CRIAR NARRATIVA

Após definir Cenário, Personagens e Objectos:

Seleccionar Menu História

Proceder à construção da narrativa através da selecção de personagens, objectos e

respectivas acções.

Personagem seleccionada

Objecto seleccionado

Acção seleccionada e respectivo

Instante de início

60

Page 69: Bandos no NAC - ULisboa · Bandos no NAC Comportamento de grupo na aplicação Narrativa Assistida por Computador Estela Barros Barroco Dissertação para obtenção do Grau de Mestre

Nota: Caso nenhum instante seja escolhido as acções são sequenciais.

C.6 VISUALIZAR A NARRATIVA

De modo a visualizar a narrativa:

Início Visualizar História ou Vistas Visualizador

Comandos de Visualização

Momento a ser visualizado

Área de descrição da narrativa

C.7 INFORMAÇÕES ADICIONAIS

FUNCIONALIDADE

Botão de Ideias. Permite obter uma acção desconhecida. Premir

em caso de bloqueio.

Botão de Posicionamento. Depois de Premido carregar sobre o

local onde se deseja colocar o objecto/personagem.

Funcionalidade da câmara (Zoom in, Zoom out).

Botão existente no Menu História que permite guardar a

narrativa que está a ser criada.

61