Modo central da AR Session
O modo central é um conceito fundamental no Unity AR, determinando qual objeto a sessão seleciona como ponto de referência (objeto central) para todos os rastreamentos AR durante a execução, e quais objetos na sessão podem se mover livremente. Através deste conteúdo, você entenderá os conceitos básicos do modo central e seu impacto no comportamento de movimento dos objetos na cena.
Antes de começar
- Compreenda os conceitos básicos, componentes e fluxo de trabalho da sessão através da Introdução à AR Session.
- Entenda o papel da câmera em cenas AR e como a sessão controla suas propriedades para garantir uma experiência AR correta através de Câmera.
- Aprenda os conceitos básicos, componentes e ciclo de vida do XR Origin através de XR Origin.
- Conheça os conceitos básicos, estados e ciclo de vida do target através de Target.
Objeto central e modo central
Em uma sessão, podem estar sendo executadas simultaneamente uma ou mais funcionalidades AR diferentes. Essas funcionalidades AR podem rastrear objetos diferentes e podem usar simultaneamente o recurso de rastreamento de movimento para monitorar a posição e orientação do próprio dispositivo.
Para garantir que o comportamento de movimento dos objetos na cena atenda às expectativas, a sessão precisa selecionar um ponto de referência como centro para todos os rastreamentos AR. Este ponto de referência é representado na cena Unity como o objeto central (CenterObject). O modo central (CenterMode) é a regra que determina qual objeto será selecionado como objeto central durante a execução da sessão.
O centro de uma sessão pode ser um dos seguintes objetos:
- Um target rastreado
- O XR Origin
- A câmera
O modo central determina qual objeto a sessão seleciona como objeto central e se esse objeto pode se mover livremente. Os objetos fora deste (incluindo câmera não central, XR Origin e targets) são controlados pela sessão e se movem em relação ao objeto central.
No Unity, a sessão suporta os quatro modos de centro a seguir:
| Nome | Diagrama | Descrição |
|---|---|---|
| FirstTarget SpecificTarget |
![]() |
Usa um target como centro, esse target pode se mover livremente. Entre eles,
|
| SessionOrigin | ![]() |
Usa a XR Origin como centro, a XR Origin pode se mover livremente. A câmera e os targets na sessão são controlados pela sessão, movendo-se em relação à XR Origin central como ponto de referência. |
| Camera | ![]() |
Usa a câmera como centro, a câmera pode se mover livremente. A XR Origin e os targets na sessão são controlados pela sessão, movendo-se em relação à câmera central como ponto de referência. |
O diagrama mostra três objetos: uma bola azul representa a XR Origin, um cone azul representa a câmera e uma imagem amarela representa o target. Em diferentes modos de centro, a sessão escolhe diferentes objetos como objetos centrais, mostrando o sistema de coordenadas local do objeto correspondente na imagem.
Dica
Se você tem experiência com o AR Foundation, pode notar que não existe um conceito semelhante no AR Foundation. Na verdade, o comportamento do AR Foundation é consistente com o modo de centro SessionOrigin.
Na sessão, a relação de movimento relativo entre target e camera é controlada pela sessão atual. A relação de movimento relativo entre XR Origin e camera é controlada pela sessão atual ou por um framework de terceiros (como o AR Foundation). A existência do modo de centro garante que, em diferentes ambientes de execução, a sessão possa controlar corretamente o comportamento de movimento dos objetos na cena.
Por exemplo, se o AR Foundation ou um SDK de headset baseado no Unity XR controlar a relação de movimento relativo entre XR Origin e camera, a XR Origin, como um design da estrutura Unity XR, pode ter seu movimento controlado pela sessão, enquanto a camera não. Nesse caso, a sessão limitará o modo de centro a FirstTarget, SpecificTarget ou SessionOrigin. Assim, para a sessão, o centro será a XR Origin ou um target, enquanto para a estrutura Unity XR, o centro ainda é a XR Origin, permitindo que todo o sistema funcione perfeitamente.
Aviso
No Unity AR, qualquer objeto que exista no sistema de coordenadas mundial do Unity e cujo transform não seja ajustado de acordo com o componente de sessão pode não ser exibido corretamente. Como a sessão ajusta a posição e orientação de outros objetos na cena com base na posição e orientação do objeto central, se um objeto não for controlado pela sessão, sua posição e orientação podem não corresponder às calculadas pela sessão, levando a comportamentos inesperados.
Por exemplo, se um modelo de panda for colocado no sistema de coordenadas mundial, a posição e orientação desse modelo podem não ter relação com nenhum objeto do mundo real, parecendo flutuar no ar ou se movendo aleatoriamente.
A prática correta é sempre colocar o conteúdo a ser exibido sob um nó target ou sob o nó XR Origin (se o conteúdo precisar seguir o movimento da XR Origin). Assim, a posição e orientação do conteúdo serão ajustadas de acordo com os resultados de cálculo da sessão, garantindo que o conteúdo possa ser sobreposto corretamente no mundo real.
Alinhar manualmente a posição e orientação do conteúdo com target ou XR Origin é possível, mas deve ser feito no momento certo. Consulte Escolher o modo de centro adequado para referência.
Modos de centro disponíveis
Nem todos os modos de centro são válidos em todas as situações. A sessão determina quais modos de centro são válidos com base no ambiente de execução atual e na fonte de quadro escolhida, garantindo que possa controlar corretamente o comportamento de movimento dos objetos na cena. A propriedade ARSession.AvailableCenterMode pode ser usada para obter a lista de modos de centro válidos para a sessão atual.
Dependendo da fonte de quadro escolhida, os modos de centro válidos da sessão têm várias situações diferentes:
| Fonte de quadro | Câmera controlada | Tem dados de movimento | Tem design de origem | Modos de centro válidos |
|---|---|---|---|---|
|
Sim | Não | - |
|
|
Sim | Sim | Sim |
camera não éum nó filho da XR Origin |
|
Não | Sim | Sim |
|
|
Não | Sim | Não |
|
Exceto quando se usa o FramePlayer, os modos de centro válidos são determinados durante a montagem da sessão. Ao usar o FramePlayer, os modos de centro válidos são determinados dinamicamente durante a execução da sessão, a cada quadro de dados de saída, com base na presença ou ausência de informações de movimento nos dados.
Características de diferentes modos centrais
A seguir, demonstraremos o comportamento de movimento dos objetos em diferentes modos centrais através de uma série de vídeos exemplos.
O conteúdo do vídeo é o seguinte:
No mundo real, existem dois objetos rastreáveis de tipos diferentes:
- Um é uma árvore de Natal, que permanece estacionária. Ela é rastreada através da funcionalidade de mapa espacial esparso.
- O outro é um papel A4, com uma imagem impressa, que pode ser movido. Ele é rastreado através da funcionalidade de rastreamento de imagem.
Durante a gravação, o observador (celular) começa atrás e à direita da árvore de Natal, movendo-se ao redor dela. O papel A4 balança para frente e para trás à frente do observador.
Para facilitar a observação, adicionamos alguns indicadores a diferentes objetos na cena:
- Árvore de Natal: quando em estado rastreado, sobrepõe-se nuvem de pontos azul brilhante no espaço que ocupa. Esses indicadores desaparecem quando o rastreamento é perdido.
- Papel A4: quando rastreado, sobrepõe-se um panda diretamente acima dele. A
Gameview também exibe adicionalmente uma imagem idêntica em conteúdo e tamanho ao papel A4. Esses indicadores desaparecem quando o rastreamento é perdido.- XR Origin: um esfera azul é posicionada em sua localização
- Câmera: um cone azul é colocado em sua posição, com o eixo principal alinhado à direção do olhar da câmera.
Estes vídeos foram gravados no modo Play do editor Unity usando dados de execução simulados. O lado esquerdo mostra a view Scene, o direito a view Game. O conteúdo da view Game corresponde ao que o usuário veria no mundo real através do celular.
Modos centrais FirstTarget e SpecificTarget
Os modos FirstTarget e SpecificTarget são padrões que tomam um target como objeto central. Nestes modos, além do target central, a camera na sessão, o XR Origin e outros targets são controlados pela sessão, movendo-se em relação ao ponto de referência do target central.
Alguns targets podem se mover no mundo real, como o papel A4 no vídeo.
No vídeo acima, o objeto central é o papel A4 rastreado pela funcionalidade de rastreamento de imagem. Pode-se ver que, sem operação externa, o papel A4 (panda) permanece imóvel, enquanto a câmera (cone azul), o XR Origin (esfera azul) e a árvore de Natal (nuvem de pontos azul-clara) estão se movendo.
Alguns targets são estacionários no mundo real, como a árvore de Natal no vídeo.
No vídeo acima, o objeto central é a árvore de Natal rastreada pela funcionalidade de mapa espacial esparso. Pode-se ver que, sem operação externa, a árvore de Natal (nuvem de pontos azul-clara) permanece imóvel, enquanto a câmera (cone azul) e o papel A4 (panda) estão se movendo. O XR Origin (esfera azul) também não se move, mas isso ocorre porque está estacionário em relação à árvore de Natal.
Nestes dois modos, o target central, que serve como ponto de referência, pode se mover livremente. Neste caso, a câmera na sessão, o XR Origin e outros targets mover-se-ão junto, e seus transforms não podem ser controlados externamente.
No vídeo acima, o objeto central é o papel A4 rastreado pela funcionalidade de rastreamento de imagem. Pode-se ver que, ao mover manualmente o papel A4 (panda), a câmera (cone azul), o XR Origin (esfera azul) e a árvore de Natal (nuvem de pontos azul-clara) moveram-se junto. É importante notar que o conteúdo exibido na visualização
Gamenão mudou, pois a posição e orientação da câmera permanecem inalteradas em relação ao papel A4 e aos outros objetos.
A diferença entre os modos FirstTarget e SpecificTarget reside em como o target central pode mudar durante a execução, mas a forma de seleção do centro difere quando ocorre uma mudança. Para explicar isso, precisamos considerar o processo de rastreamento bem-sucedido e perdido.
Quando o objeto central da sessão muda, ARSession.CenterObject refletirá sempre o objeto central atual, mas ARSession.CenterMode não mudará.
Mudança de centro no modo FirstTarget
No modo FirstTarget, a sessão está sempre centrada no primeiro target rastreado. Se este target for perdido, a sessão recentraliza-se, e quando a sessão rastreia ou detecta um novo target, esse outro target é selecionado como novo centro.
A recentralização ocorre nas seguintes situações:
Nenhum
targetestá sendo rastreado no frame atual
Nesse caso, se o modo SessionOrigin estiver disponível, a sessão decai para o modo SessionOrigin, selecionandoXR Origincomo centro; caso contrário, decai para o modo Camera, selecionandocameracomo centro.Há
targetssendo rastreados no frame atual, mas nenhum estava sendo rastreado no frame anterior
A sessão seleciona um dostargetsrastreados como centro.Há
targetssendo rastreados no frame atual, mas otargetcentral do frame anterior foi perdido
A sessão seleciona um dostargetsrastreados como novo centro.
No vídeo acima, inicialmente o centro é uma folha A4 rastreada por reconhecimento de imagem. Quando a folha (panda) é perdida, a sessão recentraliza-se, transformando a árvore de Natal (nuvem de pontos azul) no novo centro. No final, a folha é reencontrada mas não se torna centro, pois a árvore já é o centro.
Mudanças de centro no modo SpecificTarget
No modo SpecificTarget, a sessão está sempre centrada num target especificado. Se este target for perdido, a sessão recentraliza-se, mas não escolhe outros targets como novo centro. Se o target especificado for reencontrado, retoma como centro.
A recentralização ocorre nas seguintes situações:
O
targetespecificado não está sendo rastreado no frame atual
Nesse caso, se o modo SessionOrigin estiver disponível, a sessão decai para o modo SessionOrigin, selecionandoXR Origincomo centro; caso contrário, decai para o modo Camera, selecionandocameracomo centro.O
targetespecificado está sendo rastreado no frame atual, mas não estava no frame anterior
A sessão seleciona otargetespecificado como centro.
No vídeo acima, o centro é especificado como a folha A4. Quando a folha (panda) é perdida, a sessão não escolhe a árvore (nuvem azul) como novo centro. Quando a folha é reencontrada, retoma como centro.
Modo de centro SessionOrigin
O modo SessionOrigin usa XR Origin como centro. Neste modo, tanto camera quanto targets são controlados pela sessão, movendo-se relativamente ao centro XR Origin.
No vídeo acima, o centro é XR Origin. Sem intervenção externa, XR Origin (esfera azul) permanece imóvel, enquanto câmera (cone azul) e folha (panda) se movem. A árvore (nuvem azul) também não se move por estar estática relativa a XR Origin.
Neste modo, o centro XR Origin pode ser movido livremente. Camera e targets acompanharão esse movimento, e seus transforms não podem ser controlados externamente.
No vídeo acima, ao mover manualmente XR Origin (esfera azul), câmera (cone), árvore (nuvem) e folha (panda) acompanham o movimento. A visualização no
Gamenão muda pois as posições relativas entre os objetos se mantêm.
No modo SessionOrigin, XR Origin é obrigatório, portanto o centro não muda.
Modo de centro Camera
O modo Camera usa camera como centro. Neste modo, XR Origin e targets são controlados pela sessão, movendo-se relativamente ao centro camera.
No vídeo acima, o centro é a câmera. Sem intervenção externa, a câmera (cone azul) permanece imóvel, enquanto XR Origin (esfera), árvore (nuvem) e folha (panda) se movem.
Neste modo, o centro camera pode ser movido livremente. XR Origin e targets acompanharão esse movimento, e seus transforms não podem ser controlados externamente.
No vídeo acima, ao mover manualmente a câmera (cone azul), XR Origin (esfera), árvore (nuvem) e folha (panda) acompanham o movimento. A visualização no
Gamenão muda pois as posições relativas se mantêm.
No modo Camera, camera é obrigatório, portanto o centro não muda.
Próximos passos
- Experimente Selecionar o modo central apropriado


