Em busca do scanner 3D perfeito

Durante a Global Game Jam tive a oportunidade de conhecer um novo produto que estava chegando ao Brasil chamado Intel RealSense. A RealSense é uma câmera mágica,  feita pela Intel, é aquele produto que você olha e pensa: "O futuro chegou". Ela foi projetada para fazer scanneamento 3D de alta precisão, mas é capaz de fazer muito mais do que isso por conta dos algoritmos que processam o input. Você quer fazer controle por voz no seu jogo? Ela tem um microfone e o algoritmo pronto pra você usar em um monte de línguas. Quer utilizar as mãos como controles? Ela resolve e te dá 21 bones em cada uma das mãos. Quer fazer reconhecimento de expressões e reconhecimento facial? Faz também. Object Tracking? Faz com um pé nas costas. Isso tudo e ainda integrar na Unity? Oh yeah! É uma das coisas mais legais que você vai ver no mercado para trabalhar. Além disso tudo você pode programar utilizando o SDK em C++, JavaScript, C#, Java e Processing e fazer o que bem entender. Foi a melhor solução que encontrei no mercado para scannear meus amigurumis. Ela é foda, mas toda fodice vem com 1 preço. O problema é que ela exige um computador que não tenho disponível. Atualmente tenho dois computadores que sinceramente são muito bons para as minhas necessidades, nunca me deixaram na mão quando precisei de desempenho (Uma placa 3D caia bem no desktop, mas vivi 5 anos sem). Eu realmente amo meus dois computadores, entretanto a câmera exige mais do que eles podem fornecer.  Qualquer um de nós ficaria chateado, desmotivado, mas não esta mulher! 
 
 O desktop do meu namorado alcançava os requisitos mínimos, então levamos a câmera pra casa dele. Nessa altura do campeonato já estava com maestria na instalação da câmera. Algumas pessoas tiveram dificuldades com isso, mas só tive dificuldades nos meus computadores que não alcançam os requisitos mínimos. No desktop do meu namorado rodou tranquilamente. Junto com o SDK vem um conjunto de exemplos para testar se a câmera e o código de cada exemplo. Como este não era meu objetivo, e não tinha muito tempo com a câmera, não pesquisei muito sobre a criação de código. PARECE ser fácil, um menino na GGJ conseguiu criar 1 jogo com ela e também integra-lo ao Digital Arena da PUCPR em menos de 48hrs e o jogo funcionava super bem quando testei. Voltando a falar dos exemplos... Dentre um dos exemplos disponíveis existe um que permite o usuário scannear objetos. O legal deste exemplo que ele consegue scannear apenas o objeto sem a superfície que o objeto está apoiado e apesar da câmera não observar o fundo do objeto ela já preenche. Vamos aos resultados obtidos. E já adianto que essa câmera é fantástica e o que encontrei de melhor para esse problema até então.

Era uma casa muito engraçada, não tinha porta não tinha nada...

Essa casinha tem aproximadamente 6cm de altura e foi tricotada na agulha 2.5 que é a mais fina que encontrei para comprar utilizando o fio Anne. Observem que ela tem um modelo bastante complexo para ser extraído, as cores utilizadas são sólidas o que não dá muitos pontos de referência para o algoritmo. Repare também que não utilizei pontos de borda no telhado, então ele costuma enrolar nas bordas livres aumentando a complexidade significantemente. Uma característica do tricô se comparado ao crochê é que ele é muito mais maleável em seu ponto base, e portanto, a casa tem um formato bastante arredondado como é possível observar nas fotos, além de criar um relevo no telhado bastante característico pela presença das costuras. Apesar de toda essa complexidade a câmera é capaz de fazer modelos bastante precisos de objetos pequenos. É possível inclusive perceber as colunas criadas pelos pontos nas faces brancas da casa. Esse modelo tem 33 412 vórtices e 66 680 faces e poderia ser bastante simplificado em um programa como o MeshLab.  Porém, observem como esse modelo não tem textura... E este é o motivo pelo qual não vou utiliza-la para capturar meus modelos. A proposta original seria scannear modelos 3D utilizando-a e apesar de no exemplo ter a opção para extrair a textura toda vez que executamos com essa opção selecionada o programa aborta. Pesquisei alguma solução, mas não encontrei. Não consegui resolver esse problema nesta semana e acredito que não vá conseguir solucionar. Não sei dizer se é alguma configuração do computador, se fiz alguma configuração errada... E esta era minha cartada final para utilizar modelos 3D no meu jogo. Qualquer um de nós ficaria chateado, abatido quem sabe até desmotivado, mas não eu!



Quando acontece esse tipo de situação é bom se afastar do problema por algum tempo. Eu estava sem uma maneira de fazer quase TODA a arte do meu jogo. No fim das contas só havia resolvido o problema da UI bem mal e porcamente. No outro dia já estava aceitando que teria que voltar ao meu humilde lugar que são os jogos 2D. Mas como? Como faria a arte do jogo? Desenhar? Não tenho habilidade/tempo para aprender isso agora (nem dinheiro para pagar por ela). Nesse momento de desorientação encontrei este artigo aqui chamado "How To Tackle Character Design For 2D Games?". Esse artigo me lembrou que existe stop-motion e que ela já foi muito utilizada em jogos nos anos 90. Na hora que vi essa possibilidade uma luzinha se acendeu na minha mente. Esse site tem muitos exemplos de jogos que utilizam a chamada claynimation que é uma especialização do stop-motion utilizando massinha de modelar. Mas essa não é a única possibilidade, já que o jogo Mortal Kombat também utilizou stop-motion com atores reais. Esse vídeo mostra como foi o processo de captura para o jogo além de muita nostalgia dos anos 90.


Acho que irei seguir por esse caminho já que não preciso jogar nada fora do que já fiz anteriormente, apenas preciso tirar as fotos em um ambiente controlado e retirar o fundo destas fotos o que vai ser fácil depois que fizer isso algumas vezes.
Alguns dos assets já criados até agora. Vou por cabeça nele, algum dia...
Acho que tenho um próximo passo a vista e isso me deixa bastante animada. Além dessas decisões artisticas tomei algumas decisões sobre o game design e programação durante essa semana, mas isso merece um post somente sobre isso. Acredito que semana que vem farei uma postagem somente sobre programação.
Isso é tudo pessoal!

Compartilhar no Google Plus

Autor: Pâmela de Assis Beltrani

É Bacharel em Ciência da Computação pela PUCPR e Mestre pela UFPR. Também é especialista em Desenvolvimento de Jogos Digitais pela PUCPR.
    Blogger Comment
    Facebook Comment

2 comentários:

  1. Se precisar de modelos 3d simples eu te ajudo =P

    ResponderExcluir
    Respostas
    1. Agora já desisti de usar o 3D e acredito que achei 1 jeito de conseguir fazer sprites com 1 pegada Donkey Kong Country, acho que vai ficar bem interessante no final...

      MAAAAAAS vou querer sua ajuda sim em um futuro próximo com as músicas =)

      Excluir