Tutorial: Compartilhar âncoras espaciais entre sessões e dispositivos

O Azure Spatial Anchors é um serviço de desenvolvedor multiplataforma com o qual você pode criar experiências de realidade mista usando objetos que persistem sua localização entre dispositivos ao longo do tempo.

Neste tutorial, você usa as Âncoras Espaciais do Azure para criar âncoras durante uma sessão e, em seguida, localizá-las no mesmo dispositivo ou em um dispositivo diferente. As mesmas âncoras também podem ser localizadas por vários dispositivos no mesmo lugar e ao mesmo tempo.

Animation showing spatial anchors that are created with a mobile device and used with a different device over the course of days.

Neste tutorial, irá aprender a:

  • Implante um aplicativo Web ASP.NET Core no Azure que você pode usar para compartilhar âncoras e armazenar as âncoras na memória por um período de tempo especificado.
  • Configure a cena AzureSpatialAnchorsLocalSharedDemo dentro do exemplo Unity em nossos inícios rápidos para aproveitar o aplicativo Web Sharing Anchors.
  • Implante e execute as âncoras em um ou mais dispositivos.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Antes de começar este tutorial, certifique-se de que cumpriu os seguintes pré-requisitos:

  • Leia a visão geral das Âncoras Espaciais do Azure.
  • Conclua um dos inícios rápidos de 5 minutos.

    Nota

    Os inícios rápidos Android/NDK e iOS/Swift atualmente não mostram os recursos explicados neste tutorial.

  • Conhecimento básico de:
    • ARCore se você estiver usando Android.
    • ARKit se você estiver usando iOS.
  • Um computador Windows com Visual Studio 2019 ou posterior e a carga de trabalho de desenvolvimento ASP.NET e Web.
  • O SDK do .NET Core 3.1.
  • Um ou mais dos seguintes dispositivos nos quais implantar e executar um aplicativo: HoloLens, HoloLens 2, iOS ou Android.

Nota

Você usará o Unity e um aplicativo Web ASP.NET Core neste tutorial, mas a abordagem aqui é apenas para fornecer um exemplo de como compartilhar identificadores do Azure Spatial Anchors em outros dispositivos. Você pode usar outras linguagens e tecnologias de back-end para atingir o mesmo objetivo.

Criar um recurso de Âncoras Espaciais

Aceda ao portal do Azure.

No painel esquerdo, selecione Criar um recurso.

Use a caixa de pesquisa para procurar Âncoras Espaciais.

Screenshot showing the results of a search for Spatial Anchors.

Selecione Âncoras espaciais e, em seguida, selecione Criar.

No painel Conta de Âncoras Espaciais, faça o seguinte:

  • Insira um nome de recurso exclusivo usando caracteres alfanuméricos regulares.

  • Selecione a subscrição à qual pretende anexar o recurso.

  • Crie um grupo de recursos selecionando Criar novo. Nomeie-o myResourceGroup e selecione OK.

    Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.

  • Selecione um local (região) no qual colocar o recurso.

  • Selecione Criar para começar a criar o recurso.

Screenshot of the Spatial Anchors pane for creating a resource.

Depois que o recurso é criado, o portal do Azure mostra que sua implantação foi concluída.

Screenshot showing that the resource deployment is complete.

Selecione Ir para recurso. Agora você pode exibir as propriedades do recurso.

Copie o valor de ID de conta do recurso em um editor de texto para uso posterior.

Screenshot of the resource properties pane.

Copie também o valor Domínio da Conta do recurso em um editor de texto para uso posterior.

Screenshot showing the resource's account domain value.

Em Configurações, selecione Chave de acesso. Copie o valor da chave primária, Chave de conta, em um editor de texto para uso posterior.

Screenshot of the Keys pane for the account.

Baixe o projeto de exemplo + SDK de importação

Clone Samples Repo

Clone o repositório de amostras executando os seguintes comandos:

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

Importar ASA SDK

Siga as instruções aqui para baixar e importar os pacotes ASA SDK necessários para a plataforma HoloLens.

Implantar o serviço Âncoras de Compartilhamento

Nota

