본문 바로가기
iOS/HIG

[HIG] Immersive experiences 몰입 경험

by BrickSky 2023. 12. 21.

 🗣 08. H.I.G에서 읽어본 Immersive experiences

본 내용은 H.I.G - Foundations - Immersive experiences를 편역한 것입니다.
 

1) 몰입감 있는 경험

visionOS에서, 창과 볼륨을 넘어 확장되는 앱과 게임을 설계하여 사람들이 콘텐츠에 몰입하도록 할 수 있다.
visionOS에서 사람들은 공유 공간에서 여러 앱들을 작동시키거나 전체 공간에서 한 번에 하나의 앱을 작동시킬 수 있다. 기본적으로, 공유 공간에서 앱이 작동되며 사용자는 Mac에서와 마찬가지로 실행 중인 여러 앱을 전환할 수 있다. 사용자가 더 많은 몰입감 있는 경험을 원한다면, 사람들은 전체 공간으로 전환할 수 있으며, 다른 앱은 숨겨 어디서든 콘텐츠를 표시할 수 있다.

Immersive experiences

In visionOS, you can design apps and games that extend beyond windows and volumes, and let people immerse themselves in your content.

In visionOS, people can run multiple apps at the same time in the Shared Space or concentrate on a single app at a time in a Full Space. By default, your app launches in the Shared Space, where people can switch between multiple running apps much as they do on a Mac. When they want a more immersive experience, people can transition your app to a Full Space, where other apps hide and your app can display content anywhere.

 
 

2) 몰입감과 패스스루(통과)

visionOS는 사람들이 앱이나 게임에 집중할 수 있도록 여러 가지 방법을 제공하는데 도움이 되는 스펙트럼을 지원한다. 이러한 스펙트럼을 통해 사람들의 물리적 환경의 가시성은 경험의 몰입에 핵심적인 역할을 한다.

visionPro를 착용하고 있는 동안, 사람들은 기기의 외부 카메라로부터 실시간 비디오를 제공받아 자신의 물리적인 환경을 볼 수 있다.
외부적인 환경을 얼마나 볼지는 기기의 디지털 크라운을 통해 조절할 수 있다. 예를 들어, 사람들은 통과 경험을 통해 기기 근처의 물리적인 대상과 상호작용할 수 있고, 다른 장치에서 글을 읽을 수 있다. 또는 환경 설정에서 해당 패스스루(통과) 정도를 줄일 수 있다.

Immersion and passthrough

visionOS supports a spectrum of immersion that helps you give people several ways to experience your app or game. Throughout this spectrum, the visibility of people’s physical surroundings plays a key role in the immersiveness of the experience.

While wearing Apple Vision Pro, people can see their physical surroundings using passthrough, which provides real-time video from the device’s external cameras.

To change how much of their surroundings they see, people use the Digital Crown to adjust the amount of passthrough. For example, people might increase passthrough when they want to interact with a nearby physical object or read text on another device, or they might decrease passthrough when they want to bring up an Environment.

 
 

 🗣 중요한 점

      앱은 현재의 패스스루 수준이나 변경 시점에 대해 직접적인 정보를 수신하지 않으므로 사용자가 주변을 얼마나 잘 보고 있는지 알 수 없다.


사람들이 경험에 몰입하고 콘텐츠에 참여할 수 있도록 아래의 기술들을 사용하라.

  • 공유 공간에 있을 때는 패스 스루를 어둡게 하라. 시스템에 다른 앱을 숨기지 않고 방해를 최소화하고, 특정 창이나 볼륨을 강조 표시하기 위해 눈에 보이는 콘텐츠 자체를 은은하게 어둡게 할 수 있다.
  • 전체 화면에서는 3D 콘텐츠를 활용하라. 전체 화면으로 변할 때, 표준 창과 볼륨에 구속되지 않는 3D 콘텐츠를 표시할 수 있다.
  • 다른 사람의 환경과 통합할 수 있다. 전체 공간에서 사용할 때 가까운 물리적인 대상이나 레이아웃에 대한 정보를 요청할 수 있으므로 사람들의 환경과 혼합된 가상 환경 콘텐츠를 표시할 수 있다.
  • 포털을 만들어라. 전체 공간에서 실행되는 앱은 포털을 사용하여 사람들을 주변에서 완전히 제거하지 않는 더 몰입적인 경험을 제공할 수 있다. 포털이 열리면 사람들은 몰입형 콘텐츠를 180도에서 볼 수 있고 디지털 크라운을 활용하여 포털의 크기를 조정할 수 있다.
  • 완전히 몰입할 수 있는 경험을 만들어라. 완전히 몰입할 수 있는 경험을 제공하기 위해 전테 공간에서 실행되고 있는 앱은 사람들을 완전히 둘러싸고 있는 콘텐츠를 표시하고 새로운 장소로 전송하는 동안 패스스루를 숨길 수 있다.

