1. PC 홀로그램 원격 시작1. Getting started with PC Holographic Remoting

HoloLens 2 자습서를 시작합니다.Welcome to the HoloLens 2 tutorials. 2부로 구성된 이 자습서 시리즈에서는 혼합 현실 환경 데모를 만드는 방법 및 홀로그램 원격 접속을 위한 PC 앱을 만드는 방법에 대해 알아봅니다.In this two-part tutorial series, you will learn how to create a mixed reality experience demonstration and how to create a PC app for Holographic Remoting.

이 자습서에서는 혼합 현실 환경을 만드는 방법에 대해 알아봅니다.In this tutorial, you'll learn how to create a mixed reality experience. 여기서는 UI 요소, 3D 모델 조작, 모델 클리핑 및 시선 추적 기능을 시연합니다.It will demonstrate UI elements, 3D model manipulation, model clipping, and eye-tracking features.

두 번째 홀로그램 원격 애플리케이션 만들기 자습서에서는 홀로그램 원격 접속을 위한 PC 앱을 만드는 방법을 알아봅니다.In the second tutorial, Create a Holographic Remoting application, you will learn how to create a PC app for Holographic Remoting. 그리고 언제든지 HoloLens 2에 연결하여 혼합 현실에서 3D 콘텐츠를 시각화할 수 있는 방법을 제공합니다.And connect to HoloLens 2 at any point, providing a way to visualize 3D content in mixed reality.

목표Objectives

  • 자산 가져오기 및 장면 설정Import assets and set up the scene
  • UI 요소 및 단추를 사용하여 홀로그램과 상호 작용Interact with holograms using UI elements and buttons
  • 클리핑 기능에 대한 3D 개체 구성Configure 3D objects for the clipping feature
  • 시선 추적을 사용하여 도구 설명을 활성화하는 방법 알아보기Learn about activating tooltips with eye-tracking

필수 구성 요소Prerequisites

  • 올바른 도구가 설치된 상태로 구성된 Windows 10 PCA Windows 10 PC configured with the correct tools installed
  • 기본적인 C# 프로그래밍 지식Basic c# programming knowledge
  • 개발용으로 구성된 HoloLens 2 디바이스A HoloLens 2 device configured for development
  • Unity Hub(Unity 2019 LTS가 탑재되고 유니버설 Windows 플랫폼 빌드 지원 모듈이 추가되어 있음)Unity Hub with Unity 2019 LTS mounted, and the Universal Windows Platform Build Support module added

계속하기 전에 시작 자습서 시리즈 또는 Unity 및 MRTK에 대한 기본적인 사전 경험을 완료할 것을 강력히 권장 합니다.We strongly recommend completing the Getting started tutorials series or some basic prior experience with Unity and MRTK before continuing.

중요

  • 이 자습서 시리즈에 추천되는 Unity 버전은 Unity 2019 LTS입니다.The recommended Unity version for this tutorial series is Unity 2019 LTS. 이는 위에서 연결된 필수 구성 요소에서 설명하는 모든 Unity 버전 요구 사항 또는 추천 사항을 대체합니다.It supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.
  • MRTK 프로젝트를 사용한 홀로그램 원격 접속은 레거시 XR에서만 작동합니다.Holographic Remoting with MRTK projects will only work with legacy XR. 지금은 XR SDK가 지원되지 않습니다.XR SDK is not supported at this time.

Unity 프로젝트 만들기 및 준비Creating and preparing the Unity project

이 섹션에서는 새 Unity 프로젝트를 만들고 MRTK 개발을 준비합니다.In this section, you will create a new Unity project and get it ready for MRTK development.

