Representação de Agentes Autónomos em VRML 97 INESC e DEI/IST Rua Alves Redol 9, 1000-029 Lisboa, Portugal {artur.caetano, joao.pereira}@inesc.pt Sumário Apresentamos neste documento três modelos para a representação em VRML de populações heterogéneas de agentes interactivos. Estes modelos permitem estender o conceito de interacção aos objectos da cena através da adição de comportamento autónomo e reactivo. Dois dos modelos assentam directamente na plataforma de pro- totipagem e de guiões patente no VRML. O modelo de representação externa utiliza o VRML apenas como meio de visualização, ficando o comportamento dos agentes definido externamente num módulo Java. São também discutidos os resultados de um estudo comparativo entre os diversos modelos em conjunto com os cenários típi- cos da sua utilização. Palavras-chave Agentes autónomos, agentes reactivos, realidade virtual, VRML, Java. 1. INTRODUÇÃO A Virtual Reality Modeling Language (VRML 1 ) afirma- se como uma das formas mais generalizadas de visualiza- ção e navegação em mundos virtuais [Carey97, VRML 97]. Este sucesso deve-se, entre outros factores, à sua fácil integração e difusão na WWW, e ao seu elevado grau de portabilidade. A funcionalidade dinâmica do VRML assenta num mode- lo de acontecimentos de acordo com o padrão produtor- consumidor [Coplien95], onde cada acontecimento é cap- turado por um ou mais sensores e dirigido para este atra- vés de ligações. Os acontecimentos podem ser desenca- deados através de acções temporizadas explicitadas na descrição da cena ou por interacção do avatar com os objectos do grafo da cena. Contudo, o VRML não suporta directamente o conceito de interacção explícita entre objectos. Este factor limita a sua utilização em mundos onde existam objectos com comportamento dinâmico e que interajam autonomamen- te, independentemente da possível interacção com o ava- tar, como é o caso de mundos povoados por seres artifici- ais ou outros cenários de simulação dinâmica. No entanto, o VRML ultrapassa esta limitação através da utilização de guiões 2 que podem ser associados aos vários objectos presentes no grafo da cena e que estendem o comportamento dinâmico de um objecto através da gera- ção ou tratamento de acontecimentos. Na versão actual do VRML os guiões podem ser programados em Java Script ou Java. Quando o grau de complexidade é eleva- do (situação comum na representação de agentes autó- nomos), a última alternativa apresenta vantagens a nível 1 VRML 97 (ISO/IEC DIS 14772-1) 2 Do inglês script da expressividade, funcionalidade acrescida e modulari- dade. Adicionalmente, o desempenho do Java é superior ao do Java Script. Neste artigo apresentamos um modelo de representação de agentes que permite a sua gestão simples e flexível, e que suporta mecanismos eficientes de interacção não só entre o avatar e os agentes mas também entre os diversos agentes. Um agente, uma entidade independente com capacidade de decisão autónoma, pode ser representado através de um par (corpo, comportamento). No contexto do VRML esta funcionalidade pode ser transcrita para um nó protó- tipo que representa os mesmos conceitos através de um par (geometria, guião). Na secção 2 apresentaremos uma primeira aproximação à modelação de mundos virtuais multi-agente utilizando para tal as primitivas básicas do VRML. Nas secções 3 e 4 apresentaremos duas alternativas ao modelo não opti- mizado, visando a representação eficiente de agentes he- terogéneos em VRML. Na secção 5 é apresentado um estudo comparativo dos vários modelos apresentados. Em apêndice são apresentados os interfaces das classes rela- tivas aos modelos propostos, juntamente com um exem- plo de aplicação. 2. MODELO NÃO OPTIMIZADO O VRML permite adicionar guiões aos objectos do grafo da cena, o que facilita a extensão ou a criação de novos tipos de objectos, denominados protótipos, na terminolo- gia do VRML. Este protótipos estendidos com guiões possuem funcionalidade acrescida e encapsulam toda a complexidade subjacente ao processamento adicional. Artur Caetano João Pereira __________________________________________________________________________________ Marinha Grande, 16-18 de Fevereiro de 2000 145 9º Encontro Português de Computação Gráfica