Movimento rastreamento central em Unity AR —— XR Origin
O XR Origin é o conceito central para o rastreamento de movimento em Unity. Em aplicativos AR modernos, o rastreamento de movimento está gradualmente se tornando um recurso essencial. Através do rastreamento de movimento, os aplicativos podem entender a posição e a orientação do usuário no mundo real sem a necessidade de outros marcadores, permitindo experiências AR imersivas. Através do conteúdo a seguir, você entenderá o conceito básico, composição e ciclo de vida do XR Origin, e quando é necessário usá-lo.
Antes de começar
- Entenda os conceitos básicos, composição e fluxo de trabalho da sessão através de Introdução ao ARSession.
O que é o XR Origin
Quando a funcionalidade de rastreamento de movimento é inicializada, um ponto de referência é selecionado como origem do rastreamento. Este ponto de referência é geralmente a posição do dispositivo quando o usuário inicia o aplicativo ou quando o serviço AR do sistema é iniciado. A representação deste ponto de referência na cena Unity é o XR Origin. Na maioria dos casos, a posição inicial do XR Origin na cena também é a posição padrão da câmera.
Este vídeo mostra uma cena AR simples com apenas o rastreamento de movimento em execução. À esquerda está a visualização
Hierarchy, no meio a visualizaçãoScenee à direita a visualizaçãoGame. O vídeo foi gravado usando dados de simulação no modoPlaydo editor Unity. O conteúdo da visualizaçãoGameé o mesmo que o usuário veria no mundo real em um dispositivo móvel.Pode-se ver que, neste vídeo, o XR Origin (esfera azul) permanece fixo na cena, enquanto a câmera representando o usuário (ícone de câmera) se move de acordo com o movimento do usuário no mundo real. Os cones brancos capturam a trajetória de posição e orientação da câmera durante um período anterior, ajudando a entender melhor o movimento da câmera na cena. Observe que esses cones brancos são gerados sob o nó do XR Origin, o que é típico da organização hierárquica de objetos nesse tipo de cena.
No sistema de rastreamento de movimento do Unity, a câmera geralmente segue o movimento do XR Origin. Embora a câmera não precise ser necessariamente um nó filho do XR Origin, a AR Session calculará a posição da câmera com base na posição do XR Origin, garantindo que o conteúdo visto pelo usuário corresponda ao mundo real.
Este vídeo mostra a mesma cena, mas desta vez movemos o XR Origin (esfera azul) durante a execução. Observe que após mover o XR Origin, a câmera se move junto com ele, enquanto o conteúdo na visualização
Gamenão muda.
Em cenas AR reais, essa relação de movimento é mais complexa.
Comportamento do XR Origin em diferentes modos de centro
No Unity, o ponto de referência central para todo o rastreamento AR é chamado de centro da sessão, e as regras que determinam esse centro durante a execução da sessão são chamadas de modos de centro. Em diferentes modos de centro, o comportamento do XR Origin varia:
No modo de centro SessionOrigin, o XR Origin pode ser movido livremente.
Geralmente, o modo SessionOrigin é usado em cenas onde apenas o rastreamento de movimento está ativo. Quando outros recursos estão em execução simultânea, normalmente não se usa o modo SessionOrigin.
No entanto, ao usar headsets, se o fabricante não implementar corretamente o ponto de referência para rastreamento de movimento no Unity, é necessário usar o centro mundial do Unity, forçando assim o modo SessionOrigin. Essa situação exige que o nó raiz do conteúdo siga o movimento do recurso AR, o que pode afetar o resultado visual, mas não há alternativa até que os fabricantes de terceiros implementem correções.
Em outros modos de centro (como FirstTarget), o XR Origin não pode ser movido livremente.
O modo FirstTarget é geralmente usado em cenas sem rastreamento de movimento ou onde outros recursos AR estão em execução simultânea com o rastreamento de movimento.
Nesse modo, a posição do XR Origin é determinada pelo recurso AR, portanto, não pode ser movida livremente.
Para detalhes sobre modos de centro e como os objetos se movem na cena, consulte: Modos de centro.
Forma e composição do XR Origin
O EasyAR pode usar duas formas diferentes de XR Origin:
- XR Origin fornecido pelo EasyAR
- XR Origin fornecido pelo framework Unity XR
XR Origin (EasyAR)
Uma estrutura típica de XR Origin é mostrada abaixo:

