Como trabalhar com âncoras

Use âncoras para fazer com que objetos virtuais permaneçam no lugar em uma cena de RA.

Por que usar âncoras?

À medida que o compreensão ambiental do ARCore é atualizado durante uma experiência de RA, os objetos virtuais podem parecer se afastando de onde foram colocados. Isso pode afetar o realismo do app e a experiência do usuário.

As âncoras garantem que os objetos pareçam ficar na mesma posição e orientação no espaço, ajudando a manter a ilusão de objetos virtuais colocados no mundo real.

Como funcionam as âncoras

Se você é iniciante no uso de âncoras, vale a pena revisar o espaço mundial e as poses.

  • Espaço mundial

    • Espaço de coordenadas em que a câmera e os objetos estão posicionados
    • As posições da câmera e dos objetos são atualizadas no espaço mundial de frame a frame.
  • Posição

    • Representa a posição e a orientação de um objeto no espaço mundial
    • Também conhecida como transformação no iOS.

Ao criar uma âncora, você usa uma pose que descreve uma posição e orientação em relação à estimativa de espaço mundial do frame atual.

Você anexa um ou mais objetos a essa âncora. A âncora e os objetos anexados a ela parecem permanecer onde estão colocados no mundo. À medida que a posição da âncora se adapta às atualizações do espaço mundial em cada frame, a âncora atualiza as posturas dos objetos corretamente.

Você pode anexar vários objetos à mesma âncora para garantir que eles mantenham a posição e a orientação relativas, mesmo quando a posição da âncora for ajustada.

Usar âncoras na cena

Para usar âncoras na cena, seu código precisa:

  • Crie âncoras no contexto de uma sessão rastreável (como um plano) ou da sessão do ARCore.
  • Anexe um ou mais objetos à âncora.

As âncoras podem oferecer suporte a diferentes tipos de comportamento de posicionamento nos objetos da cena.

A determinação do contexto da âncora e de quantas âncoras você precisa para os objetos da cena depende do comportamento de posição que sua cena de RA exige. Consulte as seções abaixo para mais informações.

Escolher um contexto de âncora

Adicione âncoras à sua cena usando uma sessão rastreável ou do ARCore.

Quando você quiser que os objetos Anexe a âncora ao
aparecem "soldados" ao monitor e estão sujeitos aos mesmos efeitos rotacionais dele.
Isso inclui:
  • Parecer aderir à superfície de um avião
  • Manter uma posição em relação a um rastreável, como flutuar acima ou na frente dele
Acompanhável
Parecer permanecer na mesma postura no espaço mundial durante toda a experiência do usuário Sessão do ARCore

Ancorar um ou mais objetos

Você pode anexar um ou mais objetos a uma âncora. Geralmente, esses objetos têm uma relação espacial com um ou mais dos seguintes itens:

  • Um ao outro
  • Um item rastreável, como um avião
  • Uma posição no espaço mundial

Diretrizes de âncora

O realismo e a performance do seu app se beneficiam do uso de âncoras de maneira eficaz e eficiente.

Objetos anexados a uma âncora próxima parecem manter o lugar de maneira realista e relativo entre si durante toda a experiência de RA.

O uso apenas das âncoras necessárias ajuda a reduzir os custos de CPU.

Reutilizar âncoras quando possível

Na maioria dos casos, é necessário usar a mesma âncora para vários objetos próximos, em vez de criar uma nova âncora para cada objeto.

Use uma nova âncora para um objeto se ele precisar manter uma relação espacial exclusiva com um rastreável ou uma posição no espaço mundial.

Lembre-se de que, se cada objeto em uma cena tiver sua própria âncora, essas âncoras vão ajustar as posições dos objetos de maneira independente umas das outras em resposta à estimativa de espaço mundial do ARCore em cada frame. Objetos ancorados separadamente podem mudar ou girar em relação um ao outro, quebrando a ilusão de um ceno de RA em que objetos virtuais precisam permanecer no lugar em relação entre si.

Exemplo
Por exemplo, imagine que seu app permite que os usuários coloquem peças de móveis virtuais ao redor de um cômodo. Um usuário abre o app, e o ARCore começa a rastrear uma mesa e um andar na sala como "Planes". O usuário posiciona uma lâmpada virtual sobre a mesa. Em seguida, o usuário coloca uma cadeira virtual no chão.

Nesse ponto, sua cena precisa ter uma âncora presa ao plano de mesa e outra ao plano de piso.

Se o usuário adicionar outra luminária virtual à mesa, você poderá reutilizar a âncora já anexada ao plano de mesa. Dessa forma, as duas lâmpadas parecem se prender ao plano de mesa e mantêm os locais em relação à outra. A cadeira também mantém a posição em relação à planta baixa.

Manter objetos próximos às âncoras

Ao ancorar objetos, verifique se eles estão próximos da âncora que você está usando. Evite posicionar objetos a uma distância de mais de 8 metros ou 6 metros da âncora para evitar movimentos rotacionais inesperados devido às atualizações do ARCore nas coordenadas do espaço mundial.

Se você precisar colocar um objeto a mais de oito metros de distância de uma Âncora existente, crie uma nova âncora mais perto dessa posição e anexe o objeto à nova âncora.

Remover âncoras não usadas

Remova todas as âncoras que você não precisa para melhorar a performance do app.

Seu app gera um custo de CPU para cada rastreável, e o ARCore não lança que tenham âncoras anexadas.

Tipos de âncoras

Os tipos de âncora são diferenciados pelo escopo em que são válidos, de local a global.

  • As âncoras locais são armazenadas com o app localmente e válidas somente para essa instância do app. O usuário precisa estar fisicamente no local em que está colocando a âncora.

  • Os Cloud Anchors são armazenados no Google Cloud e podem ser compartilhados entre instâncias de apps. O usuário precisa estar fisicamente no local em que está colocando a âncora.

  • As Âncoras geoespaciais são baseadas na latitude, longitude e altitude geodésicas, além dos dados do sistema de posicionamento visual (VPS) do Google, para fornecer uma localização precisa em praticamente qualquer lugar do mundo. O usuário pode colocar uma âncora em um local remoto, desde que o app esteja conectado à Internet e possa usar o VPS.