300 likes | 429 Views
Framework motivacional aplicado a NPCs. Autor: Marcos Vinicius Policarpo Côrtes Orientador: Esteban Walter Gonzalez Clua. Sonhos não são projetos. Desintrospecte-os . Niterói, 1 de julho de 2009. Introdução. O que é “comportamento verossímil”? Porque “comportamento verossímil”?
E N D
Framework motivacional aplicado a NPCs Autor: Marcos Vinicius Policarpo Côrtes Orientador: Esteban Walter Gonzalez Clua Sonhos não são projetos. Desintrospecte-os... Niterói, 1 de julho de 2009
Introdução • O que é “comportamento verossímil”? • Porque “comportamento verossímil”? • Como fazer “comportamento verossímil”? • Como avaliar “comportamento verossímil”?
Agentes com emoção • Modelo proposto • Domínio e aplicação • Framework motivacional • Jogo exemplo
Agentes com emoção • Conceito subjetivo, não há consenso • Ciência cognitiva busca relacionar os eventos emocionais com outras estruturas cognitivas, como memória, comportamento e tomada de decisão
Agentes com emoção • Classificação: • Modelos ([RODRIGUES 07], [SEP 07] e [MORGADO 05] ) • Emoções puras (Ex. Elkman) • Avaliação (Ex. OCC) • Neuro-fisiológicos (Ex. Damásio) • Agentes ([MORGADO 05] ) • Fisiológica (nossa abordagem) • Cognitiva • Arquitetural
Agentes com emoção • Modelos de base fisiológica • Utilizam uma dinâmica fisiológica para representar a motivação do sistema e simular as emoçõees • Exemplos: • Abbott [CAÑAMERO 97] • Cathexis [VELASQUEZ 96] • Kismet [BREAZEAL 00]
Modelo proposto • Modelo fisiológico baseado nos modelos de [VELASQUEZ 96] e [BREAZEAL 00] • Objetivo: Simplificar e minimizar os modelos anteriores • Possui histórico em utilização em jogos [POZZER 06] • Orientado a controle de ações, e não somente a seleção de expressão facial
Modelo proposto • Ontologia Sensor Influi > Processo Influi < Permite É um > Compor- tamentos Drives Emoção Consuma > Ativa > Facilita
Modelo proposto • Processo • Unidade fundamental que generaliza as outras. Possui um valor associado e limites inferiores e superiores (thresholds) • Possui duas regras de operação: • Manter o seu valor entre os limites (bem-estar, homeostase, wellbeing). Caso extrapole um limiar, se torna ativo • Quando ativo, influenciar (excitar ou inibir) outros processos
Modelo proposto • Processo
Modelo proposto • Drive • Pulsão: desejos e vontades inconscientes ou fisiológicas • Incrementa com o tempo • Comportamentos podem consumá-lo (diminuir o seu valor)
Modelo proposto • Emoção • Estado excepcional, que demonstra uma configuração interna do agente através de uma expressão comunicativa • Emoções puras de Elkman • Decrementa com o tempo • Somente valores positivos
Modelo proposto • Comportamento • Ações o planos que o sistema pode tomar para alterar um estado do mundo • Sem valor negativo
Modelo proposto • Sensor • Influência do mundo externo (percepções) dentro do sistema motivacional • O sensor e outros processos avaliam as percepções (marcador somático de Damásio) (a) • Pode ser simplificado ao número de percepções de um sensor (b) a) b)
Modelo proposto • Discretização
Domínio e aplicação • Games – RPG – Action RPG • Propõe ao jogador ultrapassar desafios para observar a história. A vitória não é um fator tão importante. Narrativa, dos personagens e dos efeitos gráficos são mais importantes
Domínio e aplicação • Engine • Sistema de apoio ao desenvolvimento de um determinado estilo de jogo: Engine = Motor + Editor + banco de dados de recursos • Motor = Desenvolvimento próprio, vários frameworks • Editor = Tiled + XML • Recursos: RPG Maker 2000 + Internet • Requisitos • 2D • Jogabilidade de um Action RPG (Ex. Zelda) • Possuir recursos de percepção e atuação de agentes (para suporte do framework motivacional)
Domínio e aplicação • Arquitetura GameObject - Component • Em vez de herdar uma classe base (GameObject) para criar nossas novas entidades, usamos uma GameObject simples e adicionamos a ela os componentes que precisamos
Domínio e aplicação • Arquitetura GameObject - Component • Problema: Manutenção das referências entre componentes gera código fora da lógica do domínio e exige manutenção complexa. • Solução: Usar DependencyInjection • //IA referencia componentes tradicionalmente • publicclass IA: SoftComponent • { • publicAnimacaomAnimacao; • public Items mItems; • publicbool init(Scene scene) • { • //Resgata o componente • SoftComponent sc = parent.getComponent(“Animacao”); • //Verificaintegridadeif(sc==null)return false; • if(!(sc is Animacao)) return false; • //Atribui o valor • mAnimacao = (Animacao)sc; • } • } //IA referencia componentes por DependencyInjection public class IA: SoftComponent { [Injection(“Animacao”)] publicAnimacaomAnimacao; [Injection(“Items”)] public Items mItems; publicbool init(Scene scene) { //não precisa fazer nada } }
Framework motivacional • Arquitetura do agente (IMotAgent) • Visto como um componente a ser usado pela aplicação • Uma lista de atuadores que deve ser fornecida • A aplicação implementa os atuadores • Uma lista de sensores que são oferecidas • A aplicação solicita os sensores que devem ser preenchidos com percepções (tal como um buffer)
Framework motivacional • Arquitetura do agente
Framework motivacional • Fluxo principal do agente (EditableMotAgent)
Jogo exemplo • Jogo: O jogador controla um detetive e deve eliminar os assassinos em uma cidade povoada por civis
Jogo exemplo • Rede de processos
Jogo exemplo • Exemplo 1: Influência de “conversar” em “Felicidade”
Jogo exemplo • Exemplo2: Influência de “conversar” em “Felicidade”
Considerações finais (trabalhos feitos) • Simplificação feita em relação aos modelos de [BREAZEAL 98] e [VELASQUEZ 96] de tal forma que ele possa ser usado eficientemente em simuladores e games • Análise da discretização • Arquitetura de EngineGame-Component para RPG 2D • Ganchos estabelecidos (marcador somático, seleção de comportamentos) para trabalhos futuros • Trabalho Realizado/Trabalho Esperado = 70% • Resultado Obtido/Resultado Esperado = 40%~60%
Considerações finais (trabalhos futuros) • Tal como cita [MORGADO 05], método apresenta limitações quando a escalabilidade. Sendo necessário aumentar esta escalabilidade sem perder a performance • Adicionar algoritmos simbólicos (tornar sistema híbrido) • Alterar equação do processo para que ele seja possua um raio de valores fixo e o sistema gere menos oscilações bruscas • Melhorar sistema de seleção/coordenação de comportamentos • Usar políticas mais ricas e/ou ontologias de domínio • Usar algoritmos de aprendizagem • Simplificar as ações e usar planejamento • Investigar marcador somático de Damásio e aplicá-lo • Ganho: Sistema passará a selecionar alvo de atuação (um agente selecionará um outro específico para interagir, e não um qualquer ou o mais próximo)
Dúvidas? “Shinji: Então, onde começa meu sonho? Rei: Ele é a continuação da realidade.Shinji: Onde começa... minha realidade? Rei: Onde termina teu sonho...”