top of page

Blog do desenvolvimento

Buscar
  • Foto do escritor: DIANA DAVID
    DIANA DAVID
  • 15 de jul. de 2024
  • 5 min de leitura

Modelação e animação das Cena 03 e 04 da história A, Cena 03 da história B no Blender e implementou-se no Unity.

Foi implementado animação a partir do Quill, também.


Cena 3 da narrativa A:



Esta cena acabou por ser aliminada por não ser interessante e prejudicar a sncronia das narrativas paralelas.

------------------------

Cena 4 da narrativa A:

Problema da personagem em duplicado:

Esta cena tem a personagem em duplicado: uma a subir as escadas e a olhar para cima e outra, virada de cabeça para baixo e pendurada sobre o observador, a olhar para nós enquanto suspira de cansaço e impaciência ao ver a escadaria infinita.

A duplicação da personagem trouxe problemas devido ao modo como o Blender nomeia cada objecto.  Como o programa não aceita que um objecto tenha o mesmo nome que outro, este acrescenta .001 à frente do nome de todos os objectos em duplicado.  Isto torna impossível que se anime uma personagem duplicada e se possa aproveitar  a animação com esse modelo.  Pois mesmo que se importe para  o Unity apenas  o ficheiro de animação esta não pode ser aplicada no modelo já existente e  "igual" dentro  do programa. No entanto, se se tiver o modelo original na cena do Blender, é possível exportá-lo  (mesmo que não se tenha animado com ele), pois todos os clips de animação irão com o ficheiro.

Esta cena ainda precisa de algumas melhorias:

  • Eliminar o cubo de referência

------------------------


Cena 3 da narrativa B:

Maquete feita no Blender


Esta cena tem um diferença na sua construção em relação às outras cenas: animação feita diretamente em Realidade Virtual.

A imagem acima mostra a maquete no Blender, onde foi extremamente fácil inserir a animação do chão feita a partir do Quill. No entanto, a sua reconstrução no Unity foi extramente problemática devido a incompatibilidades nos formatos utilizados.