이를 위해 먼저 프로젝트 및 첫 번째 애플리케이션 초기화를 수행합니다. 단, 디바이스에 애플리케이션 빌드 지침은 제외합니다. 단계는 다음과 같습니다.For this, first follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Unity 프로젝트 만들기 및 적절한 이름(예: MRTK Tutorials) 지정Creating the Unity project and give it a suitable name, for example, MRTK Tutorials

  2. 빌드 플랫폼 전환Switching the build platform

  3. TextMeshPro 필수 리소스 가져오기Importing the TextMeshPro Essential Resources

  4. Mixed Reality Toolkit 가져오기Importing the Mixed Reality Toolkit

  5. Unity 프로젝트 구성Configuring the Unity project

  6. 장면 만들기 및 설정 및 장면에 적절한 이름 지정(예: PC Holographic Remoting)Creating and setting the scene and give the scene a suitable name, for example, PC Holographic Remoting

그런 다음, 공간 인식 표시 옵션 변경 지침에 따라 장면의 MRTK 구성 프로필을 DefaultHoloLens2ConfigurationProfile 로 변경합니다.Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile. 공간 인식 메시의 표시 옵션을 폐색 으로 변경합니다.Change the display options for the spatial awareness mesh to Occlusion.

자습서 자산 가져오기Importing the tutorial assets

MRTK.Tutorials.PCHolographicRemoting.unitypackage를 다운로드하고 가져옵니다.Download and import the MRTK.Tutorials.PCHolographicRemoting.unitypackage.

Unity 사용자 지정 패키지를 가져오는 방법을 미리 알아보려면 Mixed Reality Toolkit 가져오기 지침을 참조할 수 있습니다.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

자습서 자산을 가져오면 [프로젝트] 창이 다음과 비슷하게 표시됩니다.After importing the tutorial assets, your Project window should look similar to this:

자습서 자산을 가져온 후의 Unity 계층 구조, 장면 및 프로젝트 창

장면 구성 및 준비Configuring and preparing the scene

이 섹션에서는 자습서 프리팹 중 일부를 추가하여 장면을 준비합니다.In this section, you will prepare the scene by adding some of the tutorial prefabs.

[프로젝트] 창에서 Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs 폴더로 차례로 이동합니다.In the Project window, navigate to Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs folder. Ctrl 단추를 누른 채 아래 6개의 프리팹을 클릭합니다.While holding down the CTRL button, click on the below six prefabs.

  • ButtonParentButtonParent
  • ClippingObjectsClippingObjects
  • HandSpatialMapButtonHandSpatialMapButton
  • 지침Instructions
  • ModelParentModelParent
  • 플랫폼Platform

선택한 장면에 추가할 프리팹이 있는 Unity

이러한 모델을 prefabs 폴더에서 계층 구조 창 으로 끌어서 놓습니다.Drag-and-drop these models from the prefabs folder into the Hierarchy window.

새로 추가한 프리팹이 여전히 선택된 Unity

장면의 개체에 초점을 맞추기 위해 ModelParent 개체를 두 번 클릭한 다음, 약간씩 다시 확대할 수 있습니다.To focus in on the objects in the scene, you can double-click on the ModelParent object, and then zoom slightly in again:

ModelParent 개체에 초점을 맞춘 Unity

장면에서 큰 아이콘(예: 틀이 있는 매력적인 큰 'T' 아이콘)이 표시되는 경우 Gizmo를 끄기 위치로 전환하여 이러한 아이콘을 숨길 수 있습니다.If you find the large icons in your scene, such as, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

장면을 작동하도록 단추 구성Configuring the buttons to operate the scene

이 섹션에서는 스크립트를 장면에 추가하여 모델 전환 및 클리핑 기능의 기본 사항을 시연하는 단추 이벤트를 만듭니다.In this section, you will add scripts into the scene to create button events demonstrating the fundamentals of model switching and clipping functionality.

1. Interactable(스크립트) 구성 요소 구성1. Configuring the Interactable (Script) component

[계층 구조] 창에서 ButtonParent 개체를 펼치고 NextButton 을 선택합니다.In the Hierarchy window, expand the ButtonParent object and select the NextButton. [검사기] 창에서 Interactable(스크립트) 구성 요소를 찾고, OnClick () 이벤트 아래에서 + 아이콘을 클릭합니다.In the Inspector window, locate the Interactable (Script) component and click on + icon under OnClick () event.

NextButton OnClick 이벤트가 추가된 Unity

