관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - HIG] (Technologies) 5. AR, Augmented Reality (증강현실) 본문

HIG(Human Interface Guidelines)/HIG - Technologies

[iOS - HIG] (Technologies) 5. AR, Augmented Reality (증강현실)

jake-kim 2021. 7. 3. 14:57

AR

가상현실 구현 UX

  • 사용자들이 전체 디스플레이를 사용하도록 설계: 실제 세계와 앱의 가상 개체를 표출하는데 최대한 많은 화면을 사용하기 때문
  • 최소 60 frame 을 제공
  • ARKit의 정보를 이용하여 개체의 크기를 적절하게 조정
    • 실제 표면에 배치 환경 조명 조건 반영
    • 카메라 grain을 시물레이션
    • 실제 표면에 객체의 그림자 표출
    • 카메라 위치가 변경됨에 따라 비주얼 업데이트
  • 반사 표면이 있는 가상 물체가 환경을 어떻게 보여주는지 고려: ARKit의 반사는 카메라가 캡처한 환경을 기반으로 한 근사치이므로 AR경험이 실제라는 경험을 유지하려면 이러한 근사치의 효과를 반사 표면에 집중하여 설계
  • 오디오햅틱을 사용하여 몰입형 경험을 향상
  • 환경에서 텍스트를 최소화
  • 추가 정보 또는 제어가 필요한 경우 화면 공간에 표출하는 것을 고려: AR환경이 장치와 함께 이동하는 동안 고정되어 있기때문에 사용자들이 화면 공간에서 콘텐츠를 찾고 보기가 쉬운 장점이 존재
  • 2D control을 통해 지속적인 경험 제공
    • ex) Measure앱 - 화면 공간을 사용하여 사용자들이 실제 세계에서 개체를 측정하는데 사용하는 반투명 및 불투명 control 혼합

Measure 앱

  • 사용자들이 다양한 실제 환경에서 앱을 사용할 것으로 예상하여 설계
    • 이동할 공간이 많지 않거나 크고 평평한 표면이 없는 곳에서 앱을 열 수 있는 가능성
    • 앱의 요구 사항과 기대치를 사용자에게 명확하게 전달하여 물리적 환경이 AR경험에 어떤 영향을 미칠 수 있는지 돕는 역할
  • 기기를 물체에 더 가깝게 이동할 필요 없이 사용자 위치에서 바로 사용할 수 있도록 거리를 고려
  • 사용자를 움직이게 하는 모션을 바로 많은것을 원하게 되면 적응하는데에 힘듦으로 '점차적'으로 사용자의 모션을 사용하도록 설계

Coaching 기능

  • ARKit이 주변을 감지할 수 있는 방식으로 기기를 움직여야 AR 경험 가능
  • iOS13+ 에서 기본으로 제공하는 coaching기능을 사용하여 사용자에게 수행 할 작업을 표출 하고 초기화 프로세스중에 피드백 제공
  • 개발 가이드

코칭 (가이드)

  • 사용자들이 Coaching 보기를 사용하는 동안 불필요한 UI를 hidden시켜서 coaching에 집중할 수 있도록 설계

사용자가 물건을 놓도록 돕는 방법

  • 사용자들이 언제 표면을 찾고 물체를 놓아야하는지 표출
  • ARKit이 표면을 감지하면 앱에서 개체 배치가 가능한시기를 보여주는 custom visual indicator를 표출
  • 지표를 감지된 표면의 평면에 정렬하여 배치 된 물체가 환경에서 어떻게 보이는지 사용자들의 이해를 돕는 것

  • 사용자들이 물건을 놓으면 즉시 그 물건을 AR환경에 통합
    • 표면 감지는 점진적으로 개선되며 정확도가 좋아지지만, 정확한 데이터를 기다리지 않고 즉시 표출하는것이 좋은 경험을 선사
    • 즉시 표출 후 표면 감지가 완료되면 필요한 경우 물체의 위치를 미묘하게 다듬는 방향
    • ex) 사용자가 감지된 표면의 경계를 넘어서 물체를 놓는 경우, 물체를 표면 위로 부드럽게 밀어내는 것
    • 객체 위치 조정을 위한 ARTrackedRaycast 참고
  • 사용자가 화면 밖의 가상 물체로 안내하는 것을 고려: 사용자는 때때로 화면 밖의 물체를 찾는것에 어려움이 있으므로, 물건을 찾을 수 있도록 설계 (물체가 화면에서 왼쪽으로 벗어난 경우, 화면의 왼쪽 가장자리에 왼쪽에 존재한다난 indicator 표출)
  • AR에서 표면 경계는 주변 환경이 추가로 분석됨에 따라 변경될 수 있는 근사치이므로 물체를 감지된 표면의 가장장리에 정확하게 정렬하는것을 지양