Important

Your app doesn’t receive direct information about the current level of passthrough or when it changes, which means that you don’t know how well a person can see their surroundings.

Consider the following techniques for immersing people in your experience and helping them engage with your content.

  • Dim passthrough while in the Shared Space. You can ask the system to subtly dim passthrough and other visible content to minimize distractions and highlight a specific window or volume, without hiding other apps. For developer guidance, see [SurroundingsEffect](<https://developer.apple.com/documentation/SwiftUI/SurroundingsEffect>).
  • Display 3D content in a Full Space. When your app transitions to a Full Space, you can display 3D content that isn’t bound by a window, in addition to content in standard windows and volumes. For developer guidance, see [automatic](<https://developer.apple.com/documentation/SwiftUI/ImmersionStyle/automatic>).
  • Integrate with someone’s surroundings. When running in a Full Space, your app can also request access to information about nearby physical objects and room layout, helping you display virtual content that blends with people’s surroundings. For developer guidance, see [mixed](<https://developer.apple.com/documentation/SwiftUI/ImmersionStyle/mixed>) and ARKit.
  • Create a portal. An app running in a Full Space can use a portal to offer a more immersive experience that doesn’t completely remove people from their surroundings. When a portal opens, people get a roughly 180-degree view into your immersive content, and they can use the Digital Crown to adjust the size of the portal. For developer guidance, see [progressive](<https://developer.apple.com/documentation/SwiftUI/ImmersionStyle/progressive>).
  • Create a fully immersive experience. To provide a fully immersive experience, an app running in a Full Space can ask the system to hide passthrough while it displays content that completely surrounds people, transporting them to a new place. For developer guidance, see [full](<https://developer.apple.com/documentation/SwiftUI/ImmersionStyle/full>).

 
visionOS는 사람들이 앱을 사용하는 동안 다음과 같은 동작을 구현한다.

  • 사람이 약 1미터 이상을 움직이면 시스템은 표시된 모든 콘텐츠를 자동으로 반투명하게 만들어 주변 환경을 탐색할 때 도움을 준다.
  • 완전한 몰입 경험이 시작되면, 해당 시스템은 사용자의 머리 초기 위치로부터 1.5미터까지 보이지 않게 한다. 만약 그들의 머리가 해당 영역 밖으로 나가면 자동적으로 해당 경험은 멈추고 물리적인 충돌을 피하기 위해 통과한다.
  • 해당 시스템은 사람이 물리적인 물체에 가까이 다가갈 때나 너무 빨리 움직일 때 몰입감 있는 경험을 멈출 수 있다.

visionOS implements the following behaviors while people use apps.

  • If a person moves more than about a meter, the system automatically makes all displayed content translucent to help them navigate their surroundings.
  • When a fully immersive experience starts, the system defines an invisible zone that extends 1.5 meters from the initial position of the wearer’s head. If their head moves outside of that zone, the experience automatically stops and passthrough returns to help people avoid colliding with objects in their physical surroundings.
  • The system can stop an immersive experience when people get too close to a physical object or when they move too quickly.

 
 

3) 좋은 예시

앱을 사용할 다양한 방식을 제공하라. 또한 사용자들에게 어떤 방식을 사용할지 선택할 수 있도록 하라. 사람들이 장치와 상호작용하는 방식을 개인화하기 위해 사용하는 접근성 기능을 지원하도록 앱을 만드는 것이 필수적이다.
의미 있는 순간과 콘텐츠를 위해 몰입을 사용해야 한다. 모든 작업이 몰입의 방법으로 이루어지는 것은 아니며, 모든 몰입이 완전히 몰입해야 하는 것은 아니다. 사용자는 종종 다른 세계로 가고 싶어 하지만, 앱을 사용하는 동안 주변 환경에 고정되기를 바라는 경우도 있다. 다른 앱과 시스템을 동시에 사용할 수 있다는 걸 인식할 수 있다. 앱에 완전히 몰입해야 한다고 가정하지 말고 사람들이 앱을 독특하게 만드는 개별적인 작업과 콘텐츠에 몰입할 수 있는 방법을 만들어야 한다. 예를 들어, 사람들은 공유 공간에서 친숙한 앱의 창을 활용해서 자신의 앨범을 볼 수 있다. 하나의 사진을 보고 싶을 때는 일시적으로 사진을 확대해서 세부적인 정보를 확인할 수 있다. 이는 전체 공간에서 보다 몰입적인 경험으로 전환할 수 있다.
몰입도에 관계없이 사람들이 앱에서 중요한 순간에 참여할 수 있도록 도울 수 있다. 빛, 모션, 스케일 및 공간 오디오와 같은 단서들은 공유 공간의 창이든 전체 공간의 완전한 몰입 경험이든 간에 사람들의 관심을 특정 영역의 콘텐츠로 끄는 데 도움을 줄 수 있다. 사람들의 관심을 부드럽게 안내하는 미묘한 단서들로 시작해서 의미 있는 경우에 이러한 단서들을 강화할 수 있다.
사람들이 언제 몰입 경험에 들어갈지 선택할 수 있어야 한다. 사용자는 그들의 동의 없이 몰입적인 경험으로 옮겨지는 것을 원치 않는다. 또한 예상치 못한 경우에 창문이나 물건을 보여주어 사용자를 압도하는 것을 원치 않을 것이다. 대신, 몰입 경험에 있어서 명확한 몰입 경험 시작과 몰입 경험 제어를 제공하여 콘텐츠에 몰입할 수 있도록 도와주어야 한다.
경험 간의 부드럽고 예측 가능한 전환을 설계해야 한다. 시각적으로 변화를 추적할 수 있는 부드러운 전환을 사용하여 사람들이 다양한 경험을 준비할 수 있도록 도울 수 있다. 방향 감각을 잃게 하거나 갑작스럽고 거슬리는 전환을 피하라.
사람들이 몰입형 경험을 쉽게 종료할 수 있도록 해야 한다. 예를 들어, 키노트는 사람들이 극장 경험을 떠나 슬라이드 보기 창으로 돌아갈 수 있도록 눈에 잘 띄는 버튼을 제공한다. 버튼을 사용해 덜 몰입적인 맥락으로 되돌리는지 혹은 몰입 경험 자체를 종료하는 것이 앱을 종료하는 경우에는 사람들이 진행 상황을 저장할 수 있도록 조작하는 것이 고려되어야 한다.
사용자가 완전히 몰입된 경험을 하는 동안에는 이동하도록 하는 것을 피해야 한다. 완전히 몰입된 경험에서는 패스 스루를 숨기고 콘텐츠와 결합하는 동안에는 주변을 추적하지 못하게 해야 한다. 사람들이 앱을 사용하는 동안 안전하고 편안하게 지내도록 장려하는 것이 중요하다. 사람들이 한 곳에 머무를 수 있도록 돕는 방법은 콘텐츠로 이동하는 것이 아니라, 콘텐츠를 가져오는 것이다.
앱 콘텐츠를 누군가의 주변 환경과 혼합하고 싶다면, ARKit을 활용하면 된다. 예를 들어 가상 콘텐츠를 누군가의 주변 환경에 통합하거나 착용자의 손 위치를 사용해 알리고 싶을 수 있다. 이러한 유형의 민감한 데이터에 접근하기 위해서는 권한을 요청해야 한다. 지침은 개인 정보보호
사람들이 가상 객체를 주변 환경과 혼합할 수 있는 앱에서, 패스스루를 완전히 가리는 것을 피할 수 있도록 도와주어야 한다. 사람들이 가상 객체를 근처의 물리적 객체를 보지 못하게 하는 방식으로 배치할 수 있다면, 주변 환경에서 이동하는 것이 어려울 수 있다는 것을 깨닫지 못할 수 있다. 사람들이 이런 상황을 피할 수 있도록 돕기 위해 정확한 API를 활용해서 몰입 경험을 구현해야 하고, 시스템은 사람들이 이동할 경우 적절하게 반응할 수 있어야 한다.
사람들의 시간적인 편안함을 염두에 두어야 한다. 앱이 전체 공간에서 실행되는 동안 아무 곳에나 3D를 배치할 수 있지만 사람들의 시야 내에 두는 것이 좋다. 또한 사람들이 익숙한 동일한 기준 프레임을 갖고 있지 않을 수 있으므로 앱이 전체 공간에서 실행되는 동안 편안한 방식으로 보여주어야 한다.

Best practices

Offer multiple ways to use your app. In addition to giving people the freedom to choose their experiences, it’s essential to design your app to support the accessibility features people use to personalize the ways they interact with their devices. For guidance, see Accessibility.

Reserve immersion for meaningful moments and content. Not every task benefits from immersion, and not every immersive task needs to be fully immersive. Although people sometimes want to enter a different world, they often want to stay grounded in their surroundings while they’re using your app, and they can appreciate being able to use other apps and system features at the same time. Instead of assuming that your app needs to be fully immersive most of the time, design ways for people to immerse themselves in the individual tasks and content that make your app unique. For example, people can browse their albums in Photos using a familiar app window in the Shared Space, but when they want to examine a single photo, they can temporarily transition to a more immersive experience in a Full Space where they can expand the photo and appreciate its details.

Help people engage with key moments in your app, regardless of the level of immersion. Cues like dimming, motionscale, and Spatial Audio can help draw people’s attention to a specific area of content, whether it’s in a window in the Shared Space or a completely immersive experience in a Full Space. Start with subtle cues that gently guide people’s attention, strengthening the cues only if it makes sense in your app.

Prefer letting people choose when to enter a more immersive experience. You don’t want to move people into a more immersive experience without their consent, and you don’t want to overwhelm them by unexpectedly displaying large windows or objects. Instead, provide clear entry and exit controls so people can decide when to be more immersed in your content.

Design smooth, predictable transitions between experiences. Help people prepare for different experiences by providing gentle transitions that let people visually track changes. Avoid sudden, jarring transitions that might be disorienting or uncomfortable.

Make it easy for people to exit an immersive experience. For example, Keynote provides a prominent Exit button to help people leave the Theater experience and return to the slide-viewing window. Make sure your button clarifies whether it returns people to a previous, less immersive context or quits an experience like a game. If exiting your immersive experience also quits your app, consider providing controls that let people pause or return to a place where they can save their progress before quitting.

Avoid encouraging people to move while they’re in a fully immersive experience. In a completely immersive experience, the system hides passthrough, and people might lose track of their surroundings while they’re engaged with your content. It’s critical to encourage people to remain safe and comfortable while they use your app. One way to help people stay in one place is to bring your content to them instead of expecting them to move toward the content.

Adopt ARKit if you want to blend app content with someone’s surroundings. For example, you might want to integrate virtual content into someone’s surroundings or use the wearer’s hand positions to inform your experience. If you need access to these types of sensitive data, you must request people’s permission. For guidance, see Privacy; for developer guidance, see [SceneReconstructionProvider](<https://developer.apple.com/documentation/arkit/scenereconstructionprovider>).

In an app that lets people blend virtual objects with their surroundings, help them avoid completely obscuring passthrough. People often use the presence of passthrough to decide whether to move carefully in their surroundings. If people can place virtual objects in ways that prevent them from seeing nearby physical objects, they might not realize that moving in their surroundings could be difficult. To help people avoid this situation, you need to use the correct APIs to implement your immersive experience, so the system can respond appropriately if people move. For developer guidance, see [ImmersionStyle](<https://developer.apple.com/documentation/SwiftUI/ImmersionStyle>).

Be mindful of people’s visual comfort. For example, although you can place 3D content anywhere while your app is running in a Full Space, prefer placing it within people’s field of view. Also make sure you display motion in comfortable ways while your app runs in a Full Space because people may not have the same frame of reference they’re used to. For guidance, see Motion.

 
 

+) HIG를 공부하고

WWDC 2023에 처음 비전 프로를 접하고 이게 될까 하는 생각을 했었다. 실제로 이렇게 디자인 가이드가 나온 걸 보니, 어느 정도 실현 가능성이 높아진 듯 보인다. 전체 공간과 공유 공간이라는 개념은 처음 접했는데, 사용자에게 부드러운 경험을 제공하기 위해 공간을 나눈 것이 역시 애플 답다고 느꼈다.
디지털 크라운을 통해 스펙트럼을 조절하여 원하는 몰입감을 선택할 수 있다는 것이 인상적이었다. 아직까지 VR 기기를 사용해 본 적은 없지만, 착용 시 완전한 몰입에 빠진다는 점에서 답답하진 않을까 하는 생각을 했는데, 이러한 불편 요소가 제거된다면 한번 착용해 보고 싶다.
아직 사용해 본 적이 없기에 어떤 느낌일지 모르겠지만, 궁금하다!

'iOS > HIG' 카테고리의 다른 글

[HIG] Layout 레이아웃  (0) 2024.02.01
[HIG] Inclusion 포함  (1) 2024.01.05
[HIG] Images 이미지  (0) 2023.12.15
[HIG] Icons 아이콘  (0) 2023.12.09
[HIG] Dark Mode 다크모드  (1) 2023.11.26