Table of Contents

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
alt text Usa um target como centro, esse target pode se mover livremente. Entre eles,
  • FirstTarget usa o primeiro target rastreado como centro.
  • SpecificTarget usa um target especificado como centro.
A câmera na sessão, a XR Origin e outros targets são controlados pela sessão, movendo-se em relação ao target central como ponto de referência.
SessionOrigin alt text 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 alt text 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
  • CameraDeviceFrameSource
  • FramePlayer e a fonte de quadro usada na gravação não tem dados de movimento
  • ExternalImageStreamFrameSource
Sim Não -
  • FirstTarget
  • SpecificTarget
  • Camera
  • ARCoreFrameSource
  • AREngineFrameSource
  • ARKitFrameSource
  • InertialCameraDeviceFrameSource
  • MotionTrackerFrameSource
  • ThreeDofCameraDeviceFrameSource
  • FramePlayer e a fonte de quadro usada na gravação tem dados de movimento
Sim Sim Sim
  • FirstTarget
  • SpecificTarget
  • SessionOrigin
  • Camera (*)
* Válido apenas quando a camera não é
um nó filho da XR Origin
  • ARCoreARFoundationFrameSource
  • ARKitARFoundationFrameSource
  • VisionOSARKitFrameSource
  • XREALFrameSource
  • ExternalDeviceFrameSource e OriginType é XROrigin ou Custom
    • PicoFrameSource
    • RokidFrameSource e não usa UXR
Não Sim Sim
  • FirstTarget
  • SpecificTarget
  • SessionOrigin
  • ExternalDeviceFrameSource e OriginType é None
    • RokidFrameSource e usa UXR
Não Sim Não
  • SessionOrigin

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 Game view 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 Game nã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 target está sendo rastreado no frame atual
    Nesse caso, se o modo SessionOrigin estiver disponível, a sessão decai para o modo SessionOrigin, selecionando XR Origin como centro; caso contrário, decai para o modo Camera, selecionando camera como centro.

  • targets sendo rastreados no frame atual, mas nenhum estava sendo rastreado no frame anterior
    A sessão seleciona um dos targets rastreados como centro.

  • targets sendo rastreados no frame atual, mas o target central do frame anterior foi perdido
    A sessão seleciona um dos targets rastreados 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 target especificado 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, selecionando XR Origin como centro; caso contrário, decai para o modo Camera, selecionando camera como centro.

  • O target especificado está sendo rastreado no frame atual, mas não estava no frame anterior
    A sessão seleciona o target especificado 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 Game nã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 Game nã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

Tópicos relacionados