Table of Contents

Alvo de tracking do Unity AR -- target

target expressa no Unity vários objetos que podem ser rastreados. Pelo conteúdo a seguir, você entenderá os conceitos básicos, estados e lifecycle do objeto de tracking target em Unity AR.

Antes de começar

O que é target

target refere-se à representação no Unity dos objetos reconhecidos e rastreados pelas funções AR. No mundo real, esses objetos podem ser imagens, objetos 3D, mapas espaciais etc. Ao reconhecer e rastrear esses objetos, aplicações AR podem sobrepor conteúdo virtual ao mundo real e criar experiências interativas ricas.

Alguns target são estáticos no mundo real, por exemplo um pôster na parede.

Este vídeo mostra uma cena AR simples executando image tracking. À esquerda está a visualização Hierarchy, ao centro a visualização Scene e à direita a visualização Game. O vídeo foi gravado no modo Play do Unity Editor usando dados de execução simulada. O conteúdo da visualização Game é o mesmo que o usuário vê no telefone no mundo real. Neste vídeo, target (ImageTarget) representa um cartão de visita no mundo real. Colocamos uma esfera amarela acima dele como identificação para observar seu movimento com facilidade.

Pode-se ver que a posição de target no mundo real e na cena é fixa, enquanto a câmera que representa o usuário, o cone azul, se move conforme o usuário se move no mundo real. O cone branco captura a trajetória de posição e orientação da câmera em um período passado. A esfera amarela está sob o nó target (ImageTarget), que também é a estrutura típica de organização de objetos nesse tipo de cena.

Alguns target podem se mover no mundo real, por exemplo um pôster em um ônibus.

Este vídeo mostra a mesma cena, mas desta vez movemos target, o cartão de visita, no mundo real. Pode-se ver que após target se mover, a esfera amarela segue o movimento do cartão, e na visualização Game a marca da esfera continua aderida ao cartão.

Para facilitar a compreensão, nos dois vídeos acima a exibição do gizmo de ImageTarget foi desativada, e ambos usam o center mode SessionOrigin. Nesses vídeos, o movimento dos objetos na visualização Scene é igual ao do mundo real. Em cenas AR reais, essa relação de movimento é mais complexa.

Comportamento de target em diferentes center mode

No Unity, o ponto de referência central de todo AR tracking é chamado session center, e as regras que determinam esse centro durante a execução da session são chamadas center mode. Em diferentes center mode, o comportamento de target é diferente:

  • No center mode SessionOrigin, target não pode ser movido arbitrariamente.

    O modo SessionOrigin só pode existir em cenas com motion tracking.

    Embora esse modo possa mostrar bem o movimento de target e da câmera no mundo real na cena simples anterior, ele não é comum em cenas AR reais. Nesse modo, a session controla o movimento de target, e devido a erros de cálculo do motion tracking ou da própria função AR, é difícil garantir que target permaneça totalmente fixo. Nesse momento, o nó raiz do conteúdo precisa seguir o movimento de target, o que pode afetar o comportamento do conteúdo no sistema Unity, por exemplo o sistema físico.

  • No center mode FirstTarget ou SpecificTarget, se target for exatamente o objeto escolhido como centro, ele pode ser movido livremente.

    Em geral, o modo FirstTarget é bastante usado. Ele garante que o primeiro objeto rastreado não seja controlado pela session na cena. Se não houver necessidade de mover target, ele permanecerá fixo, independentemente de o objeto correspondente na cena real estar em movimento ou não.

  • No center mode FirstTarget ou SpecificTarget, se target não for o objeto escolhido como centro, e também no center mode Camera, target não pode ser movido arbitrariamente.

    Ao rastrear vários objetos simultaneamente, mesmo que esses objetos estejam relativamente fixos no ambiente real, devido a erros de cálculo, em um mesmo momento apenas um target pode ficar fora do controle da session. Nesse momento, dependendo da configuração, o movimento dos outros target não é garantido; mesmo sem movimento na realidade, pode haver pequenos movimentos na cena. Esse comportamento ao rastrear vários objetos simultaneamente deve ser considerado plenamente, e a estratégia de conteúdo deve ser ajustada de forma razoável.

Sobre center mode e os modos de movimento dos objetos na cena, consulte em detalhe Center mode.

Estado de target

O estado de target reflete a situação de recognition e tracking de target na session atual. Estados comuns incluem:

  • Tracked: target foi reconhecido e rastreado com sucesso. A aplicação AR pode sobrepor conteúdo virtual sobre ele, e o conteúdo ficará aderido ao objeto no mundo real.
  • Not Tracked: target atualmente não é reconhecido ou rastreado. Se a aplicação AR ainda sobrepuser conteúdo virtual sobre ele, o conteúdo não ficará aderido ao objeto no mundo real.

Ao mesmo tempo, quando o estado muda, você pode responder por meio destes events:

  • TargetFound: acionado quando target é reconhecido e rastreado com sucesso.
  • TargetLost: acionado quando target perde o estado de tracking.

Lifecycle de target

Em cenas Unity AR, target geralmente é gerenciado pelo componente frame filter correspondente. frame filter processa dados de imagem vindos de frame source e reconhece e rastreia os target neles contidos. O lifecycle de frame filter depende da session. Embora diferentes funções AR possam variar na implementação, na maioria dos casos, quando a session inicia, target é carregado e, após o carregamento, fica sob controle da session. Quando a session para, target é descarregado e permanece no local até ser usado pela próxima session ou excluído manualmente.

Próximas etapas

Tópicos relacionados