top of page

Blog do desenvolvimento

Buscar
  • Foto do escritor: DIANA DAVID
    DIANA DAVID
  • 12 de jul. de 2024
  • 1 min de leitura

A cena inicial da narrativa tem um prédio por onde as personagens vão entrar.

O prédio foi construido à escala que se queria colocar em RV, em comparação com o participante.


Apesar da versão inicial estar arquitetonicamente correcta entre o apartamento de cima de o de baixo, para que as ações das personagens e a sua localização batesse certo entre elas, o aspeto do edifício não era muito apelativo.

Õ prédio sofreu várias interações.



Queria-se algo mais estilizado, mas interessante.

Esta versão foi a que mais agradou.


  • Foto do escritor: DIANA DAVID
    DIANA DAVID
  • 12 de jul. de 2024
  • 2 min de leitura

Depois do cenário de teste já estar a funcionar foi necessário criar o menu inicial para se conseguir iniciar a narrativa a partir da app.


A criação do Menu Inicial teve duas aparências diferentes: uma com uma disposição horizontal e outra com uma disposição em diagonal.

Na imagem abaixo, pode-se ver o primeiro mockup do menu, sendo que o observador será colocado no meio da cena e para ver as instruções terá de se virar para trás.


Segundo a análise de referências de narrativas animadas com menus, estes têm sempre um botão para clicar. Como é o caso de "Gloomy Eyes", "Luna", "Bonfire" e "Wolves in the Walls":


"The Line" mostra outra abordagem na seleção de menus, ao apresentar botões, cordas e alavancas que se podem puxar e empurrar para ativar as várias opções da história.



Chegou-se à conclusão que oferecer no menu o mesmo tipo de interatividade que se vai oferecer na experiência pode ajudar a educar o observador sobre o que poderá fazer durante a história.

Neste sentido optou-se por adicionar as personagens como objetos selecionáveis para ativar uma das histórias, deixando no ar que influenciar as personagens.

Assim, construi-se a primeira maquete no programa 3D - Blender.

Na imagem abaixo, pode-se ver a maquete do menu, sendo que o observador será colocado no meio da cena e para ver as instruções terá de se virar para trás.

No Blender, todos estes elementos foram exportados em separado e com as coordenadas no (0,0,0) para poderem ser remontados no Unity.

E no Unity importaram-se os modelos .fbx e reposicionaram-se os elementos à volta da câmara. Foi preciso testar com os Oculus Quest 2 para se determinar a distância mais confortável para colocar cada objeto.


Para que o chão ficasse com a zona a transparente, completamente integrada no fundo a negro o foi preciso adicionar um mapa de Oclusão.


Depois do menu montado, apercebi-de de que não estava a utilizar o espaço vertical que tinha disponível.

Contudo, o intuito da criação deste trabalho, também, é tirar partico do espaço vertical. Por isso, resolveu-se reestruturar o menu para obrigar o observador a olhar para cima e para baixo desde o inicio da experiência.



Para a seleção botões de cada narrativa (representado pela personagem respetiva) está a utilizar-se um sistema de ativação por orientação da cabeça do participante.

Ou seja, apenas é possível selecionar uma personagem olhando para ela durante algum tempo (Gaze Based Interaction).

  • Foto do escritor: DIANA DAVID
    DIANA DAVID
  • 12 de jul. de 2024
  • 3 min de leitura

Experimaram-se vários tipos de rigging (shape keys ou blendshapes, drivers,  controladores, bones) e resolveram-se problemas a nível de incompatibilidade entre  softwares (Blender vs. Unity).

Uma vez as personagens modeladas e texturizadas procedeu-se ao rigging, onde se criou um esqueleto para controlar as personagens em 3D.

Com o intuito de se criar um rápido POC (Proof of Concept) decidiu-se usar uma ferramenta de auto-rig. Desta maneira seria possível criar um esqueleto funcional em menos de um dia de trabalho.

Para testar o rig importaram-se alguns ficheiros de animação do site Mixamo. Concluiu-se que era necessário adicionar um pouco mais de geometria em certos pontos estratégicos das personagens para uma melhor deformação da malha, como na zona dos cotovelos e joelhos. Assim, foram adicionados 2 loops em cada zona.

Inicialmente escolheu-se o [auto-rig] Riggify para o Blender (um addon que vem por default com o programa), contudo aplicar os ficheiros de animações do site da Mixamo estava a tornar-se uma tarefa árdua. Desta forma, descobriu-se que o próprio site da Mixamo tinha acabado de criar oficialmente um addon para o Blender com um Rig próprio (da Adobe).


