ARKit + SceneKit: Como posicionar um cenário corretamente?

Esse não é um tutorial de programação!!

Jéssica Amaral
Apple Developer Academy | UFPE
4 min readApr 30, 2021

--

No último projeto que participei, eu e minha equipe decidimos nos aventurar pelo mundo da Realidade Aumentada, porém não queríamos montar um cenário do zero, foi então que decidimos buscar cenários prontos com royalties free, catucando na internet, me deparei com o site Sketchfab.

Ao tentar colocar o cenário de forma “tradicional”, segui todos os passos:

  1. Coloquei o cenário com extensão “.scn” na pasta “.scnassets”
  2. Segui todos os passos esperados “programaticamente”
  3. Busquei mais na internet
  4. Mudei o código várias vezes e nada

O cenário aparecia, mas ele se movia junto com a minha câmera e por mais que eu buscasse, não encontrei solução.

Foi então que decidi inspecionar aquele modelo padrão que aparece quando você escolhe o tipo de projeto como Realidade aumentada.

Ao escolher essa opção, a pasta “.scnassets” é criada automaticamente e tem a famosa nave como modelo padrão
Essa famosa nave

Ao analisar bem o modelo, percebi que o tamanho do objeto (nave) em si, era enorme, mas era como se ela estivesse “dentro de uma caixa menor”, por isso eu conseguia me mover ao redor dela, mover o celular e ela continuava no mesmo lugar.

Esse é o tamanho real da nave
Esse é o tamanho da caixa onde ela está inserida

Então, o segredo era escala e proporção!!

O desafio agora era como descobrir qual o tamanho ideal. Bem, eu queria algo que simulasse um ambiente onde eu estivesse imersa nele, então teria que ser grande, mas não tão grande que você se perdesse nele. Aí realmente foi questão de experimentar, tomei como base o tamanho da caixa da nave, depois, a partir do tamanho original do cenário, fui multiplicando os valores por 0.1 ou 0.01 (sempre valores pequenos, pois os cenários eram muito grandes), até encontrar um que se adaptasse bem ao meu objetivo.

Sim, falei, falei e não mostrei como fazer. Bora lá!

1 — Criar uma nova cena

Clica com o “botão direito” do mouse na pasta “.scnassets”
Novo arquivo

Obs: No meu caso, não estava mexendo com a câmera diretamente, então excluí ela do novo cenário.

2 — Criar nova “caixa”

Clica no “+
Escolhi o formato “Box”, pois meus cenários se adaptavam bem ao formato

3 — Definir tamanho da sua cena (depende muito de como você espera que seja a experiência e do tipo de cenário, por exemplo)

Attributes Inspector
Defini esses tamanhos testando mesmo
Ficou assim

3.1 — Você pode mexer na textura das “paredes” da caixa, pra visualizar melhor o cenário que colocará dentro

Veja como acha melhor

4 — Copie a cena do cenário original e cole na caixa

Note que ele ainda está muito maior do que a caixa

5 — Ajuste a escala para caber dentro da caixa (ou com medidas próximas a ela)

Ela ainda tá um pouco maior, mas não o suficiente para afetar a “mobilidade” pelo cenário (como estava antes)

6- Pronto! Agora pode programar e colocar a cena, você se sentirá em outra realidade!!

Créditos do cenário utilizado: “The Living Forest” (https://skfb.ly/69WTw) by proxy_doug is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).

Para testar esse e outros cenários, baixe nosso jogo na AppStore: Link

--

--