[계층 구조] 창에서 NextButton 개체를 선택한 상태에서 [계층 구조] 창의 ButtonParent 개체를 클릭하여 방금 추가한 이벤트의 비어 있는 없음(개체) 필드로 끌어서 ButtonParent 개체에서 이 단추의 단추 클릭 이벤트를 수신 대기하도록 설정합니다.With the NextButton object still selected in the Hierarchy window, click-and-drag the ButtonParent object from the Hierarchy window into the empty None (Object) field of the event you just added to make the ButtonParent object listen for button click event from this button:

NextButton OnClick 이벤트 수신기가 구성된 Unity

동일한 이벤트의 함수 없음 드롭다운을 클릭합니다.Click the No Function dropdown of the same event. 그런 다음, ViewButtonControl > NextModel () 을 차례로 선택하여 NextModel () 함수를 이 단추의 단추 누름 이벤트가 발생할 때 트리거되는 작업으로 설정합니다.Then select ViewButtonControl > NextModel () to set the NextModel () function as the action that is triggered when the button pressed events is fired from this button:

NextButton OnClick 이벤트 동작 선택 경로가 있는 Unity

2. 나머지 단추 구성2. Configuring the remaining buttons

나머지 각 단추에 대해 위에서 설명하는 프로세스를 완료하여 함수를 OnClick () 이벤트에 할당합니다.For each of the remaining buttons, complete the process outlined above to assign functions to the OnClick () events:

  • PreviousButton 개체에 대해 ViewButtonControl > PreviousModel () 함수를 차례로 할당합니다.For PreviousButton object, assign the ViewButtonContro l > PreviousModel () function.

  • ClippingButton에 대해 ToggleButton > ToggleClipping () 함수를 차례로 선택합니다.For ClippingButton select ToggleButton > ToggleClipping () function.

3. 보기 단추 컨트롤(스크립트) 및 토글 단추(스크립트) 구성 요소 구성3. Configuring the View Button Control (Script) and Toggle Button (Script) components

이제 단추는 모델 전환 및 클리핑 기능을 시연하도록 구성되었습니다.Now your buttons are configured to demonstrate the model switching and clipping functionality. 이번에는 3D 모델 및 클리핑 개체를 스크립트에 추가해야 합니다.It is time to add 3D models and the clipping objects to the script.

데모를 위해 6개의 서로 다른 3D 모델이 제공되었습니다. *ModelParentobject _를 펼쳐서 이러한 3D 모델을 표시합니다.We have provided six different 3D models for demonstration, expand the *ModelParentobject _ to expose these 3D models.

Hierarchy(계층 구조) 창에서 ButtonParent 개체가 선택된 채로 Inspector(검사기) 창에서 View Button Control (Script) * 구성 요소를 찾아서 Models 변수를 펼칩니다.With the ButtonParent object still selected in the Hierarchy window, in the Inspector window, locate the _ View Button Control (Script)* component and expand the Models variable.

크기 필드에서 장면에 포함하려는 3D 모델의 수를 입력합니다.In the Size field, enter the number of 3D models you would like to have in your scene. 여기서는 6입니다.In this case, it would be six. 새 3D 모델을 추가하기 위한 필드가 만들어집니다.It will create fields for adding new 3D models.

ViewButtonControl 스크립트 구성 요소 필드가 있는 Unity

ModelParent 개체의 각 자식 개체를 이러한 필드로 끌어서 놓습니다.Drag and drop each child object of ModelParent Object into these fields.

ViewButtonControl 스크립트 구성 요소 필드가 구성된 Unity

ClippingObjects 개체를 [계층 구조] 창에서 토글 단추(스크립트) 구성 요소의 클리핑 개체 필드로 끌어서 놓습니다.Drag and drop the ClippingObjects object from the Hierarchy window to the Toggle Button (Script) component Clipping Object field.

참고

단추 부모 개체에만 있습니다.Stay in button parent object only.

ToggleButton 스크립트 구성 요소 필드가 구성된 Unity