Constatações durante a implementação da animação feito no Quill no Unity:

  • A animação do Quill não deve ser levada para o Blender para se fazerem pequenos ajustes. Estes devem ser feito diretamente no Quill.

  • A informação do Quill é pesada e faz "crashar" muito o Unity.

  • Não há um shader tão compatível (chave na mão) como aquele que se tem no Blender.

  • Foram experimentados os shader fornecido pelo Quill (https://quill.fb.com/assets/QuillShader.shader ) e o shader externo Smoothly-lit VR Vertex Colour Shader for Unity ( https://gumroad.com/watarucg ). Optou-se pelo último por este ter uma reação às luzes. No entanto, este último não é possível visualizá-lo quando se faz "play" no Unity e se observa com os Quest 2 ligados ao PC. É necessário fazer sempre um export da .apk e instalar no Quest 2, antes de se poder ver.


Problema:A animação feita no Quill e exportada em  .alembic para o Unity funciona quando reproduzida no computador. Contudo, esta animação não aparece quando se cria um .apk para se visualizar apenas com o Quest 2.Isto acontece porque o packadge fornecido pela Unity não é compativel com Android.. apenas com Windows, IOS, Linux e Stadia.

A solução seria tentar utilizar .FBX, ou correr a experiência a partir do Windows em vez do Android, ou encontrar outro programa de animação em RV que exporte noutro formato (o Anim VR só exporta em alembic, e o Tvori e o MasterpieceVR não fornecem ferramentas para animar deste modo, apesar de exportarem em .fbx).

Optei pela primeira solução que parece ser mais fiel ao que estava planeado inicialmente. 


Exportar FBX do Quill:


O que esta exportaçao faz é transformar cada frame numa geometria única.

Isto pode tornar a cena muito pesada porque em vez de uma única geometria animada (procedural) como no formato Alembic, no formato FBX pode haver 250 ou mais geometrias, dependendo no número de frames da animação.


ATENÇÃO!: É obrigatório haver alguma coisa na 1ª frame. Não pode estar vazia.


Passos para importar um FBX com animação do QUILL para o Unity:

1 - Arrastar para a pasta de projeto o fbx do quill

2 - Selecionar esse .fbx e no inspector dar um material com um shader especial que vá buscar informação ao Color Space Gamma (opção que se selecionou na exportação no Quill).

2.1 - O Quill fornece um Shader (não reage a luzes), nem funciona em visão estereoscópica (quando o Quest 2 está ligado por cabo ao Unity), fornecido pelo site do Quill,  pode ser baixado aqui.

2.2 - Em alternativa o Shader "Smoothly-lit VR Vertex Colour Shader for Unity" reage a luzes (mas é pago - 15$), nem funciona para os dois olhos na visão estereoscópica. Pode ser encontrado aqui.

2.2.1. - Uma vez feito o download deve arrastar-se o ficheiro para a pasta de projeto dentro do Unity e nessa mesma pasta deve criar-se dois materiais:

um com o nome Double Sided e outro Simples.

2.2.2. -  Uma vez criados os materiais é só arrastar para cima deles o ficheiro do shader e depois ir ao Inspector de cada material e verificar se no material que tem o nome "Double sided" se tem  essa opção ativada e o outro não.

2.3. -  Em alternativa podemos utilizar um shader criado por nós que vá buscar as informações às cores dos vértices, também, como nos shaders do ponto 2.1 e 2.2. Para isso basta criar um material (imagem abaixo). A cor não fica tão brilhante como nas outras opções mas funciona em visão estereoscópica quando o Quest2 está ligado por cabo ao Unity.

2.4 - Depois desse material aplicado no fbx é só  fazer Apply

3 - Arrastar esse .fbx da pasta de projeto para a hierarquia.


Reproduzir animação do FBX - Abordagem 1

Loop infinito de animação, sem controlo de início e fim.


Depois de se fazerem os passos acima pode-se adicionar o Quill Anim Component no Inspector (primeiro instalar o package https://watarucg.gumroad.com/l/unityquillfbx?layout=profile)


1 - Se se fizer play é possível ver-se a animação a acontecer num loop eterno. Contudo não há qualquer hipótese de controlo por parte do artista para poder definir quando a animação começa ou acaba.


Reproduzir animação do FBX - Abordagem 2

Controlo da animação através da timeline (esta foi a abordagem escolhida)

Depois de se fazerem os passos até ao ponto 3 deve-se:

1 - Adicionar uma timeline

2 - Adicionar uma Control Track na timeline

3 - Adicionar individualmente cada mesh e definir a sua duração.

3.1- Se a duração dos frames/mesh for sempre a mesma, pode-se utilizar o ficheiro Python, desenvolvido pelo outro elemento desta equipa - Alexandre Pimentel - , que facilita o processo da alteração do tempo de duração de cada elemento:  time_scaler.py

3.3.1- Para isso deve abrir-se o ficheiro Python (com duplo clique);

3.1.2.- Arrastar para dentro da nova janela o ficheiro da timeline.playable que se tinha criado para esta cena;

3.1.3. - Colocar o valor inicial da duração desso keyframe;

3.1.4. - Colocar o valor de duração que se pretende;

3.1.5. - Colocar o nome da Layer que se deu inicialmente dentro do Quill e que corresponde ao prefixo de cada mesh.

3.1.6 - Enter


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

Após termos migrado PLASTIC CSM sentimos que era demasiado complexa e que trazia muitos problemas de funcionalidade dentro do Unity. Tendo ocorrido vário erros dentro do projecto que levaram muitas horas a corrigir.

Por esta razão, decidimos eliminar o PLASTIC CSM e migramos, novamente, para outra ferramenta de colaboração online - Github - , mais standard e habitual na pipeline de jogos. O que diferencia esta ferramenta de colaboração das outras duas (Collaborate e Plastic CSM) é que o Github é uma aplicação exterior ao Unity e não somos notificados quando a outra pessoa faz modificações do outro lado para podermos atualizar. Isto obriga a um maior cuidade e mais diálogo do que quando usávamos o outro método.


Refez-se e alterou-se o menu inicial para ter mais interatividade https://youtu.be/tUm7k832t50

Refez-se a cena inicial que se tinha perdido.

Tentou encontrar-se um sistema de rendering para otimizar a imagem dentro do Quest 2, mas os métodos encontrados não era compatíveis com alguns dos shaders que se estavam a utilizar (em especial o shader com efeito de paralaxe do céu da cena inicial) e por isso acabou por se abandonar esta otimização.


Criação da 2ª cena de ambas as narrativas.

A segunda cena acontece no hall do prédio, por isso é importante que este cenário esteja colocado exatamente no mesmo sítio que o prédio da cena anterior.

Como se tratam de cenas diferentes, foi necessário criar uma referência visual (um cubo) exatamente do mesmo tamanho da área dessa zona e no mesmo lugar, para se poder transitá-lo para a segunda cena para haver uma referência da posição do prédio.

O facto do espaço ocupado pelo cenário ser mais pequeno que o anterior, faz com que o observador possa sentir uma necessidade em se aproximar desta zona (hipótese a confirmar em testes).


Imprimiram-se as personagens em 3D (em resina) para apresentações orais.

 

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

Atualizado: 15 de jul. de 2024


O trabalho atual que se tinha feito e exportado para um formato .apk (antes de ter perdido tudo) foi demontrado nas aulas de Realidade Virtual e Aumentada da FBAUL (link). Foi dada a experimentar, aos alunos da disciplina, o projeto prático num dispositivo de RV para testar a interatividade e a condução do olhar do observador. Sete alunos experimentaram o menu inicial e o primeiro plano de cada história.

De um modo geral a experiência foi bem recebida, embora se tenha notado algumas restrições a nível da mobilidade para utilizadores de primeira viagem (algo já sabido que poderia acontecer devido à ignorância da tecnologia).

3/7 pessoas - Baixaram-se para se aproximarem das personagens.

1/7 pessoas - Andou à volta do prédio e queria ficar mais tempo a explorar o espaço.

4/7 pessoas - Pediram para ver a outra história.

7/7 pessoas – Apesar de não terem consciência de que podiam olhar à sua volta, depois de terem sido informados passaram a utilizar o espaço corretamente.

1/7 pessoas - Ficaram incomodadas com os flickering do ecrã que pode estar a ser causado pelo dispositivo ou pelo motor de jogo (uma questão a verificar).

1/7 pessoas - Sentiu vontade em poder pegar nos objetos embora essa funcionalidade não estivesse disponível.





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