연습 - HoloLens 2용 Azure Cloud Services

완료됨

연속된 각 챕터에서 새로운 Azure 클라우드 서비스를 추가하여 애플리케이션 기능 및 사용자 환경을 확장하는 한편, 각 Azure 클라우드 서비스의 기본 사항을 학습합니다.

참고 항목

이 모듈 시리즈에서는 HoloLens 2를 중점적으로 다루지만, Unity의 플랫폼 간 특성 때문에 대부분의 학습 내용이 데스크톱 및 모바일 애플리케이션에도 적용됩니다.

애플리케이션 목표

이 모듈 시리즈에서는 이미지에서 개체를 검색하고 그 공간 위치를 찾을 수 있는 HoloLens 2 애플리케이션을 빌드합니다. 이러한 개체를 추적된 개체라고 합니다.

사용자가 추적된 개체를 만들어 컴퓨터 비전, 공간 위치 또는 둘 다를 통해 이미지 집합을 연결할 수 있습니다. 모든 데이터가 클라우드에 유지되어야 합니다.

기능

  • 데이터 및 이미지에 대한 기본 관리
  • 이미지 학습 및 검색
  • 공간 위치 및 지침 저장

Azure Cloud Services

다음 Azure Cloud 서비스를 사용하여 위의 기능을 구현합니다.

Azure Storage

Azure Storage를 사용하여 데이터를 유지합니다. Azure Storage를 사용하면 테이블에 데이터를 저장하고 이미지 같이 큰 이진 파일을 업로드할 수 있습니다.

Azure Custom Vision

Azure AI Custom Vision(Azure AI 서비스의 일부)을 사용하여 이미지 집합을 추적된 개체에 연결하고, 만든 집합에서 기계 학습 모델을 학습하고, 추적된 개체를 검색할 수 있습니다.

Azure Spatial Anchors

추적된 개체 위치를 저장하고 안내 지침에 따라 찾으려면 Azure Spatial Anchors를 사용합니다.

Unity 프로젝트 만들기 및 준비

이 섹션에서는 새 Unity 프로젝트를 만들고 MRTK 개발에 맞춰 준비합니다.

먼저 다음 단계를 포함하는 디바이스 지침에 애플리케이션 빌드를 제외하고 HoloLens 2 학습 경로의 단계를 따릅니다.

  1. Unity 프로젝트 만들기 및 적절한 이름 부여(예: Azure Cloud Tutorials)
  2. 빌드 플랫폼 전환
  3. TextMeshPro 필수 리소스 가져오기
  4. Mixed Reality Toolkit 가져오기
  5. Unity 프로젝트 구성
  6. 장면 만들기 및 구성 및 적절한 장면 이름 지정(예: AzureCloudServices)

자습서 자산 가져오기

  1. AzurespatialAnchors 프로젝트에 SDK를 추가합니다. 패키지를 추가하려면 이 자습서따릅니다.

  2. 나열된 순서대로 다음 Unity 사용자 지정 패키지를 다운로드하여 가져옵니다.

    자습서 자산을 가져온 후 프로젝트 창은 다음과 유사하게 표시됩니다.

    Screenshot of Unity Hierarchy, Scene, and Project windows after importing the tutorial assets.

장면 준비

이 섹션에서는 자습서 프리팹 중 일부를 추가하여 장면을 준비합니다.

  1. 프로젝트 창에서 Assets>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager 폴더로 이동합니다. CTRL 단추를 누른 상태에서 SceneController, RootMenuDataManager를 선택하여 세 가지 프리팹을 선택합니다.

    Screenshot of Unity with SceneController, RootMenu, and DataManager prefabs selected.

    SceneController(프리팹) 에는 SceneController(스크립트)UnityDispatcher(스크립트) 라는 두 개의 스크립트가 포함되어 있습니다. SceneController 스크립트 구성 요소는 여러 UX 함수를 포함하고 있어 사진 캡처 기능을 용이하게 하는 반면 UnityDispatcher는 Unity 주 스레드에서 작업 실행을 허용하는 도우미 클래스입니다.

    RootMenu(프리팹)는 다양한 작은 스크립트 구성 요소를 통해 서로 연결된 모든 UI 창을 보유하고 애플리케이션의 일반 UX 흐름을 제어하는 기본 UI 프리팹입니다.

    DataManager(프리팹)는 Azure 스토리지와의 통신을 담당하는데 다음 자습서에서 자세히 설명합니다.

  2. 이제 세 개의 프리팹이 선택된 상태에서 계층 구조 창으로 끌어 장면에 추가합니다.

    Screenshot of Unity with newly added SceneController, RootMenu and DataManager prefabs still selected.

  3. 장면의 개체에 초점을 맞추려면 RootMenu 개체를 두 번 클릭한 다음 다시 조금 축소합니다. RootMenu 개체를 선택한 상태에서 변환 구성 요소의 값을 다음과 같이 변경합니다.

    위치: X = 0.0, Y = 1.6, Z = 0.6

    Screenshot of Unity with RootMenu object selected.

    장면에 방해가 되는 큰 아이콘(예: 큰 프레임 'T' 아이콘)을 찾으면 Gizmos를 오프 위치로 전환하여 숨길 수 있습니다.