[계층 구조] 창에서 ClippingObjects 프리팹을 선택하고, [검사기] 창에서 이를 사용하도록 설정하여 클리핑 개체를 설정합니다.In the Hierarchy window, select the ClippingObjects prefab and enable it in the Inspector window to turn on the Clipping objects.

클리핑 기능을 사용하도록 클리핑 개체 구성Configuring the clipping objects to enable clipping feature

이 섹션에서는 MarsCuriosityRover 개체의 자식 개체 렌더러를 개별 클리핑 개체에 추가하여 MarsCuriosityRover 모델의 클리핑을 시연합니다.In this section, you will add MarsCuriosityRover object's child objects renderer into an individual clipping object to demonstrate the clipping of the MarsCuriosityRover model.

[계층 구조] 창에서 ClippingObjects 개체를 펼쳐서 이 프로젝트에서 사용할 서로 다른 세 가지 클리핑 개체를 표시합니다.In the Hierarchy window, expand the ClippingObjects object to expose the three different clipping objects that you will be using in this project.

ClippingSphere 개체를 구성하려면 해당 개체를 클릭하고, [검사기] 창에서 클리핑 구(스크립트) 구성 요소를 찾습니다.To configure the ClippingSphere object, click on it, and in the Inspector window, locate the Clipping Sphere (Script) component. 크기 필드에서 3D 모델에 추가해야 하는 렌더러의 수를 입력합니다.Enter the number of renderers in the size field that you need to add for your 3D model. 여기서는 MarsCuriosityRover 자식 개체에 대해 10을 추가합니다.In this case, add 10 for MarsCuriosityRover child objects. 렌더러를 추가하기 위한 필드를 만들고, MarsCuriosityRover 개체의 자식 모델 개체를 이러한 필드로 끌어서 놓습니다.It will create fields for adding renderers, drag and drop MarsCuriosityRover Object's child model objects into these fields.

ClippingSphere 스크립트 구성 요소 필드가 구성된 Unity

동일한 프로세스를 수행하고, MarsCuriosityRover의 자식 개체 렌더러를 ClippingBoxClippingPlane 개체에 추가합니다.Follow the same process and add MarsCuriosityRover's child objects renderers to the ClippingBox and ClippingPlane objects.

이 자습서에서는 클리핑 기능을 시연하는 데 MarsCuriosityRover 모델만 사용합니다.In this tutorial, only the MarsCuriosityRover model will be used for demonstrating the clipping feature. 클리핑 기능을 더 많은 모델에 추가하고, 렌더러의 크기를 늘리며, 개별 메시 렌더러를 추가했습니다.They were adding clipping features to more models, increasing the size of the renderer, and adding their individual mesh renderers.

도구 설명을 강조 표시하도록 시선 추적 구성Configuring eye-tracking to highlight tooltips

이 섹션에서는 프로젝트에서 시선 추적을 사용하도록 설정하는 방법을 살펴봅니다.In this section, you will explore how to enable eye tracking in your project. 예를 들어 MarsCuriosityRover 부품에 연결된 도구 설명을 강조 표시하는 기능을 구현하면서 이를 살펴보고, 해당 부품에서 시선을 거둘 때 이를 숨깁니다.For example, you will implement the functionality to highlight tooltips attached to MarsCuriosityRover's parts while looking at them and hiding them, while you are looking away from them.

1. 대상 개체 및 연결된 도구 설명 식별1. Identify target objects and associated tooltips

[계층 구조] 창에서 ModelParent 개체를 선택합니다.In the Hierarchy window, select the ModelParent object. MarsCuriosity -> Rover 를 차례로 펼쳐서 5개의 MarsCuriosityRover 주요 부품( POI-Camera, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna)을 찾습니다.Expand the *MarsCuriosity -> Rover_ to find five main parts of the MarsCuriosityRover: _* POI-Camera**, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna.

  • [계층 구조] 창에서 MarsCuriosityRover 부품과 연결된 5개의 해당 도구 설명 개체를 확인합니다.Observe five corresponding tooltip objects associated with MarsCuriosityRover parts in the Hierarchy window.
  • MarsCuriosityRover 부품을 살펴볼 때 환경을 강조 표시하도록 이러한 개체를 구성합니다.You will be configuring these objects to highlight the experience when you look at the MarsCuriosityRover parts.