Neste tutorial, usaremos a camada gratuita do Serviço de Aplicativo do Azure. A camada livre expirará após 20 minutos de inatividade e redefinirá o cache de memória.

Abra o Visual Studio e, em seguida, abra o projeto na pasta Sharing\SharingServiceSample .

Abra o assistente de publicação

No Gerenciador de Soluções, clique com o botão direito do mouse no projeto SharingService e selecione Publicar....

O Assistente de Publicação é iniciado.

  1. Selecione Target Azure>Next.
  2. Selecione Serviço de Aplicativo do Azure de Destino Específico (Windows)>Avançar
  3. Inicie sessão no portal do Azure.
  4. Selecione o "+" verde para Criar um Serviço de Aplicativo do Azure

Definições do Serviço de Aplicações

Definição Valor sugerido Description
Name myASASharingService Dê ao seu serviço um nome exclusivo
Nome da Subscrição Selecione sua assinatura preferida do Azure
Grupo de Recursos myResourceGroup ou selecione um existente Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.
Plano de Alojamento Selecione Novo... e veja a tabela abaixo Um plano do serviço de aplicações especifica o local, tamanho e funcionalidades da farm de servidores Web que aloja a aplicação. Você pode economizar dinheiro ao hospedar vários aplicativos configurando os aplicativos Web para compartilhar um único plano do Serviço de Aplicativo. Os planos do Serviço de Aplicativo definem:
  • Região (por exemplo: Europa do Norte, E.U.A. Leste, Ásia Sudeste)
  • Tamanho da instância (pequena, média, grande)
  • Contagem do dimensionamento (1 a 20 instâncias)
  • SKU (Gratuito, Partilhado, Básico, Standard ou Premium)

Configurações do Plano de Hospedagem

Definição Valor sugerido Description
Plano de Alojamento MySharingServicePlan Dê ao seu plano de hospedagem um nome exclusivo
Localização E.U.A. Oeste O centro de dados onde o a aplicação Web está alojada. Escolha um local mais próximo do local físico que seu aplicativo será usado
Tamanho Gratuito A camada de preço que determina os recursos de hospedagem
  1. Selecione Criar para criar o Serviço de Aplicativo
  2. Depois que o serviço de aplicativo for criado, selecione-o na lista "Instâncias do serviço de aplicativo" e selecione Concluir
  3. Na guia SharingService: Publicar, selecione Publicar

Depois que o aplicativo Web ASP.NET Core tiver sido publicado no Azure, você poderá acessar https://<your_app_name>.azurewebsites.net ou clicar no link ao lado de Site: na guia SharingService: Publicar. Copie este URL para um editor de texto para uso posterior.

Screenshot of a published ASP.NET web app in Azure.

Configurar + implantar o aplicativo de exemplo

Abrir Projeto

Em Unity, abra o projeto na pasta Unity . Unity pode perguntar sobre uma diferença entre a versão no projeto e a versão instalada em sua máquina. Este aviso é aceitável, desde que sua versão do Unity Editor seja mais recente do que aquela com a qual o projeto foi criado. Se a sua versão for mais recente, selecione Continuar. Se sua versão for mais antiga do que a que o projeto precisa, selecione Sair e atualize seu Editor Unity.

Screenshot of the Unity pane.

Configurar configurações de compilação

Abra Configurações de compilação selecionando Configurações de compilação de arquivo>.

Na seção Plataforma, selecione Plataforma Universal do Windows. Altere o dispositivo alvo para HoloLens.

Selecione Mudar de plataforma para alterar a plataforma para a Plataforma Universal do Windows. O Unity pode solicitar que você instale componentes de suporte UWP se eles estiverem faltando.

Screenshot of the Unity Build Settings pane - HoloLens

Feche a janela Configurações de compilação.

Configurar as informações da conta

A próxima etapa é configurar o aplicativo para usar as informações da sua conta. Você copiou os valores de Chave de Conta, ID de Conta e Domínio de Conta para um editor de texto anteriormente, na seção "Criar um recurso de Âncoras Espaciais".

No painel Projeto, vá para Assets\AzureSpatialAnchors.SDK\Resources.