장면 구성

이 섹션에서는 SceneManager, DataManagerRootMenu를 함께 연결하여 다음 Azure 스토리지 통합 자습서에 대한 작업 장면을 만듭니다.

개체 연결

  1. [계층 구조] 창에서 DataManager 개체를 선택합니다.

    Screenshot of Unity with DataManager object selected.

  2. 검사기 창에서 DataManager(스크립트) 구성 요소를 찾습니다. On Data Manager Ready() 이벤트에 빈 슬롯이 표시됩니다. 계층 구조 창의 SceneController 개체를 On Data Manager Ready () 이벤트로 끕니다.

    Screenshot of Unity with DataManager event listener added.

  3. 이제 이벤트의 드롭다운 메뉴가 활성화되었습니다. 드롭다운 메뉴를 선택하고 SceneController로 이동한 다음 하위 메뉴에서 Init() 옵션을 선택합니다.

    Screenshot of Unity with DataManager event action added.

  4. 계층 구조 창에서 SceneController 개체를 선택합니다. Inspector에서 SceneController (스크립트) 구성 요소를 찾을 수 있습니다.

    Screenshot of Unity with SceneController selected.

  5. 이제 채워지지 않은 필드가 몇 가지 있습니다. 변경해 보겠습니다. 계층 구조의 DataManager 개체를 Data Manager 필드로 옮긴 다음, 계층 구조의 RootMenu>MainMenu GameObject를 주 메뉴 필드로 옮깁니다.

    Screenshot of Unity with SceneController configured.

  6. 계층 구조 창에서 MRTK XR Rig 개체를 선택합니다. MRTK Speech 자식 개체가 사용으로 설정되도록 합니다. 이렇게 하면 "열기 메뉴"라고 말하여 메뉴를 열 수 있습니다.

  7. 이제 장면이 다음 자습서에서 사용할 수 있도록 준비되었습니다. 프로젝트에 저장하는 것을 잊지 마세요.

프로젝트 빌드 파이프라인 준비

참고 항목

HoloLens 2에서 빌드 및 테스트는 필수가 아닙니다. HoloLens 디바이스가 없는 경우 HoloLens 2 에뮬레이터에서 테스트할 수 있습니다. HoloLens.com에서 디바이스를 구입할 수 있습니다.

장면을 완료하기 전에 HoloLens 2으로 빌드할 프로젝트를 준비해 보겠습니다.

1. 기타 필요한 기능 추가

  1. Unity 메뉴에서 프로젝트 설정 편집>...을 선택하여 프로젝트 설정 창을 엽니다.

    Screenshot of Unity open Project Settings.

  2. 프로젝트 설정 창에서 플레이어를 선택한 다음 게시 설정.

    Screenshot of Unity Publishing Settings.

  3. 게시 설정에서 기능 섹션까지 스크롤한 다음 자습서 초반에 프로젝트를 만들 때 활성화한 InternetClient, Microphone, SpatialPerception 기능이 활성화되어 있는지 확인합니다. 그런 다음, InternetClientServer, PrivateNetworkClientServerWebcam 기능을 사용하도록 설정합니다.

    Screenshot of Unity Capabilities

2. HoloLens 2에 앱 배포

Unity 편집기 내에서 이 자습서 시리즈에서 사용하게 될 모든 기능을 실행할 수는 없습니다. 따라서 HoloLens 2 디바이스 또는 에뮬레이터에 애플리케이션을 배포하는 데 익숙해야 합니다.

Unity 프로젝트를 빌드하고 HoloLens 2에 배포하는 방법에 대한 미리 알림은 시작 자습서 - 애플리케이션 지침 빌드 및 배포를 참조할 수 있습니다.

3. HoloLens 2에서 앱 실행 및 앱 내 지침 수행

주의

모든 Azure 서비스에서 인터넷을 사용하므로 디바이스가 인터넷에 연결되어 있는지 확인하세요.

애플리케이션이 디바이스에서 실행 중인 경우 요청된 다음 기능에 대한 액세스 권한을 부여합니다.

  • 마이크
  • 카메라

Custom Vision과 같은 서비스가 제대로 작동하려면 이러한 기능이 필요합니다.