O rig na Mixamo tem a contrapartida de que apenas pode ser usado com personagens bípedes, em oposição ao do Riggify que pode ser usado para todo o tipo de criaturas, contudo, como as personagens em causa são bipedes, optou-se pelo da Mixamo por se poder aliar o rig ao serviço de animação que o site oferece.

Fez-se uma pequena animação usando 2 bases fornecidas (o Reacting e o Wheelbarrow Walk) pelo site da Mixamo. As curvas de animação foram limpas e foi feita uma animação para transitar entre as bases de animação. Copiou-se a animação da personagem A para a B e aplicou-se um mirror para espelhar a animação. Depois, criou-se um ligeiro desfasamento entre a animação das personagens para parecerem mais naturais.

Para fazer o mirror usou-se o addon Rigify AnimBox.

Como rig da Mixamo não tem controladores faciais, é necessário criar controladores extra para a cara e qualquer outro acessório, como no caso da personagem B que tem uns auscultadores.

Para a cara de cada personagem, utilizou-se um sistema de Blendshapes que depois são acionados por controladores através de drives.



Limitações: É difícil replicar a expressividade das expressões faciais conceptualizadas, por o número limitado de polígonos restringe o tipo de formas que se podem fazer com a boca e as sobrancelhas.

---------

Nota: Para exportar correctamente qualquer modelo do Blender para o Unity:

---------



Após os primeiros testes com as personagens animadas, apercebi-me que o sistema de Blendshapes não se estava a comportar como esperado.

Problema no Blender: As shapekeys (ou blendshapes) criadas para as personagens tinham alguns bugs que se podiam ver quando se fazia play da animação e se olhava para os valores das blendshapes que passavam de 0.000 para 0.000001 em certos frames o que fazia com que a geometria "piscasse" dentro do Unity. Como se pode ver nos GIFs abaixo.


Solução: Em vez de se criar um Driver (add Driver sobre a Blendshape) com um Average Value indicando apenas qual o controlador a influenciar o valor da Blendshape, criou-se algo semelhante, mas com  matemática aplicada no processo, para não haver erros no processamento. Assim copia-se (Copy as New Driver) os dados da Location, do eixo do controlador, que nos interessa e cola-se no slider da blendshape. Desta forma, continuamos a trabalhar com uma função Average Value, mas há mais controlo sobre os valores. 

Limitações: Não se pode usar Contrains sobre este objeto.


Problema no Unity: Apesar do problema parecer estar resolvido no Blender, o Unity continua a distorcer a geometria e a alterar as normais da mesh.

Isto acontece porque há uma incompatibilidade entre os drivers do Blender e os dados que são reconhecidos pelo Unity no processo de importação.



Solução: Depois de se testar com sucesso animação das blendshapes dentro do Unity, chegou-se à conclusão que apenas a animação dos Drivers é que falha. Assim, eliminou-se todo o Rig facial à base de Drivers e resolveu-se animar diretamente nos sliders das Blendshapes.

Cons: Para um animador este processo não é tão intuitivo e cómodo, mas é a única forma de se poder utilizar Blendshapes no Rig.

Poder-se-ia optar por utilizar apenas bones para a deformação da cara (evitando todo este problema), mas conseguir expressões faciais expressivas seria ainda mais desafiante e trabalhoso para o animador.

Extra: para não haver problemas com as normais da geometria deve-se selecionar "NONE" no campo das "BlendShape Normals" na aba de "models" quando se seleciona o modelo dentro da pasta de Assets.

Uma vez resolvido o problema, importaram-se os os modelos.  

Com os modelos na hierarquia da cena selecionou-se a opção APPLY ROOT MOTION (no componente Animator da personagem) para que os pés das personagens não ficassem a flutuar no ar. 

Para se controlar os vários clips de actions criou-se uma Timeline. 



Informações de contato

Doutorada em Arte Multimédia,

pela Faculdade das Belas-Artes

da Universidade de Lisboa

 

Mestre em 3D Computer Animation, pela Bournemouth University

 

Erasmus em Animation, Games 
na Southampton Solent University

 

Licenciada em Arte Multimédia,pela Faculdade das Belas-Artes

da Universidade de Lisboa

  • Instagram
  • LinkedIn

Mensagem enviada!

bottom of page