SLATe – Second Life Agent Toolkit Pedro Loureiro, 51439 MEIC - TagusPark SLATe – Motivação • Embodied Agents em Ambientes Virtuais 3D – Porquê? • Conceito recente • Cheio de possibilidades • Popular – Second Life – Word of Warcraft – Sony Playstation Home • Ainda não existem plataformas específicas SLATe - Motivação SLATe - Motivação SLATe - Motivação SLATe – Objectivos • Embodied Agents – Ambientes Virtuais 3D Remotos – Corpos personalizáveis • Movimento – Interacção • Comunicação – Mensagens • Animação – Ambiente Virtual • Second Life SLATe – Ambiente Virtual 3D Remoto • Desafios – Agentes sem acesso total ao Estado do Ambiente – Não-Determinístico + Dinâmico = Incoerência – Actualização do Estado do Ambiente SLATe – Estado da Arte • Análise de Agent Toolkits – Parâmetros • Comunicação • Curva de Aprendizagem • Suporte à Informação • Plataformas para Second Life SLATe – Estado da Arte • Análise de Agent Toolkits Comunicação Curva de Aprendizagem Suporte à Informação NetLogo (Wilensky, 1999) Inexistente Boa Muito boa JADE (Telecom Italia) Boa Boa Boa Agent Builder (Acronymics, Inc) Boa Má Má Agent Factory (PRISM Labs) Boa Má Má Zeus (BT Labs) Boa Má Má OAA (SRI International) Boa Má Inexistente SLATe – Estado da Arte • ION – INESC-id – Reusabilidade de código – Simulação síncrona – Coerência entre estados – Facilidade de partilha de informação • Passiva ou Activa • Eventos SLATe – Estado da Arte • Decisão – Desenvolvimento de uma nova Plataforma • ION como base – – – – – Solução In-house Definir conceito próprio de Embodied Agent Simulação síncrona para o estado observável Partilha de Informação entre Agentes Definir estrutura interna de acordo com as necessidades SLATe – Estado da Arte • Plataformas para Second Life – Kathryn Merrick • Comportamento emergente • Ciclo de Actualização de Informação dos Agentes – Helmut Prendinger • AstroSim • Twin-World Mediator – Actuadores e Sensores no Mundo Real – Solução de Comunicação entre Plataforma e Ambiente semelhante SLATe – Estado da Arte • libOMV (OMV Foundation) – Biblioteca • Modelo Cliente/Servidor • Comunicação com Second Life – Interacção através de Avatar – Criação e Manipulação de Objectos SLATe – Modelo Conceptual • Agente – Entidade Distribuída Agente Centro de Processo de Decisão Mente Ambiente Virtual Plataforma Contém Apenas 1 Entidade Pode conter Mais que 1 Contém Apenas 1 Actuador Sensor Corpo Contém 1 Ou mais Parte SLATe – Modelo Conceptual • Distribuição – Conceito • Embodied Agents para Ambientes Virtuais 3D Remotos SLATe – Arquitectura Centro de Processo de Decisão Plataforma ESIM IONSIM Mente de Agente 01 Comunicação Local Entidade de Agente 01 Mente de Agente 02 Comunicação Local Entidade de Agente 02 Mente de Agente 03 Comunicação Local Entidade de Agente 03 Ambiente Virtual Corpo de Agente 01 Broker Comunicação Remota Agent Manager Corpo de Agente 02 Corpo de Agente 03 SLATe – Implementação • Camadas – SLATe.Core • Conceitos Abstractos – Second Life Manager (Broker) • Ligação ao Ambiente – SLATe.SecondLife • SLATe.Core • Second Life Manager SLATe.Second Life SLATe.Core ION Second Life Manager libOMV SLATe – Implementação • Problemas e Soluções – Sincronização dos elementos constituintes do Agente – Ciclo de Vida do CoreElement » Automatiza adição e remoção do Agente na Simulação – Limitações do LSL • Instruções vindas da Plataforma SLATe – Implementação • Problemas e Soluções – Não retorno de informação na criação de objectos • Mecanismo de busca e detecção de objectos no terreno – Detecção de Objectos no Inventário • Ciclos de busca configuráveis SLATe – Implementação • Problemas e Soluções – Propagação das Transformações nas BodyParts • Esqueleto com hierarquia de BodyParts – Actuador de Animação: restrição vs eficiência • Dois Actuadores de Animação à escolha do Utilizador SLATe – Implementação • Problemas e Soluções – Excesso de produção de acções durante Animação • Imposição de valor mínimo de alteração – Falhas de Comunicação durante Animação • Criação de Offsets na hierarquia SLATe – Casos de Uso • Boids (Reynolds, 1986) – Processo de decisão reactivo • Sem estado interno – Comportamento Emergente • Coesão • Separação • Alinhamento – Teste de carga • Comunicação entre Plataforma e Ambiente • Ponto de ruptura do lado do Ambiente SLATe – Casos de Uso • Boids SLATe – Casos de Uso • Simon Says – Processo de decisão reactivo • Com estado interno – Funcionalidades • Agarrar e trazer Agentes • Seguir Utilizador – Interacção com Utilizador • Mensagens escritas SLATe – Casos de Uso • Simon Says SLATe – Casos de Uso • Animação SLATe – Casos de Uso • Resultados – Bons • Limitações causadas pelo Ambiente – Actuadores • • • • Movimento com e sem Waypoints Agarrar / Largar Envio de Mensagens Públicas / Privadas Animação Livre e Fixa – Sensores • Visão • Comunicação • Interacção – Toque e Colisão SLATe – Conclusão • Objectivos – Plataforma reutilizável • Embodied Agents em Ambientes Virtuais 3D Remotos • Simulação síncrona com estado observável – Partilha de informação entre Agentes – Coerência entre Estados • Casos de Uso – Bons Resultados • Melhorias – Animação dos Corpos – Importação de Modelos 3D para Corpos