3. RESULTATS
3.1. FORMATION DPC
Esta parte da aplicac¸˜ao, que utiliza a L´ogica Fuzzy para realizar an´alises nos dados que foram coletados anteriormente, foi criada por meio da linguagem de programac¸˜ao Java, com o aux´ılio de uma biblioteca espec´ıfica para desenvolvimento de programas que contenham esta l´ogica, denominada JFuzzyLogic. Para acessar o banco de dados SQL Server, que cont´em as respostas coletadas do sistema especialista, foi utilizado o driver JDBC, que realiza a conex˜ao entre o aplicativo Java e o banco de dados.
A biblioteca JFuzzyLogic requer que, no m´ınimo, dois arquivos sejam criados: um com a extens˜ao .java, que cont´em a classe principal, com a chamada de todas as outras func¸˜oes, e outro com a extens˜ao .fcl, que cont´em todas as vari´aveis de entrada e sa´ıda, al´em das definic¸˜oes de “fuzzificac¸˜ao” e “desfuzzificac¸˜ao” (traduc¸˜ao livres para as func¸˜oes denominadas Fuzzify e
Defuzzify, respectivamente) e as regras utilizadas para aplicar a l´ogica fuzzy nas vari´aveis de entrada para obter a sa´ıda do aplicativo.
Abaixo, na Figura 4.14, est´a o diagrama de componentes do aplicativo de L´ogica Fuzzy criado.
Figura 4.14: Diagrama de Componentes do aplicativo de L´ogica Fuzzy FCL
Este ´e o arquivo que cont´em um bloco de func¸˜oes, onde ser˜ao indicadas quais s˜ao as vari´aveis de entrada e de sa´ıda do aplicativo de an´alise por meio da L´ogica Fuzzy, assim como as regras que ser˜ao utilizadas nos dados.
Dentro de um bloco de func¸˜oes criados neste arquivo, o primeiro passo a ser tomado ´e a definic¸˜ao de quais ser˜ao as vari´aveis de entrada. Neste caso, todas as vari´aveis de entrada foram definidas como as vari´aveis utilizadas para a definic¸˜ao do grau de imers˜ao em jogos digitais, apresentados na sec¸˜ao 2.2 e definidas no aplicativo de coleta de dados na sec¸˜ao 4.4.1, onde foram denominados como grupos. S˜ao elas: “Jogabilidade”, “Narrativa”, “Inteligˆencia Artificial”, “Relac¸˜oes Sociais”, “V´ıdeo” e “ ´Audio”.
A partir do que foi definido na sec¸˜ao 2.4, as vari´aveis de sa´ıda foram definidas como os grupos de emoc¸˜oes apresentados por Ortony, Clore e Collins (1990) na sec¸˜ao 2.3. S˜ao eles: “Bem-Estar dos Outros”, “Baseado em Perspectiva”, “Bem-Estar”, “Atribuic¸˜ao”, “Compostos Bem-Estar/Atribuic¸˜ao” e “Atrac¸˜ao”.
Todas estas vari´aveis, tanto de entrada quanto de sa´ıda, s˜ao especificadas para que possam receber n´umeros reais, sendo que os de entrada ser˜ao os valores do grau de imers˜ao do sistema especialista, cuja captura ser´a especificada na pr´oxima sec¸˜ao, e a sa´ıda formar´a o resultado da an´alise do sistema de L´ogica Fuzzy.
A seguir tem-se as definic¸˜oes de “fuzzyfy”, onde s˜ao estipuladas regras para definir qual ser´a o grau de filiac¸˜ao de cada uma das vari´aveis em relac¸˜ao a sua intensidade de imers˜ao. Para tal, foi utilizada a mesma regra que existe no sistema especialista (sec¸˜ao 4.4.1, onde s˜ao definido trˆes n´ıveis de imers˜ao: Baixo, M´edio e Alto. Na figura 4.15 tem-se um gr´afico com a indicac¸˜ao do grau de filiac¸˜ao de acordo com este valor de entrada para a vari´avel “Jogabilidade”, que ´e utilizada meramente como exemplo, considerando que todas as vari´aveis possuem a mesma regra para identificar este grau:
Figura 4.15: Gr´afico com o Grau de Filiac¸˜ao da Vari´avel de Entrada Jogabilidade Ap´os este passo, s˜ao apresentadas as definic¸˜oes de “defuzzyfy”. Para este caso s˜ao conside- rados os grupos supracitados, como mostraram Ortony, Clore e Collins (1990). Para criac¸˜ao do n´ıvel de filiac¸˜ao, foi considerado uma escala de zero a cem e os n´ıveis de Baixo, M´edio e Alto, como mostra a Figura 4.16, que utilizou o grupo de emoc¸˜oes “Atrac¸˜ao” como exemplo. Para que a “defuzzyfy” seja realizada, o m´etodo utilizado foi o que busca o “m´edia m´aximo” (Mean
Maximumno original), onde a l´ogica fuzzy procurar´a os graus de filiac¸˜ao e qual foi a m´edia dos m´aximos entre eles para apresentac¸˜ao do resultado.
Figura 4.16: Gr´afico com a escala de graduac¸˜oes de filiac¸˜ao do grupo de emoc¸˜oes Atrac¸˜ao Juntamente com este gr´afico, ´e apresentado tamb´em o de sa´ıda, como pode ser visto na Figura 4.17:
Figura 4.17: Gr´afico de sa´ıda com o Grau de Filiac¸˜ao do grupo de emoc¸˜oes Atrac¸˜ao Esta figura apresenta no gr´afico o valor de membership/filiac¸˜ao do jogo `aquela categoria de emoc¸˜ao. Neste caso, o grau de aderˆencia do jogo ao valor M´edio da emoc¸˜ao est´a em 0,75, isto ´e, o jogo em quest˜ao possui setenta e cinco por cento de chances de ter um valor m´edio `as emoc¸˜oes de “Atrac¸˜ao”, que s˜ao “Amor” e “ ´Odio”.
Este gr´afico ´e o padr˜ao da biblioteca JFuzzyLogic. Para facilitar a visualizac¸˜ao e an´alise dos dados, foi criado um gr´afico de barras indicando a filiac¸˜ao em cada um dos graus existentes (Alto, M´edio ou Baixo). A Figura 4.18 apresenta como ´e este gr´afico.
Figura 4.18: Gr´afico de sa´ıda com as filiac¸˜oes de todas as ´areas de emoc¸˜ao
grau de intensidade da emoc¸˜ao que ela possui e pode influenciar o jogador do jogo analisado. A verde se refere ao grau Baixo, o azul ao grau M´edio e a vermelha ao grau Alto.
Caso uma ´area possua filiac¸˜ao `a dois graus, significa que ela possui afinidade com ambos os casos. No exemplo da Figura 4.18, a ´area Atribuic¸˜ao (Outro Agente) possui filiac¸˜ao com o grau m´edio e com o alto, indicando que existe uma chance de m´edio para alto de as emoc¸˜oes daquela ´area acontecerem no jogo analisado. Este fenˆomeno ´e poss´ıvel de acordo com as regras da L´ogica Fuzzy. Por fim, tem-se o bloco de regras que ir˜ao aplicar a l´ogica fuzzy nos valores de
entrada para se obter a sa´ıda. A criac¸˜ao destas regras foi feita com base nas teorias apresentadas na sec¸˜ao 2.4. De acordo com a escala da entrada (baixo, m´edio e alto), a sa´ıda tamb´em ´e definida. Para tal, foi considerado que para obter uma taxa alta de emoc¸˜ao, a imers˜ao deve ser alta tamb´em, como apresentado tamb´em no in´ıcio da sec¸˜ao 2.4.
O bloco possui vinte e quatro regras, sendo trˆes para cada grupo de emoc¸˜ao. Elas foram criadas com base nas diretrizes expostas nas sec¸˜oes 2.2, 2.3 e 2.4, al´em de considerar que os jogos de Ac¸˜ao/Aventura utilizados como base para pesquisa n˜ao possuem modo multijogador, confore exposto no apˆendice C. As regras s˜ao apresentadas abaixo:
Regras de Atrac¸˜ao
- Regra 1: Se v´ıdeo ´e Baixo ou ´audio ´e Baixo ent˜ao atrac¸˜ao ´e Baixo;
- Regra 2: Se v´ıdeo ´e M´edio e ´audio ´e M´edio ou v´ıdeo ´e Alto e ´audio ´e M´edio ou v´ıdeo ´e M´edio e ´audio ´e Alto ent˜ao atrac¸˜ao ´e M´edio;
- Regra 3: Se v´ıdeo ´e Alto e ´audio ´e Alto ent˜ao atrac¸˜ao ´e Alto; Regras de Bem-Estar dos Outros
- Regra 4: Se narrativa ´e Baixo ent˜ao Bem-Estar dos Outros ´e Baixo; - Regra 5: Se narrativa ´e M´edio ent˜ao Bem-Estar dos Outros ´e M´edio; - Regra 6: Se narrativa ´e Alto ent˜ao Bem-Estar dos Outros ´e Alto; Regras de Baseado em Perspectiva
- Regra 7: Se narrativa ´e Baixo ent˜ao Baseado em Perspectiva ´e Baixo; - Regra 8: Se narrativa ´e M´edio ent˜ao Baseado em Perspectiva ´e M´edio; - Regra 9: Se narrativa ´e Alto ent˜ao Baseado em Perspectiva ´e Alto; Regras de Bem-Estar
- Regra 10: Se narrativa ´e Baixo ent˜ao Bem-Estar ´e Baixo; - Regra 11: Se narrativa ´e M´edio ent˜ao Bem-Estar ´e M´edio; - Regra 12: Se narrativa ´e Alto ent˜ao Bem-Estar ´e Alto; Regras de Atribuic¸˜ao (Outro Agente)
- Regra 13: Se Inteligˆencia Artificial ´e Baixo ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e Baixo; - Regra 14: Se Inteligˆencia Artificial ´e M´edio ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e M´edio; - Regra 15: Se Inteligˆencia Artificial ´e Alto e Relac¸˜ao Social ´e Alto ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e Alto;
Regras de Atribuic¸˜ao (Agente Pr´oprio)
- Regra 16: Se jogabilidade ´e Baixo ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e Baixo; - Regra 17: Se narrativa ´e M´edio ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e M´edio; - Regra 18: Se narrativa ´e Alto ent˜ao Atribuic¸˜ao (Agente Pr´oprio) ´e Alto; Regras de Bem-Estar/Atribuic¸˜ao (Outro Agente)
- Regra 19: Se Inteligˆencia Artificial ´e Baixo e Narrativa ´e Baixo Ent˜ao Bem-Estar/Atribuic¸˜ao (Outro Agente) ´e Baixo;
- Regra 20: Se inteligˆencia artificial ´e Baixo e narrativa ´e Alto ou inteligˆencia artificial ´e Baixo e narrativa ´e M´edio ou inteligˆencia artificial ´e M´edio e narrativa ´e Alto ou inteligˆencia artificial ´e M´edio e narrativa ´e M´edio ou inteligˆencia artificial ´e M´edio e narrativa ´e Baixo ou inteligˆencia artificial ´e Alto e narrativa ´e M´edio ou inteligˆencia artificial ´e Alto e narrativa ´e Baixo ent˜ao Bem-Estar/Atribuic¸˜ao (Outro Agente) ´e M´edio;
- Regra 21: Se Inteligˆencia Artificial ´e Alto e Narrativa ´e Alto ent˜ao Bem-Estar/Atribuic¸˜ao (Outro Agente) ´e Alto;
Regras de Bem-Estar/Atribuic¸˜ao (Agente Pr´oprio)
- Regra 22: Se jogabilidade ´e Baixo ou narrativa ´e Baixo ent˜ao Bem-Estar/Atribuic¸˜ao (Agente Pr´oprio) ´e Baixo;
- Regra 23: Se jogabilidade ´e M´edio e narrativa ´e M´edio ou jogabilidade ´e Alto e narrativa ´e M´edio ou jogabilidade ´e M´edio e narrativa ´e Alto ent˜ao Bem-Estar/Atribuic¸˜ao (Agente Pr´oprio) ´e M´edio;
- Regra 24 Se jogabilidade ´e Alto e narrativa ´e Alto) ent˜ao Bem-Estar/Atribuic¸˜ao (Agente Pr´oprio) ´e Alto;
do arquivo introduzido nesta sec¸˜ao.
JAVA
Na func¸˜ao principal (main), o primeiro passo ´e a realizac¸˜ao da conex˜ao com o banco de dados, feita por meio de uma classe espec´ıfica para isto, que utiliza os driver JDBC para tal.
A seguir, os dados do banco s˜ao direcionados para um RecordSet, que armazenar´a local- mente para que estes dados possam ser utilizados sem que seja necess´ario acessar o banco SQL
Servera todo momento. Para que possa ser feita a an´alise neste ponto, s˜ao recolhidos do servi- dor o nome do jogo, o nome da vari´avel e o grau imersivo correspondente `a vari´avel.
Ap´os a conex˜ao com o banco de dados ser desfeita, o arquivo FCL ´e carregado e suas regras e suas vari´aveis tamb´em s˜ao armazenadas localmente para que possam ser utilizadas com os dados previamente alocados. Desta forma, cada um dos valores correspondentes `as entradas (apresentados na sec¸˜ao anterior) possa ser trabalhado com as regras e criadas as sa´ıdas localmente.
O conjunto de regras ´e apresentados e as vari´aveis de entrada s˜ao definidas de acordo com os dados do banco de dados. Uma func¸˜ao de avaliac¸˜ao do JFuzzyLogic ´e utilizada, onde as regras s˜ao aplicadas, e os gr´aficos de sa´ıda s˜ao apresentados na tela.