Table of Contents

Diagnóstico e reparação: problema de conteúdo ausente no aplicativo

"Consigo ver o mundo real, mas o conteúdo virtual não aparece." Este é um dos problemas mais comuns no desenvolvimento de AR. Ele pode ter origem em múltiplas etapas, desde o próprio posicionamento Mega até sua lógica de renderização.

Este guia orientará você na investigação e solução sistemática desse problema.

Fluxo de investigação: do externo ao interno

Seguir o princípio "primeiro o externo, depois o interno" permite localizar o problema de forma eficiente. Execute estas etapas em ordem:

Etapa um: verificar o status do posicionamento Mega com ferramentas externas (sem modificar código)

Antes de mergulhar no código do seu aplicativo, confirme primeiro se o serviço de posicionamento Mega em si está funcionando corretamente. Esta é a etapa mais crítica, ajudando a determinar se o problema está no próprio posicionamento Mega ou na integração de desenvolvimento, como renderização.

  1. Usar o Mega Toolbox (dispositivo móvel)

    • Instale o Aplicativo Mega Toolbox no seu telefone de teste (se ainda não estiver instalado).
    • Abra o aplicativo e acesse o "Teste de Posicionamento em Campo" ou função similar.
    • Faça login na sua conta e selecione a mesma biblioteca de posicionamento usada pelo seu aplicativo.
    • Leve o telefone para o mesmo local onde o conteúdo não é exibido no seu teste.
    • Observe o resultado:
      • Se o Toolbox posicionar com sucesso (status exibido como Found): Parabéns! O serviço de posicionamento Mega está normal. O problema está dentro do seu aplicativo, especificamente na lógica de renderização e exibição de conteúdo. Pule para a etapa dois.
      • Se o Toolbox falhar no posicionamento (status exibido como NotFound ou outro): O problema está no próprio serviço de posicionamento. Consulte a próxima seção para análise aprofundada.
  2. Usar simulação em PC (se EIF foi coletado)

    • Se você gravou dados EIF para essa cena, pode reproduzi-los usando a ferramenta session no editor Unity do PC.
    • Observe o resultado:
      • Se o posicionamento for bem-sucedido na reprodução (status exibido como Found): O problema está no código do seu aplicativo ou em ambiente específico do dispositivo.
      • Se o posicionamento falhar na reprodução (status exibido como NotFound ou outro): O problema está no próprio serviço de posicionamento. Consulte a próxima seção para análise aprofundada.

Etapa dois: verificar a lógica de renderização e conteúdo dentro do aplicativo

Se a etapa um confirmar que o serviço de posicionamento Mega em si está normal, então o problema está no código do seu aplicativo. Verifique os seguintes pontos:

  1. O conteúdo está sob o nó correto?:

    • Você colocou corretamente os objetos 3D sob os nós MegaBlocks > Block_* gerados automaticamente pela ferramenta?
    • Verifique a hierarquia entre o conteúdo e os nós Block para garantir que a posição de renderização do conteúdo virtual esteja correta em tempo de execução.
  2. O Block Root do MegaTracker está configurado corretamente?:

    • Expanda AR Session, verifique se o Block Root no Mega Tracker é o nó MegaBlocks gerado pela ferramenta.
  3. Os nós MegaBlocks foram modificados?:

    • Certifique-se de que os nomes dos nós Block_* não foram alterados e que nenhum valor nas propriedades local transform foi modificado.
  4. A escuta de eventos está correta?:

    • Você modificou a lógica de tratamento de retorno de chamada (callback) de posicionamento do MegaTracker?
    • Seu código instancia ou exibe o conteúdo virtual somente após o evento de status de posicionamento bem-sucedido ser acionado?
  5. Renderização do headset e transparência:

    • Seu objeto virtual está sendo ocluído por outro objeto? Verifique a fila de renderização e o Shader.
    • Se estiver usando um dispositivo VST (video see-through), verifique se sua renderização está sobreposta corretamente ao fluxo de vídeo.
    • Se estiver usando um dispositivo OST (optical see-through), verifique se o conteúdo está ilegível devido à luz ambiente excessiva.
  6. Problema com o próprio conteúdo:

    • O prefab que você instanciou tem algum problema? Por exemplo, arquivo de modelo ausente, erro de Shader, escala zero, etc. Tente colocar manualmente o mesmo objeto na cena para ver se ele é exibido normalmente.