O nó raiz do XR Origin é um GameObject vazio, que pode ter um ou mais nós filhos XR Origin Child. Cada XR Origin Child contém um componente XROriginChildController para gerenciar a lógica de controle do XR Origin.
Durante a execução da sessão, se não houver uma estrutura XR Origin correta na cena, o XR Origin e um XR Origin Child serão criados automaticamente. Durante a execução, o XR Origin Child será restrito à mesma posição e orientação do XR Origin.
Objetos gerados pela sessão, como nuvens de pontos de mapeamento espacial esparso ou malhas de reconstrução espacial densa, são criados sob nós XR Origin Child.
Este vídeo mostra o efeito da execução simultânea de reconstrução espacial densa com rastreamento de movimento na mesma cena. Observe que a malha gerada é criada sob o nó XR Origin Child.
Nota: Para facilitar a compreensão, a geração do mapa de profundidade foi desativada neste vídeo, portanto, o conteúdo da visualização
Scenedifere do que seria exibido durante a execução real. O efeito na visualizaçãoGameé o mesmo que quando a transparência da malha está desativada.
[Opcional] XR Origin (Unity XR)
Se necessário, você pode optar por usar o componente XR Origin fornecido pelo framework Unity XR.
Ao usar o XR Origin fornecido pelo framework Unity XR, uma estrutura típica é mostrada abaixo:

Em cenas de headset, uma estrutura típica é esta:

O nó raiz do XR Origin é um GameObject criado e mantido pelo framework Unity XR, que pode ter um ou mais nós filhos XR Origin Child. Cada XR Origin Child contém um componente XROriginChildController para gerenciar a lógica de controle do XR Origin.
Durante a execução da sessão, se não houver uma estrutura XR Origin Child correta na cena, o XR Origin Child será criado automaticamente. Durante a execução, o XR Origin Child será restrito à mesma posição e orientação do XR Origin.
O XR Origin fornecido pelo framework Unity XR oferece suporte principalmente para dois casos:
- Você já está usando AR Foundation em seu projeto e deseja que ele funcione simultaneamente com o EasyAR ou alternar entre eles com base no suporte do dispositivo.
- O SDK do headset que você está usando utiliza o componente XR Origin fornecido pelo framework Unity XR.
Nota
Quando o pacote principal do Unity XR com.unity.xr.core-utils não está importado no projeto, se a câmera na cena estiver na mesma estrutura hierárquica que o XR Origin fornecido pelo framework Unity XR (câmera e nó pai chamado Camera Offset), a sessão assumirá que essa estrutura foi criada pelo framework Unity XR e a utilizará. Isso é feito para fornecer compatibilidade máxima à cena, ou seja: cenas criadas com AR Foundation continuarão funcionando normalmente (exceto pelos recursos exclusivos do AR Foundation) mesmo quando o AR Foundation não estiver importado no projeto, sem afetar a funcionalidade geral do aplicativo AR ou a compatibilidade do dispositivo.
A maioria das cenas de exemplo do EasyAR usa essa abordagem para garantir que funcionem sem o AR Foundation, mas também demonstram capacidade de integração quando o AR Foundation está presente.
Na definição do AR Foundation, seu XR Origin é o centro do espaço rastreado na cena XR. No entanto, é importante notar que, no conceito do AR Foundation, o rastreamento de movimento é considerado um recurso obrigatório, e o rastreamento descrito na cena XR refere-se ao rastreamento de movimento.
No sistema EasyAR, o rastreamento de movimento é um recurso opcional, portanto, o XR Origin também é opcional. O XR Origin só é criado e usado quando a funcionalidade de rastreamento de movimento está ativada.
Ciclo de vida do XR Origin
O ciclo de vida do XR Origin está vinculado à sessão. Quando a sessão é iniciada, o XR Origin é selecionado ou criado (se não houver uma estrutura XR Origin correta na cena). Quando a sessão é interrompida, o XR Origin permanece no local até ser usado pela próxima sessão ou excluído manualmente.
Próximos passos
Criação
- Experimente criar um XR Origin na cena
Controle de execução
- Entenda a estratégia de controle Active do XR Origin