• Nenhum resultado encontrado

Processos Cliente/Servidor e Diagramas de classes

3.5 Arquitetura da aplicac¸˜ao

3.5.3 Processos Cliente/Servidor e Diagramas de classes

Segundo uma perspetiva top-level, o diagrama de classes adotado em Virtual Spectators 3.0´e ilustrado na figura 3.5.

Cap´ıtulo 3. An´alise e design do produto 37

Servidor

Relativamente ao processo servidor, e como j´a referido anteriormente, este ´e res- pons´avel pela interac¸˜ao com o terapeuta atrav´es das diferentes interfaces disponibiliza- das nas diferentes fases da aplicac¸˜ao. Temos as janelas de escolha do tipo de cen´ario, de configurac¸˜ao da simulac¸˜ao e de controlo da simulac¸˜ao sendo que todas estas s˜ao executa- das atrav´es dos scripts implementados, em C#, no Unity 3D.

No caso da janela de interac¸˜ao, tˆem-se:

* menu 0.cs: respons´avel por definir os parˆametros do servidor e pela sua inicializac¸˜ao. Trata tamb´em de iniciar a execuc¸˜ao da aplicac¸˜ao cliente e de re- ceber e estabelecer uma nova conex˜ao com este. ´E, tamb´em, este que disponibiliza, regista e carrega o tipo de cen´ario de utilizac¸˜ao pretendido pelo utilizador;

* menu 0 persistent data.cs: utilizado para garantir que o processo cliente ´e execu- tado uma s´o vez de modo a evitar a existˆencia de m´ultiplos processos cliente sempre que o terapeuta retorna ao menu da aplicac¸˜ao inicial.

Para a janela de configurac¸˜ao, os scripts que a constituem s˜ao:

* Menu interview config new.cs: este script ´e respons´avel por toda a interface de configurac¸˜ao de cen´ario, desde a gerac¸˜ao da componente gr´afica at´e ao processa- mento de todas as caracter´ısticas de cen´ario pretendidas pelo terapeuta. Simulta- neamente, o script atualiza o processo cliente, via RPC, de acordo com as opc¸˜oes selecionadas;

* interview configuration data.cs: tal como em menu 0 persistent data.cs, este script ´e utilizado para manter registo de todas as definic¸˜oes de cen´ario selecionadas pelo utilizador. Deste modo, sempre que o terapeuta der in´ıcio `a sess˜ao de terapia e retornar ao menu de configurac¸˜ao, as opc¸˜oes n˜ao s˜ao descartadas;

* PreviewPose.cs: permite definir uma posic¸˜ao corporal para a personagem de apresentac¸˜ao.

Para a janela de simulac¸˜ao, os scripts que a constitui s˜ao:

* menu interview simulation.cs: trata de toda a interface de simulac¸˜ao. Ou seja, ´e respons´avel por gerar o menu de simulac¸˜ao e por captar os eventos que o terapeuta pretende ativar. Sempre que estes s˜ao despoletados, o script trata de notificar o processo cliente atrav´es de RPC.

* Character object.cs: representa os atributos de uma determinada personagem aten- dendo `as caracter´ısticas definidas pelo terapeuta (quanto ao tipo de cabelo, tipo de

38 Cap´ıtulo 3. An´alise e design do produto

Cliente

A aplicac¸˜ao cliente, esta est´a encarregue de captar as configurac¸˜oes e eventos defi- nidos no processo servidor e de gerar/atualizar o cen´ario virtual correspondente a essas definic¸˜oes. Como tal, o rendering de cen´ario e reproduc¸˜ao de animac¸˜oes ´e toda efetu- ada neste processo. A este tipo de processo denomina-se fat client na medida em que ´e o processo cliente a realizar a maior parte do processamento de dados. Esta abordagem permite tirar o m´aximo partido das potencialidades do cliente aliviando e minimizando a carga computacional do servidor. No caso de a comunicac¸˜ao ser remota, isto permite obter uma menor latˆencia quanto `a comunicac¸˜ao entre aplicac¸˜oes (servidor e cliente) for- necendo uma experiˆencia de simulac¸˜ao/jogo melhorada.

Neste processo tem-se a janela inicial e a janela de simulac¸˜ao cliente. `A semelhanc¸a da aplicac¸˜ao servidora, tamb´em estas s˜ao executadas sobre o Unity 3D atrav´es de scripts implementados em C#.

No caso da janela inicial, tem-se o script:

* Choose scenario.cs: ´e neste script que se ir´a estabelecer uma conex˜ao com o ser- vidor cujo porto e IP (localhost se for local) s˜ao conhecidos. ´E apresentada uma janela de um cen´ario de audit´orio com cortinas fechadas at´e que o servidor co- munique qual o tipo de cen´ario virtual que o terapeuta pretende. Assim que esta informac¸˜ao ´e enviada, o script carrega o respetivo cen´ario 3D e correspondente janela de simulac¸˜ao cliente.

Na janela de simulac¸˜ao cliente, tˆem-se os seguintes scripts:

* simulator.cs: este ´e o script principal nesta janela. Este encarrega-se de gerar e controlar todos os elementos 3D presentes na simulac¸˜ao bem como capturar e re- produzir os eventos enviados pelo servidor (o mesmo que terapeuta). Este ´e tamb´em respons´avel por gerir os outros scripts presentes nesta janela, nomeadamente, os scriptsassociados a cada HV descritos adiante.

Cada personagem virtual presente no cen´ario tem associado a si os scripts:

* characterController.cs: respons´avel por controlar todas as animac¸˜oes respeitantes `a personagem, desde express˜oes faciais `as corporais, e pelo controlo da componente de fala;

* eye rotation.cs: controla o movimento do olhar da personagem de modo a que esteja sempre a olhar diretamente para a cˆamara, independentemente da sua posic¸˜ao no cen´ario. ´E controlado pelo script characterController.cs;

* rotation.cs: controla a orientac¸˜ao da personagem de modo a que esta esteja sempre virada de frente para a cˆamara, independentemente da sua posic¸˜ao no cen´ario;

Cap´ıtulo 3. An´alise e design do produto 39

* Speaking module.cs: script auxiliar utilizado para traduzir uma determinada frase dada como input no sistema numa sequˆencia de animac¸˜oes que a personagem re- produz e que s˜ao conciliadas com o ´audio dando a ilus˜ao de que a personagem est´a, de facto, a falar.

Na secc¸˜ao de anexos, em Diagramas de Classe ´e poss´ıvel consultar os diagramas de classes detalhados da componente cliente(secc¸˜ao B.2) e servidor(secc¸˜ao B.1).