Análise de causas comuns de falha no posicionamento e sugestões de melhoria

Se na etapa um você descobrir que o Mega Toolbox também não conseguiu posicionar, é necessário analisar e resolver cuidadosamente o problema de posicionamento. Aqui estão as causas comuns e contramedidas:

  • Causa um: mapa e ambiente não correspondem
    O ambiente físico mudou significativamente em relação à coleta e criação do mapa, a área de experiência não foi coberta durante a coleta, ou o próprio mapa está incorreto.
    Sugestão de melhoria:

    • Garanta que o mapa carregado na sua biblioteca de posicionamento corresponda à cena do espaço físico atual.
    • Se o ambiente foi reformado (como decoração, troca de mobiliário), é necessário recolher e gerar um novo mapa.
    • Se a área com problema não foi coberta durante a coleta inicial, é necessário regenerar o mapa através de atualizações complementares.
  • Causa dois: ambiente de inicialização inadequado
    Iniciar o aplicativo em uma área com pouca textura (como paredes lisas, apontando para o chão).
    Sugestão de melhoria:

    • Oriente os usuários a iniciar o aplicativo em áreas ricas em texturas para ajudar o sistema a completar o posicionamento inicial rapidamente.
    • Forneça instruções claras na interface do usuário do aplicativo, como "Levante o telefone e olhe ao redor".
  • Causa três: problema de rede ou serviço
    Atrasos na rede causando timeout nas solicitações do serviço de posicionamento, ou o próprio serviço de posicionamento apresentando falha, excedendo o limite de uso simultâneo, etc. Para este último, por favor, nos informe prontamente.

  • Causa quatro: alcance dos limites da capacidade do algoritmo
    O posicionamento Mega é baseado em algoritmos avançados de visão computacional, IA, etc., mas não é infalível e possui limites de capacidade. Quando ocorrem falhas contínuas de posicionamento em certas cenas ou pontos, você pode nos fornecer feedback através de gravação de tela, gravação de dados EIF, etc., para nos ajudar a melhorar e iterar continuamente os algoritmos.

Além disso, é importante destacar que o posicionamento Mega requer um processo, geralmente em torno de 1-2 segundos. Considerando a complexidade de cenários reais, como congestionamento de rede, alta simultaneidade, redução de frequência do telefone devido ao aquecimento, etc., esse tempo pode ser maior. Portanto, no aplicativo, você pode projetar uma interface clara de carregamento/espera, informando ao usuário "Posicionando...", evitando que o usuário pense que o serviço está inoperante ou que não há posicionamento devido à espera.

Nota
  • O posicionamento inicial geralmente é mais lento que os subsequentes, pois o sistema precisa carregar o conteúdo correspondente após o sucesso inicial. Isso é normal.
  • Mover o dispositivo rapidamente pode causar perda de posicionamento. Oriente os usuários a moverem o dispositivo com suavidade.

Resumo e práticas recomendadas

  • Sempre valide primeiro com ferramentas externas: Isso reduz mais rapidamente o escopo do problema para "posicionamento" ou "renderização".
  • Estabelecer expectativas realistas do usuário: Use dicas de UI para informar ao usuário que o posicionamento leva tempo e oriente-o para um ambiente adequado.
  • Foco na lógica de conteúdo: Garanta que as configurações de vinculação de conteúdo, etc., estejam corretas.
  • Use os logs com sabedoria: Registrar logs em pontos-chave (como acionamento de eventos, obtenção de pose, status de resposta) pode ajudá-lo a localizar rapidamente problemas de lógica de código.

Através desta investigação sistemática, você deve ser capaz de resolver a grande maioria dos problemas de "conteúdo não exibido". Se o problema persistir, prepare os dados EIF e logs e envie um relatório detalhado através do método Relatar problema.