Selecione SpatialAnchorConfig. No painel Inspetor, insira o como o valor para Chave de Conta de Âncoras Espaciais, como o valor para ID de Conta de Âncoras Espaciais e como Account DomainAccount ID o Account Key valor para Domínio de Conta de Âncoras Espaciais.

Abra a cena chamada AzureSpatialAnchorsLocalSharedDemo encontrada nela clicando duas vezes nela Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo no painel do projeto

No painel Projeto, vá para Assets\AzureSpatialAnchors.Examples\Resources.

Selecione SpatialAnchorSamplesConfig. Em seguida, no painel Inspetor , insira a Sharing Anchors Service URL (da implantação do Azure do aplicativo Web ASP.NET) como o valor para Base Sharing Url. Anexe o URL com /swagger/api/anchors. Deve ter a seguinte aparência: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Salve a cena selecionando Salvar arquivo>.

Exportar + implantar o aplicativo HoloLens

Abra Configurações de compilação selecionando Configurações de compilação de arquivo>.

Em Cenas na compilação, verifique se todas as cenas têm uma marca de seleção ao lado delas.

Selecione Construir. Na caixa de diálogo, selecione uma pasta na qual exportar o projeto HoloLens Visual Studio.

Quando a exportação estiver concluída, uma pasta contendo o projeto HoloLens exportado aparecerá.

Na pasta, clique duas vezes em HelloAR U3D.sln para abrir o projeto no Visual Studio.

Altere a Configuração da Solução para Release, altere a Solution Platform para x86 e selecione Device nas opções de destino de implantação.

Se estiver usando o HoloLens 2, use ARM64 como a plataforma de solução, em vez de x86.

Visual Studio configuration

Ligue o dispositivo HoloLens, inicie sessão e ligue o dispositivo ao PC utilizando um cabo USB.

Selecione Depurar Iniciar depuração para implantar seu aplicativo e iniciar a depuração>.

Executar a aplicação

No aplicativo, selecione LocalSharedDemo usando as setas e pressione o botão Ir! para executar a demonstração. Siga as instruções para colocar e recolher uma âncora.

Com Create & Share Anchor, você pode criar uma âncora e salvá-la em seu serviço de compartilhamento. Em troca, você receberá de volta um identificador para ele que você pode usar para recuperá-lo do serviço de compartilhamento. Em seguida, você pode executar o segundo cenário, Localizar âncora compartilhada, a partir do seu dispositivo ou de um diferente.

Com Localizar âncora compartilhada, você pode localizar âncoras compartilhadas anteriormente inserindo o identificador mencionado anteriormente. Depois de escolher o seu cenário, a aplicação irá guiá-lo com mais instruções. Por exemplo, ser-lhe-á pedido para mover o dispositivo para recolher informações do ambiente. Mais tarde, você colocará uma âncora no mundo, esperará que ela salve, iniciará uma nova sessão e a localizará.

Clean up resources (Limpar recursos)

Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se provavelmente não necessitar desses recursos no futuro, pode eliminá-los ao eliminar o grupo de recursos.

No menu do portal do Azure ou na página inicial , selecione Grupos de recursos. Em seguida, na página Grupos de recursos, selecione myResourceGroup.

Na página myResourceGroup, certifique-se de que os recursos listados são aqueles que você deseja excluir.

Selecione Excluir grupo de recursos, digite myResourceGroup na caixa de texto para confirmar e selecione Excluir.

Próximos passos

Neste tutorial, você implantou um aplicativo Web ASP.NET Core no Azure e configurou e implantou um aplicativo Unity. Você criou âncoras espaciais com o aplicativo e as compartilhou com outros dispositivos usando seu aplicativo Web ASP.NET Core.

Você pode melhorar seu aplicativo Web ASP.NET Core para que ele use o Azure Cosmos DB para manter o armazenamento de seus identificadores de âncoras espaciais compartilhadas. Ao adicionar suporte ao Azure Cosmos DB, você pode fazer com que seu aplicativo Web ASP.NET Core crie uma âncora hoje. Em seguida, usando o identificador de âncora armazenado em seu aplicativo Web, você pode fazer com que o aplicativo retorne dias depois para localizar a âncora novamente.