Interaction

  • 가능한 경우 사용자들이 직접 조작(왼쪽 사진)하여 개체와 상호 작용 하도록 설계
    • 직접 터치하여 화면 3D 개체와 상호 작용할 수 있을 때 몰입감있고 더욱 직관적

  • 표준 제스처 사용
    • ex) 움직이는 물체에는 한 손 드래그 동작, 회전하는 물체에는 두 손가락 회전 동작 지원
    • 제스처가이드
  • Interaction은 가능한 단순하게 설계: 터치 제스처는 2차원이지만 AR경험은 현실 세계의 3차원을 포함하므로 아래와 같은 접근 방식을 사용
    • 왼쪽 사진: 물체가 놓여있는 2차원 표면으로 이동을 제한
    • 오른쪽 사진: 개체 회전을 단일 축으로 제한

  • 앱에서 object의 크기 조정을 지원: 가상의 환경을 탐색하는 경우 실제 세계를 나타낼 필요가 없기 때문에 크기 조정을 지원한느 것이 합리적
  • 두 손가락 집기 제스처와 두 손가락 회전 제스처는 유사하므로, 충돌이 나는 경우를 대비하여 앱에서 충분히 테스트
  • 콘텐츠에도 사용자 Interaction에 관한 반응을 넣는 방법 지향
    • ex) 사용자가 다가가는 경우 캐릭터는 고개를 돌려 사람이 다가가는 모습을 확인

사용자 경험

  • 사용자 뒤에 가상 object를 배치할 경우, 해당 사용자로 인하여 가려지는 부분이 존재하도록 현실성 있는 ux를 강화

실제 개체에 반응

  • ARKit에서 이미지 인식을 통해 어떤 이미지인지 트리거되는 기능을 이용하여 AR경험을 향상
    • ARKit에서 공상 과학 영화의 극장 포스터를 인식 > 트리거 > 포스터에서 가상 우주선이 나타나 주변을 날아 다니는 효과
    • 주의사항은, 감지된 이미지가 사라지면 그 이미지에 연결된 가상의 제거를 지연하여 자연스럽게 사라지도록 설정 (fade out하거나 제거 전 최대 1초 동안 기다리도록 설정)
    • 개발 참고: Detecting Images in an AR
    • 한번에 사요되는 참조 이미지 수를 제한
      • 이미지 감지 성능은 ARKit이 실제 환경에서 100개 이하의 고유한 이미지를 찾을 때 가장 잘 동작
      • 100개 이상의 참조 이미지가 필욯나 경우, 컨텍스트에 따라 활성 참조 이미지 세트를 변경
      • ex) 박물관 안내 앱  > 위치 서비스를 사용하여 사용자가 위치한 박물관의 일부를 확인한 다음 해당 영역의 이미지세트로 제한

사용자에게 알림 

  • 지침 텍스트를 표시해야하는 경우 접근하기 쉬운 표현을 사용: AR은 일부 사용자들이 이해할 수 없는 개념이므로 쉬운 표현을 사용
    • ex) 3D회전 indicator를 배치하는 것이 2D에서의 텍스트를 사용하는 것보다 더욱 직관적

왼쪽이 더욱 직관적인 indicator

  • 3D공간에 텍스트를 표시해야하는 경우 텍스트가 사용자를 향하도록 설정
  • 필요한 경우 추가 정보를 얻을 수 있는 방법을 제공
    • 탭하여 더 많은 정보를 볼 수 있도록 설계

중단 처리

  • ARKit은 사용자가 잠시 다른 앱으로 전환하거나 전화를 받는 경우와 같이 중단되는 동안 장치, 위치, 방향을 추적할 수 없는 특성
  • 중단이 끝나면 이전에 배치된 개체가 잘못된 실제 위치에 나타날 수 있는 케이스 존재
  • relocallization을 통해 ARKit은 새롱누 정보를 사용하여 가상 객체를 원래의 실제 위치로 복원하려고 시도
  • 사용자들이 relocallization할 수 있도록 시스템에서 제공하는 CoachingView를 사용
    • CoachingView를 통해 사용자들이 장치를 이전 방향으로 되돌리는데 도움

Coaching View

  • relocallization 중에 이전에 배치딘 가상 개체를 숨겨서 깜박임이나 기타 불쾌한 시각 효과를 방지하고, 완료 후 새 위치에 다시 표시
  • 사용자에게 relocallization 취소를 허용
    • 세션을 재개하는데 성공하지 못한 경우 사용자에게 재설정 버튼 또는 AR경험을 다시 시작하는 다른 방법 제공
  • 전면 카메라가 0.5초 이상 얼굴을 추적 할 수 없는 경우 표시
    • 카메라가 더 이상 사람의 얼굴을 추적할 수 없음을 표시하고, 텍스트를 사용한다면 최소한으로 유지되게끔 설계

문제 해결 방법 제안

  • 기대에 미치지 못하는 경우 사용자들이 경험을 재설정하도록 제공

  • 문제가 발생할 경우 친숙한 언어를 사용하여 수정 요청

AR Glyph

  • 앱은 ARKit 기반 경험을 시작하는 컨트롤에 AR 글리프를 표출
  • AR Glyph 리소스

  • 최소한의 여백 사용: AR 글리프 주변에 필요한 최소 여백은 그리프 높이의 10%이므로, 다른 요소가 이 공간을 침범하지 않도록 설정

AR Badge

  • ARKit을 사용하여 AR에서 볼 수 있는 특정 항목을 식별 가능

  • Glyph 전용 badge보다 명확한 AR badge사용: 일반적으로 AR badge를 수용할 수 없는 제한된 공간에는 Glyph전용 배지를 사용

  • 앱의 AR에서 볼 수 있는 개체와 볼수 없는 개체가 혼합된 경우에만 badge를 사용
  • badge의 배치는 일관되고 명확하도록 obejct 사진의 한쪽 모서리에 표시되고 명확하게 볼 수 있도록 큰지 확인
  • badge도 glyph와 마찬가지로 높이의 10%를 여백으로 유지

* 참고

https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/

Comments