Rover 개체가 선택되어 펼쳐진 Unity

2. While Looking At Target () 및 On Look Away () 이벤트 구현2. Implement While Looking At Target () & On Look Away () events

Hierarchy(계층 구조) 창에서 *POI-Camera _ 개체를 선택합니다.In the Hierarchy window, select the *POI-Camera _ object. Inspector(검사기) 창에서 _ Eye Tracking Target (Script) * 구성 요소를 찾고, While Looking At Target () & On Look Away () 이벤트를 다음과 같이 구성합니다.In the Inspector window, locate the _ Eye Tracking Target (Script)* component and configure the While Looking At Target () & On Look Away () events as follows:

  • POI-Camera 도구 설명 개체를 없음(개체) 필드에 할당합니다.To None (Object) field, assign the POI-Camera ToolTip object
  • While Looking At Target () 이벤트의 함수 없음 드롭다운에서 GameObject > SetActive(부울) 를 차례로 선택합니다.From No Function dropdown of While Looking At Target () event, select GameObject > SetActive (bool). 대상 개체를 볼 때 트리거되는 작업으로 도구 설명을 강조 표시하려면 아래쪽에 있는 확인란 을 선택합니다.Select the Checkbox under it to highlight the tooltip as the action that is triggered when you look at the target object.

EyeTrackingTarget WhileLookingAtTarget 이벤트 구성을 진행 중인 Unity

  • 동일한 프로세스를 수행하고, On Look Away () 이벤트 수신기의 함수 없음 드롭다운을 클릭합니다.Follow the same process and click on the No Function dropdown of the On Look Away () event listener. 그런 다음, GameObject > SetActive(부울) 를 차례로 선택하고, 대상 개체에서 시선을 거둘 때 트리거되는 작업으로 도구 설명을 숨기려면 확인란 을 비워 둡니다.Then select GameObject > SetActive (bool) and leave the Checkbox empty to hide the tooltip as the action that is triggered when you look away from the target object.

EyeTrackingTarget OnLookAway 이벤트가 구성된 Unity

동일한 프로세스를 수행하고, 각 도구 설명 개체를 동일한 MarsCuriosityRover 부품의 While Looking At Target () & On Look Away () 이벤트에 할당합니다.Follow the same process and assign respective tooltip objects to their same MarsCuriosityRover parts While Looking At Target () & On Look Away () events.

시선 추적을 사용하도록 설정하려면 이러한 지침을 따르세요.To enable eye tracking, please follow these guidelines.

축하합니다.Congratulations

이 자습서에서는 UI 요소, 3D 모델 조작, 모델 클리핑 및 시선 추적 기능을 시연하는 혼합 현실 환경을 빌드하는 방법을 알아보았습니다.In this tutorial, you learned to build a mixed reality experience demonstrating UI elements, 3D model manipulation, model clipping, and eye-tracking features. 이 자습서에서는 3D 모델 뷰어 환경을 검색할 수 있도록 하는 NextButton 및 PreviousButton을 제공했습니다.The tutorial provided you with NextButton and PreviousButton that let you explore the 3D model viewer experience. ClippingObjectButton을 사용하여 클리핑 개체를 설정하고 클리핑 기능을 경험해 보았습니다.The ClippingObjectButton made you turn on clipping objects and experience clipping feature. 또한 이 자습서에서는 환경에서 도구 설명을 강조 표시하도록 설정하는 시선 추적 요소를 제공했습니다.The tutorial also provided you with an eye-tracking element to enable highlighting the tooltips in the experience.

다음 단원에서는 언제든지 PC에서 HoloLens 2를 연결할 수 있는 홀로그램 원격 애플리케이션을 만들고 혼합 현실에서 3D 콘텐츠를 시각화하는 방법을 알아봅니다.In the next lesson, you will learn how to create a Holographic Remoting application for PC to connect HoloLens 2 at any point, providing a way to Visualize 3D content in mixed reality.