Exercício – Serviços de Nuvem do Azure para HoloLens 2

Concluído

A cada capítulo consecutivo, você adicionará novos serviços de Nuvem do Azure para expandir os recursos do aplicativo e a experiência do usuário, ao mesmo tempo em que ensinará os conceitos básicos de cada serviço de Nuvem do Azure.

Observação

Esta série de módulos se concentrará no HoloLens 2, mas devido à natureza multiplataforma do Unity, a maioria dessas lições também se aplicará a aplicativos móveis e desktop.

Metas de aplicativo

Nesta série de módulos, você criará um aplicativo HoloLens 2 que pode detectar objetos de imagens e encontrar sua localização espacial. Vamos nos referir a esses objetos como Objetos Rastreados.

O usuário pode criar um Objeto Rastreado para associar um conjunto de imagens por meio de pesquisa visual computacional, um local espacial ou ambos. Todos os dados devem ser mantidos na nuvem.

Características

  • Gerenciamento básico de dados e imagens
  • Treinamento e detecção de imagem
  • Como armazenar uma localização espacial e diretrizes a ela

Serviços de Nuvem do Azure

Você usará os seguintes serviços de Nuvem do Azure para implementar os recursos acima:

Armazenamento do Azure

Você usará o Armazenamento do Azure para persistir os dados. O Armazenamento do Azure permite que você armazene dados em uma tabela e carregue binários grandes, como imagens.

Visão Personalizada do Azure

Com a Visão Personalizada da IA do Azure (parte dos serviços de IA do Azure), você pode associar um conjunto de imagens a Objetos Rastreados, treinar um modelo de machine learning no conjunto criado e detectar os Objetos Rastreados.

Criar e preparar o projeto do Unity

Nesta seção, você criará um novo projeto do Unity e o preparará para o desenvolvimento do MRTK.

Primeiro, siga as etapas no roteiro de aprendizagem do HoloLens 2, excluindo as instruções para compilar seu aplicativo no dispositivo, que inclui as seguintes etapas:

  1. Criar o projeto do Unity e dar a ele um nome adequado, por exemplo, Tutoriais de Nuvem do Azure
  2. Alternar a plataforma de build
  3. Importando os recursos essenciais do TextMeshPro
  4. Importando o Kit de Ferramentas de Realidade Misturada
  5. Configurando o projeto do Unity
  6. Criar e configurar a cena e dar à cena um nome adequado, por exemplo, AzureCloudServices

Importar os ativos do tutorial

  1. Baixe e importe os seguintes pacotes personalizados do Unity na ordem em que estão listados:

    Depois de importar os ativos do tutorial, a janela do Projeto deverá ser semelhante a esta:

    Captura de tela das janelas Hierarquia, Cena e Projeto do Unity depois de importar os ativos do tutorial.

Preparar a cena

Nesta seção, você preparará a cena adicionando alguns dos prefabs do tutorial.

  1. Na janela Projeto, navegue até a pasta Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager. Ao segurar o botão CTRL, selecione SceneController, RootMenu e DataManager para selecionar os três pré-fabricados:

    Captura de tela do Unity com prefabs SceneController, RootMenu e DataManager selecionados.

    O SceneController (pré-fabricado) contém dois scripts, SceneController (script) e UnityDispatcher (script). O componente de script SceneController contém várias funções de UX e facilita a funcionalidade de captura de fotos, enquanto UnityDispatcher é uma classe auxiliar para permitir a execução de ações no thread principal do Unity.

    O RootMenu (prefab) é o principal prefab da interface do usuário. Ele contém todas as janelas de UI interconectadas por meio de diversos pequenos componentes de script. Esses componentes controlam o fluxo geral da experiência do usuário no aplicativo.

    O DataManager (prefab) é responsável por se comunicar com o armazenamento do Azure e será explicado em mais detalhes no próximo tutorial.

  2. Agora, com os três pré-fabricados ainda selecionados, arraste-os para a janela Hierarquia para adicioná-los à cena:

    Captura de tela do Unity com os pré-fabricados SceneController, RootMenu e DataManager recém-adicionados ainda selecionados.

  3. Para focar nos objetos na cena, você pode clicar duas vezes no objeto RootMenu e dar um leve zoom para fora novamente. Com o objeto RootMenu ainda selecionado, altere seus valores em seu componente Transform para o seguinte:

    Posição: X = 0,0, Y = 1,6, Z = 0,6

    Captura de tela do Unity com o objeto RootMenu selecionado.

    Dica

    Se você achar que os ícones grandes da cena causam distração (por exemplo, os ícones ‘T’ grandes emoldurados), oculte-os alternando os gadgets para a posição desligado.

Como configurar a cena

Nesta seção, você conectará SceneManager, DataManager e RootMenu para ter uma cena de trabalho para o próximo tutorial de integração do armazenamento do Azure.

Conectar os objetos

  1. Na janela Hierarquia, selecione o objeto DataManager :

    Captura de tela do Unity com o objeto DataManager selecionado.

  2. Na janela Inspetor, localize o componente DataManager (Script ). Você verá um slot vazio no evento On Data Manager Ready (). Arraste o objeto SceneController da janela Hierarquia para o evento On Data Manager Ready ().

    Captura de tela do Unity com o ouvinte de eventos DataManager adicionado.

  3. O menu suspenso do evento agora está ativo. Selecione o menu suspenso, navegue até SceneController e escolha a opção Init () no submenu.

    Captura de tela do Unity com a ação de evento DataManager adicionada.

  4. Na janela Hierarquia, selecione o objeto SceneController . Você encontrará o componente SceneController (script) no Inspetor.

    Captura de tela do Unity com SceneController selecionado.

  5. Agora há vários campos não preenchidos. Vamos mudar isso. Mova o objeto DataManager da Hierarquia para o campo Data Manager e mova o RootMenu>MainMenu GameObject da Hierarquia para o campo Menu Principal .

    Captura de tela do Unity com SceneController configurado.

  6. Na janela Hierarquia, selecione o objeto MRTK XR Rig . Verifique se o objeto filho de Fala do MRTK está habilitado. Isso permite que você abra o menu dizendo "Abrir menu".

  7. Agora sua cena está pronta para os próximos tutoriais. Não se esqueça de salvá-lo em seu projeto.

Preparar o pipeline de build do projeto

Observação

A criação e o teste no HoloLens 2 não são obrigatórios. Você pode testar no Emulador do HoloLens 2 se não tiver um dispositivo HoloLens. Você pode comprar dispositivos em HoloLens.com.

Antes de concluirmos a cena, vamos preparar o projeto para a compilação no HoloLens 2.

1. Adicionar outros recursos necessários

  1. No menu Unity, selecione Editar>Configurações do Projeto... para abrir a janela Configurações do Projeto.

    Captura de tela de Configurações de Projeto abertas do Unity.

  2. Na janela Configurações do Projeto, selecione Player e, em seguida, Configurações de Publicação:

    Captura de tela das Configurações de Publicação do Unity.

  3. Em Configurações de Publicação, role para baixo até a seção Recursos e verifique se os recursos InternetClient, Microphone e SpatialPerception (que você habilitou ao criar o projeto no início do tutorial) estão habilitados. Em seguida, habilite os recursos InternetClientServer, PrivateNetworkClientServer e Webcam :

    Captura de tela dos recursos do Unity

2. Implantar o aplicativo no HoloLens 2

Você não poderá executar todos os recursos que usará nesta série de tutoriais dentro do editor do Unity. Portanto, você precisa estar familiarizado com a implantação do aplicativo em seu dispositivo ou emulador do HoloLens 2.

Dica

Para obter um lembrete sobre como criar e implantar seu projeto do Unity no HoloLens 2, você pode consultar os tutoriais de Introdução – Criar e implantar as instruções do aplicativo.

3. Execute o aplicativo no HoloLens 2 e siga as instruções no aplicativo

Cuidado

Todos os Serviços do Azure usam a Internet, portanto, verifique se o dispositivo está conectado à Internet.

Quando o aplicativo estiver em execução em seu dispositivo, conceda acesso aos seguintes recursos solicitados:

  • Microfone
  • Câmera

Esses recursos são necessários para que serviços como a Visão Personalizada funcionem corretamente.