KR20240048522A - 3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 - Google Patents

3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 Download PDF

Info

Publication number
KR20240048522A
KR20240048522A KR1020247008055A KR20247008055A KR20240048522A KR 20240048522 A KR20240048522 A KR 20240048522A KR 1020247008055 A KR1020247008055 A KR 1020247008055A KR 20247008055 A KR20247008055 A KR 20247008055A KR 20240048522 A KR20240048522 A KR 20240048522A
Authority
KR
South Korea
Prior art keywords
user
user interface
interface object
dimensional environment
environment
Prior art date
Application number
KR1020247008055A
Other languages
English (en)
Inventor
에브게니 크리보루치코
이스라엘 파스트라나 비센테
스티븐 오. 르메이
크리스토퍼 디. 맥켄지
조이 씨. 테일러
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/948,096 external-priority patent/US20230092874A1/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20240048522A publication Critical patent/KR20240048522A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Ophthalmology & Optometry (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

컴퓨터 시스템은 사용자가 3차원 환경의 제1 뷰에서 디스플레이된 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키는지 여부를 검출한다. 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 것을 검출하는 것에 응답하여, 컴퓨터 시스템은 수정된 외관으로 제1 사용자 인터페이스를 디스플레이한다. 컴퓨터 시스템은 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출하고, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시킨다는 것을 검출한다. 이에 응답하여, 컴퓨터 시스템은, 제1 사용자 인터페이스 객체가 수정된 외관으로 디스플레이되었을 때보다 더 많이 제1 사용자 인터페이스 객체를 강조하는 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 것을 포함하여, 3차원 환경의 제2 뷰 내의 제1 사용자 인터페이스 객체를 디스플레이한다.

Description

3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
관련 출원
본 출원은 2021년 9월 22일자로 출원된 미국 가특허 출원 제63/247,241호에 대한 우선권을 주장하는 2022년 9월 19일자로 출원된 미국 특허 출원 제17/948,096호의 계속출원이며, 이로써 이들 출원들 각각은 그 전체가 참고로 포함된다.
기술분야
본 개시내용은 일반적으로, 디스플레이 생성 컴포넌트를 통해 가상 현실 및 혼합 현실 경험들을 제공하는 전자 디바이스들을 포함하지만 이들로 제한되지 않는, 컴퓨터 생성 확장 현실(XR) 경험들을 제공하는 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 갖는 컴퓨터 시스템들에 관한 것이다.
가상 현실, 증강 현실, 및 확장 현실을 위한 컴퓨터 시스템들의 개발은 최근에 상당히 증가하였다. 예시적인 증강 현실 및 확장 현실 환경들은 물리적 세계를 대체하거나 증강시키는 적어도 일부 가상 요소들을 포함한다. 컴퓨터 시스템들 및 다른 전자 컴퓨팅 디바이스들에 대한 입력 디바이스들, 예컨대 카메라들, 제어기들, 조이스틱들, 터치 감응형 표면들, 및 터치 스크린 디스플레이들이 가상/증강/확장 현실 환경들과 상호작용하기 위해 사용된다. 예시적인 가상 요소들은 디지털 이미지들, 비디오, 텍스트, 아이콘들, 및 버튼들 및 다른 그래픽들과 같은 제어 요소들을 포함하는 가상 객체들을 포함한다.
그러나, 적어도 일부 가상 요소들(예를 들어, 애플리케이션들, 증강 현실 환경들, 혼합 현실 환경들, 가상 현실 환경들, 및 확장 현실 환경들)을 포함하는 환경들과 상호작용하기 위한 방법들 및 인터페이스들은 번거롭고, 비효율적이고, 제한된다. 예를 들어, 가상 객체들과 연관된 액션들을 수행하기 위한 불충분한 피드백을 제공하는 시스템들, 가상/증강/확장 현실 환경에서 원하는 결과를 달성하기 위해 일련의 입력들을 요구하는 시스템들, 및 가상 객체들의 조작이 복잡하고, 지루하며, 에러가 발생하기 쉬운 시스템들은 사용자에게 상당한 인지 부담을 생성하고, 가상/증강/확장 현실 환경과의 경험을 손상시킨다. 부가적으로, 이러한 방법들은 필요 이상으로 오래 걸리며, 그에 의해, 에너지가 낭비된다. 이러한 후자의 고려사항은 배터리-작동형 디바이스들에서 특히 중요하다.
따라서, 컴퓨터 시스템들과의 상호작용을 사용자에게 더 효율적이고 직관적으로 만드는 컴퓨터 생성 경험들을 사용자들에게 제공하기 위한 개선된 방법들 및 인터페이스들을 갖는 컴퓨터 시스템들에 대한 필요성이 존재한다. 개시된 시스템들, 방법들 및 사용자 인터페이스들에 의해, 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 갖는 컴퓨터 시스템들에 대한 사용자 인터페이스들과 연관된 위의 결점들 및 다른 문제들이 감소되거나 제거된다. 그러한 시스템들, 방법들 및 인터페이스들은 선택적으로, 확장 현실 경험들을 사용자들에게 제공하기 위한 종래의 시스템들, 방법들, 및 사용자 인터페이스들을 보완하거나 대체한다. 그러한 방법들 및 인터페이스들은, 사용자가 제공된 입력들과 입력들에 대한 디바이스 응답들 사이의 연결을 이해하는 데 도움을 줌으로써 사용자로부터의 입력들의 수, 크기, 및/또는 종류를 감소시키며, 그에 의해, 더 효율적인 인간-기계 인터페이스를 생성한다.
일부 실시예들에 따르면, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 컴퓨터 시스템에서 방법이 수행된다. 방법은 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경의 제1 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함한다. 방법은 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키는지 여부를 검출하는 단계를 더 포함한다. 방법은 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 것을 검출하는 것에 응답하여, 수정된 외관으로 제1 사용자 인터페이스를 디스플레이하는 단계를 더 포함하며, 여기서 수정된 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 단계는 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제(deemphasize)하는 단계를 포함한다. 방법은 수정된 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출하는 단계를 더 포함한다. 방법은 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출한 이후, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시킨다는 것을 검출하는 단계를 더 포함한다. 방법은 사용자가 주의 기준들을 만족시킨다는 것을 검출하는 것에 응답하여, 3차원 환경의 제1 뷰와 별개인 3차원 환경의 제2 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 여기서 3차원 환경의 제2 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하는 단계는, 제1 사용자 인터페이스 객체가 수정된 외관으로 디스플레이되었을 때보다 더 많이 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조하는 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함한다.
일부 실시예들에서, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들과 통신하는 컴퓨터 시스템에서 방법이 수행된다. 방법은 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경 내의 제1 포지션에서 그리고 사용자의 개개의 부분에 대한 제1 공간 배열로 3차원 환경의 제1 뷰 내의 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함한다. 방법은 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 하나 이상의 입력 디바이스들을 통해, 물리적 환경 내의 제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출하는 단계를 더 포함한다. 방법은 제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출하는 것에 응답하여, 제1 위치로부터 제2 위치로의 사용자의 시점의 이동이 이동의 임계량을 만족시키지 않는다는 결정에 따라, 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계를 더 포함한다. 방법은, 제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출하는 것에 응답하여, 제1 위치로부터 제2 위치로의 사용자의 시점의 이동이 이동의 임계량을 만족시킨다는 결정에 따라, 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하는 단계 및 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 여기서 3차원 환경 내의 제2 포지션은 사용자의 개개의 부분에 대한 제1 공간 배열을 갖는다.
일부 실시예들에 따르면, 컴퓨터 시스템은 디스플레이 생성 컴포넌트(예를 들어, 디스플레이, 프로젝터, 머리 장착형 디스플레이), 하나 이상의 입력 디바이스들(예를 들어, 하나 이상의 카메라들, 터치 감응형 표면, 선택적으로 터치 감응형 표면과의 접촉들의 세기들을 검출하기 위한 하나 이상의 센서들), 선택적으로 하나 이상의 오디오 출력 컴포넌트들, 선택적으로 하나 이상의 촉각적 출력 생성기들, 하나 이상의 프로세서들, 및 하나 이상의 프로그램들을 저장하는 메모리를 포함하거나 그들과 통신하고; 하나 이상의 프로그램들은 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 이들의 수행을 야기하기 위한 명령어들을 포함한다. 일부 실시예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들(예를 들어, 하나 이상의 카메라들, 터치 감응형 표면, 선택적으로 터치 감응형 표면과의 접촉들의 세기들을 검출하기 위한 하나 이상의 센서들), 선택적으로 하나 이상의 오디오 출력 컴포넌트들, 및 선택적으로 하나 이상의 촉각적 출력 생성기들을 갖는 컴퓨터 시스템에 의해 실행될 때, 디바이스로 하여금 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하게 하거나 또는 그들의 수행을 야기하는 명령어들을 저장하고 있다. 일부 실시예들에 따르면, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들(예를 들어, 하나 이상의 카메라들, 터치 감응형 표면, 선택적으로 터치 감응형 표면과의 접촉들의 세기들을 검출하기 위한 하나 이상의 센서들), 선택적으로 하나 이상의 오디오 출력 컴포넌트들, 선택적으로 하나 이상의 촉각적 출력 생성기들, 메모리, 및 메모리에 저장된 하나 이상의 프로그램들을 실행하기 위한 하나 이상의 프로세서들을 갖는 컴퓨터 시스템 상의 그래픽 사용자 인터페이스는, 본 명세서에 설명되는 방법들 중 임의의 방법에서 설명되는 바와 같이, 입력들에 응답하여 업데이트되는, 본 명세서에 설명되는 방법들 중 임의의 방법에서 디스플레이되는 요소들 중 하나 이상을 포함한다. 일부 실시예들에 따르면, 컴퓨터 시스템은, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들(예를 들어, 하나 이상의 카메라들, 터치 감응형 표면, 선택적으로 터치 감응형 표면과의 접촉들의 세기들을 검출하기 위한 하나 이상의 센서들), 선택적으로 하나 이상의 오디오 출력 컴포넌트들, 및 선택적으로 하나 이상의 촉각적 출력 생성기들; 및 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 그들의 수행을 야기하기 위한 수단을 포함한다. 일부 실시예들에 따르면, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들(예를 들어, 하나 이상의 카메라들, 터치 감응형 표면, 선택적으로 터치 감응형 표면과의 접촉들의 세기들을 검출하기 위한 하나 이상의 센서들), 선택적으로 하나 이상의 오디오 출력 컴포넌트들, 및 선택적으로 하나 이상의 촉각적 출력 생성기들을 갖는 컴퓨터 시스템에 사용하기 위한 정보 프로세싱 장치는 본 명세서에 설명되는 방법들 중 임의의 방법의 동작들을 수행하거나 또는 그들의 수행을 야기하기 위한 수단을 포함한다.
따라서, 디스플레이 생성 컴포넌트들을 갖는 컴퓨터 시스템들에는, 3차원 환경과 상호작용하고, 3차원 환경과 상호작용할 때 컴퓨터 시스템들의 사용자의 사용자를 용이하게 하기 위한 개선된 방법들 및 인터페이스들이 제공되며, 그에 의해, 그러한 컴퓨터 시스템들의 유효성, 효율, 및 사용자 안전 및 만족도를 증가시킨다. 그러한 방법들 및 인터페이스들은, 3차원 환경과 상호작용하고, 3차원 환경과 상호작용할 때 컴퓨터 시스템들의 사용자의 사용을 용이하게 하기 위한 종래의 방법들을 보완 또는 대체할 수 있다.
위에서 설명된 다양한 실시예들이 본 명세서에 설명된 임의의 다른 실시예들과 조합될 수 있다는 것을 유의한다. 본 명세서에 설명된 특징들 및 장점들은 모두를 포함하는 것은 아니며, 특히, 많은 부가적인 특징들 및 장점들이 도면들, 명세서 및 청구범위를 고려하여 당업자에게 명백할 것이다. 게다가, 본 명세서에 사용된 표현은 주로 이해의 편의 및 설명의 목적들을 위해 선택되었고, 본 발명의 요지를 서술하거나 제한하기 위해 선택되지 않았을 수 있다는 것을 유의해야 한다.
다양하게 설명된 실시예들의 보다 양호한 이해를 위해, 유사한 도면 부호들이 도면들 전체에 걸쳐 대응 부분들을 나타내는 하기의 도면들과 관련하여 하기의 발명을 실시하기 위한 구체적인 내용이 참조되어야 한다.
도 1은 일부 실시예들에 따른, 확장 현실(XR) 경험들을 제공하기 위한 컴퓨터 시스템의 동작 환경을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른, 사용자에 대한 XR 경험을 관리 및 조정하도록 구성된 컴퓨터 시스템의 제어기를 예시하는 블록도이다.
도 3은 일부 실시예들에 따른, XR 경험의 시각적 컴포넌트를 사용자에게 제공하도록 구성된 컴퓨터 시스템의 디스플레이 생성 컴포넌트를 예시하는 블록도이다.
도 4는 일부 실시예들에 따른, 사용자의 제스처 입력들을 캡처하도록 구성된 컴퓨터 시스템의 손 추적 유닛을 예시하는 블록도이다.
도 5는 일부 실시예들에 따른, 사용자의 시선 입력들을 캡처하도록 구성된 컴퓨터 시스템의 눈 추적 유닛을 예시하는 블록도이다.
도 6은 일부 실시예들에 따른, 글린트-보조(glint-assisted) 시선 추적 파이프라인을 예시하는 흐름도이다.
도 7a 내지 도 7j는 일부 실시예들에 따른, 3차원 환경 내의 개개의 포지션들에서 사용자 인터페이스 객체를 디스플레이하는 것을 예시하는 블록도들이다.
도 8은 일부 실시예들에 따른, 사용자가 사용자 인터페이스 요소에 주의를 기울이지 않고 있는 동안 3차원 환경에서 사용자 인터페이스 요소를 시각적으로 강조해제하는 방법의 흐름도이다.
도 9는 일부 실시예들에 따른, 사용자가 3차원 환경의 사용자의 현재 뷰를 변경시킴에 따라 사용자를 뒤따르도록 3차원 환경에서 사용자 인터페이스 요소의 디스플레이를 업데이트하는 방법의 흐름도이다.
본 개시내용은 일부 실시예들에 따른, 컴퓨터 생성 확장 현실(XR) 경험을 사용자에게 제공하기 위한 사용자 인터페이스들에 관한 것이다.
본 명세서에 설명되는 시스템들, 방법들, 및 GUI들은 다수의 방식들로 가상/증강 현실 환경들과의 사용자 인터페이스 상호작용들을 개선시킨다.
일부 실시예들에서, 컴퓨터 시스템은 사용자가 사용자 인터페이스 요소에 주의를 기울이지 않는 동안 시각적으로 강조해제되는 사용자 인터페이스 요소를 디스플레이한다. 사용자 인터페이스 요소는 사용자가 물리적 환경 내에서 주위를 이동함에 따라 강조해제된 상태로 유지되고, 사용자가 사용자 인터페이스 요소에 주의를 기울이고 있다는 결정에 따라, 사용자 인터페이스 요소는 더 이상 시각적으로 강조해제되지 않고, 3차원 환경의 사용자의 현재 뷰에 기초하여 3차원 환경 내의 포지션에서 사용자에 대해 디스플레이된다.
일부 실시예들에서, 3차원 환경에서 사용자 인터페이스 요소를 디스플레이하는 컴퓨터 시스템이 제공되며, 여기서 사용자 인터페이스 요소의 디스플레이는 사용자가 (예를 들어, 물리적 환경 주위에서 이동함으로써) 3차원 환경의 사용자의 현재 뷰를 변경시킴에 따라 사용자를 뒤따르도록 업데이트된다. 사용자 인터페이스 요소는 초기에 사용자의 뷰가 임계량 초과만큼 변경될 때까지, 사용자의 뷰가 변경됨에 따라 이동되지 않는다. 사용자의 뷰가 임계량 초과만큼 변경된 이후, 사용자 인터페이스 요소는 사용자를 뒤따른다(예를 들어, 사용자의 이동보다 느린 이동 레이트로 사용자를 뒤따르게 지연되고 그리고/또는 그 사용자를 뒤따름).
도 1 내지 도 6은 사용자들에게 XR 경험들을 제공하기 위한 예시적인 컴퓨터 시스템들의 설명을 제공한다. 도 7a 내지 도 7j의 사용자 인터페이스들은 각각 도 8 및 도 9의 프로세스들을 예시하기 위해 사용된다.
아래에서 설명되는 프로세스들은, 사용자에게 개선된 시각적, 오디오, 및/또는 햅틱 피드백을 제공하는 것, 동작을 수행하는 데 필요한 입력들의 수를 감소시키는 것, 부가적인 디스플레이된 제어부들로 사용자 인터페이스를 혼란스럽게 하지 않으면서 부가적인 제어 옵션들을 제공하는 것, 추가적인 사용자 입력을 요구하지 않으면서 조건들의 세트가 충족되었을 때 동작을 수행하는 것, 및/또는 부가적인 기법들을 포함하는 다양한 기법들을 통해 (예를 들어, 디바이스를 동작시키거나/그와 상호작용할 때 사용자가 적절한 입력들을 제공하는 것을 돕고 사용자 실수들을 감소시킴으로써) 디바이스들의 작동성을 향상시키고 사용자-디바이스 인터페이스들을 더 효율적으로 만든다. 이러한 기법들은 또한, 사용자가 디바이스를 더 신속하고 효율적으로 사용할 수 있게 함으로써 디바이스의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
일부 실시예들에서, 도 1에 도시된 바와 같이, XR 경험은 컴퓨터 시스템(101)을 포함하는 동작 환경(100)을 통해 사용자에게 제공된다. 컴퓨터 시스템(101)은 제어기(110)(예를 들어, 휴대용 전자 디바이스 또는 원격 서버의 프로세서들), 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스(HMD), 디스플레이, 프로젝터, 및/또는 터치 스크린), 하나 이상의 입력 디바이스들(125)(예를 들어, 눈 추적 디바이스(130), 손 추적 디바이스(140), 다른 입력 디바이스들(150)), 하나 이상의 출력 디바이스들(155)(예를 들어, 스피커들(160), 촉각적 출력 생성기들(170), 및 다른 출력 디바이스들(180)), 하나 이상의 센서들(190)(예를 들어, 이미지 센서들, 광 센서들, 깊이 센서들, 촉각 센서들, 배향 센서들, 근접 센서들, 온도 센서들, 위치 센서들, 모션 센서들, 및/또는 속도 센서들), 및 선택적으로는, 하나 이상의 주변 디바이스들(195)(예를 들어, 가정용 전자기기들, 및/또는 웨어러블 디바이스들)을 포함한다. 일부 실시예들에서, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190) 및 주변 디바이스들(195) 중 하나 이상은 (예를 들어, 머리 장착형 디바이스 또는 핸드헬드 디바이스에서) 디스플레이 생성 컴포넌트(120)와 통합된다.
XR 경험을 설명할 때, (예를 들어, XR 경험을 생성하는 컴퓨터 시스템으로 하여금 컴퓨터 시스템(101)에 제공된 다양한 입력들에 대응하는 오디오, 시각적, 및/또는 촉각적 피드백을 생성하게 하는, XR 경험을 생성하는 컴퓨터 시스템(101)에 의해 검출된 입력들로) 사용자가 감지할 수 있고 그리고/또는 사용자가 상호작용할 수 있는 몇몇 관련되지만 별개의 환경들을 상이하게 지칭하기 위해 다양한 용어들이 사용된다. 다음은 이들 용어들의 서브세트이다:
물리적 환경: 물리적 환경은 사람들이 전자 시스템들의 도움없이 감지하고 그리고/또는 상호작용할 수 있는 물리적 세계를 지칭한다. 물리적 공원과 같은 물리적 환경들은 물리적 물품들, 예컨대 물리적 나무들, 물리적 건물들, 및 물리적 사람들을 포함한다. 사람들은, 예컨대 시각, 촉각, 청각, 미각, 및 후각을 통해, 물리적 환경을 직접 감지하고 그리고/또는 그와 상호작용할 수 있다.
확장 현실: 대조적으로, 확장 현실(XR) 환경은 사람들이 전자 시스템을 통해 감지하고 그리고/또는 그와 상호작용하는 완전히 또는 부분적으로 시뮬레이션된 환경을 지칭한다. XR에서, 사람의 신체적 움직임들, 또는 이들의 표현들의 서브세트가 추적되고, 이에 응답하여, XR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 예를 들어, XR 시스템은 사람이 고개를 돌리는 것을 검출할 수 있고, 이에 응답하여, 그 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 물리적 환경에서 그러한 뷰들 및 소리들이 변경되는 방식과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 액세스가능성 이유들 때문에), XR 환경에서의 가상 객체(들)의 특성(들)에 대한 조정들은 신체적 움직임들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 이루어질 수 있다. 사람은, 시각, 청각, 촉각, 미각, 및 후각을 포함하는 그들의 감각들 중 임의의 하나를 사용하여 XR 객체를 감지하고 그리고/또는 그와 상호작용할 수 있다. 예를 들어, 사람은 3D 공간에서의 포인트 오디오 소스들의 지각을 제공하는 3D 또는 공간적 오디오 환경을 생성하는 오디오 객체들을 감지하고 그리고/또는 그와 상호작용할 수 있다. 다른 예에서, 오디오 객체들은 오디오 투과성을 가능하게 할 수 있으며, 이는 선택적으로, 물리적 환경으로부터의 주변 소리들을 컴퓨터 생성 오디오와 함께 또는 그것 없이 포함한다. 일부 XR 환경들에서, 사람은 오디오 객체들만을 감지하고 그리고/또는 오직 그와 상호작용할 수 있다.
XR의 예들은 가상 현실 및 혼합 현실을 포함한다.
가상 현실: 가상 현실(VR) 환경은 하나 이상의 감각들에 대한 컴퓨터 생성 감각 입력들에 전적으로 기초하도록 설계된 시뮬레이션된 환경을 지칭한다. VR 환경은 사람이 감지하고 그리고/또는 상호작용할 수 있는 복수의 가상 객체들을 포함한다. 예를 들어, 나무들, 빌딩들, 및 사람들을 표현하는 아바타들의 컴퓨터 생성 형상화가 가상 객체들의 예들이다. 사람은, 컴퓨터 생성 환경 내의 사람의 존재의 시뮬레이션을 통해 그리고/또는 컴퓨터 생성 환경 내의 사람의 신체적 움직임들의 서브세트의 시뮬레이션을 통해 VR 환경에서 가상 객체들을 감지하고 그리고/또는 그것과 상호작용할 수 있다.
혼합 현실: 컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계되는 VR 환경과는 대조적으로, 혼합 현실(MR) 환경은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 포함하는 것에 부가하여, 물리적 환경으로부터의 감각 입력들, 또는 그들의 표현을 통합하도록 설계된 시뮬레이션된 환경을 지칭한다. 가상 연속체(virtuality continuum)에서, 혼합 현실 환경은 한쪽의 완전히 물리적인 환경과 다른 쪽의 가상 현실 환경 사이의 임의의 곳에 있지만, 포함하지는 않는다. 일부 MR 환경들에서, 컴퓨터 생성 감각 입력들은 물리적 환경으로부터의 감각 입력들의 변화들에 응답할 수 있다. 또한, MR 환경을 제시하기 위한 일부 전자 시스템들은 물리적 환경에 대한 위치 및/또는 배향을 추적하여 가상 객체들이 실제 객체들(즉, 물리적 환경으로부터의 물리적 물품들 또는 물리적 물품들의 표현들)과 상호작용할 수 있게 할 수 있다. 예를 들어, 시스템은 움직임들을 고려하여 가상 나무가 물리적 땅에 대하여 고정되어 있는 것처럼 보이도록 할 수 있다.
혼합 현실들의 예들은 증강 현실 및 증강 가상을 포함한다.
증강 현실: 증강 현실(AR) 환경은 하나 이상의 가상 객체들이 물리적 환경, 또는 그의 표현 위에 중첩되어 있는 시뮬레이션된 환경을 지칭한다. 예를 들어, AR 환경을 제시하기 위한 전자 시스템은 사람이 직접 물리적 환경을 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 가상 객체들을 투명 또는 반투명 디스플레이 상에 제시하도록 구성되어, 사람은, 시스템을 사용하여, 물리적 환경 위에 중첩된 가상 객체들을 인지하게 할 수 있다. 대안적으로, 시스템은 불투명 디스플레이, 및 물리적 환경의 표현들인 물리적 환경의 이미지들 또는 비디오를 캡처하는 하나 이상의 이미징 센서들을 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 합성하고, 합성물을 불투명 디스플레이 상에 제시한다. 사람은, 시스템을 사용하여, 물리적 환경의 이미지들 또는 비디오에 의해 물리적 환경을 간접적으로 보고, 물리적 환경 위에 중첩된 가상 객체들을 인지한다. 본 명세서에 사용되는 바와 같이, 불투명 디스플레이 상에 도시되는 물리적 환경의 비디오는 "패스-스루(pass-through) 비디오"로 불리는데, 이는 시스템이 하나 이상의 이미지 센서(들)를 사용하여 물리적 환경의 이미지들을 캡처하고, AR 환경을 불투명 디스플레이 상에 제시할 시에 이들 이미지들을 사용하는 것을 의미한다. 추가로 대안적으로, 시스템은 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하는 투영 시스템을 가질 수 있어서, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하게 한다. 증강 현실 환경은 또한 물리적 환경의 표현이 컴퓨터 생성 감각 정보에 의해 변환되는 시뮬레이션된 환경을 지칭한다. 예를 들어, 패스-스루 비디오를 제공할 시에, 시스템은 하나 이상의 센서 이미지들을 변환하여 이미징 센서들에 의해 캡처된 관점과는 상이한 선택 관점(예를 들어, 시점)을 부과할 수 있다. 다른 예로서, 물리적 환경의 표현은 그것의 일부들을 그래픽적으로 수정(예를 들어, 확대)함으로써 변환될 수 있어서, 수정된 부분은 원래 캡처된 이미지들의 대표적인 버전일 수 있지만, 실사 버전은 아닐 수 있다. 추가적인 예로서, 물리적 환경의 표현은 그의 일부들을 그래픽적으로 제거하거나 또는 흐리게 함으로써 변환될 수 있다.
증강 가상: 증강 가상(AV) 환경은 가상 또는 컴퓨터 생성 환경이 물리적 환경으로부터의 하나 이상의 감각 입력들을 통합하는 시뮬레이션된 환경을 지칭한다. 감각 입력들은 물리적 환경의 하나 이상의 특성들의 표현들일 수 있다. 예를 들어, AV 공원은 가상 나무들 및 가상 빌딩들을 가질 수 있지만, 사람들의 얼굴들은 물리적 사람들을 찍은 이미지들로부터 실사처럼 재현될 수 있다. 다른 예로서, 가상 객체는 하나 이상의 이미징 센서들에 의해 이미징되는 물리적 물품의 형상 또는 컬러를 채용할 수 있다. 추가적인 예로서, 가상 객체는 물리적 환경에서 양태의 포지션에 부합하는 그림자들을 채용할 수 있다.
하드웨어: 사람이 다양한 XR 환경들을 감지하고 그리고/또는 그들과 상호작용할 수 있게 하는 많은 상이한 유형들의 전자 시스템들이 존재한다. 예들은 머리 장착형 시스템들, 투영 기반 시스템들, 헤드업(head-up) 디스플레이(HUD)들, 디스플레이 능력이 통합된 차량 앞유리들, 디스플레이 능력이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이들(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 머리 장착형 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 머리 장착형 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 머리 장착형 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 통합할 수 있다. 머리 장착형 시스템은 불투명 디스플레이보다는, 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, uLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명하게 되도록 구성될 수 있다. 투영 기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투영하는 망막 투영 기술을 이용할 수 있다. 투영 시스템들은, 또한, 가상 객체들을 물리적 환경 내에, 예를 들어 홀로그램으로서, 또는 물리적 표면 상에 투영하도록 구성될 수 있다. 일부 실시예들에서, 제어기(110)는 사용자에 대한 CGR 경험을 관리 및 조정하도록 구성된다. 일부 실시예들에서, 제어기(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어기(110)는 도 2에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 제어기(110)는 장면(105)(예를 들어, 물리적 설정/환경)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 예를 들어, 제어기(110)는 장면(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 장면(105)의 외부에 위치된 원격 서버(예를 들어, 클라우드 서버, 중앙 서버, 및/또는 다른 서버)이다. 일부 실시예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예를 들어, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 디스플레이 생성 컴포넌트(120)(예를 들어, HMD, 디스플레이, 프로젝터, 및/또는 터치 스크린)와 통신가능하게 커플링된다. 다른 예에서, 제어기(110)는 디스플레이 생성 컴포넌트(120)(예를 들어, 디스플레이 및 하나 이상의 프로세서들을 포함하는 HMD 또는 휴대용 전자 디바이스)의 인클로저(enclosure)(예를 들어, 물리적 하우징), 입력 디바이스들(125) 중 하나 이상, 출력 디바이스들(155) 중 하나 이상, 센서들(190) 중 하나 이상, 및/또는 주변 디바이스들(195) 중 하나 이상 내에 포함되거나, 위의 것들 중 하나 이상과 동일한 물리적 인클로저 또는 지지 구조를 공유한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 XR 경험(예를 들어, 적어도 XR 경험의 시각적 컴포넌트)을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 디스플레이 생성 컴포넌트(120)는 도 3에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 제어기(110)의 기능들은 디스플레이 생성 컴포넌트(120)에 의해 제공되거나 그리고/또는 이와 조합된다.
일부 실시예들에 따르면, 디스플레이 생성 컴포넌트(120)는 사용자가 장면(105) 내에 가상으로 그리고/또는 물리적으로 존재하는 동안 XR 경험을 사용자에게 제공한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트는 사용자의 신체의 일부에(예를 들어, 그의 머리 상에, 그리고/또는 그의 손 상에) 착용된다. 이와 같이, 디스플레이 생성 컴포넌트(120)는 XR 콘텐츠를 디스플레이하기 위해 제공되는 하나 이상의 XR 디스플레이들을 포함한다. 예를 들어, 다양한 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 시야를 둘러싼다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 XR 콘텐츠를 제시하도록 구성된 핸드헬드 디바이스(예컨대, 스마트폰 또는 태블릿)이고, 사용자는 사용자의 시야를 향해 지향된 디스플레이 및 장면(105)을 향해 지향된 카메라를 갖는 디바이스를 유지한다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자의 머리 상에 착용된 인클로저 내에 배치된다. 일부 실시예들에서, 핸드헬드 디바이스는 선택적으로 사용자 전방의 지지부(예를 들어, 삼각대) 상에 배치된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자가 디스플레이 생성 컴포넌트(120)를 착용하거나 유지하지 않는 XR 콘텐츠를 제시하도록 구성된 XR 챔버, 인클로저 또는 방이다. XR 콘텐츠를 디스플레이하기 위한 하나의 유형의 하드웨어(예를 들어, 핸드헬드 디바이스 또는 삼각대 상의 디바이스)를 참조하여 설명된 많은 사용자 인터페이스들은 XR 콘텐츠를 디스플레이하기 위한 다른 유형의 하드웨어(예를 들어, HMD 또는 다른 웨어러블 컴퓨팅 디바이스) 상에서 구현될 수 있다. 예를 들어, 핸드헬드 또는 삼각대 장착형 디바이스 전방의 공간에서 발생하는 상호작용들에 기초하여 트리거된 XR 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는, 상호작용들이 HMD 전방의 공간에서 발생하고 XR 콘텐츠의 응답들이 HMD를 통해 디스플레이되는 HMD를 이용하여 유사하게 구현될 수 있다. 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 핸드헬드 또는 삼각대 장착형 디바이스의 이동에 기초하여 트리거되는 XR 콘텐츠와의 상호작용들을 보여주는 사용자 인터페이스는 유사하게, 물리적 환경(예를 들어, 장면(105) 또는 사용자의 신체의 일부(예를 들어, 사용자의 눈(들), 머리 또는 손)에 대한 HMD의 이동에 의해 이동이 야기되는 HMD로 구현될 수 있다.
동작 환경(100)의 관련 특징부들이 도 1에 도시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다.
도 2는 일부 실시예들에 따른 제어기(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(application-specific integrated-circuit; ASIC)들, 필드-프로그래밍가능 게이트 어레이(field-programmable gate array; FPGA)들, 그래픽 프로세싱 유닛(graphics processing unit; GPU)들, 중앙 프로세싱 유닛(central processing unit; CPU)들, 프로세싱 코어들 등), 하나 이상의 입력/출력(input/output; I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(universal serial bus; USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(global system for mobile communication; GSM), 코드 분할 다중 액세스(code division multiple access; CDMA), 시분할 다중 액세스(time division multiple access; TDMA), 글로벌 포지셔닝 시스템(global positioning system; GPS), 적외선(infrared; IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 실시예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 실시예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 XR 경험 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, XR 경험 모듈(240)은 하나 이상의 사용자들에 대한 하나 이상의 XR 경험들(예를 들어, 하나 이상의 사용자들에 대한 단일 XR 경험, 또는 하나 이상의 사용자들의 개개의 그룹들에 대한 다수의 XR 경험들)을 관리하고 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 경험 모듈(240)은 데이터 획득 유닛(242), 추적 유닛(244), 조정 유닛(246), 및 데이터 송신 유닛(248)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(242)은 적어도 도 1의 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상으로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 및/또는 위치 데이터)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(242)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 추적 유닛(244)은 장면(105)을 맵핑하도록 그리고 도 1의 장면(105)에 대해 그리고 선택적으로는 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 대해 적어도 디스플레이 생성 컴포넌트(120)의 포지션/위치를 추적하도록 구성된다. 이를 위해, 다양한 실시예들에서, 추적 유닛(244)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다. 일부 실시예들에서, 추적 유닛(244)은 손 추적 유닛(245), 및/또는 눈 추적 유닛(243)을 포함한다. 일부 실시예들에서, 손 추적 유닛(245)은 도 1의 장면(105)에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 그리고/또는 사용자의 손에 대해 정의된 좌표계에 대해 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하도록 구성된다. 손 추적 유닛(245)은 도 4에 관해 아래에서 더 상세히 설명된다. 일부 실시예들에서, 눈 추적 유닛(243)은 장면(105)에 대해(예를 들어, 물리적 환경 및/또는 사용자(예를 들어, 사용자의 손)에 대해) 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이되는 XR 콘텐츠에 대해 사용자의 시선(또는 더 광범위하게는 사용자의 눈들, 얼굴 또는 머리)의 위치 및 이동을 추적하도록 구성된다. 눈 추적 유닛(243)은 도 5에 관해 아래에서 더 상세히 설명된다.
일부 실시예들에서, 조정 유닛(246)은 디스플레이 생성 컴포넌트(120)에 의해 그리고 선택적으로, 출력 디바이스들(155) 및/또는 주변 디바이스들(195) 중 하나 이상에 의해 사용자에게 제시되는 XR 경험을 관리 및 조정하도록 구성된다. 이를 위해, 다양한 실시예들에서, 조정 유닛(246)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(248)은 적어도 디스플레이 생성 컴포넌트(120) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터 및/또는 위치 데이터)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(248)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(242), 추적 유닛(244)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(245)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)이 단일 디바이스(예를 들어, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(242), 추적 유닛(244)(예를 들어, 눈 추적 유닛(243) 및 손 추적 유닛(245)을 포함함), 조정 유닛(246), 및 데이터 송신 유닛(248)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것이 이해되어야 한다.
게다가, 도 2는 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 2에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 실시예들에 따른 디스플레이 생성 컴포넌트(120)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 간결함을 위해 그리고 본 명세서에 개시되는 실시예들의 더 많은 관련 양태들을 불명료하게 하지 않기 위해 다양한 다른 특징부들이 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 일부 실시예들에서, HMD(120)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 XR 디스플레이들(312), 하나 이상의 선택적인 내부 및/또는 외부 대면 이미지 센서들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 실시예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 실시예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 및/또는 혈당 센서), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 깊이 센서들(예를 들어, 구조화된 광, 비행 시간 등) 등 중 적어도 하나를 포함한다.
일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 XR 경험을 사용자에게 제공하도록 구성된다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계-효과 트랜지터리(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자기계 시스템(MEMS), 및/또는 유사한 디스플레이 유형들에 대응한다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, HMD(120)는 단일 XR 디스플레이를 포함한다. 다른 예에서, HMD(120)는 사용자의 각각의 눈에 대한 XR 디스플레이를 포함한다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 MR 및 VR 콘텐츠를 제시할 수 있다. 일부 실시예들에서, 하나 이상의 XR 디스플레이들(312)은 MR 또는 VR 콘텐츠를 제시할 수 있다.
일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 눈들을 포함하는 사용자의 얼굴의 적어도 일부에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 눈-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 사용자의 손(들) 및 선택적으로 사용자의 팔(들)의 적어도 일부에 대응하는 이미지 데이터를 획득하도록 구성된다(그리고 이들은 손-추적 카메라로 지칭될 수 있다). 일부 실시예들에서, 하나 이상의 이미지 센서들(314)은 HMD(120)가 존재하지 않았다면 사용자에 의해 보여질 장면에 대응하는 이미지 데이터를 획득하기 위해 전방-대면하도록 구성된다(그리고 장면 카메라로 지칭될 수 있다). 하나 이상의 선택적인 이미지 센서들(314)은 하나 이상의 RGB 카메라들(예를 들어, 상보성 금속-산화물-반도체(complimentary metal-oxide-semiconductor; CMOS) 이미지 센서 또는 전하 결합 디바이스(charge-coupled device; CCD)이미지 센서를 가짐), 하나 이상의 적외선(IR) 카메라들, 하나 이상의 이벤트-기반 카메라들 등을 포함할 수 있다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 실시예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 XR 제시 모듈(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 명령어들을 포함한다. 일부 실시예들에서, XR 제시 모듈(340)은 하나 이상의 XR 디스플레이들(312)을 통해 XR 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 제시 모듈(340)은 데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)을 포함한다.
일부 실시예들에서, 데이터 획득 유닛(342)은 적어도 도 1의 제어기(110)로부터 데이터(예를 들어, 제시 데이터, 상호작용 데이터, 센서 데이터, 및/또는 위치 데이터)를 획득하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 획득 유닛(342)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, XR 제시 유닛(344)은 하나 이상의 XR 디스플레이들(312)을 통해 XR 콘텐츠를 제시하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 제시 유닛(344)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, XR 맵 생성 유닛(346)은 미디어 콘텐츠 데이터에 기초하여 XR 맵(예를 들어, 확장 현실을 생성하기 위해 컴퓨터 생성 객체들이 배치될 수 있는 혼합 현실 장면의 3D 맵 또는 물리적 환경의 맵)을 생성하도록 구성된다. 이를 위해, 다양한 실시예들에서, XR 맵 생성 유닛(346)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 실시예들에서, 데이터 송신 유닛(348)은 적어도 제어기(110) 및 선택적으로, 입력 디바이스들(125), 출력 디바이스들(155), 센서들(190), 및/또는 주변 디바이스들(195) 중 하나 이상에 데이터(예를 들어, 제시 데이터 및/또는 위치 데이터)를 송신하도록 구성된다. 이를 위해, 다양한 실시예들에서, 데이터 송신 유닛(348)은 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)이 단일 디바이스(예를 들어, 도 1의 디스플레이 생성 컴포넌트(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 실시예들에서, 데이터 획득 유닛(342), XR 제시 유닛(344), XR 맵 생성 유닛(346), 및 데이터 송신 유닛(348)의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해해야 한다.
게다가, 도 3은 본 명세서에 설명된 실시예들의 구조적 개략도와는 대조적으로 특정 구현예에 존재할 수 있는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 항목들은 조합될 수 있고 일부 항목들은 분리될 수 있다. 예를 들어, 다양한 실시예들에서, 도 3에 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 실시예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 손 추적 디바이스(140)의 예시적인 실시예의 개략적인 도식적인 예시이다. 일부 실시예들에서, 손 추적 디바이스(140)(도 1)는 사용자의 손들의 하나 이상의 부분들의 포지션/위치 및/또는 도 1의 장면(105)에 대해(예를 들어, 사용자를 둘러싸는 물리적 환경의 일부에 대해, 디스플레이 생성 컴포넌트(120)에 대해, 또는 사용자의 일부(예를 들어, 사용자의 얼굴, 눈들, 또는 손)에 대해, 그리고/또는 사용자의 손에 대해 정의된 좌표계에 대해) 사용자의 손들의 하나 이상의 부분들의 모션들을 추적하기 위해 손 추적 유닛(245)(도 2)에 의해 제어된다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)(예를 들어, 머리 장착형 디바이스에 내장되거나 그에 부착됨)의 부분이다. 일부 실시예들에서, 손 추적 디바이스(140)는 디스플레이 생성 컴포넌트(120)와 별개이다(예를 들어, 별개의 하우징들에 위치되거나 또는 별개의 물리적 지지 구조들에 부착됨).
일부 실시예들에서, 손 추적 디바이스(140)는 적어도 인간 사용자의 손(406)을 포함하는 3차원 장면 정보를 캡처하는 이미지 센서들(404)(예를 들어, 하나 이상의 IR 카메라들, 3D 카메라들, 깊이 카메라들 및/또는 컬러 카메라들)을 포함한다. 이미지 센서들(404)은 손가락들 및 이들 개개의 포지션들이 구별될 수 있게 하기에 충분한 해상도로 손 이미지들을 캡처한다. 이미지 센서들(404)은 통상적으로, 또한 사용자의 신체의 다른 부분들, 또는 가능하게는 신체 전부의 이미지들을 캡처하고, 원하는 해상도로 손의 이미지들을 캡처하기 위한 향상된 배율을 갖는 전용 센서 또는 줌 능력들을 가질 수 있다. 일부 실시예들에서, 이미지 센서들(404)은 또한 손(406) 및 장면의 다른 요소들의 2D 컬러 비디오 이미지들을 캡처한다. 일부 실시예들에서, 이미지 센서들(404)은 장면(105)의 물리적 환경을 캡처하거나 또는 장면(105)의 물리적 환경을 캡처하는 이미지 센서들의 역할을 하기 위해 다른 이미지 센서들과 함께 사용된다. 일부 실시예들에서, 이미지 센서들(404)은, 이미지 센서들에 의해 캡처된 손 이동이 제어기(110)로의 입력들로서 처리되는 상호작용 공간을 정의하기 위해 이미지 센서들의 시야 또는 그의 일부가 사용되는 방식으로 사용자 또는 사용자의 환경에 대해 포지셔닝된다.
일부 실시예들에서, 이미지 센서들(404)은 3D 맵 데이터(및 가능하게는 또한 컬러 이미지 데이터)를 포함하는 프레임들의 시퀀스를, 맵 데이터로부터 고레벨 정보를 추출하는 제어기(110)에 출력한다. 이러한 고레벨 정보는 통상적으로, 애플리케이션 프로그램 인터페이스(Application Program Interface; API)를 통해 제어기 상에서 실행되는 애플리케이션에 제공되며, 제어기는 그에 따라 디스플레이 생성 컴포넌트(120)를 구동한다. 예를 들어, 사용자는 자신의 손(408)을 이동시키고 자신의 손 포즈를 변화시킴으로써 제어기(110) 상에서 실행되는 소프트웨어와 상호작용할 수 있다.
일부 실시예들에서, 이미지 센서들(404)은 손(406)을 포함하는 장면 상에 스폿들의 패턴을 투영하고 투영된 패턴의 이미지를 캡처한다. 일부 실시예들에서, 제어기(110)는 패턴 내의 스폿들의 횡방향 시프트들에 기초하여, 삼각측량에 의해 장면 내의 포인트들(사용자의 손의 표면 상의 포인트들을 포함함)의 3D 좌표들을 컴퓨팅한다. 이러한 접근법은 그것이 사용자가 임의의 종류의 비콘(beacon), 센서 또는 다른 마커를 유지하거나 착용할 것을 요구하지 않는다는 점에서 유리하다. 이는 이미지 센서들(404)로부터 특정 거리에서 미리 결정된 기준 평면에 대한 장면 내의 포인트들의 깊이 좌표들을 제공한다. 본 개시내용에서, 이미지 센서들(404)은, 장면 내의 포인트들의 깊이 좌표들이 이미지 센서들에 의해 측정된 z 컴포넌트들에 대응하도록 x, y, z 축들의 직교 세트를 정의하는 것으로 가정된다. 대안적으로, 손 추적 디바이스(440)는 단일 또는 다수의 카메라들 또는 다른 유형들의 센서들에 기초하여, 입체 이미징 또는 비행 시간 측정들과 같은 다른 3D 맵핑 방법들을 사용할 수 있다.
일부 실시예들에서, 손 추적 디바이스(140)는 사용자의 손(예를 들어, 전체 손 또는 하나 이상의 손가락들)을 이동시키는 동안 사용자의 손을 포함하는 깊이 맵들의 시간적 시퀀스를 캡처 및 프로세싱한다. 이미지 센서들(404) 및/또는 제어기(110) 내의 프로세서 상에서 실행되는 소프트웨어는 이러한 깊이 맵들에서 손의 패치 디스크립터(patch descriptor)들을 추출하기 위해 3D 맵 데이터를 프로세싱한다. 소프트웨어는, 각각의 프레임에서 손의 포즈를 추정하기 위해, 이전 학습 프로세스에 기초하여, 데이터베이스(408)에 저장된 패치 디스크립터들에 이들 디스크립터들을 매칭한다. 포즈는 전형적으로 사용자의 손 관절들 및 손가락 팁들의 3D 위치들을 포함한다.
소프트웨어는 또한 제스처들을 식별하기 위해 시퀀스에서 다수의 프레임들에 걸친 손들 및/또는 손가락들의 궤적을 분석할 수 있다. 본 명세서에 설명된 포즈 추정 기능들은 모션 추적 기능들과 인터리빙될 수 있어서, 패치-기반 포즈 추정은 2개(또는 그 이상)의 프레임들마다 단 한번만 수행되는 한편, 나머지 프레임들에 걸쳐 발생하는 포즈의 변화들을 발견하기 위해 추적이 사용된다. 포즈, 모션 및 제스처 정보는 위에서 언급된 API를 통해 제어기(110) 상에서 실행되는 애플리케이션 프로그램에 제공된다. 이러한 프로그램은, 예를 들어, 포즈 및/또는 제스처 정보에 응답하여, 디스플레이 생성 컴포넌트(120) 상에 제시된 이미지들을 이동 및 수정하거나, 또는 다른 기능들을 수행할 수 있다.
일부 실시예들에서, 제스처는 에어 제스처를 포함한다. 에어 제스처는 디바이스(예를 들어, 컴퓨터 시스템(101), 하나 이상의 입력 디바이스(125) 및/또는 손 추적 디바이스(140))의 일부인 입력 요소를 사용자가 터치하지 않으면서(또는 이와 독립적으로) 검출되는 제스처이며, 사용자 신체의 다른 부분에 대한 절대적 기준(예를 들어, 지면에 대한 사용자의 팔의 각도 또는 지면에 대한 사용자의 손의 거리)에 대한 사용자의 신체의 모션(예를 들어, 사용자의 어깨에 대한 사용자의 손의 움직임, 사용자의 다른 손에 대한 사용자의 하나의 손의 움직임, 및/또는 사용자의 다른 손가락 또는 손의 일부에 대한 사용자의 손가락의 움직임), 및/또는 사용자의 신체의 일부의 절대적 모션(예를 들어, 미리 결정된 양 및/또는 속도만큼 미리 결정된 포즈에서 손의 움직임을 포함하는 탭 제스처, 또는 사용자의 신체의 일부의 미리 결정된 회전 속도 또는 양을 포함하는 셰이크 제스처)을 포함하는 공중을 통한 사용자의 신체의 일부(예를 들어, 머리, 하나 이상의 팔들, 하나 이상의 손들, 하나 이상의 손가락들 및/또는 하나 이상의 다리들)의 검출된 모션에 기초한다.
일부 실시예들에서, 본 명세서에서 설명된 다양한 예들 및 실시예들에서 사용된 입력 제스처들은, 일부 실시예들에 따른, XR 환경(예를 들어, 가상 또는 혼합 현실 환경)과 상호작용하기 위해 다른 손가락(들) 또는 사용자의 손의 일부(들)에 대한 사용자의 손가락(들)의 움직임에 의해 수행되는 에어 제스처들을 포함한다. 일부 실시예들에서, 에어 제스처는, 사용자가 디바이스의 일부인 입력 요소를 터치하지 않으면서(또는 디바이스의 일부인 입력 요소와 독립적으로) 검출되고, 절대적 기준에 대한 사용자의 신체의 모션(예를 들어, 지면에 대한 사용자의 팔의 각도 또는 지면에 대한 사용자의 손의 거리), 사용자의 신체의 다른 부분에 대한 사용자의 신체의 모션(예를 들어, 사용자의 어깨에 대한 사용자의 손의 이동, 사용자의 하나의 손의 사용자의 다른 손에 대한 이동, 및/또는 사용자의 손가락의 사용자의 손의 다른 손가락 또는 부분에 대한 이동), 및/또는 사용자의 신체의 부분의 절대적 모션(예를 들어, 미리 결정된 양 및/또는 속도만큼의 미리 결정된 포즈에서의 손의 이동을 포함하는 탭 제스처, 또는 사용자의 신체의 부분의 미리 결정된 회전 속도 또는 회전량을 포함하는 쉐이크 제스처)을 포함하는 에어를 통한 사용자의 신체의 부분의 검출된 모션에 기초하는 제스처이다.
입력 제스처가 에어 제스처인 일부 실시예들에서(예를 들어, 터치스크린 상에 디스플레이된 사용자 인터페이스 요소와의 접촉 또는 사용자 인터페이스 요소에 대해 커서를 이동시키는 마우스 또는 트랙패드와의 접촉과 같이, 사용자 인터페이스 요소가 사용자 입력의 타겟인 것에 대한 정보를 컴퓨터 시스템에 제공하는 입력 디바이스와의 물리적 접촉의 부재 시에), 제스처는 (예를 들어, 아래에서 설명되는 바와 같은 직접 입력들에 대한) 사용자 입력의 타겟을 결정하기 위해 사용자의 주의(예를 들어, 시선)를 고려한다. 따라서, 에어 제스처들을 수반하는 구현들에서, 입력 제스처는, 예를 들어, 아래에서 더 상세히 설명되는 바와 같이, 핀치 및/또는 탭 입력을 수행하기 위해 사용자의 손가락(들) 및/또는 손들의 움직임과 조합하여(예를 들어, 동시에) 사용자 인터페이스 요소를 향한 검출된 주의(예를 들어, 시선)이다.
일부 실시예들에서, 사용자 인터페이스 객체로 지향되는 입력 제스처들은 사용자 인터페이스 객체를 참조하여 간접적으로 또는 직접적으로 수행된다. 예를 들어, (예를 들어, 사용자의 현재 시점에 기초하여 결정되는 바와 같이) 3차원 환경에서 사용자 인터페이스 객체의 포지션에 대응하는 포지션에서 사용자의 손으로 입력 제스처를 수행하는 것에 따라 사용자 인터페이스 객체 상에서 직접 사용자 입력이 수행된다. 일부 실시예들에서, 사용자 인터페이스 객체 상에서 사용자의 주의(예를 들어, 시선)를 검출하면서 사용자의 손의 포지션이 3차원 환경에서 사용자 인터페이스 객체의 포지션에 대응하는 포지션에 있지 않은 동안 사용자가 입력 제스처를 수행하는 것에 따라 사용자 인터페이스 객체 상에서 간접적으로 입력 제스처가 수행된다. 예를 들어, 직접적인 입력 제스처의 경우, 사용자는, 사용자 인터페이스 객체의 디스플레이된 포지션에 대응하는 포지션에서 또는 그 근처에서(예를 들어, 옵션의 외측 에지 또는 옵션의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 사용자 인터페이스 객체로 사용자의 입력을 지향시키는 것이 가능하게 된다. 간접적인 입력 제스처의 경우, 사용자는 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 사용자 인터페이스 객체를 응시함으로써) 사용자의 입력을 사용자 인터페이스 객체로 지향시키는 것이 가능하게 되고, 옵션에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서)(예를 들어, 사용자 인터페이스 객체의 디스플레이된 포지션에 대응하지 않는 포지션에서) 입력 제스처를 개시한다.
일부 실시예들에서, 본 명세서에서 설명된 다양한 예들 및 실시예들에서 사용된 입력 제스처들(예를 들어, 에어 제스처들)은 일부 실시예들에 따른, 가상 또는 혼합 현실 환경과 상호작용하기 위한 핀치 입력들 및 탭 입력들을 포함한다. 예를 들어, 아래에서 설명되는 핀치 입력들 및 탭 입력들은 에어 제스처들로서 수행된다.
일부 실시예들에서, 핀치 입력은 핀치 제스처, 롱 핀치 제스처, 핀치 및 드래그 제스처 또는 더블 핀치 제스처 중 하나 이상을 포함하는 에어 제스처의 일부이다. 예를 들어, 에어 제스처인 핀치 제스처는 서로 접촉하기 위한 손의 2개 이상의 손가락들의 움직임을 포함하고, 이는, 선택적으로, 즉각적인(예를 들어, 0 내지 1 초 이내에) 서로로부터의 접촉 해제가 후속된다. 에어 제스처인 롱 핀치 제스처는, 서로로부터의 접촉 해제를 검출하기 전에 적어도 임계 시간량(예를 들어, 적어도 1 초) 동안 서로 접촉하기 위한 손의 2개 이상의 손가락들의 움직임을 포함한다. 예를 들어, 롱 핀치 제스처는 사용자가 핀치 제스처를 유지하는 것(예를 들어, 2개 이상의 손가락들이 접촉함)을 포함하고, 롱 핀치 제스처는 2개 이상의 손가락들 사이의 접촉 해제가 검출될 때까지 계속된다. 일부 실시예들에서, 에어 제스처인 더블 핀치 제스처는 서로 즉각적인(예를 들어, 미리 정의된 시간 기간 내인) 연속으로 검출되는 2개(예를 들어, 또는 그 이상)의 핀치 입력들(예를 들어, 동일한 손에 의해 수행됨)을 포함한다. 예를 들어, 사용자는 제1 핀치 입력(예를 들어, 핀치 입력 또는 롱 핀치 입력)을 수행하고, 제1 핀치 입력을 해제하고(예를 들어, 2개 이상의 손가락들 사이의 접촉을 해제함), 제1 핀치 입력을 해제한 이후 미리 정의된 시간 내에(예를 들어, 1초 이내 또는 2초 내에) 제2 핀치 입력을 수행한다.
일부 실시예들에서, 에어 제스처인 핀치 및 드래그 제스처는, 핀치 제스처(예를 들어, 핀치 제스처 또는 롱 핀치 제스처)를 포함하고, 이는 사용자의 손의 포지션을 제1 포지션(예를 들어, 드래그의 시작 포지션)으로부터 제2 포지션(예를 들어, 드래그의 종료 포지션)으로 변경시키는 드래그 입력과 함께 수행된다(예를 들어, 그에 후속함). 일부 실시예들에서, 사용자는 드래그 입력을 수행하는 동안 핀치 제스처를 유지하고, (예를 들어, 제2 포지션에서) 드래그 제스처를 종료하기 위해 핀치 제스처를 해제한다(예를 들어, 자신의 2개 이상의 손가락들을 개방함). 일부 실시예들에서, 핀치 입력 및 드래그 입력은 동일한 손에 의해 수행된다(예를 들어, 사용자는 2개 이상의 손가락들을 핀칭하여 서로 접촉하게 하고, 드래그 제스처를 이용하여 동일한 손을 공중에서 제2 포지션으로 이동시킨다). 일부 실시예들에서, 핀치 입력은 사용자의 제1 손에 의해 수행되고 드래그 입력은 사용자의 제2 손에 의해 수행된다(예를 들어, 사용자의 제2 손이 공중에서 제1 포지션으로부터 제2 포지션으로 이동하는 동안 사용자는 사용자의 제1 손으로 핀치 입력을 계속한다). 일부 실시예들에서, 에어 제스처인 입력 제스처는 사용자의 두 손들 둘 모두를 사용하여 수행되는 입력들(예를 들어, 핀치 및/또는 탭핑 입력들)을 포함한다. 예컨대, 입력 제스처는 서로 함께(예를 들어, 동시에 또는 미리 정의된 시간 기간 내에) 수행되는 2개(예를 들어, 그 이상)의 핀치 입력들을 포함한다. 예를 들어, 제1 핀치 제스처는 사용자의 제1 손을 사용하여 수행되고(예를 들어, 핀치 입력, 롱 핀치 입력 또는 핀치 및 드래그 입력), 제1 손을 사용하여 핀치 입력을 수행하는 것과 관련하여, 다른 손(예를 들어, 사용자의 두 손들 중 두 번째 손)을 사용하는 제2 핀치 입력을 수행한다. 일부 실시예들에서, 사용자의 두 손들 사이의 움직임은 (예를 들어, 사용자의 2개의 손들 사이의 거리 또는 상대적인 배향을 증가 및/또는 감소시키기 위한 것이다).
일부 실시예들에서, 에어 제스처로서 수행되는 (예를 들어, 사용자 인터페이스 요소로 지향되는) 탭 입력은 사용자 인터페이스 요소를 향한 사용자의 손가락(들)의 움직임, 선택적으로 사용자 인터페이스 요소를 향해 연장된 사용자의 손가락(들)과 함께 사용자 인터페이스 요소를 향한 사용자의 손의 움직임, 사용자의 손가락의 하향 모션(예를 들어, 터치스크린 상의 마우스 클릭 모션 또는 탭을 모방함), 또는 사용자의 손의 다른 미리 정의된 움직임을 포함한다. 일부 실시예들에서, 에어 제스처로서 수행되는 탭 입력은 사용자의 시점로부터 멀어지게 그리고/또는 탭 입력의 타겟인 객체를 향해 손가락 또는 손의 탭 제스처 움직임을 수행하는 손가락 또는 손과 후속되는 움직임의 종료의 움직임 특성들에 기초하여 검출된다. 일부 실시예들에서, 움직임의 종료는 탭 제스처를 수행하는 손가락 또는 손의 움직임 특징들의 변화(예를 들어, 사용자의 시점로부터 멀어지는 그리고/또는 탭 입력의 타겟인 객체를 향한 움직임의 종료, 손가락 또는 손의 움직임의 방향의 반전, 및/또는 손가락 또는 손의 움직임의 가속의 방향의 반전)에 기초하여 검출된다.
일부 실시예들에서, 사용자의 주의는 (선택적으로는 다른 조건들을 요구하지 않으면서) 3차원 환경의 일부로 지향되는 시선의 검출에 기초하여 3차원 환경의 일부로 지향되는 것으로 결정된다. 일부 실시예들에서, 사용자의 주의는, 시선이 적어도 임계 지속기간(예를 들어, 체류(dwell) 지속기간) 동안 3차원 환경의 일부로 지향되는 것을 요구하는 것 및/또는 사용자의 주의가 3차원 환경의 일부로 지향된다고 디바이스가 결정하기 위해 사용자의 시점이 3차원 환경의 일부로부터 거리 임계치 내에 있는 동안 시선이 3차원 환경의 일부로 지향되는 것을 요구하는 것과 같은 하나 이상의 부가적인 조건들과 함께, 3차원 환경의 일부로 지향되는 시선의 검출에 기초하여 3차원 환경의 일부로 지향되는 것으로 결정되며, 여기서 부가적인 조건들 중 하나가 충족되지 않으면, 디바이스는 (예를 들어, 하나 이상의 부가적인 조건들이 충족될 때까지) 시선이 지향되는 3차원 환경의 일부로 주의가 지향되지 않는다고 결정한다.
일부 실시예들에서, 사용자 또는 사용자의 일부의 준비 상태 구성의 검출은 컴퓨터 시스템에 의해 검출된다. 손의 준비 상태 구성의 검출은 사용자가 손에 의해 수행된 하나 이상의 에어 제스처 입력들(예를 들어, 핀치, 탭, 핀치 및 드래그, 더블 핀치, 롱 핀치, 또는 본 명세서에 설명된 다른 에어 제스처)을 사용하여 컴퓨터 시스템과 상호작용하도록 준비할 가능성이 있다는 표시로서 컴퓨터 시스템에 의해 사용된다. 예를 들어, 손이 미리 결정된 손 형상(예를 들어, 엄지 및 하나 이상의 손가락들이 핀치 또는 파지(grab) 제스처를 만들 준비가 되게 펼쳐지고 간격을 두고 있는 사전-핀치 형상 또는 하나 이상의 손가락들이 펼쳐지고 손바닥이 사용자로부터 멀어지는 쪽을 향하는 사전-탭)을 갖는지 여부에 기초하여, 손이 사용자의 시점에 대해 미리 결정된 포지션(예를 들어, 사용자의 머리 아래 그리고 사용자의 허리 위, 및 적어도 15, 20, 25, 30, 또는 50 cm만큼 신체로부터 펼쳐짐)에 있는지 여부에 기초하여, 그리고/또는 손이 특정 방식으로 이동되는지(예를 들어, 사용자의 허리 위 그리고 사용자의 머리 아래로 사용자의 정면의 구역을 향해 이동되는지 또는 사용자의 신체 또는 다리로부터 멀어지게 이동되는지) 여부에 기초하여, 손의 준비 상태가 결정된다. 일부 실시예들에서, 준비 상태는 사용자 인터페이스의 인터랙티브(interactive) 요소들이 주의(예를 들어, 시선) 입력들에 응답하는지 여부를 결정하는 데 사용된다.
일부 실시예들에서, 소프트웨어는, 예를 들어 네트워크를 통해 전자적 형태로 제어기(110)에 다운로드될 수 있거나, 또는 그것은 대안적으로는 광학, 자기, 또는 전자 메모리 매체들과 같은 유형적인 비일시적 매체들 상에 제공될 수 있다. 일부 실시예들에서, 데이터베이스(408)는 마찬가지로 제어기(110)와 연관된 메모리에 저장된다. 대안적으로 또는 부가적으로, 컴퓨터의 설명된 기능들 중 일부 또는 전부는 주문형 또는 반-주문형 집적 회로 또는 프로그래밍가능 디지털 신호 프로세서(DSP)와 같은 전용 하드웨어로 구현될 수 있다. 제어기(110)가 예로서 이미지 센서들(440)과 별개의 유닛으로서 도 4에 도시되지만, 제어기의 프로세싱 기능들의 일부 또는 전부는 적합한 마이크로프로세서 및 소프트웨어에 의해, 또는 손 추적 디바이스(402)의 하우징 내의 또는 달리 이미지 센서들(404)과 연관된 전용 회로부에 의해 수행될 수 있다. 일부 실시예들에서, 이들 프로세싱 기능들의 적어도 일부가 (예를 들어, 텔레비전 세트, 핸드헬드 디바이스, 또는 머리 장착형 디바이스 내의) 디스플레이 생성 컴포넌트(120) 또는 게임 콘솔 또는 미디어 플레이어와 같은, 임의의 다른 적합한 컴퓨터화된 디바이스와 통합된 적합한 프로세서에 의해 수행될 수 있다. 이미지 센서들(404)의 감지 기능들은 센서 출력에 의해 제어될 컴퓨터 또는 다른 컴퓨터화된 장치 내에 마찬가지로 통합될 수 있다.
도 4는 일부 실시예들에 따른, 이미지 센서들(404)에 의해 캡처된 깊이 맵(410)의 개략적인 표현을 더 포함한다. 위에서 설명된 바와 같이, 깊이 맵은 개개의 깊이 값들을 갖는 픽셀들의 행렬을 포함한다. 손(406)에 대응하는 픽셀들(412)은 이러한 맵에서 배경 및 손목으로부터 분할되었다. 깊이 맵(410) 내의 각각의 픽셀의 밝기는 그의 깊이 값, 즉, 이미지 센서들(404)로부터 측정된 z 거리에 역으로 대응하며, 회색 음영은 깊이가 증가함에 따라 더 어두워진다. 제어기(110)는 인간 손의 특성들을 갖는 이미지의 컴포넌트(즉, 이웃 픽셀들의 그룹)를 식별 및 분할하기 위해 이러한 깊이 값들을 프로세싱한다. 이러한 특성들은, 예를 들어, 깊이 맵들의 시퀀스의 프레임마다 전체 크기, 형상 및 모션을 포함할 수 있다.
도 4는 또한, 일부 실시예들에 따른, 제어기(110)가 궁극적으로 손(406)의 깊이 맵(410)으로부터 추출하는 손 골격(414)을 개략적으로 예시한다. 도 4에서, 골격(414)은 오리지널 깊이 맵으로부터 분할된 손 배경(416) 상에 중첩된다. 일부 실시예들에서, 손(예를 들어, 너클들, 손가락 팁들, 손바닥의 중심, 및/또는 손목에 연결되는 손의 단부에 대응하는 포인트들) 및 선택적으로, 손에 연결된 손목 또는 팔 상의 핵심 특징 포인트들이 손 골격(414) 상에 식별 및 위치된다. 일부 실시예들에서, 다수의 이미지 프레임들에 걸친 이러한 핵심 특징 포인트들의 위치 및 이동들은, 일부 실시예들에 따라, 손에 의해 수행되는 손 제스처들 또는 손의 현재 상태를 결정하기 위해 제어기(110)에 의해 사용된다.
도 5는 눈 추적 디바이스(130)(도 1)의 예시적인 실시예를 예시한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 장면(105)에 대한 또는 디스플레이 생성 컴포넌트(120)를 통해 디스플레이된 XR 콘텐츠에 대한 사용자의 시선의 위치 및 이동을 추적하기 위해 눈 추적 유닛(243)(도 2)에 의해 제어된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 통합된다. 예를 들어, 일부 실시예들에서, 디스플레이 생성 컴포넌트(120)가 머리 장착형 디바이스, 예컨대, 헤드셋, 헬멧, 고글, 또는 안경, 또는 웨어러블 프레임에 배치된 핸드헬드 디바이스일 때, 머리 장착형 디바이스는 사용자가 보기 위한 XR 콘텐츠를 생성하는 컴포넌트 및 XR 콘텐츠에 대한 사용자의 시선을 추적하기 위한 컴포넌트 둘 모두를 포함한다. 일부 실시예들에서, 눈 추적 디바이스(130)는 디스플레이 생성 컴포넌트(120)와 별개이다. 예를 들어, 디스플레이 생성 컴포넌트가 핸드헬드 디바이스 또는 XR 챔버일 때, 눈 추적 디바이스(130)는 선택적으로 핸드헬드 디바이스 또는 XR 챔버와 별개의 디바이스이다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스 또는 머리 장착형 디바이스의 일부이다. 일부 실시예들에서, 머리 장착형 눈 추적 디바이스(130)는 선택적으로, 또한 머리 장착된 디스플레이 생성 컴포넌트 또는 머리 장착되지 않은 디스플레이 생성 컴포넌트와 함께 사용된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스가 아니며, 선택적으로 머리 장착형 디스플레이 생성 컴포넌트와 함께 사용된다. 일부 실시예들에서, 눈 추적 디바이스(130)는 머리 장착형 디바이스가 아니며, 선택적으로 머리 장착되지 않은 디스플레이 생성 컴포넌트의 일부이다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(120)는 사용자의 눈들 전방에서 좌측 및 우측 이미지들을 포함하는 프레임들을 디스플레이하기 위한 디스플레이 메커니즘(예를 들어, 좌측 및 우측 근안(near-eye) 디스플레이 패널들)을 사용하여 3D 가상 뷰들을 사용자에게 제공한다. 예를 들어, 머리 장착형 디스플레이 생성 컴포넌트는 디스플레이와 사용자의 눈들 사이에 위치된 좌측 및 우측 광학 렌즈들(본 명세서에서 눈 렌즈들로 지칭됨)을 포함할 수 있다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 디스플레이를 위해 사용자의 환경의 비디오를 캡처하는 하나 이상의 외부 비디오 카메라들을 포함하거나 또는 그에 커플링될 수 있다. 일부 실시예들에서, 머리 장착형 디스플레이 생성 컴포넌트는 사용자가 물리적 환경을 직접 보고 투명 또는 반투명 디스플레이 상에 가상 객체들을 디스플레이할 수 있게 하는 투명 또는 반투명 디스플레이를 가질 수 있다. 일부 실시예들에서, 디스플레이 생성 컴포넌트는 가상 객체들을 물리적 환경에 투영한다. 가상 객체들은, 예를 들어, 물리적 표면 상에 또는 홀로그래프로서 투영되어, 개인이 시스템을 사용하여, 물리적 환경 상에 중첩된 가상 객체들을 관찰하게 할 수 있다. 그러한 경우들에서, 좌측 및 우측 눈들에 대한 별개의 디스플레이 패널들 및 이미지 프레임들이 필요하지 않을 수 있다.
도 5에 도시된 바와 같이, 일부 실시예들에서, 시선 추적 디바이스(130)는 적어도 하나의 눈 추적 카메라(예를 들어, 적외선(IR) 또는 NIR(near-IR) 카메라들), 및 사용자의 눈들을 향해 광(예를 들어, IR 또는 NIR 광)을 방출하는 조명 소스들(예를 들어, LED들의 어레이 또는 링과 같은 IR 또는 NIR 광원들)을 포함한다. 눈 추적 카메라들은 눈들로부터 직접적으로 광원들로부터 반사된 IR 또는 NIR 광을 수신하기 위해 사용자의 눈들을 향해 지향될 수 있거나, 또는 대안적으로, 가시광이 통과할 수 있게 하면서 눈들로부터 눈 추적 카메라들로 IR 또는 NIR 광을 반사하는 디스플레이 패널들과 사용자의 눈들 사이에 위치된 "핫" 미러들을 향해 지향될 수 있다. 시선 추적 디바이스(130)는 선택적으로 사용자의 눈들의 이미지들을 (예를 들어, 60 내지 120 fps(frames per second)로 캡처된 비디오 스트림으로서) 캡처하고, 이미지들을 분석하여 시선 추적 정보를 생성하고, 시선 추적 정보를 제어기(110)에 통신한다. 일부 실시예들에서, 사용자의 2개의 눈들은 개개의 눈 추적 카메라들 및 조명 소스들에 의해 개별적으로 추적된다. 일부 실시예들에서, 사용자의 오직 하나의 눈만이 개개의 눈 추적 카메라 및 조명 소스들에 의해 추적된다.
일부 실시예들에서, 눈 추적 디바이스(130)는, 특정 동작 환경(100)에 대한 눈 추적 디바이스의 파라미터들, 예를 들어 LED들, 카메라들, 핫 미러들(존재하는 경우), 눈 렌즈들 및 디스플레이 스크린의 3D 기하학적 관계 및 파라미터들을 결정하기 위해 디바이스-특정 교정 프로세스를 사용하여 교정된다. 디바이스-특정 교정 프로세스는 AR/VR 장비를 최종 사용자에게 전달하기 전에 공장 또는 다른 설비에서 수행될 수 있다. 디바이스-특정 교정 프로세스는 자동화된 교정 프로세스 또는 수동 교정 프로세스일 수 있다. 사용자-특정 교정 프로세스는 특정 사용자의 눈 파라미터들, 예를 들어 동공 위치, 중심와 위치, 광학 축, 시각 축, 눈 간격 등의 추정을 포함할 수 있다. 디바이스-특정 및 사용자-특정 파라미터들이 눈 추적 디바이스(130)에 대해 결정되면, 일부 실시예들에 따라, 눈 추적 카메라들에 의해 캡처된 이미지들은 디스플레이에 대한 사용자의 현재의 시각 축 및 시선 포인트를 결정하기 위해 글린트-보조 방법을 사용하여 프로세싱될 수 있다.
도 5에 도시된 바와 같이, 눈 추적 디바이스(130)(예를 들어, 130A 또는 130B)는 눈 렌즈(들)(520), 및 눈 추적이 수행되는 사용자의 얼굴의 측부 상에 포지셔닝된 적어도 하나의 눈 추적 카메라(540)(예를 들어, 적외선(IR) 또는 NIR(near-IR) 카메라들)를 포함하는 시선 추적 시스템, 및 사용자의 눈(들)(592)을 향해 광(예를 들어, IR 또는 NIR 광)을 방출하는 조명 소스(530)(예를 들어, NIR 발광 다이오드(LED)들의 어레이 또는 링과 같은 IR 또는 NIR 광원들)를 포함한다. 눈 추적 카메라들(540)은 (예를 들어, 도 5의 상단 부분에 도시된 바와 같이) 가시광이 통과하게 허용하면서 눈(들)(592)으로부터 IR 또는 NIR 광을 반사하는 디스플레이(510)(예를 들어, 머리 장착형 디스플레이의 좌측 또는 우측 디스플레이 패널, 머리 장착형 디스플레이의 내부 디스플레이, 또는 핸드헬드 디바이스의 디스플레이, 프로젝터 등)와 사용자의 눈(들)(592) 사이에 위치된 미러들(550) 쪽으로 지향될 수 있거나 또는 (예를 들어, 도 5의 하단 부분에 도시된 바와 같이) 눈(들)(592)으로부터 반사된 IR 또는 NIR 광을 수신하기 위해 사용자의 눈(들)(592)을 향해 지향될 수 있다.
일부 실시예들에서, 제어기(110)는 AR 또는 VR 프레임들(562)(예를 들어, 좌측 및 우측 디스플레이 패널들에 대한 좌측 및 우측 프레임들)을 렌더링하고, 프레임들(562)을 디스플레이(510)에 제공한다. 제어기(110)는, 예를 들어 디스플레이를 위해 프레임들(562)을 프로세싱할 때, 다양한 목적들을 위해 눈 추적 카메라들(540)로부터의 시선 추적 입력(542)을 사용한다. 제어기(110)는 선택적으로, 글린트-보조 방법들 또는 다른 적합한 방법들을 사용하여 눈 추적 카메라들(540)로부터 획득된 시선 추적 입력(542)에 기초하여 디스플레이(510) 상의 사용자의 시선 포인트를 추정한다. 시선 추적 입력(542)으로부터 추정된 시선의 포인트는 선택적으로, 사용자가 현재 보고 있는 방향을 결정하는 데 사용된다.
다음은 사용자의 현재 시선 방향에 대한 몇몇 가능한 사용 사례들을 설명하며, 제한하려는 의도가 아니다. 예시적인 사용 사례로서, 제어기(110)는 사용자의 시선의 결정된 방향에 기초하여 가상 콘텐츠를 상이하게 렌더링할 수 있다. 예를 들어, 제어기(110)는 주변 구역들에서보다 사용자의 현재 시선 방향으로부터 결정된 중심와 구역에서 더 높은 해상도로 가상 콘텐츠를 생성할 수 있다. 다른 예로서, 제어기는 사용자의 현재 시선 방향에 적어도 부분적으로 기초하여 뷰에서 가상 콘텐츠를 포지셔닝시키거나 이동시킬 수 있다. 다른 예로서, 제어기는 사용자의 현재 시선 방향에 적어도 부분적으로 기초하여 뷰에서 특정 가상 콘텐츠를 디스플레이할 수 있다. AR 애플리케이션들에서의 다른 예시적인 사용 사례로서, 제어기(110)는 결정된 방향으로 포커싱하도록 XR 경험의 물리적 환경을 캡처하기 위한 외부 카메라들에 지시할 수 있다. 이어서, 외부 카메라들의 오토 포커스 메커니즘은 사용자가 현재 디스플레이(510) 상에서 보고 있는 환경 내의 객체 또는 표면에 포커싱할 수 있다. 다른 예시적인 사용 사례로서, 눈 렌즈들(520)은 포커싱가능한 렌즈들일 수 있고, 시선 추적 정보는, 사용자가 현재 보고 있는 가상 객체가 사용자의 눈들(592)의 수렴에 매칭하기 위해 적절한 버전스(vergence)를 갖도록 눈 렌즈들(520)의 포커스를 조정하기 위해 제어기에 의해 사용된다. 제어기(110)는, 사용자가 보고 있는 가까운 객체들이 올바른 거리에 나타나게 포커스를 조정하도록 눈 렌즈들(520)을 지향시키기 위해 시선 추적 정보를 레버리지할 수 있다.
일부 실시예들에서, 눈 추적 디바이스는 디스플레이(예를 들어, 디스플레이(510)), 2개의 눈 렌즈들(예를 들어, 눈 렌즈(들)(520)), 눈 추적 카메라들(예를 들어, 눈 추적 카메라(들)(540)) 및 웨어러블 하우징에 장착된 광원들(예를 들어, 광원들(530)(예를 들어, IR 또는 NIR LED들))을 포함하는 머리 장착형 디바이스의 일부이다. 광원들은 광(예를 들어, IR 또는 NIR 광)을 사용자의 눈(들)(592)을 향해 방출한다. 일부 실시예들에서, 광원들은 도 5에 도시된 바와 같이 렌즈들 각각 주위에 링들 또는 원들로 배열될 수 있다. 일부 실시예들에서, 일 예로서 8개의 광원들(530)(예를 들어, LED들)이 각각의 렌즈(520) 주위에 배열된다. 그러나, 더 많거나 또는 더 적은 광원들(530)이 사용될 수 있고, 광원들(530)의 다른 배열들 및 위치들이 사용될 수 있다.
일부 실시예들에서, 디스플레이(510)는 가시광 범위에서 광을 방출하고, IR 또는 NIR 범위에서 광을 방출하지 않아서, 시선 추적 시스템에 잡음을 도입하지 않는다. 눈 추적 카메라(들)(540)의 위치 및 각도는 예로서 주어진 것이며, 제한하려는 의도가 아니라는 것을 유의한다. 일부 실시예들에서, 단일 눈 추적 카메라(540)는 사용자의 얼굴의 각각의 측부 상에 위치된다. 일부 실시예들에서, 2개 이상의 NIR 카메라들(540)이 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다. 일부 실시예들에서, 더 넓은 시야(field of view; FOV)를 갖는 카메라(540) 및 더 좁은 FOV를 갖는 카메라(540)가 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다. 일부 실시예들에서, 하나의 파장(예를 들어, 850 nm)에서 동작하는 카메라(540) 및 상이한 파장(예를 들어, 940 nm)에서 동작하는 카메라(540)가 사용자의 얼굴의 각각의 측부 상에서 사용될 수 있다.
도 5에 예시된 바와 같은 시선 추적 시스템의 실시예들은, 예를 들어, 확장 현실(예를 들어, 가상 현실, 증강 현실, 및/또는 증강 가상을 포함함) 경험들을 사용자에게 제공하기 위해 확장 현실(예를 들어, 가상 현실, 및/또는 혼합 현실을 포함함) 애플리케이션들에서 사용될 수 있다.
도 6은 일부 실시예들에 따른 글린트-보조 시선 추적 파이프라인을 예시한다. 일부 실시예들에서, 시선 추적 파이프라인은 글린트-보조 시선 추적 시스템(예를 들어, 도 1 및 도 5에 예시된 바와 같은 눈 추적 디바이스(130))에 의해 구현된다. 글린트-보조 시선 추적 시스템은 추적 상태를 유지할 수 있다. 초기에, 추적 상태는 오프 또는 "아니오"이다. 추적 상태에 있을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 윤곽 및 글린트들을 추적하기 위해 현재 프레임을 분석할 때 이전 프레임으로부터의 이전 정보를 사용한다. 추적 상태에 있지 않을 때, 글린트-보조 시선 추적 시스템은 현재 프레임에서 동공 및 글린트를 검출하려고 시도하고, 성공적이면, 추적 상태를 "예"로 초기화하고, 추적 상태에서 다음 프레임으로 계속된다.
도 6에 도시된 바와 같이, 시선 추적 카메라들은 사용자의 좌측 및 우측 눈들의 좌측 및 우측 이미지들을 캡처할 수 있다. 이어서, 캡처된 이미지들은 610에서 시작하는 프로세싱을 위해 시선 추적 파이프라인에 입력된다. 요소(600)로 돌아가는 화살표에 의해 표시된 바와 같이, 시선 추적 시스템은, 예를 들어 초당 60 내지 120 프레임의 레이트로 사용자의 눈들의 이미지들을 캡처하는 것을 계속할 수 있다. 일부 실시예들에서, 캡처된 이미지들의 각각의 세트는 프로세싱을 위해 파이프라인에 입력될 수 있다. 그러나, 일부 실시예들에서 또는 일부 조건들 하에서, 캡처된 모든 프레임들이 파이프라인에 의해 프로세싱되는 것은 아니다.
610에서, 현재 캡처된 이미지들에 대해, 추적 상태가 예이면, 방법은 요소(640)로 진행한다. 610에서, 추적 상태가 아니오이면, 620에서 표시된 바와 같이, 이미지들에서 사용자의 동공들 및 글린트들을 검출하기 위해 이미지들이 분석된다. 630에서, 동공들 및 글린트들이 성공적으로 검출되면, 방법은 요소(640)로 진행한다. 그렇지 않으면, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 복귀한다.
640에서, 요소(410)로부터 진행하면, 이전 프레임들로부터의 이전 정보에 부분적으로 기초하여 동공들 및 글린트들을 추적하기 위해 현재 프레임들이 분석된다. 640에서, 요소(630)로부터 진행하면, 추적 상태는 현재 프레임들에서 검출된 동공들 및 글린트들에 기초하여 초기화된다. 요소(640)에서의 프로세싱의 결과들은 추적 또는 검출의 결과들이 신뢰할 수 있음을 검증하기 위해 체크된다. 예를 들어, 동공 및 시선 추정을 수행하기에 충분한 수의 글린트들이 현재 프레임들에서 성공적으로 추적되거나 검출되는지를 결정하기 위해 결과들이 체크될 수 있다. 650에서, 결과들이 신뢰될 수 없다면, 추적 상태는 아니오로 설정되고, 방법은 사용자의 눈들의 다음 이미지들을 프로세싱하기 위해 요소(610)로 리턴한다. 650에서, 결과들이 신뢰되면, 방법은 요소(670)로 진행한다. 670에서, 추적 상태는 (이미 예가 아니면) 예로 설정되고, 동공 및 글린트 정보는 사용자의 시선 포인트를 추정하기 위해 요소(680)에 전달된다.
도 6은 특정 구현에서 사용될 수 있는 눈 추적 기술의 일 예로서의 역할을 하도록 의도된다. 당업자들에 의해 인식되는 바와 같이, 현재 존재하거나 미래에 개발될 다른 눈 추적 기술들은, 다양한 실시예들에 따라, 사용자들에게 XR 경험들을 제공하기 위해 컴퓨터 시스템(101)에서 본 명세서에 설명된 글린트-보조 눈 추적 기술 대신에 또는 그와 조합하여 사용될 수 있다.
본 개시내용에서, 컴퓨터 시스템과의 상호작용들에 관해 다양한 입력 방법들이 설명된다. 하나의 입력 디바이스 또는 입력 방법을 사용하여 일 예가 제공되고 다른 입력 디바이스 또는 입력 방법을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 입력 디바이스 또는 입력 방법과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템과의 상호작용들에 관해 다양한 출력 방법들이 설명된다. 하나의 출력 디바이스 또는 출력 방법을 사용하여 일 예가 제공되고 다른 출력 디바이스 또는 출력 방법을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 출력 디바이스 또는 출력 방법과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 유사하게, 컴퓨터 시스템을 통한 가상 환경 또는 혼합 현실 환경과의 상호작용들에 관해 다양한 방법들이 설명된다. 가상 환경과의 상호작용들을 사용하여 일 예가 제공되고 혼합 현실 환경을 사용하여 다른 예가 제공될 때, 각각의 예는 다른 예에 관해 설명된 방법들과 호환가능할 수 있고 선택적으로 이를 이용한다는 것을 이해해야 한다. 따라서, 본 개시내용은, 각각의 예시적인 실시예의 설명에서 실시예의 모든 특징들을 철저히 열거하지 않으면서 다수의 예들의 특징들의 조합들인 실시예들을 개시한다.
사용자 인터페이스들 및 연관된 프로세스들
이제, 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들 및 (선택적으로) 하나 이상의 카메라들을 갖는 컴퓨터 시스템, 예를 들어 휴대용 다기능 디바이스 또는 머리 장착형 디바이스 상에서 구현될 수 있는 사용자 인터페이스("UI") 및 연관된 프로세스들의 실시예들에 대해 주목한다.
도 7a 내지 도 7j는 디스플레이 생성 컴포넌트(예를 들어, 디스플레이 생성 컴포넌트(7100), 또는 디스플레이 생성 컴포넌트(120))를 통해 디스플레이되는 3차원 환경들, 및 3차원 환경들로 지향되는 사용자 입력들 및/또는 다른 컴퓨터 시스템들 및/또는 센서들로부터 수신된 입력들에 의해 야기되는, 3차원 환경들에서 발생하는 상호작용들을 예시한다. 일부 실시예들에서, 입력은, 가상 객체에 의해 점유된 구역에서 검출된 사용자의 시선에 의해 그리고/또는 가상 객체의 구역에 대응하는 물리적 환경 내의 위치에서 수행되는 손 제스처에 의해 3차원 환경 내의 가상 객체로 지향된다. 일부 실시예들에서, 가상 객체가 입력 포커스를 갖는 동안(예를 들어, 가상 객체가 동시에 그리고/또는 이전에 검출된 시선 입력에 의해 선택되거나, 동시에 또는 이전에 검출된 포인터 입력에 의해 선택되거나, 동시에 그리고/또는 이전에 검출된 제스처 입력에 의해 선택된 동안), 입력은 (예를 들어, 선택적으로, 3차원 환경 내의 가상 객체의 구역과 독립적인 물리적 환경 내의 위치에서) 수행되는 손 제스처에 의해 3차원 환경 내의 가상 객체로 지향된다. 일부 실시예들에서, 입력은 가상 객체의 포지션에 포커스 선택기 객체(예를 들어, 포인터 객체 또는 선택기 객체)를 포지셔닝시킨 입력 디바이스에 의해 3차원 환경 내의 가상 객체로 지향된다. 일부 실시예들에서, 입력은 다른 수단(예를 들어, 음성 및/또는 제어 버튼)을 통해 3차원 환경 내의 가상 객체로 지향된다. 일부 실시예들에서, 입력은 사용자의 손 이동(예를 들어, 전체 손 이동, 개개의 자세에서의 전체 손 이동, 손의 다른 부분에 대한 손의 하나의 부분의 이동, 및/또는 2개의 손들 사이의 상대적 이동) 및/또는 물리적 객체에 대한 조작(예를 들어, 터칭, 스와이핑, 탭핑, 열기, ~를 향한 이동, 및/또는 ~에 대한 이동)에 의한, 물리적 객체 또는 물리적 객체에 대응하는 가상 객체의 표현으로 지향된다. 일부 실시예들에서, 컴퓨터 시스템은 센서들(예를 들어, 이미지 센서들, 온도 센서들, 생체측정 센서들, 모션 센서들, 및/또는 근접 센서들)로부터의 입력들 및 콘텍스트 조건들(예를 들어, 위치, 시간, 및/또는 환경 내의 다른 것들의 존재)에 따라 3차원 환경의 일부 변화들을 디스플레이한다(예를 들어, 부가적인 가상 콘텐츠를 디스플레이하거나, 또는 기존의 가상 콘텐츠를 디스플레이하는 것을 중단하거나, 그리고/또는 시각적 콘텐츠가 디스플레이되고 있는 상이한 몰입 레벨들 사이에서 전환함). 일부 실시예들에서, 컴퓨터 시스템은 (예를 들어, 공유 컴퓨터 생성 경험에서, 공유 가상 환경에서, 또는 통신 세션의 공유 가상 또는 증강 현실 환경에서) 컴퓨터 시스템의 사용자와 컴퓨터 생성 환경을 공유하고 있는 다른 사용자들에 의해 사용되는 다른 컴퓨터들로부터의 입력들에 따라 3차원 환경의 일부 변화들을 디스플레이한다(예를 들어, 부가적인 가상 콘텐츠를 디스플레이하거나, 기존의 가상 콘텐츠를 디스플레이하는 것을 중단하거나, 또는 시각적 콘텐츠가 디스플레이되고 있는 상이한 몰입 레벨들 사이에서 전환함). 일부 실시예들에서, 컴퓨터 시스템은, 컴퓨터 시스템의 연관된 동작을 트리거하기 위한 인식된 제스처 입력으로서 자격이 없을 수 있는 사용자의 이동 및 다른 사람들 및 객체들의 이동을 검출하는 센서들로부터의 입력들에 따라 3차원 환경의 일부 변화들을 디스플레이한다(예를 들어, 사용자 인터페이스, 가상 표면, 사용자 인터페이스 객체, 및/또는 가상 풍경의 시각적 특성들의 이동, 변형, 변화들 등을 디스플레이함).
일부 실시예들에서, 본 명세서에 설명된 디스플레이 생성 컴포넌트를 통해 디스플레이되는 3차원 환경은 물리적 환경의 표현 없이 3차원 환경 내의 상이한 가상 포지션들에 가상 객체들 및 콘텐츠를 포함하는 가상 3차원 환경이다. 일부 실시예들에서, 3차원 환경은 물리적 환경의 하나 이상의 물리적 양태들(예를 들어, 벽들, 바닥들, 표면들의 포지션들 및 배향들, 중력의 방향, 하루 중 시간, 및/또는 물리적 객체들 사이의 공간적 관계)에 의해 제한되는 3차원 환경 내의 상이한 가상 포지션들에서 가상 객체들을 디스플레이하는 혼합 현실 환경이다. 일부 실시예들에서, 3차원 환경은 물리적 환경의 표현을 포함하는 증강 현실 환경이다. 일부 실시예들에서, 물리적 환경의 표현은 3차원 환경 내의 상이한 포지션들에 물리적 객체들 및 표면들의 개개의 표현들을 포함하여, 물리적 환경 내의 상이한 물리적 객체들 및 표면들 사이의 공간적 관계들이 3차원 환경 내의 물리적 객체들 및 표면들의 표현들 사이의 공간적 관계들에 의해 반영되게 한다. 일부 실시예들에서, 가상 객체들이 3차원 환경에서 물리적 객체들 및 표면들의 표현들의 포지션들에 대해 배치될 때, 그들은 물리적 환경 내의 물리적 객체들 및 표면들과 대응하는 공간적 관계들을 갖는 것으로 보인다. 일부 실시예들에서, 컴퓨터 시스템은 사용자 입력들 및/또는 콘텍스트 조건들에 기초하여 상이한 유형들의 환경을 디스플레이하는 것 사이에서 전환된다(예를 들어, 컴퓨터 생성 환경 또는 경험을 상이한 몰입 레벨들로 제시하는 것 사이에서 전환하거나, 또는 가상 콘텐츠로부터의 그리고 물리적 환경의 표현으로부터의 오디오/시각적 감각 입력들의 상대적 두드러짐을 조정함).
일부 실시예들에서, 디스플레이 생성 컴포넌트는 물리적 환경의 표현이 디스플레이되는 패스-스루 부분을 포함한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트의 패스-스루 부분은, 사용자를 둘러싸고 그의 시야 내에 있는 물리적 환경의 적어도 일부를 드러내는 디스플레이 생성 컴포넌트의 투명 또는 반투명(예를 들어, 시스루(see-through)) 부분이다. 예를 들어, 패스-스루 부분은 반투명(예를 들어, 50%, 40%, 30%, 20%, 15%, 10% 또는 5% 미만의 불투명도) 또는 투명하게 만들어진 머리 장착형 디스플레이 또는 헤드업 디스플레이의 일부여서, 머리 장착형 디스플레이를 제거하거나 헤드업 디스플레이로부터 멀리 이동하지 않으면서, 사용자가 사용자를 둘러싸는 실제 세계를 보도록 패스-스루 부분을 통해 볼 수 있게 한다. 일부 실시예들에서, 패스-스루 부분은 가상 또는 혼합 현실 환경을 디스플레이할 때 반투명 또는 투명으로부터 완전 불투명으로 점진적으로 전환된다. 일부 실시예들에서, 디스플레이 생성 컴포넌트의 패스-스루 부분은 하나 이상의 카메라들(예를 들어, 모바일 디바이스의 또는 머리 장착형 디스플레이와 연관된 후방 대면 카메라(들), 또는 이미지 데이터를 컴퓨터 시스템에 공급하는 다른 카메라들)에 의해 캡처된 물리적 환경의 적어도 일부의 이미지들 또는 비디오의 라이브 피드를 디스플레이한다. 일부 실시예들에서, 하나 이상의 카메라들은 사용자의 눈들 바로 앞에 있는(예를 들어, 디스플레이 생성 컴포넌트의 사용자에 대해 디스플레이 생성 컴포넌트 뒤에 있는) 물리적 환경의 일부에 포인팅된다. 일부 실시예들에서, 하나 이상의 카메라들은 사용자의 눈들 바로 앞에 있지 않은(예를 들어, 상이한 물리적 환경에 있는, 또는 사용자 옆이나 뒤에 있는) 물리적 환경의 일부에 포인팅된다.
일부 실시예들에서, 물리적 환경 내의 하나 이상의 물리적 객체들의 위치들에 대응하는 포지션들에서(예를 들어, 가상 현실 환경, 혼합 현실 환경, 또는 증강 현실 환경 내의 포지션에서) 가상 객체들을 디스플레이할 때, 가상 객체들 중 적어도 일부는 카메라들의 라이브 뷰의 일부(예를 들어, 라이브 뷰 내에 캡처된 물리적 환경의 일부) 대신에 디스플레이된다(예를 들어, 그의 디스플레이를 대체함). 일부 실시예들에서, 가상 객체 및 콘텐츠의 적어도 일부는 물리적 환경 내의 물리적 표면들 또는 빈 공간 상에 투영되고, 디스플레이 생성 컴포넌트의 패스-스루 부분을 통해 보인다(예를 들어, 물리적 환경의 카메라 뷰의 일부로서, 또는 디스플레이 생성 컴포넌트의 투명 또는 반투명 부분을 통해 볼 수 있음). 일부 실시예들에서, 가상 객체들 및 가상 콘텐츠 중 적어도 일부는 디스플레이의 일부를 오버레이하도록 디스플레이되고, 디스플레이 생성 컴포넌트의 투명 또는 반투명 부분을 통해 보이는 물리적 환경의 적어도 일부의 뷰를 차단한다.
일부 실시예들에서, 디스플레이 생성 컴포넌트는 3차원 환경에 대한 3차원 환경의 현재 디스플레이된 뷰의 시점의 가상 포지션을 변경시키는 사용자 입력들 또는 이동들에 따라 3차원 환경의 상이한 뷰들을 디스플레이한다. 일부 실시예들에서, 3차원 환경이 가상 환경일 때, 시점은 물리적 환경에서의 사용자의 머리, 몸통, 및/또는 디스플레이 생성 컴포넌트의 이동을 요구하지 않으면서 내비게이션 또는 로코모션(locomotion) 요청들(예를 들어, 인 에어(in-air) 손 제스처들 및/또는 손의 다른 부분에 대한 손의 하나의 부분의 이동에 의해 수행되는 제스처들)에 따라 이동된다. 일부 실시예들에서, 물리적 환경에 대한, 사용자의 머리 및/또는 몸통의 이동, 및/또는 (예를 들어, 사용자가 디스플레이 생성 컴포넌트를 유지하거나 HMD를 착용하는 것으로 인한) 디스플레이 생성 컴포넌트 또는 컴퓨터 시스템의 다른 위치 감지 요소들의 이동 등은, 3차원 환경에 대한 (예를 들어, 대응하는 이동 방향, 이동 거리, 이동 속도, 및/또는 배향의 변화를 갖는) 시점의 대응하는 이동을 야기하여, 3차원 환경의 현재 디스플레이된 뷰의 대응하는 변화를 초래한다. 일부 실시예들에서, 가상 객체가 시점에 대해 미리 설정된 공간적 관계를 가질 때(예를 들어, 시점에 앵커링되거나 고정될 때), 3차원 환경에 대한 시점의 이동은 시야 내의 가상 객체의 포지션이 유지되는 동안(예를 들어, 가상 객체는 헤드 로킹(head locking)된다고 함) 3차원 환경에 대한 가상 객체의 이동을 야기할 것이다. 일부 실시예들에서, 가상 객체는 사용자에게 보디 로킹(body-locking)되고, 사용자가 물리적 환경에서 전체적으로 이동할 때(예를 들어, 디스플레이 생성 컴포넌트 및/또는 컴퓨터 시스템의 다른 위치 감지 컴포넌트를 휴대하거나 착용할 때) 3차원 환경에 대해 이동하지만, 사용자의 단지 머리 이동(예를 들어, 디스플레이 생성 컴포넌트 및/또는 컴퓨터 시스템의 다른 위치 감지 컴포넌트가 물리적 환경에서 사용자의 고정된 위치 주위로 회전하는 것)만에 응답하여 3차원 환경에서 이동되지 않을 것이다. 일부 실시예들에서, 가상 객체는 선택적으로, 사용자의 손 또는 사용자의 손목과 같은 사용자의 다른 부분에 로킹되고, 물리적 환경에서의 사용자의 부분의 이동에 따라 3차원 환경에서 이동되어, 3차원 환경 내의 가상 객체의 포지션과 사용자의 부분의 가상 포지션 사이의 미리 설정된 공간적 관계를 유지한다. 일부 실시예들에서, 가상 객체는 디스플레이 생성 컴포넌트에 의해 제공되는 시야의 미리 설정된 부분에 로킹되고, 시야의 변경을 야기하지 않는 사용자의 이동에 관계없이, 시야의 이동에 따라 3차원 환경에서 이동된다.
일부 실시예들에서, 도 7b 내지 도 7j에 도시된 바와 같이, 3차원 환경의 뷰들은 때때로 사용자의 손(들), 팔(들), 및/또는 손목(들)의 표현(들)을 포함하지 않는다. 일부 실시예들에서, 사용자의 손(들), 팔(들), 및/또는 손목(들)의 표현(들)은 3차원 환경의 뷰들에 포함된다. 일부 실시예들에서, 사용자의 손(들), 팔(들), 및/또는 손목(들)의 표현(들)은 디스플레이 생성 컴포넌트를 통해 제공되는 물리적 환경의 표현의 일부로서 3차원 환경의 뷰들에 포함된다. 일부 실시예들에서, 표현들은 물리적 환경의 표현의 일부가 아니며, (예를 들어, 사용자의 손(들), 팔(들), 및 손목(들)을 향해 포인팅하는 하나 이상의 카메라에 의해) 별개로 캡처되고, 3차원 환경의 현재 디스플레이되는 뷰와 독립적으로 3차원 환경에서 디스플레이된다. 일부 실시예들에서, 표현(들)은 컴퓨터 시스템(들)의 하나 이상의 카메라들에 의해 캡처된 바와 같은 카메라 이미지들, 또는 다양한 센서들에 의해 캡처된 정보에 기초한 팔(들), 손목(들) 및/또는 손(들)의 양식화된 버전들을 포함한다. 일부 실시예들에서, 표현(들)은 물리적 환경의 표현의 일부의 디스플레이를 대체하거나, 그 상에 오버레이되거나, 또는 그의 뷰를 차단한다. 일부 실시예들에서, 디스플레이 생성 컴포넌트가 물리적 환경의 뷰를 제공하지 않고, 완전 가상 환경(예를 들어, 카메라 뷰 없음 그리고 투명 패스-스루 부분 없음)을 제공할 때, 사용자의 한쪽 또는 양쪽 팔들, 손목들, 및/또는 손들의 실시간 시각적 표현들(예를 들어, 양식화된 표현들 또는 세그먼트화된 카메라 이미지들)이 선택적으로 여전히 가상 환경에서 디스플레이된다. 일부 실시예들에서, 사용자의 손의 표현이 3차원 환경의 뷰에서 제공되지 않으면, 사용자의 손에 대응하는 포지션은, 예를 들어 물리적 환경 내의 사용자의 손의 위치에 대응하는 3차원 환경 내의 포지션들에서의 (예를 들어, 반투명성, 및/또는 시뮬레이션된 반사 인덱스의 변화를 통한) 가상 콘텐츠의 변경된 외관에 의해, 선택적으로 3차원 환경에서 표시된다. 일부 실시예들에서, 사용자의 손 또는 손목의 위치에 대응하는 3차원 환경 내의 가상 포지션이 디스플레이 생성 컴포넌트를 통해 제공된 현재 시야의 외부에 있는 동안, 사용자의 손 또는 손목의 표현은 3차원 환경의 현재 디스플레이된 뷰의 외부에 있으며; 사용자의 손 또는 손목의 위치에 대응하는 가상 포지션이 디스플레이 생성 컴포넌트, 사용자의 손 또는 손목, 사용자의 머리, 및/또는 전체로서 사용자의 이동 등으로 인해 현재 시야 내에서 이동되는 것에 응답하여, 사용자의 손 또는 손목의 표현은 3차원 환경의 뷰에서 가시적이게 된다.
도 7a 내지 도 7j는 일부 실시예들에 따른, 3차원 환경에서 디스플레이된 사용자 인터페이스 객체들과의 사용자 상호작용들을 예시하는 블록도들이다. 일부 실시예들에서, 사용자 인터페이스 객체들 중 하나 이상은 3차원 환경 내의 미리 정의된 구역 내에서 제공되어, 미리 정의된 구역에 배치된 사용자 인터페이스 객체들이 3차원 환경에서 사용자를 뒤따르는 반면, 미리 정의된 구역의 외부에 배치된 사용자 인터페이스 객체들이 3차원 환경에서 사용자를 뒤따르지 않게 한다(예를 들어, 미리 정의된 구역의 외부에 배치된 사용자 인터페이스 객체들은 3차원 환경에 앵커링됨). 일부 예들에서 사용자 인터페이스 객체들에 대해 도 7a 내지 도 7j(및 도 8 및 도 9)에 설명된 거동들은 설명에서 달리 언급되지 않는 한, 다양한 실시예들에 따라, 다른 예들에서 사용자 인터페이스 객체들에 적용가능하다.
도 7a 내지 도 7j는 제1 디스플레이 생성 컴포넌트(예를 들어, 디스플레이 생성 컴포넌트(7100), 또는 다른 디스플레이 생성 컴포넌트)와 통신하는 예시적인 컴퓨터 시스템(예를 들어, 디바이스(101), 또는 다른 컴퓨터 시스템)을 도시한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 헤드업 디스플레이이다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 머리 장착형 디스플레이(HMD)이다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 독립형 디스플레이, 터치스크린, 프로젝터, 또는 다른 유형의 디스플레이이다. 일부 실시예들에서, 컴퓨터 시스템은, 물리적 환경에서 사용자의 손(들)의 이동, 전체로서 사용자의 신체의 이동, 및/또는 사용자의 머리의 이동을 검출하는 카메라들 또는 다른 센서들 및 입력 디바이스들을 포함하는 하나 이상의 입력 디바이스들과 통신한다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자의 손(들), 사용자의 얼굴, 및 전체로서 신체 등의 이동 및 현재 자세들, 배향들, 및 포지션들을 검출한다. 일부 실시예들에서, 하나 이상의 입력 디바이스들은 사용자의 시선의 위치 및 이동을 검출하는 눈 추적 컴포넌트를 포함한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트, 및 선택적으로는, 하나 이상의 입력 디바이스들 및 컴퓨터 시스템은, 물리적 환경에서 사용자의 머리와 함께 이동 및 회전되고, 사용자의 시점을 제1 디스플레이 생성 컴포넌트를 통해 제공된 3차원 환경으로 변경시키는 머리 장착형 디바이스(예를 들어, HMD, 또는 한 쌍의 고글들)의 부분들이다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는, 사용자의 머리 또는 전체로서 사용자의 신체와 함께 이동 또는 회전되지 않지만, 선택적으로, 제1 디스플레이 생성 컴포넌트에 대한 사용자의 머리 또는 신체의 이동에 따라 사용자의 시점을 3차원 환경으로 변경시키는 헤드업 디스플레이이다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 선택적으로, 물리적 환경에 대해 또는 사용자의 머리에 대해 사용자의 손에 의해 이동 및 회전되고, 사용자의 머리 또는 얼굴에 대한 또는 물리적 환경에 대한 제1 디스플레이 생성 컴포넌트의 이동에 따라 사용자의 시점을 3차원 환경으로 변경시킨다.
도 7a 내지 도 7e는 물리적 환경(7000) 내의 사용자(7002)(예를 들어, 사용자의 시점)에 대한 위치에 대응하는 3차원 환경 내의 개개의 포지션들에서 사용자 인터페이스 객체(7104)(예를 들어, 사용자 인터페이스 객체들(7104-1 내지 7104-3)은 사용자 인터페이스 객체(7104)의 인스턴스들임)를 디스플레이하는 것을 예시하는 블록도들이다.
예를 들어, 도 7a는 사용자(7002)가 디스플레이 생성 컴포넌트(7100)와 상호작용하는 것을 포함하는 물리적 환경(7000)을 예시한다. 아래에서 설명되는 예들에서, 사용자(7002)는 입력들 또는 명령어들을 컴퓨터 시스템에 제공하기 위해 그들의 2개의 손들, 손(7020) 및 손(7022) 중 하나 또는 둘 모두를 사용한다. 아래에서 설명되는 예들 중 일부에서, 컴퓨터 시스템은 또한, 사용자에 의해 컴퓨터 시스템에 제공되는 입력의 일부로서, 사용자의 좌측 손(7020)에 연결되는 사용자의 좌측 팔(7028)과 같은 사용자의 팔의 포지션 또는 이동을 사용한다. 물리적 환경(7000)은 물리적 객체(7014), 및 물리적 벽들(7004, 7006)을 포함한다. 물리적 환경(7000)은 물리적 바닥(7008)을 더 포함한다.
도 7b에 도시된 바와 같이, 컴퓨터 시스템(예를 들어, 디스플레이 생성 컴포넌트(7100))은 3차원 환경의 뷰(예를 들어, 환경(7000'), 가상 3차원 환경, 증강 현실 환경, 물리적 환경의 패스-스루 뷰, 또는 물리적 환경의 카메라 뷰)를 디스플레이한다. 일부 실시예들에서, 3차원 환경은 물리적 환경(7000)의 표현이 없는 가상 3차원 환경이다. 일부 실시예들에서, 3차원 환경은 물리적 환경(7000)에 대응하는 센서 데이터에 의해 증강되는 가상 환경인 혼합 현실 환경이다. 일부 실시예들에서, 3차원 환경은, 하나 이상의 가상 객체들(예를 들어, 사용자 인터페이스 객체(7104)), 및 디스플레이 생성 컴포넌트(7100)를 둘러싸는 물리적 환경의 적어도 일부의 표현(예를 들어, 벽들의 표현들(7004', 7006'), 바닥의 표현(7008'), 및 물리적 객체의 표현(7014'))을 포함하는 증강 현실 환경이다. 일부 실시예들에서, 물리적 환경의 표현은 물리적 환경의 카메라 뷰를 포함한다. 일부 실시예들에서, 물리적 환경의 표현은 디스플레이 생성 컴포넌트의 투명 또는 반투명 부분을 통한 물리적 환경의 뷰를 포함한다. 일부 실시예들에서, 물리적 객체의 표현(7014')은 3차원 환경에 로킹(예를 들어, 앵커링)되어, 사용자가 물리적 환경에서 이동함에 따라, 표현(7014')은 3차원 환경 내의 그의 포지션에 유지된다(예를 들어, 그리고 물리적 객체의 표현(7014')이 앵커링되는 3차원 환경의 일부를 사용자의 현재 뷰가 포함할 때에만 디스플레이된다).
도 7c 내지 도 7e는 디스플레이 생성 컴포넌트(7100)를 사용하여 디스플레이되는 3차원 환경(7000') 내의 다양한 객체들(예를 들어, 물리적 환경 내의 물리적 객체들 및/또는 가상 객체들)에 주의를 기울이는 사용자의 예들을 예시한다. 예를 들어, 도 7c는 사용자가 사용자 인터페이스 객체(7104-1)에 주의를 기울이고 있는 동안의 사용자의 시점으로부터의 제1 뷰를 예시한다. 예를 들어, 사용자의 주의는 사용자의 눈으로부터의 파선에 의해 표현된다. 일부 실시예들에서, 컴퓨터 시스템은 사용자의 시선 및/또는 사용자의 머리 포지션을 결정하는 센서 데이터에 기초하여, 사용자가 3차원 환경의 개개의 부분들(예를 들어, 객체들)에 주의를 기울이고 있다고 결정한다. 컴퓨터 시스템은 사용자가 현재 주의를 기울이고 있는 3차원 환경의 부분을 결정하기 위해 다양한 센서 데이터를 사용하도록 인에이블된다는 것이 이해될 것이다.
일부 실시예들에서, 사용자 인터페이스 객체(7104-1)는 사용자의 시선 및/또는 사용자의 손들 중 하나 이상을 이용한 제스처(예를 들어, 에어 제스처)를 통해 사용자에 의해 선택가능한 복수의 선택가능 사용자 인터페이스 옵션들(예를 들어, 버튼들)을 포함하는 패널을 포함한다. 일부 실시예들에서, 사용자는 어느 선택가능 사용자 인터페이스 옵션들이 패널(예를들어, 사용자 인터페이스 객체(7104-1))에 포함되는지를 제어(예를 들어, 수정)한다. 예를 들어, 사용자는 패널 내에서 디스플레이될 특정 애플리케이션 아이콘들, 설정들, 제어부들, 및/또는 다른 옵션들을 선택하여, 패널에 포함된 선택된 애플리케이션 아이콘들, 설정들, 제어부들, 및/또는 다른 옵션들이 사용자에 의해 쉽게 액세스가능하게 한다(예를 들어, 아래에서 더 상세히 설명되는 바와 같이, 사용자가 물리적 환경에서 이동함에 따라 패널이 사용자를 뒤따르기 때문에, 사용자가 물리적 환경에서 이동할 때에도 사용자는 패널과 상호작용할 수 있게 된다).
도 7d는 (예를 들어, 물리적 환경(7000) 내의 물리적 객체(7014)의 표현인) 객체(7014')에 주의를 기울이는 사용자를 예시한다. 사용자가 (예를 들어, 도 7c에 도시된 바와 같이) 사용자 인터페이스 객체(7104-1)에 주의를 기울이지 않는 것에 응답하여, 사용자 인터페이스 객체(7104-1)는 (예를 들어, 음영처리된 충전에 의해 표시된 바와 같이) 사용자 인터페이스 객체(7104-1)의 시각적으로 강조해제된 버전으로서 디스플레이되는 사용자 인터페이스 객체(7104-2)로 업데이트된다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-2)는, 사용자가 사용자 인터페이스 객체(7104-1)에 주의를 기울이고 있는 동안 수정되지 않은 시각적 속성들로 디스플레이되는(예를 들어, 페이딩되지 않은) 사용자 인터페이스 객체(7104-1)의 시각적 속성들에 비해 페이딩된 시각적 속성들로 디스플레이된다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-2)는 3차원 환경(7000')에서 디스플레이되는 다른 객체들(예를 들어, 가상 객체들 및/또는 물리적 객체들)에 비해 페이딩된 시각적 속성들로 디스플레이된다. 예를 들어, 물리적 객체의 표현(7014')은 사용자 인터페이스 객체(7104-2)가 시각적으로 강조해제되는 동안 시각적으로 강조해제되지 않는다(예를 들어, 수정되지 않음). 일부 실시예들에서, 사용자 인터페이스 객체는 사용자 인터페이스 객체(7104-2)를 강조해제하기 위해, 사용자 인터페이스 객체(7104-2)를 블러링(blur)하거나, 사용자 인터페이스 객체(7104-2)의 크기를 감소시키거나, 사용자 인터페이스 객체(7104-2)의 불투명도를 감소시키거나, 사용자 인터페이스 객체(7104-2)의 반투명도를 증가시키거나, 사용자 인터페이스 객체(7104-2)의 디스플레이를 완전히 중단하거나, 또는 시각적 효과들의 조합(예를 들어, 동시에 페이딩 및 블러링함)에 의해 시각적으로 강조해제된다.
일부 실시예들에서, 도 7e 내지 도 7g에 예시된 바와 같이, 사용자가 사용자 인터페이스 객체(7104)(예를 들어, 사용자 인터페이스 객체(7104-3), 사용자 인터페이스 객체(7104-4), 및 사용자 인터페이스 객체(7104-5))에 주의를 기울이지 않는 동안, 사용자 인터페이스 객체(7104)는 (예를 들어, 도 7e 및 도 7f에서 음영처리된 충전에 의해 표시된 바와 같이) 시각적 강조해제로 계속 디스플레이된다. 일부 실시예들에서, 사용자가 사용자 인터페이스 객체에 주의를 기울이지 않는 동안(예를 들어, 사용자가 사용자 인터페이스 객체에 주의를 기울이지 않는 시간의 양이 증가함에 따라), 사용자 인터페이스 객체(7104)의 시각적 강조해제가 증가한다. 예를 들어, 사용자가 초기에 사용자 인터페이스 객체(7104-1)로부터 멀리 사용자의 주의를 돌리는 것에 응답하여, 사용자 인터페이스 객체(7104-2)는 제1 양만큼 페이딩된 것으로서 디스플레이된다(예를 들어, 사용자 인터페이스 객체의 불투명도는 제1 양만큼 감소되고 그리고/또는 사용자 인터페이스 객체의 반투명도는 제1 양만큼 증가한다). 일부 실시예들에서, 미리 정의된 양의 시간(예를 들어, 0.1, 0.2, 0.5, 1, 2, 또는 5초) 이후, 사용자 인터페이스 객체(7104-3)(도 7e)는 제1 양보다 큰 제2 양만큼 페이딩된 것으로서 디스플레이된다(예를 들어, 사용자 인터페이스 객체(7104-3)는 사용자 인터페이스 객체(7104-2)보다 더 많은 양의 시각적 강조해제로 디스플레이된다).
일부 실시예들에서, 시각적 강조해제의 양은 사용자가 객체로부터 멀리 사용자의 주의를 돌리는 레이트 및/또는 양(예를 들어, 각도의 변화의 양 및/또는 거리의 양)에 적어도 부분적으로 기초하여 결정된다. 예를 들어, 사용자가 신속하게(예를 들어, 제1 레이트로) 사용자 인터페이스 객체(7104-1)로부터 눈길을 돌리는 것에 응답하여, 사용자 인터페이스 객체(7104-2)는 제1 양만큼 시각적으로 강조해제된다. 사용자가 덜 신속하게(예를 들어, 제1 레이트보다 느린 제2 레이트로) 사용자 인터페이스 객체(7104-1)로부터 눈길을 돌리는 것(예를 들어, 및/또는 사용자 인터페이스 객체(7104-1)로부터 멀리 돌리는 것)에 응답하여, 사용자 인터페이스 객체(7104-2)는 제1 양보다 작은 제2 양만큼 강조해제된다. 일부 실시예들에서, 시각적 강조해제의 양은, (예를 들어, 사용자의 이동/주의 변화의 레이트에 기초하는 것에 부가하여, 또는 그 대신에) 사용자 인터페이스 객체(7104-1)와 사용자의 현재 주의가 3차원 환경 내에 있는 경우 사이의 변화(예를 들어, 거리의 변화 및/또는 각도의 변화)의 양에 기초한다. 예를 들어, 사용자가 사용자 인터페이스 객체(7104-1)에 가까운(예를 들어, 5 cm 이내, 또는 10 cm 이내, 또는 미리 정의된 근접도 기준들을 충족시킴) 영역으로 사용자의 주의를 시프트시키면, 사용자 인터페이스 객체는 사용자가 사용자 인터페이스 객체(7104-1)로부터 더 멀리있는(예를 들어, 5 cm 초과, 또는 10 cm 초과) 영역으로 사용자의 주의를 시프트시키는 경우보다 작은 양만큼 시각적으로 강조해제된다. 따라서, 사용자가 사용자 인터페이스 객체(7104-1)로부터 멀리 사용자의 주의를 시프트시킴에 따라, 사용자 인터페이스 객체(7104-2)의 디스플레이는 사용자의 이동 및/또는 사용자의 주의의 변화의 하나 이상의 속성들에 따라 업데이트된다.
일부 실시예들에서, 도 7e 내지 도 7h에 예시된 바와 같이, 사용자가 3차원 환경(7000') 내에서 이동함(예를 들어, 사용자가 물리적 환경(7000) 주위에서 이동하는 것에 대응함)에 따라, 사용자가 사용자 인터페이스 객체(7104)에 계속 주의를 기울이지 않는 동안, 사용자 인터페이스 객체(7104)는 시각적 강조해제로 계속 디스플레이된다(또는 디스플레이되지 않는다). 일부 실시예들에서, 사용자 인터페이스 객체(7104)는 아래에서 더 상세히 설명되는 바와 같이, 사용자가 물리적 환경에서 이동함에 따라 3차원 환경 내의 다양한 포지션들에서 디스플레이된다(예를 들어, 사용자 인터페이스 객체(7104)는 사용자를 뒤따른다).
일부 실시예들에서, 사용자 인터페이스 객체(7104)는 도 7h에 예시된 바와 같이, 사용자가 사용자 인터페이스 객체(7104)에 주의를 기울이고 있다는 것을 컴퓨터 시스템이 검출할 때까지 시각적 강조해제로 계속 디스플레이된다. 예를 들어, 사용자가 사용자 인터페이스 객체(7104-6)에 주의를 기울이고 있다는 것을 검출하는 것에 응답하여, 사용자 인터페이스 객체는 시각적 강조해제 없이 디스플레이된다(예를 들어, 사용자 인터페이스 객체(7104-6)는 도 7c의 사용자 인터페이스 객체(7104-1)와 동일한 시각적 속성들로 디스플레이된다). 일부 실시예들에서, 사용자가 사용자 인터페이스 객체(7104-6)에 주의를 기울이고 있다는 것을 검출하는 것에 응답하여, 사용자 인터페이스 객체(7104-6)는, 사용자 인터페이스 객체(7104-6)가 사용자 인터페이스 객체(7104-1)의 사용자에 대한 (예를들어, 이전의) 상대적 포지션(예를 들어, 사용자가 물리적 환경에서 이동하기 전의 사용자에 대한 사용자 인터페이스 객체의 초기 포지션)과 동일한 사용자에 대한 상대적 포지션을 갖도록 3차원 환경 내의 포지션에서 디스플레이된다.
도 7e 내지 도 7h는 사용자(7002)가 물리적 환경(7000) 내에서 이동함에 따라 3차원 환경 내의 다양한 포지션들에서 디스플레이되는 사용자 인터페이스 객체(7104)를 예시하는 블록도들이다. 3차원 환경 내의 사용자 인터페이스 객체(7104)의 포지션의 변화는 위에서 설명된 사용자 인터페이스 객체(7104)의 시각적 강조해제와 함께(예를 들어, 그와 동시에) 수행되도록 인에이블된다는 것이 이해될 것이다.
일부 실시예들에서, 도 7e에 예시된 바와 같이, 사용자(예를 들어, 사용자의 현재 시점)는 물리적 환경에서 이동하고(예를 들어, 사용자는 제1 양의 거리만큼 우측으로 이동함), 사용자가 물리적 환경에서 이동하는 것에 응답하여, 디스플레이 생성 컴포넌트(7100) 상에서 디스플레이된 뷰는 물리적 환경에서의 사용자의 이동을 반영하는 3차원 환경의 현재 뷰를 포함하도록 (예를 들어, 실시간으로) 업데이트된다. 예를 들어, 사용자가 (예를 들어, 도 7d의 뷰에 대해) 도 7e에서 우측으로 이동함에 따라, 물리적 객체의 표현(7014')은 (도 7d에서 사용자의 뷰의 우측 에지 상에 디스플레이되는 물리적 객체의 표현(7014')과 비교하여) 도 7e에서 사용자의 현재 뷰에 더 중심설정된 것으로서 디스플레이된다
일부 실시예들에서, 사용자가 물리적 환경에서 이동하고 있는 동안, 사용자 인터페이스 객체(7104-3)는 초기에, (예를 들어, 3차원 환경 내의 다른 디스플레이된 객체들에 대해) 3차원 환경 내의 동일한 포지션에 유지된다. 예를 들어, 도 7d에서, 사용자 인터페이스 객체(7104-2)는 그의 우측 에지가 객체(7014')의 표현의 좌측 에지와 (예를 들어, 수직으로) 정렬된 상태로 디스플레이된다. 사용자가 도 7e에서 제1 양만큼 이동하는 것에 응답하여, 사용자 인터페이스 객체(7104-3)는 객체(7014')의 표현에 대해 3차원 환경 내의 동일한 포지션에서 계속 디스플레이된다. 예를 들어, 사용자 인터페이스 객체(7104-3)는 초기에 3차원 환경에 앵커링된 것으로 보인다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-2)(예를 들어, 및 사용자 인터페이스 객체(7104-3))는, 사용자가 물리적 환경에서 (예를 들어, 거리의, 배향 및/또는 포지션의 변화의) 임계량 미만으로 이동하는 것에 따라 3차원 환경 내의 다른 객체들에 대해 3차원 환경 내의 동일한 포지션에 유지된다(예를 들어, 사용자에 의한 이동의 제1 양은 임계량 미만이다). 일부 실시예들에서, 사용자 인터페이스 객체(7104-2)(예를 들어, 및 사용자 인터페이스 객체(7104-3))는 사용자의 이동의 제1 미리 정의된 시간 기간 동안 3차원 환경 내의 다른 객체들에 대해 3차원 환경 내의 동일한 포지션에 유지된다. 예를 들어, 사용자 인터페이스 객체(7104-2)는 사용자가 물리적 환경에서 이동하는 처음 2초(예를 들어, 또는 .5초, 또는 4초) 동안 3차원 환경 내의 동일한 포지션에서 디스플레이된다.
일부 실시예들에서, 사용자가 임계량 초과로(예를 들어, 임계 거리 초과만큼, 배향 및/또는 포지션의 변화의 임계량 초과만큼, 및/또는 제1 미리 정의된 시간 기간보다 긴 시간 기간 동안) 이동한 이후, 사용자 인터페이스 객체(7104-4)는 (예를 들어, 사용자가 이동을 시작하기 전에) 그의 초기 포지션과 상이한 3차원 환경 내의 포지션에서 디스플레이되도록 업데이트된다. 예를 들어, 사용자 인터페이스 객체(7104-3)은 업데이트되지 않으면서, 도 7f에서 사용자의 현재 뷰로부터 사라질 것이다. 따라서, 사용자 인터페이스 객체(7104-4)는 사용자의 현재 뷰 내에 유지되기 위해, 3차원 환경에서 디스플레이된 다른 객체들에 대해 이동된다(예를 들어, 사용자가 물리적 환경에서 이동함에 따라, 사용자 인터페이스 객체(7104-4)는 전체적으로 디스플레이된 상태로 유지된다). 이와 같이, 사용자 인터페이스 객체(7104-4)는 3차원 환경에 앵커링되지 않고, 대신에 사용자의 현재 시점에 앵커링된다.
일부 실시예들에서, 디스플레이 생성 컴포넌트(7100)는 도 7f에 도시된 사용자 인터페이스 객체(7104-4)의 포지션으로의 애니메이션화된 이동(예를 들어, 점진적이고 연속적인 이동)으로 사용자 인터페이스 객체(7104-3)를 디스플레이한다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-3)를 이동시키는 동안, 사용자 인터페이스 객체(7104-3)는 위에서 설명된 바와 같이 시각적으로 강조해제된다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-3, 7104-4)는 사용자가 물리적 환경에서 이동함에 따라 (예를 들어, 사용자 인터페이스 객체(7104)가 사용자의 각각의 개개의 현재 뷰에서 전체적으로 디스플레이된 상태로 유지되도록) 사용자 인터페이스 객체가 사용자를 뒤따르고 있는 것처럼 디스플레이된다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-3)가 사용자 인터페이스 객체(7104-4)의 포지션으로 업데이트됨에 따라, 사용자 인터페이스 객체(7104-4)의 포지션으로의 사용자 인터페이스 객체(7104-3)의 이동 레이트는 물리적 환경에서의 사용자의 이동 레이트보다 느린 이동 레이트로서 디스플레이된다. 예를 들어, 사용자 인터페이스 객체는 사용자를 뒤따를 시에 지연되고(예를 들어, 단지 2초 이후에 사용자를 뒤따르는 것을 시작함), 물리적 환경에서의 사용자의 이동 레이트(및 사용자의 현재 시점에 대한 변화 레이트)보다 3차원 환경 내에서 더 느리게 이동하는 것으로서 디스플레이된다. 이와 같이, 사용자 인터페이스 객체는 사용자가 물리적 환경에서 이동함에 따라 사용자보다 뒤처지는 것으로 보인다.
도 7g는 (예를 들어, 도 7d 내지 도 7f에 대해) 물리적 환경 내에서 계속 이동하는 사용자를 예시한다. 도 7g는 사용자가 물리적 환경에서 우측으로(예를 들어, 위에서 설명된 동일한 방향으로) 계속 이동함에 따른 물리적 환경에서의 사용자(예를 들어, 및 디스플레이 생성 컴포넌트(7100))의 부가적인 측방향 이동(예를 들어, 좌우 이동)을 예시한다. 도 7g는 (예를 들어, 도 7g의 하향 화살표에 의해 예시된 바와 같이) 수직 방향으로의 사용자의 포즈(예를 들어, 배향)에서의 이동을 추가로 예시한다. 예를 들어, 사용자는 물리적 환경에서 우측으로 이동하면서 (예를 들어, 도 7g의 바닥(7008')의 표현 중 더 많은 것을 포함하기 위해) (예를 들어, 동시에) 사용자의 현재 시점을 하향으로 또한 이동시킨다. 일부 실시예들에서, 사용자 인터페이스 객체(7104-5)는 사용자가 물리적 환경에서 이동함에 따라 이동하도록 (예를 들어, 사용자보다 느린 레이트로) 업데이트된다. 예를 들어, 사용자는 도 7e에 대해 도 7g의 우측으로 더 많이 이동하고, 사용자 인터페이스 객체(7104)는 또한, 사용자의 이동 레이트보다 느린 레이트로 도 7e 내지 도 7g 사이에서 (예를 들어, 사용자에 의해) 우측으로 이동하는 것으로서 디스플레이된다. 예를 들어, 사용자 인터페이스 객체(7104)가 도 7e 내지 도 7g에서 사용자의 현재 시점의 상단-중심 부분에 계속 디스플레이되는 대신에(예를 들어, 이는 사용자 인터페이스 객체(7104)가 사용자와 동일한 레이트로 이동하는 것을 표시할 것임), 사용자 인터페이스 객체(7104)는 사용자가 이동하고 있는 동안 이동에서 뒤처지는 것으로 보인다.
일부 실시예들에서, 사용자가 임계량 초과의 이동만큼 이동한(예를 들어, 그리고 사용자 인터페이스 객체(7104)가 사용자의 현재 뷰 내에 유지되기 위해 그의 초기 포지션으로부터 업데이트된 포지션으로 이동한) 이후, 사용자 인터페이스 객체(7104)는 사용자가 물리적 환경에서 계속 이동함에 따라 3차원 환경에서 사용자를 계속 뒤따른다. 일부 실시예들에서, 사용자 인터페이스 객체(7104)는 사용자에 대해(예를 들어, 사용자의 신체의 일부에 대해 그리고/또는 사용자의 현재 시점에 대해) 동일한 공간적 관계를 유지하기 위해 (예를 들어, 사용자가 물리적 환경에서 이동함에 따라) 3차원 환경 내의 상이한 포지션들로 이동된다. 예를 들어, 사용자 인터페이스 객체(7104)는 사용자의 현재 뷰의 미리 정의된 부분 내에(예를 들어, 사용자의 현재 뷰의 좌측 상단 코너에) 그리고/또는 사용자의 현재 뷰로부터 미리 정의된 거리만큼 떨어져(예를 들어, 사용자로부터 팔의 길이 내에) 유지되도록 사용자를 계속 뒤따른다.
사용자의 시점은 선택적으로, 물리적 환경 내에서 측방향으로 디스플레이 생성 컴포넌트(7100)를 이동시키는 것, 디스플레이 생성 컴포넌트(7100)의 상대적 각도(예를 들어, 포즈)를 변경시키는 것, 및/또는 (예를 들어, 디스플레이 생성 컴포넌트가 사용자에 의해 착용된 HMD일 때와 같이 사용자가 바닥(7008)을 향해 아래를 봄에 따라) 사용자의 머리의 포즈(예를 들어, 배향)를 변경시키는 것의 임의의 조합에 의해 업데이트된다. 특정 방향 및/또는 배향으로의(예를 들어, 우향으로 그리고/또는 하향으로의) 물리적 환경에서의 사용자의 이동의 본 명세서에 설명된 예들은 물리적 환경 내에서의 사용자의 이동의 비제한적인 예들이다. 예를 들어, 사용자의 (예를 들어, 좌향, 상향, 및/또는 상이한 방향들 및/또는 포즈들의 조합으로의) 다른 이동들은 사용자 인터페이스 객체로 하여금 유사한 거동으로 디스플레이되게 한다(예를 들어, 여기서 사용자 인터페이스 객체는 (선택적으로, 지연 및/또는 뒤처짐으로) 사용자의 이동을 뒤따르도록 3차원 환경의 사용자의 현재 시점 내에서 이동된다).
일부 실시예들에서, 도 7h에 예시된 바와 같이, 사용자가 물리적 환경에서 (예를 들어, 거리의, 포즈 및/또는 배향에서의) 임계량 초과로 이동한 이후, 사용자 인터페이스 객체(7104-6)는 사용자(예를 들어, 사용자의 신체 및/또는 사용자의 시점)에 대해 정의된 3차원 환경의 사용자의 현재 뷰 내의 포지션에서 재디스플레이된다. 예를 들어, 도 7c에서, 사용자 인터페이스 객체(7104-1)는 초기에, 사용자의 현재 시점에 대해 정의되는 3차원 환경 내의 포지션에서 디스플레이된다. 예를 들어, 사용자 인터페이스 객체(7104-1)는 사용자로부터 미리 정의된 거리에(예를 들어, 인지된 깊이로) 그리고 사용자에 대해 일정 높이에(예를 들어, 사용자의 현재 시점의 상단에, 또는 사용자가 정면을 보고 있을 때 사용자의 시점 위의 미리 정의된 각도(예를 들어, 45도)로) 디스플레이된다. 일부 실시예들에서, 사용자가 물리적 환경 내에서 이동하고 있는 동안, 사용자가 임계량만큼 이동하기 전에, 사용자 인터페이스 객체는 도 7e 내지 도 7g를 참조하여 설명된 느린 뒤따르기 거동(lazy follow behavior)으로 보여지도록 사용자의 현재 뷰 내에서 이동되고, 사용자가 (예를 들어, 도 7h에 예시된 바와 같이) 적어도 임계량만큼 이동한 이후, 사용자 인터페이스 객체(7104-6)는 도 7c에 설명된 사용자의 현재 시점에 대해 정의된 동일한 포지션으로 재디스플레이된다. 일부 실시예들에서, 사용자의 현재 시점에 대해 정의된 동일한 포지션은 사용자의 편안한 보기 거리 내에 있는 미리 정의된 구역에 대응한다.
일부 실시예들에서, 위에서 설명된 사용자 인터페이스 객체(7104)의 지연 및 뒤처짐 거동(예를 들어, 본 명세서에서 느린 뒤따르기 거동으로 또한 지칭됨)은 사용자 인터페이스 객체(7104)가 복수의 미리 정의된 구역들 중 하나에 추가되는 것에 따라 수행된다. 예를 들어, 사용자 인터페이스 객체(7104-1)의 초기 포지션은 복수의 미리 정의된 구역들 중 제1 구역 내에 설정되며, 여기서 복수의 미리 정의된 구역들 중 하나 내에 배치된(예를 들어, 앵커링된) 사용자 인터페이스 객체들은 본 명세서에 설명된 느린 뒤따르기 거동에 따라 업데이트된다. 일부 실시예들에서, 사용자(7002)는, (예를 들어, 개개의 사용자 인터페이스 객체가 미리 정의된 구역들 중 하나 내에 배치되지 않는 동안 느린 뒤따르기 거동이 더 이상 적용되지 않도록) 사용자 인터페이스 객체들을 다양한 구역들로 이동시키고, 또한 그러한 객체들을 구역들 밖으로 이동시키도록 가능하게 된다. 일부 실시예들에서, 사용자가 사용자 인터페이스 객체를 선택하는 동안, 복수의 미리 정의된 구역들은, 사용자 인터페이스 객체로 하여금 느린 뒤따르기 거동을 갖게 하기 위해 사용자가 사용자 인터페이스 객체를 배치할 수 있게 되는 경우를 사용자에게 표시하도록 (예를 들어, 각각의 개개의 구역에 대한 윤곽으로) 하이라이트(highlight)된다.
일부 실시예들에서, 미리 정의된 구역은 3차원 환경의 미리 정의된 부분을 (예를 들어, 미리 정의된 형상으로) 커버한다. 예를 들어, 미리 정의된 구역은 그의 길이, 폭, 깊이, 및/또는 형상(예를 들어, 경계들)에 의해 정의되는 3차원 환경 내의 포지션을 점유한다. 예를 들어, 제1 미리 정의된 구역은 제1 깊이(예를 들어, 또는 깊이들의 범위)로 포지셔닝되고(예를 들어, 이를 점유하고), 제1 폭, 길이, 및/또는 높이를 갖는다. 일부 실시예들에서, 제1 미리 정의된 구역은 3차원 형상, 또는 선택적으로는 2차원 형상(예를 들어, 2차원 윈도우 또는 도크)에 대응하는 3차원 환경의 일부를 점유한다. 예를 들어, 제1 미리 정의된 구역은 3차원 환경 내의 미리 정의된 포지션에서의 큐브(cube)이다(예를 들어, 그리고 사용자 인터페이스 객체를 미리 정의된 위치에서 큐브로 이동시키는 것은 사용자 인터페이스 객체를 제1 미리 정의된 구역으로 이동시키는 것이다).
일부 실시예들에서, 사용자 인터페이스 객체(7104)는 물리적 환경에서 사용자의 신체를 이동시키지 않으면서, 사용자의 머리를 이동시키는 동안 사라진다. 일부 실시예들에서, 사용자 인터페이스 객체는 사용자가 사용자의 신체(예를 들어, 몸통 및 머리)를 이동시키는 동안 (예를 들어, 시각적으로 강조해제된 속성들로) 계속 디스플레이된다. 예를 들어, (예를 들어, 사용자의 신체의 배향을 변경시키기 위해) 사용자가 사용자의 위치를 변경시키지 않으면서(예를 들어, 물리적 환경 내의 제1 위치로부터 제2 위치로 이동시키지 않으면서) 그리고/또는 사용자가 사용자의 몸통을 이동시키지 않으면서, 사용자가 사용자의 머리를 돌리면(예를 들어, 이는 3차원 환경의 사용자의 현재 뷰를 업데이트함), 사용자 인터페이스 객체(7104)는 3차원 환경 내의 제1 포지션으로부터 제2 포지션으로 이동하는 것으로서 애니메이션화되지 않는다. 대신에, 사용자 인터페이스 객체(7104)는 사용자의 이동 동안 디스플레이되지 않고, 사용자의 머리 이동이 중지되는 것(예를 들어, 그리고 미리 정의된 시간 기간 동안 사용자의 머리의 새로운 포지션에 유지되는 것)에 응답하여 (예를 들어, 사용자가 미리 정의된 시간 기간 동안 제2 포지션에 정지될 때) 재디스플레이된다.
일부 실시예들에서, 사용자는 도 7i에 예시된 바와 같이, 사용자 인터페이스 객체(7104-4)와 상호작용하도록 추가로 가능하게 된다. 예를 들어, 사용자 인터페이스 객체(7104-7)는 복수의 선택가능 객체들(예를 들어, 애플리케이션 아이콘들, 제어 센터 내의 제어부들, 설정들, 및/또는 버튼들)을 포함하는 패널이다. 복수의 선택가능 객체들 중 제1 선택가능 객체로 지향되는 사용자 입력(예를 들어, 사용자의 시선 및/또는 에어 제스처)을 검출하는 것에 응답하여, 일부 실시예들에서, 제1 선택가능 객체는 강조된다(예를 들어, 다른 선택가능 객체들에 비해 하이라이트되거나, 윤곽이 그려지거나, 확대되거나, 또는 달리 구별된다).
일부 실시예들에서, 복수의 선택가능 객체들은 3차원 환경에서의 몰입형 경험에 대한 하나 이상의 제어부들을 포함한다. 예를 들어, 사용자 인터페이스 객체(7104-7)는 3차원 환경 내의 사용자를 완전한 가상 경험에 몰입시키기기 위한 재생 및/또는 일시정지 제어부를 포함하고, (예를 들어, 3차원 환경에서 물리적 환경으로부터의 더 많거나 더 적은 패스스루 콘텐츠를 디스플레이하기 위해) 몰입 레벨을 변경시키기 위한 옵션들을 사용자에게 제공한다. 예를 들어, 3차원 환경에서 몰입형 경험을 재생 및/또는 일시정지하기 위한 제어부가 디스플레이된다. 일부 실시예들에서, 3차원 환경에서의 더 큰 몰입 레벨은 가상 객체들의 디스플레이, 가상 월페이퍼의 디스플레이, 가상 조명의 디스플레이 등과 같은 부가적인 가상 특징부들을 포함한다. 따라서, 사용자는 3차원 환경에서 디스플레이되는 가상 콘텐츠의 양에 대해 얼마나 많은 물리적 환경이 3차원 환경에서 패스스루 콘텐츠로서 디스플레이되는지를 제어하도록 가능하게 된다.
예를 들어, 도 7j에 예시된 바와 같이, 사용자 입력(예를 들어, 사용자의 손(7020), 또는 조합된 손 및 시선 제스처를 사용하는 손 제스처)에 응답하여, 사용자는 사용자의 현재 뷰에 대해 3차원 환경 내의 상이한 포지션으로 사용자 인터페이스 객체를 이동시키도록 가능하게 된다(예를 들어, 사용자 인터페이스 객체(7104-8)는 도 7j에서 사용자의 현재 뷰의 좌측 하부에 디스플레이된다). 일부 실시예들에서, 사용자 인터페이스 객체(7104-8)의 새로운 포지션은 복수의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있다(예를 들어, 그리고 사용자 인터페이스 객체(7104-8)는 사용자가 물리적 환경에서 이동함에 따라 느린 뒤따르기 거동을 계속 가질 것이다). 예를 들어, 사용자는 사용자 인터페이스 객체(7104-8)를 제1 미리 정의된 구역으로부터 제2 미리 정의된 구역으로 리포지셔닝시킨다. 일부 실시예들에서, 사용자 인터페이스 객체가 제2 미리 정의된 구역으로 이동된 이후, 사용자가 물리적 환경에서 (예를 들어, 이동의 임계량만큼) 이동한 이후, 사용자 인터페이스 객체는 제2 미리 정의된 구역의 사용자에 대한 포지션에서 사용자의 현재 뷰에 디스플레이된 상태로 유지되기 위해 3차원 환경에서 이동된다.
일부 실시예들에서, (예를 들어, 사용자가 3차원 환경에서 사용자 인터페이스 객체를 선택하고 이를 주위에서 이동시킴에 따라 구역이 하이라이트되는 동안) 사용자가 미리 정의된 구역 부근에(예를 들어, 그 구역의 임계 거리 내에) 사용자 인터페이스 객체를 포지셔닝시키는 것에 응답하여, 사용자 인터페이스 객체(7104)는 (예를 들어, 사용자가 미리 정의된 구역에 사용자 인터페이스 객체를 배치하도록 확인하는 것에 따라) 미리 정의된 구역에 스냅(snap)된다. 예를 들어, 사용자가 미리 정의된 구역에 충분히 가깝게 사용자 인터페이스 객체를 리포지셔닝시키는 것에 응답하여, 컴퓨터 시스템은 미리 정의된 구역에 스냅된 사용자 인터페이스 객체를 자동으로 디스플레이한다(예를 들어, 그리고 사용자는, 사용자 인터페이스 객체를 미리 정의된 구역과 완전히 정렬시키도록 사용자에게 요구하지 않으면서 사용자 인터페이스 객체를 제자리에 플롭(plop)(예를 들어, 스냅)하기 위해 핀치 및/또는 드래그 제스처를 해제한다). 일부 실시예들에서, 사용자 인터페이스 객체가 미리 정의된 구역에서 제자리에 스냅되는 것에 따라, 컴퓨터 시스템은 오디오 및/또는 햅틱 표시를 출력한다.
일부 실시예들에서 또는 일부 상황들에서, 사용자 인터페이스 객체(7104-8)의 새로운 포지션은 복수의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있지 않다. 일부 실시예들에서, 사용자 인터페이스 객체(7104)가 미리 정의된 구역 내에 배치되지 않으면(예를 들어, 사용자가 미리 정의된 구역에 대응하지 않는 3차원 환경 내의 포지션에 사용자 인터페이스 객체를 리포지셔닝시키면), 사용자 인터페이스 객체(7104-8)는 사용자가 물리적 환경에서 이동함에 따라 느린 뒤따르기 거동을 계속 갖지는 않는다(예를 들어, 사용자 인터페이스 객체(7104-8)는 사용자가 이동함에 따라 사용자의 현재 뷰 내에 유지되도록 포지션들을 변경시키는 대신 세계-로킹(world-lock)되도록 3차원 환경에 앵커링된다).
일부 실시예들에서, 사용자는 단지 사용자로부터 미리 정의된 거리 내에 사용자 인터페이스 객체를 리포지셔닝시키도록 가능하게 된다. 예를 들어, 사용자 인터페이스 객체는 사용자의 팔의 도달거리 내의 포지션에 배치된다. 일부 실시예들에서, 사용자 인터페이스 객체는 사용자로부터 미리 정의된 거리 밖의 포지션에(예를 들어, 사용자로부터의 팔의 거리 초과로) 배치될 수 없다. 예를 들어, 사용자가 사용자로부터의 미리 정의된 거리보다 사용자로부터 더 멀리있는 3차원 환경 내의 포지션에 사용자 인터페이스 객체를 리포지셔닝시키는 것에 응답하여, 컴퓨터 시스템은 에러 경고를 사용자에게 제공한다(예를 들어, 그리고 사용자가 사용자로부터 멀리 떨어진 미리 정의된 거리보다 더 멀리있는 포지션에 사용자 인터페이스 객체를 배치하게 허용하지 않는다). 일부 실시예들에서, 사용자가 사용자로부터의 미리 정의된 거리보다 사용자로부터 더 멀리있는 3차원 환경 내의 포지션에 사용자 인터페이스 객체를 리포지셔닝시키는 것에 응답하여, 컴퓨터 시스템은 사용자가 포지션에 객체를 배치하게 허용하지만, 사용자 인터페이스 객체가 포지션에 배치될 때, 3차원 환경에서 사용자를 뒤따르지 않을 것이라는 경고(예를 들어, 텍스트 표시)를 제공한다(예를 들어, 사용자로부터의 미리 정의된 거리보다 더 멀리있는 포지션에 객체를 배치하는 것은, 사용자가 물리적 환경에서 이동함에 따라 사용자 인터페이스 객체가 사용자와 동일한 상대적 공간적 관계를 유지하기 위해 이동되지 않도록 객체를 3차원 환경에 앵커링한다).
일부 실시예들에서, 도 7j에 예시된 바와 같이, 사용자는 또한 사용자 인터페이스 객체(7104-8)를 크기조절하도록 가능하게 된다. 예를 들어, 사용자 입력(예를 들어, 제1 손을 이용한 핀치 제스처)은 (예를 들어, 사용자 인터페이스 객체(7104-8)의 크기조절 어포던스 상에서) 사용자 인터페이스 객체(7104-8)로 지향되고, 사용자 인터페이스 객체(7104-8)는 사용자가 (예를 들어, 사용자 인터페이스 객체를 확대시키기 위해) 사용자 인터페이스 객체로부터 외향으로 크기조절 어포던스를 드래그하거나 또는 (예를 들어, 사용자 인터페이스 객체의 크기를 감소시키기 위해) 사용자 인터페이스 객체의 중심을 향해 내향으로 크기조절 어포던스를 드래그하는 것에 따라 크기가 확대 및/또는 감소된다. 일부 실시예들에서, 사용자는 (예를 들어, 제스처를 수행하기 위해 양손들을 사용하여) 양손 제스처를 수행하도록 가능하게 된다. 예를 들어, 사용자의 제1 손을 이용하여(예를 들어, 핀치 제스처를 이용하여) 사용자 인터페이스 객체를 선택한 이후, 사용자는 사용자 인터페이스 객체의 크기를 감소 및/또는 증가시키기 위해 각각 사용자의 다른 손을 사용자의 제1 손으로부터 더 가깝게 그리고/또는 더 멀리 떨어지게 이동시킬 수 있다(예를 들어, 사용자 인터페이스 객체를 핀칭함). 일부 실시예들에서, (예를 들어, 도 7a 내지 도 7j 및 도 8 및 도 9에 관해) 본 명세서에 설명된 다양한 예들 및 실시예들에서 사용되는 입력 제스처들은 선택적으로, 일부 실시예들에 따라 가상 또는 혼합 현실 환경과 상호작용하기 위해 제스처 직전에 또는 제스처 동안 동작들을 수행하도록 사용자의 전체 손 또는 팔을 이들의 자연스러운 위치(들) 및 자세(들)로부터 멀리 이동시키는 주요 이동을 요구하지 않으면서, 선택적으로, 다른 손가락(들) 또는 사용자의 손의 일부(들)에 대한 사용자의 손가락(들)의 이동에 의해 수행되는 별개의 작은 모션 제스처를 포함한다.
일부 실시예들에서, 입력 제스처들은 센서 시스템(예를 들어, 도 1의 센서들(190); 도 3의 이미지 센서들(314))에 의해 캡처된 데이터 또는 신호들을 분석함으로써 검출된다. 일부 실시예들에서, 센서 시스템은 하나 이상의 이미징 센서들(예를 들어, 모션 RGB 카메라들, 적외선 카메라들, 및/또는 깊이 카메라들과 같은 하나 이상의 카메라들)을 포함한다. 예를 들어, 하나 이상의 이미징 센서들은 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120 또는 7100)(예를 들어, 디스플레이 및 터치 감응형 표면으로서의 역할을 하는 터치 스크린 디스플레이, 입체 디스플레이, 및/또는 패스-스루 부분을 갖는 디스플레이))를 포함하는 컴퓨터 시스템(예를 들어, 도 1의 컴퓨터 시스템(101)(예를 들어, 휴대용 전자 디바이스 또는 HMD))의 컴포넌트들이거나 또는 그에 데이터를 제공한다. 일부 실시예들에서, 하나 이상의 이미징 센서들은 디바이스의 디스플레이 반대편의 디바이스의 면 상에 하나 이상의 후방-대면 카메라들을 포함한다. 일부 실시예들에서, 입력 제스처들은 머리 장착형 시스템의 센서 시스템(예를 들어, 사용자의 좌측 눈에 대한 좌측 이미지 및 사용자의 우측 눈에 대한 우측 이미지를 제공하는 입체 디스플레이를 포함하는 VR 헤드셋)에 의해 검출된다. 예를 들어, 머리 장착형 시스템의 컴포넌트들인 하나 이상의 카메라들이 머리 장착형 시스템의 전방 및/또는 밑면에 장착된다. 일부 실시예들에서, 하나 이상의 이미징 센서들은, 이미징 센서들이 머리 장착형 시스템의 이미지들 및/또는 머리 장착형 시스템의 사용자를 캡처하도록, 머리 장착형 시스템이 사용되는 공간에 위치된다(예를 들어, 룸 내의 다양한 위치들에서 머리 장착형 시스템 주위에 배열됨). 일부 실시예들에서, 입력 제스처들은 헤드 업 디바이스의 센서 시스템(예를 들어, 헤드 업 디스플레이, 그래픽들을 디스플레이하는 능력을 갖는 자동차 앞유리, 그래픽들을 디스플레이하는 능력을 갖는 윈도우, 그래픽들을 디스플레이하는 능력을 갖는 렌즈)에 의해 검출된다. 예를 들어, 하나 이상의 이미징 센서들이 자동차의 내부 표면들에 부착된다. 일부 실시예들에서, 센서 시스템은 하나 이상의 깊이 센서들(예를 들어, 센서들의 어레이)을 포함한다. 예를 들어, 하나 이상의 깊이 센서들은 하나 이상의 광-기반(예를 들어, 적외선) 센서들 및/또는 하나 이상의 음향-기반(예를 들어, 초음파) 센서들을 포함한다. 일부 실시예들에서, 센서 시스템은 광 방출기(예를 들어, 적외선 방출기) 및/또는 음향 방출기(예를 들어, 초음파 방출기)와 같은 하나 이상의 신호 방출기들을 포함한다. 예를 들어, 광(예를 들어, 미리 결정된 패턴을 갖는 적외선 광 방출기들의 어레이로부터의 광)이 손(예를 들어, 손(7102)) 상에 투영되는 동안, 광의 조명 하의 손의 이미지는 하나 이상의 카메라들에 의해 캡처되고, 캡처된 이미지는 손의 포지션 및/또는 구성을 결정하기 위해 분석된다. 터치-감응형 표면들의 신호들 또는 다른 직접 접촉 메커니즘 또는 근접-기반 메커니즘들을 사용하는 것과 대조적으로, 입력 제스처들을 결정하기 위해 손으로 지향된 이미지 센서들로부터의 신호들을 사용하는 것은, 특정 입력 디바이스 또는 입력 구역에 의해 부과된 제약들을 경험하지 않으면서, 사용자가 자신의 손으로 입력 제스처들을 제공할 때 큰 모션들을 실행할지 또는 비교적 정지된 상태로 유지될지를 자유롭게 선택할 수 있게 한다.
일부 실시예들에서, 탭 입력은, 선택적으로, 사용자의 손의 검지 손가락 위에서(예를 들어, 엄지 손가락에 인접한 검지 손가락의 면 위에서) 엄지 손가락의 탭 입력이다. 일부 실시예들에서, 검지 손가락의 면으로부터 엄지 손가락의 리프트 오프를 요구하지 않고 탭 입력이 검출된다. 일부 실시예들에서, 엄지 손가락의 하향 이동 후에 엄지 손가락의 상향 이동이 뒤따르고 엄지 손가락은 임계량의 시간 미만 동안 검지 손가락의 면과 접촉한다는 결정에 따라 탭 입력이 검출된다. 일부 실시예들에서, 엄지 손가락이 상승된 위치로부터 터치-다운 위치로 이동하고 적어도 제1 임계량의 시간(예를 들어, 탭 시간 임계치 또는 탭 시간 임계치보다 긴 다른 시간 임계치) 동안 터치-다운 위치에 유지된다는 결정에 따라 탭-홀드 입력이 검출된다. 일부 실시예들에서, 컴퓨터 시스템은 검지 손가락 상의 엄지 손가락에 의한 탭-홀드 입력을 검출하기 위해, 손 전체가 적어도 제1 임계량의 시간 동안의 위치에서 실질적으로 정지 상태로 유지될 것을 요구한다. 일부 실시예들에서, 터치-홀드 입력은, 손 전체가 실질적으로 정지된 상태로 유지될 것을 요구하지 않으면서 검출된다(예를 들어, 엄지 손가락이 검지 손가락의 면 상에 놓인 동안 손 전체가 이동할 수 있음). 일부 실시예들에서, 탭-홀드-드래그 입력은, 엄지 손가락이 검지 손가락의 면 상에서 터치 다운하고 엄지 손가락이 검지 손가락의 면 상에 놓여 있는 동안에 손 전체가 움직일 때 검출된다.
일부 실시예들에서, 플릭(flick) 제스처는, 선택적으로, 검지 손가락에 걸친(예를 들어, 손바닥 면으로부터 검지 손가락의 뒷면으로의) 엄지 손가락의 이동에 의한 푸시 또는 플릭 입력이다. 일부 실시예들에서, 엄지 손가락의 확장 이동은, 예를 들어, 엄지 손가락에 의한 상향 플릭 입력에서와 같이, 검지 손가락의 면으로부터 멀어지는 상향 이동을 수반한다. 일부 실시예들에서, 검지 손가락은 엄지 손가락의 전방 및 상향 이동 동안 엄지 손가락의 방향과 반대 방향으로 이동한다. 일부 실시예들에서, 엄지 손가락이 확장된 포지션으로부터 후퇴 포지션으로 이동함으로써, 역방향 플릭 입력이 수행된다. 일부 실시예들에서, 검지 손가락은 엄지 손가락의 후방 및 하향 이동 동안 엄지 손가락의 방향과 반대 방향으로 이동한다.
일부 실시예들에서, 스와이프 제스처는, 선택적으로, 검지 손가락을 따라(예를 들어, 엄지 손가락에 인접한 검지 손가락의 면을 따라 또는 손바닥의 면 상에서) 엄지 손가락의 이동에 의한 스와이프 입력이다. 일부 실시예들에서, 검지 손가락은 선택적으로 확장된 상태(예를 들어, 실질적으로 일직선) 또는 말려진 상태에 있다. 일부 실시예들에서, 검지 손가락은 스와이프 입력 제스처에서 엄지 손가락의 이동 동안 확장된 상태와 말려진 상태 사이에서 이동한다.
일부 실시예들에서, 다양한 손가락들의 상이한 지골(phalange)들은 상이한 입력들에 대응한다. 다양한 손가락들(예를 들어, 검지 손가락, 중지 손가락, 약지 손가락, 및 선택적으로, 새끼 손가락)의 다양한 지골들에 걸친 엄지 손가락의 탭 입력은 선택적으로 상이한 동작들에 맵핑된다. 유사하게, 일부 실시예들에서, 상이한 푸시 또는 클릭 입력들은 개개의 사용자 인터페이스 접촉에서 상이한 동작들을 트리거하기 위해 상이한 손가락들 및/또는 손가락의 상이한 부분들에 걸쳐 엄지 손가락에 의해 수행될 수 있다. 유사하게, 일부 실시예들에서, 상이한 손가락들을 따라 그리고/또는 상이한 방향들로 (예를 들어, 손가락의 원위 또는 근위 단부를 향해) 엄지 손가락에 의해 수행되는 상이한 스와이프 입력들은 개개의 사용자 인터페이스 상황에서 상이한 동작들을 트리거한다.
일부 실시예들에서, 컴퓨터 시스템은 탭 입력들, 플릭 입력들 및 스와이프 입력들이 엄지 손가락의 이동 유형들에 기초하여 상이한 유형들의 입력들로서 취급되는 것으로 취급한다. 일부 실시예들에서, 컴퓨터 시스템은 엄지 손가락에 의해 탭핑되거나, 터치되거나, 스와이프되는 상이한 손가락 위치들을 갖는 입력들을 주어진 입력 유형(예를 들어, 탭 입력 유형, 플릭 입력 유형, 및/또는 스와이프 입력 유형)의 상이한 서브-입력-유형들(예를 들어, 근위, 중간, 원위 하위 유형들, 또는 검지, 중지, 약지, 또는 새끼 하위 유형들)로 취급한다. 일부 실시예들에서, 움직이는 손가락(예를 들어, 엄지 손가락)에 의해 수행되는 이동의 양, 및/또는 손가락의 이동과 연관된 다른 이동 메트릭들(예를 들어, 속도, 초기 속도, 종료 속도, 지속기간, 방향, 및/또는 이동 패턴)은 손가락 입력에 의해 트리거되는 동작에 정량적으로 영향을 주는 데 사용된다.
일부 실시예들에서, 컴퓨터 시스템은 엄지 손가락에 의한 이동들의 시퀀스, 예를 들어, 탭-스와이프 입력(예를 들어, 손가락 상의 엄지 손가락의 터치 다운에 이은 손가락의 면을 따른 스와이프), 탭-플릭 입력(예를 들어, 손가락 위에서 엄지 손가락의 터치 다운에 이은 손가락의 손바닥 측으로부터 후방 측으로 손가락에 걸친 플릭), 더블 탭 입력(예를 들어, 대략 동일한 위치에서 손가락의 면 상의 2개의 연속적인 탭들) 등을 조합하는 조합 입력 유형들을 인식한다.
일부 실시예들에서, 제스처 입력들은 엄지 손가락 대신에 검지 손가락에 의해 수행된다(예를 들어, 검지 손가락이 엄지 손가락 상에서 탭 또는 스와이프를 수행하거나, 또는 엄지 손가락과 검지 손가락이 핀치 제스처를 수행하도록 서로를 향해 이동됨). 일부 실시예들에서, 손목 이동(예를 들어, 수평 방향 또는 수직 방향으로의 손목의 플릭)은 손가락 이동 입력들에 대해 바로 앞서, (예를 들어, 임계량의 시간 내에서) 바로 후속하여, 또는 동시에 수행되어, 손목 이동에 의한 수정자 입력이 없는 손가락 이동 입력들과 비교하여, 현재 사용자 인터페이스 상황에서 부가적인 동작들, 상이한 동작들 또는 수정된 동작들을 트리거한다. 일부 실시예들에서, 사용자의 손바닥이 사용자의 얼굴을 향하도록 수행된 손가락 입력 제스처들은 사용자의 손바닥이 사용자의 얼굴로부터 멀리 향하게 하여 수행되는 손가락 입력 제스처들과 상이한 유형의 제스처들로서 취급된다. 예를 들어, 사용자의 손바닥이 사용자를 향하여 수행되는 탭 제스처는, 사용자의 손바닥이 사용자의 얼굴로부터 멀리 향하도록 수행된 탭 제스처에 응답하여 수행되는 동작(예를 들어, 동일한 동작)과 비교하여 추가된(또는 감소된) 프라이버시 보호를 갖는 동작을 수행한다.
본 개시내용에 제공된 예들에서 일 유형의 동작을 트리거하기 위해 하나의 유형의 손가락 입력이 사용될 수 있지만, 다른 실시예들에서 동일한 유형의 동작을 트리거하기 위해 다른 유형들의 손가락 입력이 선택적으로 사용된다.
도 7a 내지 도 7j에 관한 부가적인 설명들은 아래의 도 8 및 도 9에 관해 설명된 방법들(800, 900)을 참조하여 아래에서 제공된다.
도 8은 일부 실시예들에 따른, 사용자가 사용자 인터페이스 요소에 주의를 기울이지 않고 있는 동안 3차원 환경에서 사용자 인터페이스 요소를 시각적으로 강조해제하는 방법(800)의 흐름도이다.
일부 실시예들에서, 방법(800)은, 제1 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 및/또는 프로젝터), 및 하나 이상의 입력 디바이스들, 예컨대 하나 이상의 센서들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(800)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(800) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 컴퓨터 시스템은 제1 디스플레이 생성 컴포넌트(예를 들어, 제1 디스플레이 생성 컴포넌트는 헤드업 디스플레이, 머리 장착형 디스플레이(HMD), 디스플레이, 터치스크린, 및/또는 프로젝터임) 및 하나 이상의 입력 디바이스들(예를 들어, 카메라들, 제어기들, 터치 감응형 표면들, 조이스틱들, 버튼들, 장갑들, 워치들, 모션 센서들, 및/또는 배향 센서들)과 통신한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 도 7a 내지 도 7j에 관해 설명된 제1 디스플레이 생성 컴포넌트(7100)이다. 일부 실시예들에서, 컴퓨터 시스템은, 제1 디스플레이 생성 컴포넌트, 및 하나 이상의 입력 디바이스들 중 적어도 일부와 동일한 하우징으로 둘러싸인 하나 이상의 프로세서들 및 메모리를 갖는 통합 디바이스이다. 일부 실시예들에서, 컴퓨터 시스템은, 제1 디스플레이 생성 컴포넌트 및/또는 하나 이상의 입력 디바이스들과 별개인 하나 이상의 프로세서들 및 메모리를 포함하는 컴퓨팅 컴포넌트(예를 들어, 서버, 모바일 전자 디바이스, 예컨대 스마트 폰 또는 태블릿 디바이스, 웨어러블 디바이스, 예컨대 워치, 손목밴드, 또는 이어폰들 웨어러블 디바이스, 데스크톱 컴퓨터, 및/또는 랩톱 컴퓨터)를 포함한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들은 동일한 하우징 내에 통합되고 그것으로 둘러싸인다. 일부 실시예들에 따르면, 방법(800)의 특징들 중 많은 것이 도 7a 내지 도 7j에 관해 설명된다.
방법(800)은 사용자가 사용자 인터페이스 요소에 주의를 기울이지 않을 때 시각적으로 강조해제되는 사용자 인터페이스 요소를 디스플레이하는 것에 관한 것이다. 사용자 인터페이스 요소는 사용자가 물리적 환경 내에서 주위를 이동함에 따라 강조해제된 상태로 유지되고, 사용자가 사용자 인터페이스 요소에 주의를 기울일 때, 사용자 인터페이스 요소는 더 이상 강조해제되지 않고, 3차원 환경의 사용자의 현재 뷰에 기초하여 3차원 환경 내의 포지션에서 사용자에 대해 디스플레이된다. 사용자가 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부에 기초하여 그리고 사용자의 현재 시점에 기초하여 자동으로 사용자 인터페이스 객체들을 강조해제하고 그들의 디스플레이된 위치를 변경시키는 것은 사용자가 3차원 환경의 상이한 부분들에 대한 그들의 주의를 시프트할 때 실시간 시각적 피드백을 제공한다. 개선된 시각적 피드백을 사용자에게 제공하는 것은, (예를 들어, 시스템을 동작시키거나/그와 상호작용할 때 사용자가 적절한 입력들을 제공하는 것을 돕고 사용자 실수들을 감소시킴으로써) 시스템의 작동성을 향상시키고 사용자-시스템 인터페이스를 더 효율적으로 만들며, 이는 부가적으로, 사용자가 시스템을 더 신속하고 효율적으로 사용할 수 있게 함으로써 시스템의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
컴퓨터 시스템은 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경의 제1 뷰에서 제1 사용자 인터페이스 객체를 디스플레이한다(802). 일부 실시예들에서, 제1 사용자 인터페이스 객체는 미리 결정된 레이아웃의 하나 이상의 사용자 인터페이스 객체들을 포함한다(예를 들어, 사용자 인터페이스 객체(7104-1)는 사용자 인터페이스 객체(7104-1) 내에서 디스플레이된 하나 이상의 사용자 인터페이스 객체들을 포함한다).
제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 하나 이상의 입력 디바이스들을 통해, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키는지 여부(예를 들어, 예컨대 사용자가 시선 검출 기준들 및/또는 머리 포지션 기준들을 만족시키는지 여부를 결정함으로써, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부)를 검출한다(804). 예를 들어, 도 7c 및 도 7d를 참조하여 위에서 설명된 바와 같이, 일부 실시예들에서, 컴퓨터 시스템은 (예를 들어, 사용자의 눈으로부터 사용자 인터페이스 객체(7104-1)로의 파선에 의해 표시된 바와 같이) 사용자가 사용자 인터페이스 객체(7104-1)에 주의를 기울이고 있는지 여부, 또는 (예를 들어, 사용자의 눈으로부터 물리적 객체의 표현(7014')으로의 파선에 의해 표시된 바와 같이) 사용자가 사용자 인터페이스 객체(7104-2)에 주의를 기울이고 있지 않은지 여부를 검출한다.
사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 것(예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있지 않다는 것)을 검출하는 것에 응답하여, 컴퓨터 시스템은 수정된 외관으로 제1 사용자 인터페이스를 디스플레이하며, 여기서 수정된 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 것은 3차원 환경 내의 하나 이상의 다른 객체들(예를 들어, 실제 객체들 또는 가상 객체들)에 대해 제1 사용자 인터페이스 객체를 강조해제하는 것을 포함한다(806). 예를 들어, 도 7d를 참조하여 위에서 설명된 바와 같이, 컴퓨터 시스템은 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있지 않은 동안 제1 사용자 인터페이스 객체(7104-2)를 시각적으로 강조해제한다(예를 들어, 제1 사용자 인터페이스 객체(7104-2)의 불투명도를 감소시키고 그리고/또는 그의 블러를 증가시킨다).
수정된 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 하나 이상의 입력 디바이스들을 통해, 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출한다(808). 예를 들어, 도 7d 내지 도 7h를 참조하여 설명된 바와 같이, 사용자는 물리적 환경에서 사용자의 위치를 이동시킨다. 일부 실시예들에서, 사용자의 위치(및 현재 시점)는 선택적으로, 물리적 환경 내의(예를 들어, 3차원 공간 내의) 사용자의 포지션 및 물리적 환경 내의 사용자의 포즈/배향 둘 모두를 포함한다. 일부 실시예들에서, 물리적 환경은 3차원 환경에 대응하여(예를 들어, 물리적 환경의 적어도 일부는 패스-스루 콘텐츠로서 디스플레이됨), 물리적 환경 내의 사용자의 배향 및/또는 포지션의 변화는 3차원 환경의 사용자의 현재 뷰를 업데이트한다. 일부 실시예들에서, 사용자가 주의 기준들을 만족시키는지 여부를 컴퓨터 시스템이 결정하기 전에(예를 들어, 또는 그에 대한 새로운 결정을 행하기 전에), 제1 이동은 이동 기준들을 만족시켜야 한다(예를 들어, 사용자는 물리적 환경 내의 이전 포지션으로부터 적어도 임계량으로 이동해야 하고, 그리고/또는 사용자는 물리적 환경에서 사용자의 몸통(예를 들어, 단지 사용자의 머리만이 아님)을 이동시켜야 한다). 선택적으로, 물리적 환경 내의 사용자의 포즈 및/또는 배향의 변화는 이동 기준들을 만족시킬 수 있다.
물리적 환경에 대한 사용자의 시점의 제1 이동을 검출한 이후(예를 들어, 시점의 제1 이동을 검출하는 것에 따라 또는 그에 응답하여), 컴퓨터 시스템은 도 7h를 참조하여 설명된 바와 같이, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시킨다는 것(예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있다는 것)을 검출한다(810).
사용자가 주의 기준들을 만족시킨다는 것을 검출하는 것에 응답하여, 컴퓨터 시스템은 3차원 환경의 제1 뷰와 별개인 3차원 환경의 제2 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하며, 여기서 3차원 환경의 제2 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하는 것은, 제1 사용자 인터페이스 객체가 수정된 외관으로 디스플레이되었을 때보다 더 많이 3차원 환경 내의 하나 이상의 다른 객체들(예를 들어, 실제 또는 가상 객체들)에 대해 제1 사용자 인터페이스 객체를 강조하는 외관으로 제1 사용자 인터페이스 객체를 디스플레이하는 것을 포함한다(812). 예를 들어, 도 7h를 참조하여 설명된 바와 같이, 제1 사용자 인터페이스 객체는 (예를 들어, 도 7d의 3차원 환경 내의 그의 포지션과 비교하여) 3차원 환경 내의 상이한 포지션에서 디스플레이되지만, 물리적 환경 내의 사용자의 현재 시점(예를 들어, 위치 및/또는 포지션)에 대응하는 제1 앵커 포지션에 대한 제1 공간적 관계를 계속 갖는다. 추가로, 도 7h에 예시된 바와 같이, 사용자 인터페이스 객체(7104-6)는 사용자가 사용자 인터페이스 객체(7104-6)를 보는 것에 응답하여 (사용자가 사용자 인터페이스 객체에 주의를 기울이고 있지 않은 동안 그것이 그랬던 것처럼) 더 이상 시각적으로 강조해제되지 않는다. 이와 같이, 일부 실시예들에서, 제1 사용자 인터페이스 객체는 사용자가 물리적 환경에서 이동함에 따라 사용자를 뒤따르는 것으로서 디스플레이된다.
일부 실시예들에서, 제1 사용자 인터페이스 객체는 물리적 환경 내의 사용자의 신체의 위치에 대응하는 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는다. 예를 들어, 제1 사용자 인터페이스 객체는 사용자의 몸통, 손, 머리, 또는 사용자의 신체의 다른 부분에 대해 동일한 일반적인 위치에 유지된다(또는 그에 로킹됨). 일부 실시예들에서, 제1 공간적 관계는 사용자의 시점의 이동 전 및 그 이후 유지된다. 예를 들어, 도 7c 및 도 7h를 참조하여 설명된 바와 같이, 사용자의 시점과 사용자 인터페이스 객체(7104-1, 7104-6)의 인스턴스들 사이의 제1 공간적 관계는 사용자가 물리적 환경에서 이동하기 전 및 그 이후 유지된다. (예를 들어, 사용자가 물리적 환경 주위에서 이동함에 따라 사용자의 현재 시점을 변경시킴으로써) 사용자가 관점이 변경될 때에도, 사용자의 신체의 일부에 대해 동일한 일반적인 위치에 유지되는(예를 들어, 또는 그에 로킹되는) 포지션에서 특정 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출한 이후, 컴퓨터 시스템은 (예를 들어, 시간 임계치가 만족될 때까지) 3차원 환경 내의 동일한 앵커 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체는 초기에, 사용자의 시점이 이동하는 동안 3차원 환경 내의 동일한 위치에 유지된다. 일부 실시예들에서, 사용자의 시점이 임계 거리 초과로 이동함에 따라 그리고/또는 사용자의 시점이 임계 시간량 동안 이동됨에 따라(예를 들어, 사용자가 이동하고 정지하지만, 초기 시점으로 복귀하지 않음), 사용자 인터페이스 객체는 도 7e 내지 도 7h를 참조하여 설명된 바와 같이 3차원 환경에서 이동한다. 일부 실시예들에서, 사용자 인터페이스 객체의 이동 레이트는 사용자의 시점의 이동 레이트보다 느리다. (예를 들어, 사용자가 물리적 환경 주위에서 이동함에 따라 사용자의 현재 시점을 변경시킴으로써) 사용자가 관점이 변경될 때에도, 3차원 환경에 대해 동일한 일반적인 위치에 유지되었던(예를 들어, 또는 그에 로킹되었던) 포지션에서 특정 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 물리적 환경에 대한 사용자의 시점의 제1 이동을 검출한 이후, 제1 이동이 시간 임계치를 만족시킨다(예를 들어, 사용자가 적어도 시간 임계치 동안 이동하거나, 또는 사용자가 시간 임계치 동안 이동했고, 제2 시점에 머물렀다)는 결정에 따라, 컴퓨터 시스템은 도 7h를 참조하여 위에서 설명된 바와 같이, 3차원 환경 내의 제1 사용자 인터페이스 객체를 사용자의 시점에 대해 동일한 포지션(예를 들어, 사용자의 시점의 이동 전과 동일한 포지션)으로 이동시킨다. 사용자가 미리 정의된 양의 시간보다 긴 시간 동안 물리적 환경 주위에서 이동한(예를 들어, 그리고/또는 미리 정의된 양의 시간 동안 3차원 환경 내의 상이한 포지션에 유지된) 이후, 3차원 환경 내에서 이동되는 것으로서 특정 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경에서 제1 사용자 인터페이스 객체를 리포지셔닝시키기(예를 들어, 앵커링하기) 위한 사용자 입력을 수신한다. 일부 실시예들에서, 3차원 환경에서 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 입력을 수신하는 것에 응답하여, 컴퓨터 시스템은, 예를 들어 도 7j를 참조하여 위에서 설명된 바와 같이, 입력에 따라 제1 사용자 인터페이스 객체를 3차원 환경 내의 개개의 포지션으로 리포지셔닝시킨다. 일부 실시예들에서, 입력에 따라 제1 사용자 인터페이스 객체를 3차원 환경 내의 개개의 포지션으로 리포지셔닝시킨 이후, 컴퓨터 시스템은 사용자의 시점을 변경시키기 위한 입력을 검출하고, 사용자의 시점을 변경시키기 위한 입력을 검출하는 것에 응답하여, 컴퓨터 시스템은 사용자의 시점을 변경시키기 위한 입력에 따라 사용자의 시점을 변경시키고, 사용자의 현재 시점으로부터 3차원 환경에서 제1 사용자 인터페이스 객체를 디스플레이하며, 3차원 환경에서 제1 사용자 인터페이스 객체를 디스플레이하는 것은, 제1 사용자 인터페이스 객체가 제1 미리 정의된 구역 내에 포지셔닝된다는 결정에 따라, 물리적 환경 내의 사용자의 시점의 위치에 대응하는 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는 개개의 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것(예를 들어, 그리고 제1 사용자 인터페이스 객체가 제1 미리 정의된 구역 내에 포지셔닝되는 동안, 물리적 환경에 대한 사용자의 시점의 이동을 검출한 이후 개개의 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것), 및 제1 사용자 인터페이스 객체가 제1 미리 정의된 구역(예를 들어, 또는 복수의 미리 정의된 구역들 중 임의의 미리 정의된 구역) 내에 포지셔닝되지 않는다는 결정에 따라, 물리적 환경 내의 사용자의 신체의 위치에 대응하지 않는 3차원 환경 내의 동일한 앵커 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 것을 포함한다. 예를 들어, 도 7c 내지 도 7h를 참조하여 위에서 설명된 바와 같이, 제1 미리 정의된 구역은 사용자가 물리적 환경에서 이동함에 따라 사용자의 시점을 뒤따르는 구역이다. 일부 실시예들에서, 제1 미리 정의된 구역은 지연으로 사용자의 시점을 뒤따른다(예를 들어, 제1 미리 정의된 구역은 사용자의 이동 레이트보다 느린 레이트로 이동된다). 예를 들어, 제1 미리 정의된 구역은 초기에, 사용자의 시점이 임계량만큼(예를 들어, 적어도 임계량만큼) 이동하고 그리고/또는 사용자의 시점이 임계량의 시간 동안(예를 들어, 적어도 임계량의 시간 동안) 이동할 때까지 사용자의 시점과 함께 이동되지 않는다. 일부 실시예들에서, 제1 미리 정의된 구역은 본 명세서에서 느린 뒤따르기 구역으로 지칭된다. 사용자가 물리적 환경 주위에서 이동할 때에도 사용자가 특정 사용자 인터페이스 객체들을 구역에 앵커링하게 하는 것 - 구역 내에 배치된 사용자 인터페이스 객체들은 3차원 환경에서 자동으로 사용자를 뒤따름 - 및 구역 외부에 배치된 사용자 인터페이스 객체들로부터 구역 내에 배치된 사용자 인터페이스 객체들을 구별하는 것 - 이는 대신에, 그들이 3차원 환경에서 자동으로 사용자를 뒤따르지 않도록 3차원 환경에 앵커링됨 - 은 사용자가 물리적 환경에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 미리 정의된 구역은 3차원 환경 내의 복수의 미리 정의된 구역들로부터 선택되고, 여기서 제1 미리 정의된 구역은 사용자의 시점의 위치에 대응하는 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖고, 복수의 미리 정의된 구역들 중 제2 미리 정의된 구역은 사용자의 시점의 위치에 대응하는 3차원 환경 내의 제2 앵커 포지션에 대한 제2 공간적 관계(예를 들어, 제1 미리 정의된 구역의 제1 공간적 관계와는 별개임)를 갖는다. 예를 들어, 도 7j를 참조하여 설명된 바와 같이, 사용자는 사용자 인터페이스 요소를 복수의 미리 정의된 구역들 중 임의의 구역으로 리포지셔닝시키도록 가능하게 되며, 여기서 각각의 미리 정의된 구역은 사용자의 현재 시점에 대한 상이한 상대적 공간 배열을 갖는다. 일부 실시예들에서, 미리 정의된 구역들 내에 배치된 사용자 인터페이스 객체들은 (예를 들어, 느린 뒤따르기 거동으로) 사용자의 시점의 이동을 뒤따른다. 일부 실시예들에서, 제1 미리 정의된 구역은 사용자에 대한 3차원 환경의 사용자의 현재 뷰 내의 제1 포지션에서 디스플레이되며, 여기서 제1 포지션은 사용자의 이동 전 및 그 이후 유지되고, 제2 미리 정의된 구역은 사용자에 대한 3차원 환경의 사용자의 현재 뷰 내의 제2 포지션에서 디스플레이되고, 제2 포지션은 사용자의 이동 전 및 그 이후 유지된다. 3차원 환경 내의 복수의 구역들 중 임의의 구역 내에 배치되도록 특정 사용자 인터페이스 객체들의 앵커를 변경시키기 위한 옵션들을 사용자에게 제공하는 것 - 각각의 구역은 사용자의 현재 뷰에 대해 상이한 상대적 포지션을 가짐 - 은 사용자가 보기에 가장 편안하거나 편리한 포지션에 사용자가 특정 사용자 인터페이스 객체들을 배치하는 것을 쉽게 만들고, 사용자가 사용자 인터페이스 객체들을 배치할 곳을 선택할 때 그리고 사용자가 물리적 환경에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 사용자가 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 사용자 입력을 개시하는 것을 검출하는 것에 응답하여, 컴퓨터 시스템은 제1 미리 정의된 구역에 대한 시각적 표시를 디스플레이하고, 제1 사용자 인터페이스 객체를 제1 미리 정의된 구역으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 동안, 제1 미리 정의된 구역에 대한 시각적 표시의 디스플레이를 유지한다. 일부 실시예들에서, 컴퓨터 시스템은 선택적으로, 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 사용자 입력을 더 이상 검출하지 않는 것에 응답하여(예를 들어, 사용자 입력의 종료에 응답하여), 제1 미리 정의된 구역에 대한 시각적 표시를 디스플레이하는 것을 중단한다. 일부 실시예들에서, 컴퓨터 시스템은 복수의 미리 정의된 구역들 중의 미리 정의된 구역들 각각에 대한 시각적 표시들을 디스플레이한다. 일부 실시예들에서, 컴퓨터 시스템은 느린 뒤따르기 구역(들)의 윤곽들을 제공하여, 사용자는 제1 사용자 인터페이스 객체가 느린 뒤따르기 거동을 갖도록 그들이 제1 사용자 인터페이스 객체를 배치(예를 들어, 드래그 앤 드롭, 또는 플롭)할 수 있는 곳을 알게 된다(예를 들어, 여기서 제1 사용자 인터페이스 객체가 느린 뒤따르기 구역에 있는 동안, 제1 사용자 인터페이스 객체는 (예를 들어, 지연으로) 사용자의 시점을 뒤따른다). 예를 들어, 도 7j를 참조하여 설명된 바와 같이, 컴퓨터 시스템은 선택적으로, 미리 정의된 구역들의 윤곽을 제공한다. 3차원 환경 내에서 복수의 구역들의 윤곽들을 자동으로 디스플레이하는 것 - 각각의 구역은 사용자의 현재 뷰에 대해 상이한 상대적 포지션을 가짐 - 은 사용자가 특정 사용자 인터페이스 객체들을 앵커링할 구역을 선택하는 것을 쉽게 만들어서, 사용자 인터페이스 객체가 구역 내에 배치될 때 사용자가 물리적 환경에서 이동함에 따라 사용자 인터페이스 객체들이 사용자를 뒤따르게 할 것이고, 사용자가 보기에 가장 편안하거나 편리한 3차원 환경 내에 사용자 인터페이스 객체를 포지셔닝할 곳을 사용자가 더 쉽게 결정하게 허용하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체에 대한 주의 기준들은 시선 기준을 포함한다. 예를 들어, 컴퓨터 시스템은 도 7c를 참조하여 위에서 설명된 바와 같이, 사용자가 제1 사용자 인터페이스 객체를 응시하고 있는지(예를 들어, 제1 사용자 인터페이스 객체를 보고 있는지 및/또는 그에 주의를 기울이고 있는지) 여부를 결정하기 위해 하나 이상의 카메라들 및/또는 다른 센서들을 사용한다. 사용자로부터의 부가적인 입력을 요구하지 않으면서, 사용자가 사용자 인터페이스 객체를 응시하고 있는지 여부를 검출함으로써 사용자가 특정 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부를 자동으로 결정하는 것, 및 사용자가 사용자 인터페이스 객체를 응시하고 있을 때 자동으로 사용자 인터페이스 객체의 디스플레이를 업데이트하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체에 대한 주의 기준들은 물리적 환경 내의 사용자의 머리의 포지션에 대한 기준을 포함한다. 예를 들어, 사용자의 머리가 물리적 환경 내에서 (예를 들어, 포즈, 배향, 및/또는 포지션에서) 이동함에 따라, 컴퓨터 시스템은 도 7c를 참조하여 위에서 설명된 바와 같이, 사용자의 머리가 제1 사용자 인터페이스 객체에 대해 특정 포즈, 배향 및/또는 포지션에 있는지를 결정한다. 사용자로부터의 부가적인 입력을 요구하지 않으면서, 사용자의 머리가 사용자 인터페이스 객체를 향해 돌려지는 것과 같이 특정 포지션에 있는지 여부를 검출함으로써 사용자가 특정 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부를 자동으로 결정하는 것, 및 사용자의 머리가 특정 포지션에 있을 때 자동으로 사용자 인터페이스 객체의 디스플레이를 업데이트하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은, 제1 사용자 인터페이스 객체의 적어도 일부 상에 디스플레이된 제1 어포던스로 지향되는 핀치 입력(예를 들어, 서로 접촉하게 만들기 위해 또는 서로로부터의 접촉을 해제하기 위해 손의 2개 이상의 손가락들의 이동을 포함하는 핀치 입력), 뒤이어 핀치 입력을 수행했던 손의 이동을 검출(예를 들어, 수신)하고, 손의 이동에 응답하여, 손의 이동에 따라 제1 사용자 인터페이스 객체의 크기를 변경시킨다. 예를 들어, 사용자는 도 7j를 참조하여 설명된 바와 같이 제1 사용자 인터페이스 객체를 크기조절할 수 있다. 일부 실시예들에서, 핀치 입력을 수행했던 손의 이동은 드래그 제스처이다(예를 들어, 핀치 및 드래그 제스처는 하나의 손으로 수행된다). 예를 들어, 핀치 제스처는, 사용자의 손의 포지션을 제1 포지션(예를 들어, 드래그의 시작 포지션)으로부터 제2 포지션(예를 들어, 드래그의 종료 포지션)으로 변경시키는 드래그 입력과 함께(예를 들어, 그에 후속하여), 서로와의 접촉을 만들기 위해 또는 서로로부터 접촉을 해제하기 위해 손의 2개 이상의 손가락들의 이동을 포함한다. 일부 실시예들에서, 사용자는 드래그 입력을 수행하는 동안 핀치 제스처를 유지하고, (예를 들어, 제2 포지션에서) 드래그 제스처를 종료하기 위해 핀치 제스처를 해제한다(예를 들어, 자신의 2개 이상의 손가락들을 개방함). 예를 들어, 핀치 입력은 제1 어포던스를 선택하고, 사용자는, 일단 선택되면, (예를 들어, 제1 사용자 인터페이스 객체의 크기를 증가시키기 위해) 제1 사용자 인터페이스 객체의 중심 부분으로부터 멀어지게 어포던스를 드래그하고 그리고/또는 (예를 들어, 제1 사용자 인터페이스 객체의 크기를 감소시키기 위해) 제1 사용자 인터페이스 객체의 중심 부분을 향해 어포던스를 드래그하도록 가능하게 된다. 일부 실시예들에서, 제1 어포던스는 제1 사용자 인터페이스 객체의 코너 상에 디스플레이된다(예를 들어, 제1 어포던스는 크기조절 어포던스이다). 일부 실시예들에서, 사용자는 (예를 들어, 어포던스를 선택하기 위해) 제1 어포던스를 핀칭하고, 제1 어포던스를 핀칭하고 있는 동일한 손으로, 제1 사용자 인터페이스 객체의 코너를 3차원 환경 내의 제1 포지션으로부터 제2 포지션으로 드래그한다. 예를 들어, 사용자는 제1 사용자 인터페이스 객체를 확대시키기 위해 외향으로 어포던스를 드래그하거나, 또는 제1 사용자 인터페이스 객체의 크기를 감소시키기 위해 내향으로 제1 사용자 인터페이스 객체의 코너를 드래그한다. 일부 실시예들에서, 손의 이동은, 사용자가 핀치 입력을 수행하고 있는 2개 이상의 손가락들 사이의 거리를 변경시키는 것을 포함한다. 예를 들어, 사용자는 사용자 인터페이스 객체로 하여금 크기가 감소되게 하도록 사용자의 엄지손가락 및 집게 손가락을 서로 가깝게 가져가고, 사용자는 사용자 인터페이스 객체로 하여금 크기가 증가되게 하도록 핀치 제스처를 개방한다(예를 들어, 2개의 손가락들(예를 들어, 사용자의 엄지손가락과 집게 손가락) 사이의 거리를 증가시킴). 다른 예에서, 사용자의 전체 손의 이동은 사용자의 손의 이동 방향에 의존하여 사용자 인터페이스 객체로 하여금 크기가 증가 또는 감소되게 한다. 일부 실시예들에서, 핀치 입력은 직접적으로 제1 어포던스로 지향되거나(예를 들어, 사용자는 제1 어포던스에 대응하는 포지션에서 핀치 입력을 수행함), 또는 핀치 입력은 간접적으로 제1 어포던스로 지향된다(예를 들어, 사용자는 제1 어포던스를 응시하는 동안 핀치 입력을 수행하며, 여기서 핀치 입력을 수행하는 동안 사용자의 손의 포지션은 제1 어포던스에 대응하는 포지션에 있지 않음). 예를 들어, 사용자는, 제1 어포던스에서 또는 그 부근에서(예를 들어, 제1 어포던스의 외측 에지 또는 제1 어포던스의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 제1 어포던스로 사용자의 입력을 지향시키도록 가능하게 된다. 일부 실시예들에서, 사용자는 추가로, 제1 어포던스에 주의를 기울임으로써(예를 들어, 제1 어포던스를 응시함으로써) 제1 어포던스로 사용자의 입력을 지향시키도록 가능하게 되고, 제1 어포던스에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서) 제스처를 개시한다. 예를 들어, 사용자가 제1 어포던스에 주의를 기울이고 있으면, 제스처는 제1 어포던스에 또는 그 부근에 있는 포지션에서 개시될 필요는 없다. 예컨대 사용자 인터페이스 객체의 코너를 핀칭하거나 또는 사용자 인터페이스 객체를 응시하는 동안 핀치 입력을 수행함으로써, 사용자가 핀치 입력을 수행하게 허용하고, 사용자의 동일한 손으로, 객체의 크기를 확대시키거나 축소시키기 위해 사용자 인터페이스 객체에 대해 (예를 들어, 핀치 입력을 계속 수행하는 동안) 사용자의 손을 드래그하게 함으로써 사용자 인터페이스 객체의 크기를 자동으로 업데이트하는 것은, 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하고, 사용자가 (예를 들어, 핀치 입력을 이용하여) 사용자 인터페이스 객체를 선택하고 사용자의 손을 3차원 환경 내의 상이한 포지션들로 드래그하여, 그에 따라 크기를 변경시킴으로써 사용자 인터페이스 객체를 직관적으로 크기조절하게 허용하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 제1 사용자 인터페이스 객체로 지향되는 제1 손을 이용한 핀치 입력 및 제2 손을 이용한 핀치 입력, 뒤이어 제1 손과 제2 손 사이의 거리의 변화를 수신(예를 들어, 검출)한다. 일부 실시예들에서, 제1 손과 제2 손 사이의 거리의 변화에 응답하여, 컴퓨터 시스템은 제1 손과 제2 손 사이의 거리의 변화에 따라 제1 사용자 인터페이스 객체의 크기를 변경시킨다. 예를 들어, 사용자는 양손 제스처(예를 들어, 핀치 및 드래그 입력)인 입력을 수행한다. 사용자는 사용자의 제1 손을 이용하여 사용자 인터페이스 객체를 핀칭하고, (예를 들어, 사용자의 제1 손을 이용하여 핀치 입력을 유지하면서) 사용자는 사용자의 제2 손을 이용하여 핀치 입력을 수행하고, 사용자의 제1 손에 더 가깝게 (예를 들어, 드래그 입력을 사용하여) 사용자의 제2 손을 이동시켜 사용자 인터페이스 객체의 크기를 감소시키고, 사용자의 제1 손으로부터 멀어지게 사용자의 제2 손을 이동시켜 사용자 인터페이스 객체의 크기를 증가시킨다. 일부 실시예들에서, 핀치 및 드래그 입력은 또한, 제1 사용자 인터페이스 객체로 하여금 (예를 들어, 도 7j를 참조하여 설명된 바와 같이, 제1 사용자 인터페이스 객체가 상이한 미리 정의된 구역들로 드래그됨에 따라) 3차원 환경 내에서 이동되게 한다. 일부 실시예들에서, 제1 손을 이용하여 수행된 핀치 입력은 직접적으로 제1 사용자 인터페이스 객체로 지향되거나(예를 들어, 사용자는 제1 사용자 인터페이스 객체에 대응하는 포지션에서 핀치 입력을 수행함), 또는 핀치 입력은 간접적으로 제1 사용자 인터페이스 객체로 지향된다(예를 들어, 사용자는 제1 사용자 인터페이스 객체를 응시하는 동안 핀치 입력을 수행하며, 여기서 핀치 입력을 수행하는 동안 사용자의 손의 포지션은 제1 사용자 인터페이스 객체에 대응하는 포지션에 있지 않음). 예를 들어, 사용자는, 제1 사용자 인터페이스 객체에서 또는 그 부근에서(예를 들어, 제1 사용자 인터페이스 객체의 외측 에지 또는 제1 사용자 인터페이스 객체의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 된다. 일부 실시예들에서, 사용자는 추가로, 제1 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 제1 사용자 인터페이스 객체를 응시함으로써) 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 되고, 제1 사용자 인터페이스 객체에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서) 제스처를 개시한다. 예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있으면, 제스처는 제1 사용자 인터페이스 객체에 또는 그 부근에 있는 포지션에서 개시될 필요는 없다. 일부 실시예들에서, 제2 손을 이용한 핀치 입력은 또한, 직접적으로 또는 간접적으로 검출될 수 있다(예를 들어, 핀치 입력은 제1 사용자 인터페이스 객체에 또는 그 부근에 있는 포지션에서 개시되거나, 또는 핀치 입력은 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있는 동안 임의의 포지션에서 개시된다). 일부 실시예들에서, 제1 손을 이용한 핀치 입력이 검출된 이후, 제2 손을 이용한 핀치 입력은 제1 손을 이용한 핀치 입력이 유지되는 동안 임의의 포지션에서 검출된다. 예를 들어, 제1 사용자 인터페이스 객체가 (예를 들어, 제1 손을 이용한 핀치 입력을 사용하여) 선택되는 동안, 제2 손을 이용한 핀치 입력은 (예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부에 관계없이) 임의의 포지션에서 검출된다. 일부 실시예들에서, 사용자는 (예를 들어, 제스처들의 조합을 사용하여) 3차원 환경에서 제1 사용자 인터페이스 객체를 동시에 크기조절하고 리포지셔닝(예를 들어, 이동)시킨다. 예를 들어, 사용자는 (예를 들어, 사용자 인터페이스 객체를 3차원 환경 내의 다른 포지션으로 드래그함으로써) 사용자 인터페이스 객체를 리포지셔닝시키기 위해 (예를 들어, 사용자의 제2 손을 이용한) 드래그 입력을 제공하면서, 제1 사용자 인터페이스 객체를 크기조절하기 위해, 위에서 설명된 핀치 입력을 제공한다. 사용자가 2개의 손들을 사용하게 허용함으로써 사용자 인터페이스 객체의 크기를 자동으로 업데이트하는 것 - 각각의 손은 사용자 인터페이스 객체의 일부, 예컨대 코너를 선택(예를 들어, 핀칭)함 -, 및 사용자 인터페이스 객체의 일부들이 선택되는 동안 사용자의 2개의 손들 사이의 거리의 변화에 기초하여 사용자 인터페이스 객체를 크기조절하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하여, 사용자가 사용자의 손들 사이의 거리를 증가시킴으로써 크기를 증가시키거나 또는 사용자의 손들 사이의 거리를 감소시킴으로써 크기를 감소시키도록 사용자 인터페이스 객체를 직관적으로 크기조절할 수 있게 하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 것은 3차원 환경 내의 하나 이상의 다른 가상 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 것을 포함한다. 예를 들어, 도 7d를 참조하여 설명된 바와 같이, 애플리케이션들(예를 들어, 애플리케이션 윈도우들, 애플리케이션 객체들), 사용자 인터페이스 객체들(예를 들어, 어포던스들 및/또는 제어부들), 가상 환경들(예를 들어, 몰입형 경험들) 등을 포함하는 하나 이상의 다른 가상 객체들은 시각적으로 강조해제되지 않는(예를 들어, 수정되지 않은 상태로 유지되는) 반면, 제1 사용자 인터페이스 객체는 시각적으로 강조해제된다. 사용자가 특정 사용자 인터페이스 객체들에 주의를 기울이고 있지 않을 때, 다른 디스플레이된 가상 콘텐츠에 대해 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은 사용자가 3차원 환경에서 상이한 가상 콘텐츠에 주의를 기울일 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 것은 물리적 환경 내의 하나 이상의 물리적 객체들의 표현들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 것을 포함한다. 예를 들어, 도 7d를 참조하여 설명된 바와 같이, 물리적 환경 내의 하나 이상의 물리적 객체들은 시각적으로 강조해제되지 않으면서 패스-스루 콘텐츠(예를 들어, 물리적 객체의 표현(7014'))로서 3차원 환경에서 디스플레이되는 반면, 제1 사용자 인터페이스 객체(7104-2)는 시각적으로 강조해제된다. 사용자가 특정 사용자 인터페이스 객체들에 주의를 기울이고 있지 않을 때, 3차원 환경 내에서 디스플레이되는 물리적 환경으로부터의 다른 실제-세계 콘텐츠에 대해 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은 사용자가 3차원 환경에서 디스플레이된 실제 및/또는 가상 콘텐츠에 주의를 기울일 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체는 복수의 선택가능 사용자 인터페이스 객체들을 포함한다. 예를 들어, 도 7i를 참조하여 설명된 바와 같이, 사용자는 사용자 인터페이스 객체(7104-7) 내에 디스플레이된 하나 이상의 선택가능 사용자 인터페이스 객체들과 상호작용하도록 가능하게 된다. 일부 실시예들에서, 선택가능 사용자 인터페이스 객체들은 시선 및/또는 에어 제스처를 사용하여 선택가능한 어포던스들이다. 일부 실시예들에서, 제1 사용자 인터페이스 객체는 복수의 선택가능 객체들을 갖는 패널(예를 들어, 메뉴)을 포함한다. 일부 실시예들에서, 복수의 선택가능 사용자 인터페이스 객체들로부터의 제1 선택가능 사용자 인터페이스 객체는 애플리케이션 아이콘이고, 사용자가 애플리케이션 아이콘을 선택하는 것에 응답하여, 컴퓨터 시스템은 애플리케이션 아이콘에 대응하는 애플리케이션에 대한 애플리케이션 윈도우를 연다(예를 들어, 개시한다). 일부 실시예들에서, 복수의 선택가능 사용자 인터페이스 객체들로부터의 제1 선택가능 사용자 인터페이스 객체는 3차원 환경의 설정(예를 들어, 볼륨 레벨, 밝기 레벨, 및/또는 몰입 레벨)을 조정하기 위한 제어부이고, 사용자가 3차원 환경의 설정을 조정하기 위한 제어부를 선택하는 것에 응답하여, 컴퓨터 시스템은 사용자 선택에 따라 설정을 조정한다. 복수의 제어부들을 응시하고 그리고/또는 이들로 지향되는 제스처를 수행함으로써 사용자가 선택할 수 있는 복수의 제어부들을 자동으로 디스플레이하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 (예를 들어, 사용자가 물리적 환경에서 이동할 때에도 사용자를 뒤따르는) 디스플레이된 사용자 인터페이스 객체 내에서 사용자에 의해 쉽게 액세스되는 사용자에 대한 부가적인 제어부들을 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경의 몰입 레벨을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이하고, 3차원 환경의 몰입 레벨을 증가시키기 위한 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 3차원 환경에서 부가적인 가상 콘텐츠를 디스플레이한다(예를 들어, 그리고 선택적으로, 패스-스루 콘텐츠의 디스플레이를 중단한다). 일부 실시예들에서, 3차원 환경의 몰입 레벨을 감소시키기 위한 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 컴퓨터 시스템은 물리적 환경에 대응하는 부가적인 콘텐츠를 디스플레이한다(예를 들어, 그리고 선택적으로, 가상 콘텐츠(예를 들어, 하나 이상의 가상 객체들)의 디스플레이를 중단한다). 예를 들어, 사용자는 얼마나 많은 물리적 환경이 패스-스루 콘텐츠로서 3차원 환경에서 디스플레이되는지를 제어하도록 가능하게 된다(예를 들어, 완전한 몰입형 경험 동안, 물리적 환경 중 어떠한 것도 디스플레이되지 않는다(예를 들어, 3차원 환경에서 표현되지 않는다)). 일부 실시예들에서, 도 7i를 참조하여 설명된 하나 이상의 사용자 인터페이스 객체들은 3차원 환경에서 몰입형 경험을 재생 및/또는 일시정지하기 위한 제어부를 포함한다. 일부 실시예들에서, 하나 이상의 사용자 인터페이스 객체들은, 사용자가 물리적 환경 주위에서 이동함에 따라 하나 이상의 사용자 인터페이스 객체들이 사용자를 뒤따르도록 제1 사용자 인터페이스 객체 내에서(예를 들어, 느린 뒤따르기 구역에서) 디스플레이된다. 사용자가 물리적 환경에 대해 3차원 환경의 몰입형 경험을 제어하게 허용하는 복수의 제어부들을 자동으로 디스플레이하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하여, 사용자가 물리적 환경으로부터 얼마나 많은 콘텐츠가 3차원 환경에서 디스플레이되는지를 쉽게 제어할 수 있게 하고, 사용자가 3차원 환경에서 몰입 레벨을 변경시키라고 요청할 때 실시간 시각적 피드백을 사용자에게 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 양은 사용자의 검출된 시선과 제1 사용자 인터페이스 객체 사이의 각도에 (예를 들어, 적어도 부분적으로) 기초한다. 예를 들어, 각도는 사용자의 시점이 사용자의 바로 앞에 있을 때 "0"으로 정의되고, 사용자의 시점이 제1 사용자 인터페이스 객체에 대해 (좌측, 우측, 위 또는 아래로) 이동함에 따라, 각도는 사용자의 시점이 제1 사용자 인터페이스 객체로부터 멀어지게 이동함에 따라 증가한다. 예를 들어, 제1 사용자 인터페이스 객체는 사용자 트랙들의 시선이 제1 사용자 인터페이스 객체로부터 더 멀리 떨어져 추적되므로 더 많이 페이딩/블러링된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 강조해제 양은 사용자의 시점과 제1 사용자 인터페이스 객체 사이의 각도의 변화의 양에 (예를 들어, 선형적으로 또는 달리) 비례한다(예를 들어, 사용자의 시점이 각도를 증가시킴에 따라, 강조해제가 증가한다). 사용자의 현재 뷰 각도들이 사용자 인터페이스 객체로부터 더 멀어질수록 사용자 인터페이스 객체들이 포커스가 덜 맞춰진 것으로 보이도록, 사용자의 현재 뷰와 사용자 인터페이스 객체 사이의 인지된 각도에 기초하여 가변 양들만큼 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체의 디스플레이를 자동으로 업데이트하는 것은, 3차원 환경의 사용자의 현재 뷰가 변경될 때 실시간 시각적 피드백을 제공하고, 사용자 인터페이스 객체들에 대한 사용자의 이동의 더 큰 인식을 사용자에게 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 강조해제하는 양은 사용자의 시점의 제1 이동의 레이트에 (예를 들어, 적어도 부분적으로) 기초한다. 예를 들어, 사용자의 시점이 더 빨리 이동할수록(예를 들어, 머리의 빠른 회전), 제1 사용자 인터페이스 객체의 더 큰 강조해제가 야기된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체의 강조해제의 양은 사용자의 시점의 이동 레이트 및/또는 이동 방향에 (예를 들어, 선형적으로 또는 비선형적으로) 비례한다(예를 들어, 도 7d 내지 도 7g를 참조하여 위에서 설명된 바와 같이, 더 빠른 이동은 더 많은 강조해제를 야기하고, 더 느린 이동은 더 적은 강조해제를 야기한다). 사용자가 물리적 환경에서 더 신속하게 이동하고 있을수록 객체들이 더 많이 페이딩된 것으로 보이도록 사용자가 물리적 환경에서 얼마나 신속하게 이동하고 있는지에 기초하여 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은 사용자가 3차원 환경에서 상이한 속도들로 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체는 사용자의 이동에 따라 3차원 환경 내에서 이동된다. 예를 들어, 제1 사용자 인터페이스 객체는 도 7c 및 도 7h를 참조하여 설명된 바와 같이, 사용자가 이동함에 따라 제1 사용자 인터페이스 객체가 사용자의 시점에 대해 동일한 포지션에서 보이도록 사용자의 시점에 대한 포지션에 앵커링된다. 특정 사용자 인터페이스 객체들과 사용자의 시점 사이에서 동일한 상대적 공간적 관계를 유지하면서, 사용자가 물리적 환경에서 이동하는 동안 사용자의 현재 시점을 뒤따르도록 3차원 환경에서 특정 사용자 인터페이스 객체들을 자동으로 이동시키는 것은, 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하고, 편리한 포지션에서 사용자 인터페이스 객체들을 디스플레이하여, 사용자가 물리적 환경에서 이동할 때에도 사용자가 사용자 인터페이스 객체들을 보고 그들과 상호작용하도록 가능하게 되며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 물리적 환경에 대한 사용자의 시점의 제1 이동 직전 및 직후, 3차원 환경 내의 제1 사용자 인터페이스 객체의 개개의 특성 포지션은 물리적 환경 내의 사용자의 시점의 위치에 대응하는 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는다. 예를 들어, 도 7c를 참조하여 설명된 바와 같이, 사용자 인터페이스 객체(7104-1)는 (도 7e 내지 도 7g에서) 사용자가 이동하기 전에 (예를 들어, 사용자의 시점에 대해) 개개의 특성 포지션에서 디스플레이되고, (예를 들어, 사용자가 물리적 환경에서 이동하는 것을 중지한 이후) 도 7h의 사용자 인터페이스 객체(7104-6)와 동일한 개개의 특성 포지션에서 재디스플레이된다. 사용자가 물리적 환경에서 이동하고 사용자의 시점을 변경시킬 때에도, 사용자의 현재 시점에 대해 동일한 포지션에서 3차원 환경에 특정 사용자 인터페이스 객체들을 자동으로 유지하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하여, 사용자가 물리적 환경에서 이동할 때에도 사용자가 사용자 인터페이스 객체들을 보고 그들과 상호작용하도록 가능하게 되며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
도 8에서의 동작들이 설명된 특정 순서는 단지 일 예일 뿐이며, 설명된 순서가 동작들이 수행될 수 있는 유일한 순서라는 것을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 설명된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 부가적으로, 본 명세서에 설명된 다른 방법들(예를 들어, 방법(900))에 관해 본 명세서에 설명된 다른 프로세스들의 세부사항들이 도 8에 관해 위에서 설명된 방법(800)과 유사한 방식으로 또한 적용가능하다는 것을 유의해야 한다. 예를 들어, 방법(800)을 참조하여 위에서 설명된 제스처들, 입력들, 물리적 객체들, 사용자 인터페이스 객체들, 이동들, 기준들, 3차원 환경, 디스플레이 생성 컴포넌트, 물리적 객체의 표현, 가상 객체들, 및/또는 애니메이션들은 선택적으로, 본 명세서에서 설명되는 다른 방법들(예를 들어, 방법(900))을 참조하여 본 명세서에 설명되는 제스처들, 입력들, 물리적 객체들, 사용자 인터페이스 객체들, 이동들, 기준들, 3차원 환경, 디스플레이 생성 컴포넌트, 물리적 객체의 표현, 가상 객체들, 및/또는 애니메이션들의 특성들 중 하나 이상을 갖는다. 간결함을 위해, 이러한 세부사항들은 여기서 반복되지 않는다.
도 9는 일부 실시예들에 따른, 사용자가 3차원 환경의 사용자의 현재 뷰를 변경시킴에 따라 사용자를 뒤따르도록 3차원 환경에서 사용자 인터페이스 요소의 디스플레이를 업데이트하는 방법(900)의 흐름도이다.
일부 실시예들에서, 방법(900)은, 제1 디스플레이 생성 컴포넌트(예를 들어, 도 1, 도 3, 및 도 4의 디스플레이 생성 컴포넌트(120))(예를 들어, 헤드업 디스플레이, 디스플레이, 터치스크린, 및/또는 프로젝터), 및 하나 이상의 입력 디바이스들, 예컨대 하나 이상의 센서들(예를 들어, 사용자의 손을 하향으로 포인팅하는 카메라(예를 들어, 컬러 센서들, 적외선 센서들, 및 다른 깊이 감지 카메라들) 또는 사용자의 머리로부터 전방으로 향하는 카메라)을 포함하는 컴퓨터 시스템(예를 들어, 도 1의 컴퓨터 시스템(101))에서 수행된다. 일부 실시예들에서, 방법(900)은, 비일시적 컴퓨터 판독가능 저장 매체에 저장되며 컴퓨터 시스템의 하나 이상의 프로세서들, 예컨대 컴퓨터 시스템(101)의 하나 이상의 프로세서들(202)(예를 들어, 도 1a의 제어 유닛(110))에 의해 실행되는 명령어들에 의해 관리된다. 방법(900) 내의 일부 동작들은 선택적으로 조합되고 그리고/또는 일부 동작들의 순서는 선택적으로 변경된다.
일부 실시예들에서, 컴퓨터 시스템은 제1 디스플레이 생성 컴포넌트(예를 들어, 제1 디스플레이 생성 컴포넌트는 헤드업 디스플레이, 머리 장착형 디스플레이(HMD), 디스플레이, 터치스크린, 및/또는 프로젝터임) 및 하나 이상의 입력 디바이스들(예를 들어, 카메라들, 제어기들, 터치 감응형 표면들, 조이스틱들, 버튼들, 장갑들, 워치들, 모션 센서들, 및/또는 배향 센서들)과 통신한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트는 도 7a 내지 도 7j에 관해 설명된 제1 디스플레이 생성 컴포넌트(7100)이다. 일부 실시예들에서, 컴퓨터 시스템은, 제1 디스플레이 생성 컴포넌트, 및 하나 이상의 입력 디바이스들 중 적어도 일부와 동일한 하우징으로 둘러싸인 하나 이상의 프로세서들 및 메모리를 갖는 통합 디바이스이다. 일부 실시예들에서, 컴퓨터 시스템은, 제1 디스플레이 생성 컴포넌트 및/또는 하나 이상의 입력 디바이스들과 별개인 하나 이상의 프로세서들 및 메모리를 포함하는 컴퓨팅 컴포넌트(예를 들어, 서버, 모바일 전자 디바이스, 예컨대 스마트 폰 또는 태블릿 디바이스, 웨어러블 디바이스, 예컨대 워치, 손목밴드, 또는 이어폰들 웨어러블 디바이스, 데스크톱 컴퓨터, 및/또는 랩톱 컴퓨터)를 포함한다. 일부 실시예들에서, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들은 동일한 하우징 내에 통합되고 그것으로 둘러싸인다. 일부 실시예들에 따르면, 방법(900)의 특징들 중 많은 것이 도 7a 내지 도 7j에 관해 설명된다.
방법(900)은 3차원 환경에서 사용자 인터페이스 요소를 디스플레이하는 것에 관한 것이며, 여기서 사용자 인터페이스 요소의 디스플레이는 사용자가 (예를 들어, 물리적 환경 주위에서 이동함으로써) 3차원 환경의 사용자의 현재 뷰를 변경시킴에 따라 사용자를 뒤따르도록 업데이트된다. 사용자 인터페이스 요소는 초기에 사용자의 뷰가 임계량 초과만큼 변경될 때까지, 사용자의 뷰가 변경됨에 따라 이동되지 않는다. 사용자의 뷰가 임계량 초과만큼 변경된 이후, 사용자 인터페이스 요소는 사용자를 뒤따른다(예를 들어, 사용자의 이동보다 느린 이동 레이트로 사용자를 뒤따르게 지연되고 그리고/또는 그 사용자를 뒤따름). 사용자의 현재 시점이 물리적 환경에서 이동하는 사용자로부터 변경됨에 따라 사용자를 뒤따르도록 사용자 인터페이스 객체들의 디스플레이된 위치를 자동으로 변경시키는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공한다. 개선된 시각적 피드백을 사용자에게 제공하는 것은, (예를 들어, 시스템을 동작시키거나/그와 상호작용할 때 사용자가 적절한 입력들을 제공하는 것을 돕고 사용자 실수들을 감소시킴으로써) 시스템의 작동성을 향상시키고 사용자-시스템 인터페이스를 더 효율적으로 만들며, 이는 부가적으로, 사용자가 시스템을 더 신속하고 효율적으로 사용할 수 있게 함으로써 시스템의 전력 사용량을 감소시키고 배터리 수명을 개선시킨다.
컴퓨터 시스템은 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경 내의 제1 포지션에서 그리고 사용자의 개개의 부분에 대한(예를 들어, 3차원 환경의 사용자의 현재 시점에 대한) 제1 공간 배열로 3차원 환경의 제1 뷰 내의 제1 사용자 인터페이스 객체를 디스플레이한다(902). 예를 들어, 도 7c를 참조하여 설명된 바와 같이, 사용자 인터페이스 객체(7104-1)는 물리적 환경 내의 사용자의 현재 포지션에 대해 제1 공간 배열로 초기에 디스플레이된다.
제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 하나 이상의 입력 디바이스들을 통해, 물리적 환경 내의 제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출한다(904). 예를 들어, 사용자의 위치는 선택적으로, 물리적 환경 내의 사용자의 3차원 포지션(예를 들어, 좌표들)에 관련된 정보 및 물리적 환경 내의 사용자의 포즈 및/또는 배향에 관련된 정보를 포함한다. 일부 실시예들에서, 사용자의 시점의 이동을 검출하는 것은 물리적 환경 내에서 몸통의 이동을 검출하는 것을 포함한다(예를 들어, 여기서 제1 사용자 인터페이스 객체는 사용자의 신체에 대해 동일한 일반적인 포지션에 유지된다). 예를 들어, 도 7e 내지 도 7g를 참조하여 설명된 바와 같이, 사용자는 물리적 환경에서 이동하며, 이는 3차원 환경의 사용자의 현재 뷰가 변경되게 한다.
제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출하는 것에 응답하여(906), 제1 위치로부터 제2 위치로의 사용자의 시점의 이동이 이동의 임계량(예를 들어, 사용자의 각도(배향)의 변화의 임계량 및/또는 거리의 임계량)을 만족시키지 않는다는 결정에 따라, 컴퓨터 시스템은 (예를 들어, 제1 사용자 인터페이스 객체가 사용자의 개개의 부분에 대한 제1 공간 배열을 더 이상 갖지 않더라도) 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지한다(908). 예를 들어, 도 7e에 예시된 바와 같이, 사용자가 초기에 물리적 환경에서 이동함에 따라(예를 들어, 그러나 이동의 임계량을 만족시키지 않음), 사용자 인터페이스 객체(7104-3)는 3차원 환경 내의 동일한 포지션에 앵커링된(예를 들어, 로킹된) 상태로 유지된다.
제1 위치로부터 제2 위치로의 사용자의 시점의 이동을 검출하는 것에 응답하여(906), 제1 위치로부터 제2 위치로의 사용자의 시점의 이동이 이동의 임계량을 만족시킨다는 결정에 따라(910), 컴퓨터 시스템은 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하고(912), 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하며, 여기서 3차원 환경 내의 제2 포지션은 사용자의 개개의 부분에 대한 제1 공간 배열을 갖는다(914). 예를 들어, 사용자 인터페이스 객체의 포지션은 3차원 환경 내에서 변경되지만(예를 들어, 사용자 인터페이스 객체는 3차원 환경 내의 포지션에 앵커링되지 않음), 사용자가 적어도 임계량으로 이동한 이후, 사용자에 대해 동일한 상대적 포지션에 유지된다. 예를 들어, 도 7c 및 도 7h를 참조하여 설명된 바와 같이, 이동의 임계량이 도 7h에서 만족된 이후, 사용자에 대한 (예를 들어, 도 7c에 도시된) 제1 사용자 인터페이스 객체의 디폴트 포지션이 복원된다.
일부 실시예들에서, 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 동안(예를 들어, 여기서 제1 포지션은 3차원 환경 내의 고정 포지션임), 컴퓨터 시스템은 사용자의 시점의 이동이 이동의 임계량을 만족시킨다는 것을 검출한다. 일부 실시예들에서, 사용자의 시점의 이동이 이동의 임계량을 만족시키는 것에 응답하여, 컴퓨터 시스템은 3차원 환경 내의 제1 포지션으로부터 제2 포지션으로 제1 사용자 인터페이스 객체를 이동시킨다(예를 들어, 제1 사용자 인터페이스 객체의 이동을 애니메이션화한다). 예를 들어, 도 7d를 참조하여 설명된 바와 같이, 초기에, 사용자는 이동의 임계량 미만만큼 이동하고, 사용자 인터페이스 객체는 (예를 들어, 도 7h에 도시된 바와 같이) 사용자가 이동의 임계량을 만족시키기 전에 물리적 환경에 고정되게 동일한 제1 포지션에 유지되고; 이어서(예를 들어, 이동의 양이 이동의 임계량을 만족시킨다는 결정에 따라), 컴퓨터 시스템은 사용자 인터페이스 객체를 3차원 환경 내의 제2 포지션으로 이동시킨다. 사용자가 임계량 초과로 이동한 이후 사용자 인터페이스 객체가 사용자와 함께 이동하는 것을 디스플레이하기 전에, 사용자가 물리적 환경 주위에서 이동할 때에도, 3차원 환경에 대해 초기에 로킹된 포지션에서 사용자 인터페이스 객체를 자동으로 디스플레이하는 것은 (예를 들어, 사용자가 사용자 인터페이스 객체의 초기 포지션으로부터 멀리 적어도 임계량만큼 이동한 이후 그리고/또는 사용자의 시점이 임계량만큼 변경된 이후, 사용자 인터페이스 객체가 사용자를 뒤따를 것이기 때문에) 사용자 인터페이스 객체가 사용자로부터 멀리 임계 거리 미만으로 유지되도록 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 하나 이상의 입력 디바이스들을 통해, 물리적 환경 내의 제2 위치로부터 제3 위치로의 사용자의 시점의 이동을 검출한다. 일부 실시예들에서, 제2 위치로부터 제3 위치로의 사용자의 시점의 이동을 검출하는 것에 응답하여, 제2 위치로부터 제3 위치로의 사용자의 시점의 이동이 이동의 제2 임계량(예를 들어, 제1 위치로부터 제2 위치로의 이동의 임계량과 동일한 그리고/또는 상이한 임계량)을 만족시키지 않는다는 결정에 따라, 컴퓨터 시스템은 (예를 들어, 제1 사용자 인터페이스 객체가 사용자의 개개의 부분에 대한 제1 공간 배열을 더 이상 갖지 않더라도) 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지한다. 일부 실시예들에서, 제2 위치로부터 제3 위치로의 사용자의 시점의 이동이 이동의 제2 임계량을 만족시킨다는 결정에 따라, 컴퓨터 시스템은 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하고, 3차원 환경 내의 제3 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하며, 여기서 3차원 환경 내의 제3 포지션은 (예를 들어, 제3 위치에서) 사용자의 개개의 부분에 대한 제1 공간 배열을 갖는다. 예를 들어, 사용자가 후속하여 물리적 환경에서 이동하더라도(예를 들어, 또는 지속적으로 또는 산발적으로 계속 이동하더라도), 사용자 인터페이스 객체는 도 7d 내지 도 7h를 참조하여 설명된 느린 뒤따르기 거동을 계속 갖는다. 사용자가 물리적 환경에서 이동하는 것에 따라 사용자의 현재 시점이 변경됨에 따라 사용자를 뒤따르도록 사용자 인터페이스 객체들의 디스플레이된 위치를 자동으로 변경시키는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공한다.
일부 실시예들에서, 3차원 환경 내의 제1 포지션으로부터 제2 포지션으로 제1 사용자 인터페이스 객체를 이동시키는 동안, 컴퓨터 시스템은 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 시각적으로 강조해제한다. 예를 들어, 도 7e 내지 도 7g에 예시된 바와 같이, 사용자가 이동하고 있는 동안, 사용자 인터페이스 객체들(7104-3 내지 7104-5)은 3차원 환경에서 시각적으로 강조해제된다. 사용자가 물리적 환경 주위에서 이동하고 있는 동안, 다른 디스플레이된 콘텐츠에 비해 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은, 사용자가 3차원 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하고, 사용자가 이동하고 있는 동안(그리고 사용자 인터페이스 객체(들)와 상호작용하고 있지 않은 동안) 더 적은 두드러짐으로 사용자 인터페이스 객체(들)를 디스플레이함으로써 사용자에 대한 시각적 로드의 양(예를 들어, 또는 그의 산만 레벨)을 감소시키며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 것은 도 7d 및 도 7e를 참조하여 위에서 설명된 바와 같이, 감소된 불투명도로 제1 사용자 인터페이스 객체를 디스플레이하는 것을 포함한다. 예를 들어, 제1 사용자 인터페이스 객체가 시각적으로 강조해제되는 동안(예를 들어, 사용자가 이동하고 있는 동안), 제1 사용자 인터페이스 객체는 3차원 환경에서 디스플레이된 다른 객체들에 비해 더 반투명하게(예를 들어, 페이딩된 것으로) 보인다. 사용자가 물리적 환경 주위에서 이동하고 있는 동안, 다른 디스플레이된 콘텐츠에 비해 특정 사용자 인터페이스 객체들의 불투명도를 감소시킴으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은, 사용자가 3차원 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하고, 사용자가 이동하고 있는 동안(예를 들어, 그리고 사용자 인터페이스 객체(들)와 상호작용하고 있지 않은 동안) 더 적은 두드러짐으로 사용자 인터페이스 객체(들)를 디스플레이함으로써 사용자에 대한 시각적 로드의 양(예를 들어, 또는 그의 산만 레벨)을 감소시키며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 것은 도 7d 및 도 7e를 참조하여 위에서 설명된 바와 같이, 블러링된 시각적 효과로 제1 사용자 인터페이스 객체를 디스플레이하는 것을 포함한다. 예를 들어, 제1 사용자 인터페이스 객체는 (예를 들어, 사용자가 이동하고 있는 동안) 3차원 환경에서 디스플레이된 다른 객체들에 비해 블러링된 것으로 보인다. 사용자가 물리적 환경 주위에서 이동하고 있는 동안, 다른 디스플레이된 콘텐츠에 비해 특정 사용자 인터페이스 객체들을 블러링함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은, 사용자가 3차원 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하고, 사용자가 이동하고 있는 동안(예를 들어, 그리고 사용자 인터페이스 객체(들)와 상호작용하고 있지 않은 동안) 더 적은 두드러짐으로 사용자 인터페이스 객체(들)를 디스플레이함으로써 사용자에 대한 시각적 로드의 양(예를 들어, 또는 그의 산만 레벨)을 감소시키며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 결정에 따라, 컴퓨터 시스템은 도 7d를 참조하여 설명된 바와 같이, 3차원 환경 내의 하나 이상의 다른 객체들에 대해 제1 사용자 인터페이스 객체를 시각적으로 강조해제한다. 사용자가 특정 사용자 인터페이스 객체에 주의를 기울이고 있지 않을 때, 다른 디스플레이된 콘텐츠에 비해 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은, 사용자가 3차원 환경 내의 상이한 시각적 콘텐츠에 주의를 기울일 때 실시간 시각적 피드백을 제공하고, 사용자가 사용자 인터페이스 객체(들)에 주의를 기울이고 있지 않은 동안 다른 콘텐츠에 비해 더 적은 두드러짐으로 사용자 인터페이스 객체(들)를 디스플레이함으로써 사용자에 대한 시각적 로드의 양(예를 들어, 또는 그의 산만 레벨)을 감소시키며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체에 대한 주의 기준들은 도 7d를 참조하여 위에서 설명된 바와 같이 시선 기준을 포함한다. 예를 들어, 사용자는 사용자가 적어도 임계량의 시간 동안 제1 사용자 인터페이스 객체를 응시했다는(예를 들어, 봤다는) 결정에 따라 시선 기준을 만족시킨다. 사용자로부터의 부가적인 입력을 요구하지 않으면서, 사용자가 사용자 인터페이스 객체를 응시하고 있는지 여부를 검출함으로써 사용자가 특정 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부를 자동으로 결정하는 것, 및 사용자가 사용자 인터페이스 객체를 응시하고 있을 때 자동으로 사용자 인터페이스 객체의 디스플레이를 업데이트하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체에 대한 주의 기준들은 도 7d를 참조하여 위에서 설명된 바와 같이 물리적 환경 내의 사용자의 머리의 포지션에 대한 기준을 포함한다. 예를 들어, 사용자의 머리의 포지션에 대한 기준은, 사용자의 현재 머리 포지션이 미리 정의된 머리 포지션과 매칭된다는 그리고/또는 사용자의 머리 포지션이 적어도 임계량의 시간 동안 미리 정의된 머리 포지션에 유지되었다는 결정에 따라 만족된다. 사용자로부터의 부가적인 입력을 요구하지 않으면서, 사용자의 머리가 사용자 인터페이스 객체를 향해 돌려지는 것과 같이 특정 포지션에 있는지 여부를 검출함으로써 사용자가 특정 사용자 인터페이스 객체에 주의를 기울이고 있는지 여부를 자동으로 결정하는 것, 및 사용자의 머리가 특정 포지션에 있을 때 자동으로 사용자 인터페이스 객체의 디스플레이를 업데이트하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체의 시각적 강조해제의 양은 사용자의 시점의 이동의 레이트에 (예를 들어, 적어도 부분적으로) 기초한다. 예를 들어, 제1 사용자 인터페이스 객체는 사용자가 물리적 환경 내에서 더 빠르게 이동함에 따라, 페이딩된 것으로(예를 들어, 감소된 불투명도로 디스플레이되는 것으로) 보이고 그리고/또는 더 많이 블러링된 것으로 보인다. 일부 실시예들에서, 시각적 강조해제는 점진적이어서(예를 들어, 제1 사용자 인터페이스 객체는 시간 기간에 걸쳐 더 많이 페이딩되는 것으로 보임), 사용자가 더 긴 시간 기간 동안 이동함에 따라, 시각적 강조해제의 양이 증가된다. 일부 실시예들에서, 점진적인 강조해제 동안의 시각적 강조해제의 양의 레이트는 사용자의 시점의 이동의 레이트에 기초한다(예를 들어, 시각적 강조해제의 양의 레이트는 사용자의 이동의 레이트에 비례한다). 예를 들어, 사용자의 시점의 이동의 증가된 레이트는 페이드 및/또는 블러의 증가된 양을 초래한다. 사용자가 더 빨리 이동할수록 특정 사용자 인터페이스 객체들이 더 많이 강조해제된 것으로 보이도록, 사용자가 물리적 환경 주위에서 이동하고 있는 동안, 사용자의 이동의 속도에 기초하여 결정된 시각적 강조해제의 양으로, 다른 디스플레이된 콘텐츠에 비해 특정 사용자 인터페이스 객체들을 시각적으로 강조해제함으로써 특정 사용자 인터페이스 객체들의 디스플레이를 자동으로 업데이트하는 것은, 사용자가 상이한 속도들로 3차원 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 3차원 환경의 제1 뷰 내의 제4 포지션에서 제2 사용자 인터페이스 객체(예를 들어, 가상 객체, 애플리케이션, 또는 물리적 객체의 표현, 예컨대 물리적 객체의 표현(7014'))를 디스플레이하며, 제4 포지션은 3차원 환경 내의 위치에 대한 제2 공간 배열을 갖는다. 예를 들어, 제2 사용자 인터페이스 객체는, 사용자의 시점이 이동함에 따라 제2 사용자 인터페이스 객체가 이동되지 않도록(예를 들어, 3차원 환경 내의 동일한 포지션에 유지되도록) 3차원 환경의 객체 또는 일부에 앵커링된다. 사용자가 이동함에 따라 사용자를 뒤따르는 특정 다른 사용자 인터페이스 객체들을 로킹하지 않으면서, 사용자가 3차원 환경 주위에서 이동할 때에도 3차원 환경에 대해 로킹된 포지션에서 하나 이상의 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하여, 3차원 환경 내에서, 로킹된 사용자 인터페이스 요소들이 3차원 환경에 대해 위치되는 곳을 사용자가 알게 하고, 사용자가 3차원 환경 내의 앵커링된 위치들로 복귀함으로써, 로킹된 사용자 인터페이스 요소들을 보고 그들과 상호작용하도록 가능하게 되며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 컴퓨터 시스템은 3차원 환경의 제1 뷰 내의 제5 포지션에서 제3 사용자 인터페이스 객체를 디스플레이하며, 제3 사용자 인터페이스 객체는 사용자의 개개의 부분에 대한(예를 들어, 사용자의 신체의 일부(예를 들어, 머리, 몸통)에 대한, 또는 사용자의 시점에 대한) 제3 공간 배열을 갖는다. 예를 들어, 제3 사용자 인터페이스 객체는 사용자의 손에 앵커링되어, 사용자가 물리적 환경에서 이동함에 따라, 제3 사용자 인터페이스 객체는 사용자의 손에 앵커링되는 포지션(예를 들어, 사용자가 3차원 환경의 사용자의 현재 뷰 내에 있도록 사용자의 손을 들어올리는 것에 응답하여 디스플레이되는)에서 디스플레이된다. 사용자가 이동함에 따라 특정 다른 사용자 인터페이스 객체들을 사용자의 신체 부분에 로킹하지 않으면서, 사용자가 3차원 환경 주위에서 이동할 때에도 사용자의 신체의 일부에 대해 동일한 일반적인 위치에 유지되는(예를 들어, 또는 로킹되는) 포지션에서 하나 이상의 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제6 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 것에 응답하여, 컴퓨터 시스템은, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제6 포지션으로 이동시키고 - 제6 포지션은 사용자의 개개의 부분에 대한 제4 공간 배열을 가짐 -, 제1 사용자 인터페이스 객체에 대해, 제1 사용자 인터페이스 객체의 사용자의 개개의 부분에 대한 제1 공간 배열을 사용자의 개개의 부분에 대한 제4 공간 배열로 업데이트한다. 예를 들어, 도 7j를 참조하여 설명된 바와 같이, 제1 사용자 인터페이스 객체(7104-8)는 사용자에 대해 상이한 공간 배열을 갖는 상이한 구역에 배치(예를 들어, 리포지셔닝 및 앵커링)된다(예를 들어, 사용자(예를 들어, 사용자의 몸통, 사용자의 머리, 사용자의 시점)에 대해(예를 들어, 바로 앞에) 제1 거리에 그리고 제1 각도로 포지셔닝되는 대신에, 새로운 구역은 사용자의 일부로부터 상이한 각도로 그리고/또는 거리에 정의된 좌측 코너에 있다)(예를 들어, 제4 공간 배열). 일부 실시예들에서, 제4 공간 배열을 갖도록 제1 사용자 인터페이스 객체를 업데이트한 이후, 사용자의 시점의 이동이 이동의 임계량을 만족시키는 것에 응답하여, 제1 사용자 인터페이스 객체는 사용자의 개개의 부분에 대해 제4 공간 배열로 유지된다(예를 들어, 그리고 위에서 설명된 느린 뒤따르기 거동을 계속 갖는다). 사용자의 현재 뷰가 변경될 때에도, 특정 사용자 인터페이스 객체들이 사용자의 현재 뷰에 대해 동일한 포지션에 유지되도록 사용자의 현재 뷰에 대해 상이한 공간적 관계를 갖기 위해 사용자가 특정 사용자 인터페이스 객체들의 앵커 포지션을 변경시키게 허용하는 것은, 사용자가 물리적 환경에서 이동할 때 실시간 시각적 피드백을 제공하고, 사용자가 보기에 가장 편안하거나 편리한 포지션에 특정 사용자 인터페이스 객체들을 사용자가 배치하는 것을 쉽게 만들며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 3차원 환경 내의 제6 포지션은 사용자로부터의 미리 정의된 거리 내에 있으며, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제7 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 것에 응답하여 - 3차원 환경 내의 제7 포지션은 사용자로부터의 미리 정의된 거리를 초과함 -, 컴퓨터 시스템은 제1 사용자 인터페이스 객체를 제7 포지션으로 이동시키며, 여기서 제7 포지션에서, 제1 사용자 인터페이스 객체는 3차원 환경의 일부에 앵커링된다. 예를 들어, 사용자는 미리 정의된 구역들 중 임의의 구역의 외부에 있는 3차원 공간 내의 포지션에 제1 사용자 인터페이스 객체를 배치하도록 가능하게 된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체가 3차원 환경에 앵커링되도록(예를 들어, 그리고 그의 포지션이 사용자의 현재 시점과 독립적이어서, 사용자가 3차원 환경의 사용자의 현재 시점을 이동시키는 동안 제1 사용자 인터페이스 객체가 사용자의 개개의 부분에 대한 개개의 공간적 관계를 유지하지 않도록) 사용자가 3차원 환경 내의 포지션에(예를 들어, 제7 포지션에) 제1 사용자 인터페이스 객체를 배치했다는 결정에 따라, 제1 사용자 인터페이스 객체는 느린 뒤따르기 거동을 더 이상 갖지 않는다. 일부 실시예들에서, 사용자가 사용자로부터의 미리 정의된 거리 외부(예를 들어, 사용자의 팔의 도달거리 외부)에 있는 제7 위치에 제1 사용자 인터페이스 객체를 배치하는 것에 응답하여, 객체가 제7 포지션에 배치되는 동안 제1 사용자 인터페이스 객체가 느린 뒤따르기 거동을 갖지 않을 것이라는 것을 표시하기 위한 텍스트 표시가 디스플레이된다. 일부 실시예들에서, 제6 포지션은 미리 정의된 거리를 초과하는 거리에 있을 수 없다. 예를 들어, 사용자 인터페이스 객체가 제6 포지션에 배치되는 동안 사용자 인터페이스 객체가 느린 뒤따르기 거동을 계속 갖기 위해, 제6 포지션은 사용자의 팔의 도달거리 내에 있다(예를 들어, 미리 정의된 구역들은 사용자의 팔의 도달거리 내에 있다). 사용자가 3차원 환경에 앵커링된 (예를 들어, 미리 정의된 거리를 넘는) 포지션들로 다른 사용자 인터페이스 객체들을 포지셔닝(예를 들어, 또는 리포지셔닝)시키게 허용하는 동안, 사용자로부터의 미리 정의된 거리 내에(예를 들어, 팔의 도달거리 내에) 있는 사용자의 현재 뷰에 대해 상이한 공간적 관계를 갖도록 특정 사용자 인터페이스 객체들의 앵커를 변경시키기 위한 옵션을 사용자에게 자동으로 제공하는 것은, 사용자가 사용자에 대해 가장 편안하거나 편리한 영역에 객체들을 배치하게 허용하고, 사용자가 물리적 환경에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 3차원 환경 내의 제8 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 동안, 컴퓨터 시스템은 하나 이상의 미리 정의된 구역들에 대한 시각적 표시를 디스플레이한다. 일부 실시예들에서, 제8 포지션이 하나 이상의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있다는 결정에 따라 - 제8 포지션은 사용자의 개개의 부분에 대한 제5 공간 배열을 가짐 -, 사용자의 시점의 이동을 검출하는 것에 응답하여, 컴퓨터 시스템은 사용자의 개개의 부분에 대한 제5 공간 배열을 갖는 3차원 환경 내의 제9 포지션에서 제1 사용자 인터페이스 객체를 디스플레이한다. 일부 실시예들에서, 제8 포지션이 하나 이상의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있지 않다는 결정에 따라, 사용자의 시점의 이동을 검출하는 것에 응답하여, 컴퓨터 시스템은 3차원 환경 내의 제8 포지션에서 제1 사용자 인터페이스 객체의 디스플레이를 유지한다. 예를 들어, 도 7j를 참조하여 설명된 바와 같이, 사용자가 제1 사용자 인터페이스 객체를 미리 정의된 구역 외부에 리포지셔닝시키면, 제1 사용자 인터페이스 객체는 느린 뒤따르기 거동을 더 이상 갖지 않는다(예를 들어, 사용자 인터페이스 객체는 3차원 환경에 앵커링되게 되고, 사용자의 개개의 부분에 대해 제1 공간 배열을 갖는 것으로 제1 사용자 인터페이스 객체를 더 이상 유지하지 않는다). 예를 들어, 미리 정의된 구역들 중 임의의 구역의 외부에 배치된 사용자 인터페이스 객체들은 사용자의 시점이 이동함에 따라 사용자의 시점을 뒤따르지 않을 것이다(예를 들어, 미리 정의된 구역들 외부에 배치된 사용자 인터페이스 객체들은 3차원 환경에 앵커링된다). 일부 실시예들에서, 도 7j를 참조하여 설명된 바와 같이, 컴퓨터 시스템은 미리 정의된 구역들(예를 들어, 느린 뒤따르기 구역들)의 윤곽(예를 들어, 또는 다른 시각적 표시)을 디스플레이한다. 일부 실시예들에서, 미리 정의된 구역들 중 임의의 구역에 배치된 사용자 인터페이스 객체들은 사용자의 시점이 이동함에 따라 사용자의 시점을 뒤따를 것이다. 일부 실시예들에서, (예를 들어, 사용자가 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 제스처를 개시하는 것에 응답하여) 사용자가 제1 사용자 인터페이스 객체를 이동시키고 있는 동안, 미리 정의된 구역의 시각적 표시가 디스플레이된다. 3차원 환경 내에서 복수의 구역들의 윤곽들을 자동으로 디스플레이하는 것 - 각각의 구역은 사용자의 현재 뷰에 대해 상이한 상대적 포지션을 가짐 - 은 사용자가 특정 사용자 인터페이스 객체들을 앵커링할 구역을 선택하는 것을 쉽게 만들어서, 사용자 인터페이스 객체가 구역 내에 배치될 때 사용자가 물리적 환경에서 이동함에 따라 사용자 인터페이스 객체들이 사용자를 뒤따르게 할 것이고, 사용자가 보기에 가장 편안하거나 편리한 3차원 환경 내에 사용자 인터페이스 객체를 포지셔닝할 곳을 사용자가 더 쉽게 결정하게 허용하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 제1 사용자 인터페이스 객체를 제6 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 것에 응답하여, 제1 사용자 인터페이스 객체는 3차원 환경 내의 제6 포지션에 스냅된다. 예를 들어, 도 7j를 참조하여 설명된 바와 같이, 사용자 인터페이스 객체를 제6 포지션에 스냅하는 것은, 제1 사용자 인터페이스 객체를 제6 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 동안, 제1 사용자 인터페이스 객체가 제6 포지션으로부터 미리 정의된 임계 거리 내에서 이동된다는 결정에 따라, (예를 들어, 사용자가 제1 사용자 인터페이스 객체를 제6 포지션을 향해 계속 드래그하지 않으면서) 사용자 인터페이스 객체를 제6 포지션으로 자동으로 이동시키는 것을 포함한다. 일부 실시예들에서, 제1 사용자 인터페이스 객체를 제6 포지션 밖으로(예를 들어, 미리 정의된 구역 밖으로) 이동시키기 위한 사용자 입력에 응답하여, 제1 사용자 인터페이스 객체는 사용자 입력이 제6 포지션으로부터 이동의 임계량 초과만큼 멀리 이동될 때까지, 제6 포지션에 디스플레이된 상태로 유지된다. 일부 실시예들에서, 제1 사용자 인터페이스 객체가 제6 포지션에 스냅되는 것에 응답하여, (예를 들어, 제6 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하면서 동시에) 햅틱 및/또는 오디오 표시가 제공된다. 예를 들어, 사용자 입력은, 서로와의 접촉을 만들기 위해 또는 서로로부터 접촉을 해제하기 위해 손의 2개 이상의 손가락들의 이동을 포함하는 (예를 들어, 그리고 선택적으로는 사용자의 손의 포지션을 제1 포지션(예를 들어, 드래그의 시작 포지션)으로부터 제2 포지션(예를 들어, 드래그의 종료 포지션)으로 변경시키는 드래그 입력과 함께(예를 들어, 그에 후속하여)) 핀치 제스처(예를 들어, 또는 핀치 및 드래그 제스처)이다. 일부 실시예들에서, 사용자는 드래그 입력을 수행하는 동안 핀치 제스처를 유지하고, (예를 들어, 제2 포지션에서) 드래그 제스처를 종료하기 위해 핀치 제스처를 해제한다(예를 들어, 자신의 2개 이상의 손가락들을 개방한다). 예를 들어, 핀치 입력은 제1 사용자 인터페이스 객체를 선택하고, 사용자는, 일단 선택되면, 제1 사용자 인터페이스 객체를 제6 포지션으로(예를 들어, 또는 사용자 인터페이스 객체들이 제6 포지션에 스냅되기 전에 제6 포지션 부근에) 리포지셔닝시키기 위해 제1 사용자 인터페이스 객체를 드래그하도록 가능하게 된다. 일부 실시예들에서, 핀치 입력은 직접적으로 제1 사용자 인터페이스 객체로 지향되거나(예를 들어, 사용자는 제1 사용자 인터페이스 객체에 대응하는 포지션에서 핀치 입력을 수행함), 또는 핀치 입력은 간접적으로 제1 사용자 인터페이스 객체로 지향된다(예를 들어, 사용자는 제1 어포던스를 응시하는 동안 핀치 입력을 수행하며, 여기서 핀치 입력을 수행하는 동안 사용자의 손의 포지션은 제1 사용자 인터페이스 객체에 대응하는 포지션에 있지 않음). 예를 들어, 사용자는, 제1 사용자 인터페이스 객체에서 또는 그 부근에서(예를 들어, 제1 사용자 인터페이스 객체의 외측 에지 또는 제1 사용자 인터페이스 객체의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 된다. 일부 실시예들에서, 사용자는 추가로, 제1 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 제1 사용자 인터페이스 객체를 응시함으로써) 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 되고, 제1 사용자 인터페이스 객체에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서) 제스처를 개시한다. 예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있으면, 제스처는 제1 사용자 인터페이스 객체에 또는 그 부근에 있는 포지션에서 개시될 필요는 없다(예를 들어, 사용자는 제1 사용자 인터페이스 객체를 응시하는 동안 드래그 제스처를 수행한다). 스냅 포지션 위에 정밀하게 사용자 인터페이스 객체를 정렬시키도록 사용자에게 요구하지 않으면서 사용자 인터페이스 객체가 미리 정의된 스냅 포지션으로 이동되도록, 사용자가 스냅 포지션의 미리 정의된 거리 내에서 사용자 인터페이스 객체를 리포지셔닝시키는 것에 응답하여 사용자 인터페이스 객체를 자동으로 스냅하는 것은, 사용자가 사용자 인터페이스 객체를 리포지셔닝시킬 때 실시간 시각적 피드백을 사용자에게 제공하고, 사용자 인터페이스 객체가 스냅 포지션에 성공적으로 리포지셔닝되었다는 것을 확인하는 시각적 표시을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경의 몰입 레벨을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이한다. 일부 실시예들에서, 3차원 환경의 몰입 레벨을 증가시키기 위한 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 컴퓨터 시스템은 3차원 환경에서 부가적인 가상 콘텐츠를 디스플레이한다(예를 들어, 그리고 선택적으로, 패스-스루 콘텐츠의 디스플레이를 중단하거나 감소시킴). 일부 실시예들에서, 3차원 환경의 몰입 레벨을 감소시키기 위한 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 컴퓨터 시스템은 물리적 환경에 대응하는 부가적인 콘텐츠를 디스플레이한다(예를 들어, 부가적인 패스-스루 콘텐츠를 디스플레이하고, 선택적으로, 가상 콘텐츠(예를 들어, 하나 이상의 가상 객체들)의 디스플레이를 중단하거나 감소시킨다). 일부 실시예들에서, 하나 이상의 사용자 인터페이스 객체들은 3차원 환경에서 몰입형 경험을 재생 및/또는 일시정지하기 위한 제어부를 포함한다. 예를 들어, 사용자는 얼마나 많은 물리적 환경이 패스-스루 콘텐츠로서 3차원 환경에서 디스플레이되는지를 제어하도록 가능하게 된다(예를 들어, 완전한 몰입형 경험 동안, 물리적 환경 중 어떠한 것도 디스플레이되지 않는다(예를 들어, 또는 3차원 환경에서 달리 표현되지 않는다)). 예를 들어, 사용자 입력은, 선택적으로 사용자의 손의 검지 손가락 위에서의(예를 들어, 엄지손가락에 인접한 검지 손가락의 면 위에서의) 엄지손가락의 탭 입력인 탭 입력(예를 들어, 에어 제스처, 또는 핀치 제스처)이다. 일부 실시예들에서, 검지 손가락의 면으로부터 엄지 손가락의 리프트오프를 요구하지 않으면서 탭 입력이 검출된다. 예를 들어, 사용자는 3차원 환경의 몰입 레벨을 증가시키기 위해 제1 사용자 인터페이스 객체로 지향되는 탭 입력을 수행한다. 일부 실시예들에서, 탭 입력은 직접적으로 제1 사용자 인터페이스 객체로 지향되거나(예를 들어, 사용자는 제1 사용자 인터페이스 객체에 대응하는 포지션에서 탭 입력을 수행함), 또는 탭 입력은 간접적으로 제1 사용자 인터페이스 객체로 지향된다(예를 들어, 사용자는 제1 어포던스를 응시하는 동안 탭 입력을 수행하며, 여기서 탭 입력을 수행하는 동안 사용자의 손의 포지션은 제1 사용자 인터페이스 객체에 대응하는 포지션에 있지 않음). 예를 들어, 사용자는, 제1 사용자 인터페이스 객체에서 또는 그 부근에서(예를 들어, 제1 사용자 인터페이스 객체의 외측 에지 또는 제1 사용자 인터페이스 객체의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 된다. 일부 실시예들에서, 사용자는 추가로, 제1 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 제1 사용자 인터페이스 객체를 응시함으로써) 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 되고, 제1 사용자 인터페이스 객체에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서) 제스처를 개시한다. 예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있으면, 제스처는 제1 사용자 인터페이스 객체에 또는 그 부근에 있는 포지션에서 개시될 필요는 없다. 사용자가 물리적 환경에 대해 3차원 환경의 몰입형 경험을 제어하게 허용하는 복수의 제어부들을 자동으로 디스플레이하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하여, 사용자가 물리적 환경으로부터 얼마나 많은 콘텐츠가 3차원 환경에서 디스플레이되는지를 쉽게 제어할 수 있게 하고, 사용자가 3차원 환경에서 몰입 레벨을 변경시키라고 요청할 때 실시간 시각적 피드백을 사용자에게 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 컴퓨터 시스템은 3차원 환경에서 경험을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이한다. 일부 실시예들에서, 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 컴퓨터 시스템은 3차원 환경에서 콘텐츠를 변경시키는 제1 동작(예를 들어, 제1 콘텐츠를 재생 또는 일시정지함)을 수행한다. 일부 실시예들에서, 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 컴퓨터 시스템은 3차원 환경에서, 제1 동작과 상이한 제2 동작(예를 들어, 제2 콘텐츠를 일시정지 또는 재생함)을 수행한다. 일부 실시예들에서, 하나 이상의 사용자 인터페이스 객체들은 3차원 환경에서 몰입형 경험을 재생 및/또는 일시정지하기 위한 제어부를 포함한다. 예를 들어, 컴퓨터 시스템은, 사용자가 제1 사용자 인터페이스 객체를 선택하는 것에 응답하여, 3차원 환경에 대한 제1 유형의 가상 월페이퍼(제1 유형의 가상 경험에 대응함)를 디스플레이한다. 사용자가 제2 사용자 인터페이스 객체를 선택하는 것에 응답하여, 컴퓨터 시스템은 가상 조명 효과로 3차원 환경을 디스플레이한다. 예를 들어, 사용자 입력은, 선택적으로 사용자의 손의 검지 손가락 위에서의(예를 들어, 엄지손가락에 인접한 검지 손가락의 면 위에서의) 엄지손가락의 탭 입력인 탭 입력(예를 들어, 에어 제스처, 또는 핀치 제스처)이다. 일부 실시예들에서, 검지 손가락의 면으로부터 엄지 손가락의 리프트오프를 요구하지 않으면서 탭 입력이 검출된다. 예를 들어, 사용자는 3차원 환경에서 디스플레이되는 가상 콘텐츠를 재생(예를 들어, 또는 일시정지)하기 위해 제1 사용자 인터페이스 객체로 지향되는 탭 입력을 수행한다. 일부 실시예들에서, 탭 입력은 직접적으로 제1 사용자 인터페이스 객체로 지향되거나(예를 들어, 사용자는 제1 사용자 인터페이스 객체에 대응하는 포지션에서 탭 제스처를 수행함), 또는 탭 입력은 간접적으로 제1 사용자 인터페이스 객체로 지향된다(예를 들어, 사용자는 제1 어포던스를 응시하는 동안 탭 입력을 수행하며, 여기서 탭 입력을 수행하는 동안 사용자의 손의 포지션은 제1 사용자 인터페이스 객체에 대응하는 포지션에 있지 않음). 예를 들어, 사용자는, 제1 사용자 인터페이스 객체에서 또는 그 부근에서(예를 들어, 제1 사용자 인터페이스 객체의 외측 에지 또는 제1 사용자 인터페이스 객체의 중심 부분으로부터 측정되는 바와 같이 0.5 cm, 1 cm, 5 cm, 또는 0 내지 5 cm의 거리 내에서) 제스처를 개시함으로써 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 된다. 일부 실시예들에서, 사용자는 추가로, 제1 사용자 인터페이스 객체에 주의를 기울임으로써(예를 들어, 제1 사용자 인터페이스 객체를 응시함으로써) 제1 사용자 인터페이스 객체로 사용자의 입력을 지향시키도록 가능하게 되고, 제1 사용자 인터페이스 객체에 주의를 기울이는 동안, 사용자는 (예를 들어, 컴퓨터 시스템에 의해 검출가능한 임의의 포지션에서) 제스처를 개시한다. 예를 들어, 사용자가 제1 사용자 인터페이스 객체에 주의를 기울이고 있으면, 제스처는 제1 사용자 인터페이스 객체에 또는 그 부근에 있는 포지션에서 개시될 필요는 없다. 따라서, 사용자 인터페이스 객체들은 3차원 환경에서의 가상 경험을 위해 다양한 가상 콘텐츠를 변경시키기 위한(예를 들어, 다양한 가상 콘텐츠를 디스플레이 또는 디스플레이하는 것을 중단하기 위한) 제어부들에 대응한다. 일부 실시예들에서, 재생 제어 사용자 인터페이스 객체를 선택하는 것에 응답하여, 가상 경험을 위한 가상 콘텐츠가 디스플레이되고, 일시정지 제어 사용자 인터페이스 객체를 선택하는 것에 응답하여, 가상 경험을 위한 가상 콘텐츠가 디스플레이되는 것이 중단된다. 사용자가 물리적 환경에 대해 3차원 환경의 몰입형 경험을 제어하게 허용하는 복수의 제어부들을 자동으로 디스플레이하는 것은 복잡한 메뉴 계층구조들을 통해 내비게이팅하도록 사용자에게 요구하지 않으면서 사용자에 대한 부가적인 제어부들을 제공하여, 사용자가 물리적 환경으로부터 얼마나 많은 콘텐츠가 3차원 환경에서 디스플레이되는지를 쉽게 제어할 수 있게 하고, 사용자가 3차원 환경에서 몰입 레벨을 변경시키라고 요청할 때 실시간 시각적 피드백을 사용자에게 제공하며, 그에 의해, 부가적인 사용자 입력을 요구하지 않으면서, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 사용자의 시점의 이동이 이동의 임계량을 만족시키는 것에 응답하여, 사용자의 신체(예를 들어, 몸통, 머리, 또는 손)가 물리적 환경에서 이동된다는 결정에 따라, 컴퓨터 시스템은 제1 사용자 인터페이스 객체를 3차원 환경 내의 제1 포지션으로부터 제2 포지션으로 이동시킨다. 일부 실시예들에서, (예를 들어, 사용자의 신체의 이동을 검출하지 않으면서(예를 들어, 머리 회전만을 검출함)) 사용자의 머리가 물리적 환경 내의 제1 머리 포지션으로부터 제2 머리 포지션으로 이동된다는 결정에 따라, 컴퓨터 시스템은, 3차원 환경 내의 제1 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하고, (예를 들어, 제1 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단한 이후) (예를 들어, 이동을 애니메이션화하지 않으면서) 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이한다. 일부 실시예들에서, 사용자의 머리는 또한, 제1 사용자 인터페이스 객체가 3차원 환경 내의 제2 포지션에서 디스플레이되기 전에 적어도 임계량의 시간(예를 들어, 1초, 2초, 10초, 또는 0.5 내지 10초의 시간량) 동안 제2 머리 포지션에 머물러야 한다. 일부 실시예들에서, 사용자가 물리적 환경에서 사용자의 신체(예를 들어, 몸통, 머리, 또는 손)를 이동시키는 것에 응답하여, 제1 사용자 인터페이스 객체는 계속 디스플레이되고, 사용자의 신체의 이동과 함께 이동되도록 애니메이션화되는 반면, (예를 들어, 사용자의 신체를 이동시키지 않으면서) 사용자의 머리의 회전(이는 사용자의 시점을 변경시킴)을 검출하는 것에 응답하여, 사용자 인터페이스 객체는 사라지고, (머리가 새로운 시점으로 회전된 상태로 유지되었을 때) 새로운 시점에 재디스플레이된다. 일부 실시예들에서, 방법(800) 및 도 7c 내지 도 7h를 참조하여 위에서 설명된 바와 같이, 사용자의 머리가 제1 머리 포지션으로부터 제2 머리 포지션으로 이동된다고 결정하는 것은 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 것을 검출하는 것을 포함하고, 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 것을 검출하는 것에 응답하여, 제1 사용자 인터페이스 객체는 수정된 외관으로 디스플레이된다(예를 들어, 페이딩되거나, 더 이상 디스플레이되지 않거나, 또는 달리 시각적으로 강조해제된다). 일부 실시예들에서, 3차원 환경 내의 제2 포지션에서 제1 사용자 인터페이스 객체를 디스플레이하는 것은 (예를 들어, 도 7h를 참조하여 설명된 바와 같이) 사용자가 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시킨다는 것을 검출하는 것에 응답하여 수행된다. 사용자의 머리가 사용자의 몸통을 이동시키지 않으면서 이동될 때 3차원 환경에서 특정 사용자 인터페이스 객체들을 디스플레이하지 않으면서, 사용자의 몸통이 물리적 환경에서 이동되는 동안 이동하는 것으로서 3차원 환경에서 특정 사용자 인터페이스 객체들을 자동으로 디스플레이하는 것은 사용자가 물리적 환경 내에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
일부 실시예들에서, 이동이 임계량을 만족시킨다는 결정 이후, 제1 사용자 인터페이스 객체는 사용자의 시점이 물리적 환경에 대해 이동됨에 따라 3차원 환경 내의 복수의 개개의 포지션들에서 디스플레이되며, 여기서 복수의 개개의 포지션들 중 제1 포지션에서, 제1 사용자 인터페이스 객체는 사용자의 개개의 부분에 대한 제1 공간 배열을 갖고(예를 들어, 계속 갖고), 복수의 개개의 포지션들 중 제2 포지션에서, 제1 사용자 인터페이스 객체는 사용자의 개개의 부분에 대한 제1 공간 배열을 갖는다(예를 들어, 계속 갖는다). 예를 들어, 3차원 환경 내의 복수의 개개의 포지션들은 3차원 환경 내의 임의의 수의 위치들에 적용된다(예를 들어, 제1 사용자 인터페이스 객체는 사용자의 개개의 부분에 대해 제1 공간 배열을 유지하기 위해 사용자의 현재 시점 내에 있는 3차원 환경의 임의의 부분에서 디스플레이되도록 인에이블된다). 이와 같이, 사용자가 물리적 환경에서 이동함에 따라, 제1 사용자 인터페이스 객체는 사용자가 이동함에 따라 제1 사용자 인터페이스 객체가 3차원 환경에서 계속 이동되고 있는 것처럼 보이기 위해 3차원 환경 내의 다양한 포지션들에서 디스플레이되도록 인에이블된다. 예를 들어, 도 7e 내지 도 7g에서, 사용자가 물리적 환경에서 계속 이동함에 따라, 사용자 인터페이스 객체는 부가적인 포지션들에서 디스플레이된다. 특정 사용자 인터페이스 객체들과 사용자의 시점 사이에서 동일한 공간적 관계를 유지하면서, 사용자가 물리적 환경에서 이동하는 동안 사용자의 현재 시점을 뒤따르도록 3차원 환경에서 특정 사용자 인터페이스 객체들을 자동으로 이동시키는 것은 사용자가 물리적 환경 주위에서 이동할 때 실시간 시각적 피드백을 제공하며, 그에 의해, 개선된 시각적 피드백을 사용자에게 제공한다.
도 9에서의 동작들이 설명된 특정 순서는 단지 일 예일 뿐이며, 설명된 순서가 동작들이 수행될 수 있는 유일한 순서라는 것을 표시하는 것으로 의도되지는 않는다는 것이 이해되어야 한다. 당업자는 본 명세서에 설명된 동작들을 재순서화하는 다양한 방식들을 인식할 것이다. 부가적으로, 본 명세서에 설명된 다른 방법들(예를 들어, 방법(800))에 관해 본 명세서에 설명된 다른 프로세스들의 세부사항들이 도 9에 관해 위에서 설명된 방법(900)과 유사한 방식으로 또한 적용가능하다는 것을 유의해야 한다. 예를 들어, 방법(900)을 참조하여 위에서 설명된 제스처들, 입력들, 물리적 객체들, 사용자 인터페이스 객체들, 이동들, 기준들, 3차원 환경, 디스플레이 생성 컴포넌트, 물리적 객체의 표현, 가상 객체들, 및/또는 애니메이션들은 선택적으로, 본 명세서에서 설명되는 다른 방법들(예를 들어, 방법(800))을 참조하여 본 명세서에 설명되는 제스처들, 입력들, 물리적 객체들, 사용자 인터페이스 객체들, 이동들, 기준들, 3차원 환경, 디스플레이 생성 컴포넌트, 물리적 객체의 표현, 가상 객체들, 및/또는 애니메이션들의 특성들 중 하나 이상을 갖는다. 간결함을 위해, 이러한 세부사항들은 여기서 반복되지 않는다.
도 8 및 도 9를 참조하여 위에서 설명된 동작들은 선택적으로, 도 1 내지 도 6에 도시된 컴포넌트들에 의해 구현된다. 일부 실시예들에서, 방법들(800, 900)의 양태들/동작들은 이러한 방법들 사이에서 상호교환, 대체, 및/또는 추가될 수 있다. 간결함을 위해, 이러한 세부사항들은 여기서 반복되지 않는다.
부가적으로, 하나 이상의 단계들이 하나 이상의 조건들이 충족되었음을 조건으로 하는 본 명세서에서 설명되는 방법들에서, 설명된 방법은 다수의 반복들로 반복될 수 있어서, 반복들 동안, 방법의 단계들이 조건으로 하는 조건들 모두가 방법의 상이한 반복들로 충족되게 할 수 있다는 것이 이해되어야 한다. 예를 들어, 방법이, 조건이 만족되면 제1 단계를 그리고 조건이 만족되지 않으면 제2 단계를 수행할 것을 요구하면, 당업자는, 조건이 만족되고 만족되지 않을 때까지, 청구된 단계들이 특정 순서 없이 반복된다는 것을 인식할 것이다. 따라서, 하나 이상의 조건들이 충족되었음을 조건으로 하는 하나 이상의 단계들로 설명되는 방법은, 방법에서 설명되는 조건들 각각이 충족될 때까지 반복되는 방법으로서 재작성될 수 있다. 그러나, 이는, 시스템 또는 컴퓨터 판독가능 매체가 대응하는 하나 이상의 조건들의 만족에 기초하여 조건부 동작들을 수행하기 위한 명령어들을 포함하고, 그에 따라, 방법의 단계들이 조건으로 하는 조건들 모두가 충족될 때까지 방법의 단계들을 명시적으로 반복하지 않고서 우연성(contingency)이 만족되었는지 또는 만족되지 않았는지를 결정할 수 있는 시스템 또는 컴퓨터 판독가능 매체 청구항들에서는 요구되지 않는다. 당업자는, 또한, 조건부 단계들을 갖는 방법과 유사하게, 시스템 또는 컴퓨터 판독가능 저장 매체가 조건부 단계들 모두가 수행되었음을 보장하는 데 필요한 횟수만큼 방법의 단계들을 반복할 수 있다는 것을 이해할 것이다.
전술한 설명은, 설명의 목적을 위해, 특정 실시예들을 참조하여 설명되었다. 그러나, 위의 예시적인 논의들은 본 발명을 개시된 정확한 형태들로 규명하거나 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 위의 교시 내용들의 관점에서 가능하다. 본 발명의 원리들 및 그의 실제적인 응용들을 가장 잘 설명하여, 그에 의해 당업자들이 본 발명 및 다양한 설명된 실시예들을 고려되는 특정 용도에 적합한 바와 같은 다양한 변형들을 갖고서 가장 잘 이용하는 것을 가능하게 하도록, 실시예들이 선택 및 설명되었다.

Claims (49)

  1. 방법으로서,
    제1 디스플레이 생성 컴포넌트 및 하나 이상의 제1 입력 디바이스들과 통신하는 제1 컴퓨터 시스템에서,
    상기 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경의 제1 뷰에서 제1 사용자 인터페이스 객체를 디스플레이하는 단계;
    상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 사용자가 상기 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키는지 여부를 검출하는 단계;
    상기 사용자가 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들을 만족시키지 않는다는 것을 검출하는 것에 응답하여, 수정된 외관으로 제1 사용자 인터페이스를 디스플레이하는 단계 - 상기 수정된 외관으로 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계는 상기 3차원 환경 내의 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제(deemphasize)하는 단계를 포함함 -;
    상기 수정된 외관으로 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 물리적 환경에 대한 상기 사용자의 시점의 제1 이동을 검출하는 단계; 및
    상기 물리적 환경에 대한 상기 사용자의 상기 시점의 상기 제1 이동을 검출한 이후, 상기 사용자가 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들을 만족시킨다는 것을 검출하는 단계; 및
    상기 사용자가 상기 주의 기준들을 만족시킨다는 것을 검출하는 것에 응답하여, 상기 3차원 환경의 상기 제1 뷰와 별개인 상기 3차원 환경의 제2 뷰에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함하며, 상기 3차원 환경의 상기 제2 뷰에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계는, 상기 제1 사용자 인터페이스 객체가 상기 수정된 외관으로 디스플레이되었을 때보다 더 많이 상기 3차원 환경 내의 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조하는 외관으로 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 사용자 인터페이스 객체는 상기 물리적 환경 내의 상기 사용자의 신체의 위치에 대응하는 상기 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는, 방법.
  3. 제1항에 있어서,
    상기 물리적 환경에 대한 상기 사용자의 상기 시점의 상기 제1 이동을 검출한 이후, 상기 3차원 환경 내의 동일한 앵커 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계를 더 포함하는, 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 물리적 환경에 대한 상기 사용자의 상기 시점의 상기 제1 이동을 검출한 이후,
    상기 제1 이동이 시간 임계치를 만족시킨다는 결정에 따라, 상기 3차원 환경 내의 상기 제1 사용자 인터페이스 객체를 상기 사용자의 상기 시점에 대해 동일한 포지션으로 이동시키는 단계를 더 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 사용자 입력을 수신하는 단계;
    상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 상기 입력을 수신하는 것에 응답하여, 상기 입력에 따라 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 개개의 포지션으로 리포지셔닝시키는 단계; 및
    상기 입력에 따라 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 개개의 포지션으로 리포지셔닝시킨 이후, 상기 사용자의 시점을 변경시키기 위한 입력을 검출하는 단계; 및
    상기 사용자의 상기 시점을 변경시키기 위한 상기 입력을 검출하는 것에 응답하여, 상기 사용자의 상기 시점을 변경시키기 위한 상기 입력에 따라 상기 사용자의 상기 시점을 변경시키고, 상기 사용자의 현재 시점으로부터 상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 상기 3차원 환경에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계는,
    상기 제1 사용자 인터페이스 객체가 제1 미리 정의된 구역 내에 포지셔닝된다는 결정에 따라, 상기 물리적 환경 내의 상기 사용자의 상기 시점의 위치에 대응하는 상기 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는 개개의 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계; 및
    상기 제1 사용자 인터페이스 객체가 상기 제1 미리 정의된 구역 내에 포지셔닝되지 않는다는 결정에 따라, 상기 물리적 환경 내의 상기 사용자의 상기 신체의 위치에 대응하지 않는 상기 3차원 환경 내의 동일한 앵커 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제1 미리 정의된 구역은 상기 3차원 환경 내의 복수의 미리 정의된 구역들로부터 선택되고,
    상기 제1 미리 정의된 구역은 상기 사용자의 상기 시점의 위치에 대응하는 상기 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖고,
    상기 복수의 미리 정의된 구역들 중 제2 미리 정의된 구역은 상기 사용자의 상기 시점의 위치에 대응하는 상기 3차원 환경 내의 제2 앵커 포지션에 대한 제2 공간적 관계를 갖는, 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 사용자가 상기 제1 사용자 인터페이스 객체를 리포지셔닝시키기 위한 상기 사용자 입력을 개시하는 것을 검출하는 것에 응답하여, 상기 제1 미리 정의된 구역에 대한 시각적 표시를 디스플레이하는 단계; 및
    상기 제1 사용자 인터페이스 객체를 상기 제1 미리 정의된 구역에 리포지셔닝시키기 위한 상기 사용자 입력을 검출하는 동안, 상기 제1 미리 정의된 구역에 대한 상기 시각적 표시의 디스플레이를 유지하는 단계를 더 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들은 시선 기준을 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들은 상기 물리적 환경 내의 상기 사용자의 머리의 포지션에 대한 기준을 포함하는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 사용자 인터페이스 객체의 적어도 일부 상에 디스플레이된 제1 어포던스로 지향되는 핀치 입력, 뒤이어 상기 핀치 입력을 수행했던 손의 이동을 검출하는 단계; 및
    상기 손의 상기 이동에 응답하여, 상기 손의 상기 이동에 따라 상기 제1 사용자 인터페이스 객체의 크기를 변경시키는 단계를 더 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 제1 사용자 인터페이스 객체로 지향되는 제1 손을 이용한 핀치 입력 및 제2 손을 이용한 핀치 입력, 뒤이어 상기 제1 손과 상기 제2 손 사이의 거리의 변화를 수신하는 단계; 및
    상기 제1 손과 상기 제2 손 사이의 상기 거리의 변화에 응답하여, 상기 제1 손과 상기 제2 손 사이의 상기 거리의 변화에 따라 상기 제1 사용자 인터페이스 객체의 크기를 변경시키는 단계를 더 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 3차원 환경 내의 상기 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 단계는 상기 3차원 환경 내의 하나 이상의 다른 가상 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 단계를 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 3차원 환경 내의 상기 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 단계는 상기 물리적 환경 내의 하나 이상의 물리적 객체들의 표현들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 단계를 포함하는, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체는 복수의 선택가능 사용자 인터페이스 객체들을 포함하는, 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 3차원 환경의 몰입 레벨(immersion level)을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이하는 단계;
    상기 3차원 환경의 몰입 레벨을 증가시키기 위한 상기 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 상기 3차원 환경에서 부가적인 가상 콘텐츠를 디스플레이하는 단계; 및
    상기 3차원 환경의 몰입 레벨을 감소시키기 위한 상기 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 상기 물리적 환경에 대응하는 부가적인 콘텐츠를 디스플레이하는 단계를 더 포함하는, 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서, 상기 3차원 환경 내의 상기 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 양은 상기 사용자의 검출된 시선과 상기 제1 사용자 인터페이스 객체 사이의 각도에 기초하는, 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서, 상기 3차원 환경 내의 상기 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 강조해제하는 양은 상기 사용자의 상기 시점의 상기 제1 이동의 레이트에 기초하는, 방법.
  18. 제4항 내지 제17항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체는 상기 사용자의 이동에 따라 상기 3차원 환경 내에서 이동되는, 방법.
  19. 제1항에 있어서, 상기 물리적 환경에 대한 상기 사용자의 상기 시점의 상기 제1 이동 직전 및 직후, 상기 3차원 환경 내의 상기 제1 사용자 인터페이스 객체의 개개의 특성 포지션은 상기 물리적 환경 내의 상기 사용자의 상기 시점의 위치에 대응하는 상기 3차원 환경 내의 제1 앵커 포지션에 대한 제1 공간적 관계를 갖는, 방법.
  20. 컴퓨터 시스템으로서,
    제1 디스플레이 생성 컴포넌트;
    하나 이상의 입력 디바이스들;
    하나 이상의 프로세서들; 및
    하나 이상의 프로그램들을 저장하는 메모리를 포함하며,
    상기 하나 이상의 프로그램들은 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 상기 하나 이상의 프로그램들은 제1항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 컴퓨터 시스템.
  21. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램들은, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 포함하는 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제1항 내지 제19항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 판독가능 저장 매체.
  22. 제1 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들, 메모리, 및 상기 메모리에 저장된 하나 이상의 프로그램들을 실행하기 위한 하나 이상의 프로세서들을 포함하는 컴퓨터 시스템 상의 그래픽 사용자 인터페이스로서, 상기 그래픽 사용자 인터페이스는 제1항 내지 제19항 중 어느 한 항의 방법에 따라 디스플레이되는 사용자 인터페이스들을 포함하는, 그래픽 사용자 인터페이스.
  23. 컴퓨터 시스템으로서,
    제1 디스플레이 생성 컴포넌트;
    하나 이상의 입력 디바이스들; 및
    제1항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 컴퓨터 시스템.
  24. 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 포함하는 컴퓨터 시스템에서 사용하기 위한 정보 프로세싱 장치로서,
    제1항 내지 제19항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
  25. 방법으로서,
    제1 디스플레이 생성 컴포넌트 및 하나 이상의 제1 입력 디바이스들과 통신하는 제1 컴퓨터 시스템에서,
    상기 제1 디스플레이 생성 컴포넌트를 통해, 3차원 환경 내의 제1 포지션에서 그리고 사용자의 개개의 부분에 대한 제1 공간 배열로 상기 3차원 환경의 제1 뷰 내의 제1 사용자 인터페이스 객체를 디스플레이하는 단계;
    상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 물리적 환경 내의 제1 위치로부터 제2 위치로의 상기 사용자의 시점의 이동을 검출하는 단계; 및
    상기 제1 위치로부터 상기 제2 위치로의 상기 사용자의 상기 시점의 상기 이동을 검출하는 것에 응답하여,
    상기 제1 위치로부터 상기 제2 위치로의 상기 사용자의 상기 시점의 상기 이동이 이동의 임계량을 만족시키지 않는다는 결정에 따라, 상기 3차원 환경 내의 상기 제1 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계; 및
    상기 제1 위치로부터 상기 제2 위치로의 상기 사용자의 상기 시점의 상기 이동이 상기 이동의 임계량을 만족시킨다는 결정에 따라,
    상기 3차원 환경 내의 상기 제1 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하는 단계; 및
    상기 3차원 환경 내의 제2 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함하며, 상기 3차원 환경 내의 상기 제2 포지션은 상기 사용자의 상기 개개의 부분에 대한 상기 제1 공간 배열을 갖는, 방법.
  26. 제25항에 있어서,
    상기 3차원 환경 내의 상기 제1 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 동안, 상기 사용자의 상기 시점의 상기 이동이 상기 이동의 임계량을 만족시킨다는 것을 검출하는 단계; 및
    상기 사용자의 상기 시점의 상기 이동이 상기 이동의 임계량을 만족시키는 것에 응답하여, 상기 3차원 환경 내의 상기 제1 포지션으로부터 상기 제2 포지션으로 상기 제1 사용자 인터페이스 객체를 이동시키는 단계를 더 포함하는, 방법.
  27. 제25항 또는 제26항에 있어서,
    상기 3차원 환경 내의 상기 제2 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 하나 이상의 입력 디바이스들을 통해, 상기 물리적 환경 내의 상기 제2 위치로부터 제3 위치로의 상기 사용자의 상기 시점의 이동을 검출하는 단계; 및
    상기 제2 위치로부터 상기 제3 위치로의 상기 사용자의 상기 시점의 상기 이동을 검출하는 것에 응답하여,
    상기 제2 위치로부터 상기 제3 위치로의 상기 사용자의 상기 시점의 상기 이동이 이동의 제2 임계량을 만족시키지 않는다는 결정에 따라, 상기 3차원 환경 내의 상기 제2 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계; 및
    상기 제2 위치로부터 상기 제3 위치로의 상기 사용자의 상기 시점의 상기 이동이 상기 이동의 제2 임계량을 만족시킨다는 결정에 따라,
    상기 3차원 환경 내의 상기 제2 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하는 단계; 및
    상기 3차원 환경 내의 제3 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 상기 3차원 환경 내의 상기 제3 포지션은 상기 사용자의 상기 개개의 부분에 대한 상기 제1 공간 배열을 갖는, 방법.
  28. 제26항 또는 제27항에 있어서, 상기 3차원 환경 내의 상기 제1 포지션으로부터 상기 제2 포지션으로 상기 제1 사용자 인터페이스 객체를 이동시키는 동안, 상기 3차원 환경 내의 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 단계를 더 포함하는, 방법.
  29. 제28항에 있어서, 상기 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 단계는 감소된 불투명도로 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함하는, 방법.
  30. 제28항 또는 제29항에 있어서, 상기 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 단계는 블러링된(blurred) 시각적 효과로 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 포함하는, 방법.
  31. 제25항 내지 제30항 중 어느 한 항에 있어서, 상기 사용자가 상기 제1 사용자 인터페이스 객체에 대한 주의 기준들을 만족시키지 않는다는 결정에 따라, 상기 3차원 환경 내의 하나 이상의 다른 객체들에 대해 상기 제1 사용자 인터페이스 객체를 시각적으로 강조해제하는 단계를 더 포함하는, 방법.
  32. 제31항에 있어서, 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들은 시선 기준을 포함하는, 방법.
  33. 제31항에 있어서, 상기 제1 사용자 인터페이스 객체에 대한 상기 주의 기준들은 상기 물리적 환경 내의 상기 사용자의 머리의 포지션에 대한 기준을 포함하는, 방법.
  34. 제28항 내지 제33항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체의 시각적 강조해제의 양은 상기 사용자의 상기 시점의 상기 이동의 레이트에 기초하는, 방법.
  35. 제25항 내지 제34항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 3차원 환경의 상기 제1 뷰 내의 제4 포지션에서 제2 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 상기 제4 포지션은 상기 3차원 환경 내의 위치에 대한 제2 공간 배열을 갖는, 방법.
  36. 제25항 내지 제35항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체를 디스플레이하는 동안, 상기 3차원 환경의 상기 제1 뷰 내의 제5 포지션에서 제3 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하며, 상기 제3 사용자 인터페이스 객체는 상기 사용자의 개개의 부분에 대한 제3 공간 배열을 갖는, 방법.
  37. 제25항 내지 제36항 중 어느 한 항에 있어서,
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 제6 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 것에 응답하여,
    상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제6 포지션으로 이동시키는 단계 - 상기 제6 포지션은 상기 사용자의 상기 개개의 부분에 대한 제4 공간 배열을 가짐 -; 및
    상기 제1 사용자 인터페이스 객체에 대해, 상기 제1 사용자 인터페이스 객체의 상기 사용자의 상기 개개의 부분에 대한 상기 제1 공간 배열을 상기 사용자의 상기 개개의 부분에 대한 상기 제4 공간 배열로 업데이트하는 단계를 더 포함하는, 방법.
  38. 제37항에 있어서, 상기 3차원 환경 내의 상기 제6 포지션은 상기 사용자로부터의 미리 정의된 거리 내에 있고;
    상기 방법은, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 제7 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 것에 응답하여 - 상기 3차원 환경 내의 상기 제7 포지션은 상기 사용자로부터의 상기 미리 정의된 거리를 초과함 -, 상기 제1 사용자 인터페이스 객체를 상기 제7 포지션으로 이동시키는 단계를 더 포함하며, 상기 제7 포지션에서, 상기 제1 사용자 인터페이스 객체는 상기 3차원 환경의 일부에 앵커링되는, 방법.
  39. 제25항 내지 제38항 중 어느 한 항에 있어서, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 제8 포지션으로 리포지셔닝시키기 위한 사용자 입력을 검출하는 동안, 하나 이상의 미리 정의된 구역들에 대한 시각적 표시를 디스플레이하는 단계;
    상기 제8 포지션이 상기 하나 이상의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있다는 결정에 따라 - 상기 제8 포지션은 상기 사용자의 상기 개개의 부분에 대한 제5 공간 배열을 가짐 -, 상기 사용자의 상기 시점의 이동을 검출하는 것에 응답하여, 상기 사용자의 상기 개개의 부분에 대한 상기 제5 공간 배열을 갖는 상기 3차원 환경 내의 제9 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계; 및
    제8 포지션이 상기 하나 이상의 미리 정의된 구역들 중의 미리 정의된 구역 내에 있지 않다는 결정에 따라, 상기 사용자의 상기 시점의 이동을 검출하는 것에 응답하여, 상기 3차원 환경 내의 상기 제8 포지션에서 상기 제1 사용자 인터페이스 객체의 디스플레이를 유지하는 단계를 더 포함하는, 방법.
  40. 제37항 또는 제38항에 있어서, 상기 제1 사용자 인터페이스 객체를 상기 제6 포지션으로 리포지셔닝시키기 위한 상기 사용자 입력을 검출하는 것에 응답하여, 상기 제1 사용자 인터페이스 객체는 상기 3차원 환경 내의 상기 제6 포지션에 스냅(snap)되는, 방법.
  41. 제25항 내지 제40항 중 어느 한 항에 있어서,
    상기 3차원 환경의 몰입 레벨을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이하는 단계;
    상기 3차원 환경의 몰입 레벨을 증가시키기 위한 상기 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 상기 3차원 환경에서 부가적인 가상 콘텐츠를 디스플레이하는 단계; 및
    상기 3차원 환경의 몰입 레벨을 감소시키기 위한 상기 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 상기 물리적 환경에 대응하는 부가적인 콘텐츠를 디스플레이하는 단계를 더 포함하는, 방법.
  42. 제25항 내지 제41항 중 어느 한 항에 있어서,
    상기 3차원 환경에서 경험을 제어하기 위한 하나 이상의 사용자 인터페이스 객체들을 디스플레이하는 단계;
    상기 하나 이상의 사용자 인터페이스 객체들 중 제1 사용자 인터페이스 객체로 지향되는 사용자 입력에 응답하여, 상기 3차원 환경에서 콘텐츠를 변경시키는 제1 동작을 수행하는 단계; 및
    상기 하나 이상의 사용자 인터페이스 객체들 중 제2 사용자 인터페이스 객체로 지향되는 사용자 입력을 검출하는 것에 응답하여, 상기 3차원 환경에서, 상기 제1 동작과 상이한 제2 동작을 수행하는 단계를 더 포함하는, 방법.
  43. 제25항 내지 제42항 중 어느 한 항에 있어서,
    상기 사용자의 상기 시점의 상기 이동이 상기 이동의 임계량을 만족시키는 것에 응답하여,
    상기 사용자의 신체가 상기 물리적 환경에서 이동된다는 결정에 따라, 상기 제1 사용자 인터페이스 객체를 상기 3차원 환경 내의 상기 제1 포지션으로부터 상기 제2 포지션으로 이동시키는 단계; 및
    상기 사용자의 머리가 상기 물리적 환경 내의 제1 머리 포지션으로부터 제2 머리 포지션으로 이동된다는 결정에 따라,
    상기 3차원 환경 내의 상기 제1 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 것을 중단하는 단계; 및
    상기 3차원 환경 내의 상기 제2 포지션에서 상기 제1 사용자 인터페이스 객체를 디스플레이하는 단계를 더 포함하는, 방법.
  44. 제25항 내지 제43항 중 어느 한 항에 있어서, 상기 이동이 상기 임계량을 만족시킨다는 결정 이후, 상기 제1 사용자 인터페이스 객체는 상기 사용자의 상기 시점이 상기 물리적 환경에 대해 이동됨에 따라 상기 3차원 환경 내의 복수의 개개의 포지션들에서 디스플레이되고, 상기 복수의 개개의 포지션들 중 제1 포지션에서, 상기 제1 사용자 인터페이스 객체는 상기 사용자의 상기 개개의 부분에 대한 상기 제1 공간 배열을 갖고, 상기 복수의 개개의 포지션들 중 제2 포지션에서, 상기 제1 사용자 인터페이스 객체는 상기 사용자의 상기 개개의 부분에 대한 상기 제1 공간 배열을 갖는, 방법.
  45. 컴퓨터 시스템으로서,
    제1 디스플레이 생성 컴포넌트;
    하나 이상의 입력 디바이스들;
    하나 이상의 프로세서들; 및
    하나 이상의 프로그램들을 저장하는 메모리를 포함하며,
    상기 하나 이상의 프로그램들은 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 상기 하나 이상의 프로그램들은 제25항 내지 제44항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 컴퓨터 시스템.
  46. 하나 이상의 프로그램들을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 하나 이상의 프로그램들은, 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 포함하는 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제25항 내지 제44항 중 어느 한 항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 판독가능 저장 매체.
  47. 제1 디스플레이 생성 컴포넌트, 하나 이상의 입력 디바이스들, 메모리, 및 상기 메모리에 저장된 하나 이상의 프로그램들을 실행하기 위한 하나 이상의 프로세서들을 포함하는 컴퓨터 시스템 상의 그래픽 사용자 인터페이스로서, 상기 그래픽 사용자 인터페이스는 제25항 내지 제44항 중 어느 한 항의 방법에 따라 디스플레이되는 사용자 인터페이스들을 포함하는, 그래픽 사용자 인터페이스.
  48. 컴퓨터 시스템으로서,
    제1 디스플레이 생성 컴포넌트;
    하나 이상의 입력 디바이스들; 및
    제25항 내지 제44항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 컴퓨터 시스템.
  49. 제1 디스플레이 생성 컴포넌트 및 하나 이상의 입력 디바이스들을 포함하는 컴퓨터 시스템에서 사용하기 위한 정보 프로세싱 장치로서,
    제25항 내지 제44항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
KR1020247008055A 2021-09-22 2022-09-20 3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들 KR20240048522A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163247241P 2021-09-22 2021-09-22
US63/247,241 2021-09-22
US17/948,096 US20230092874A1 (en) 2021-09-22 2022-09-19 Devices, Methods, and Graphical User Interfaces for Interacting with Three-Dimensional Environments
US17/948,096 2022-09-19
PCT/US2022/044117 WO2023049111A1 (en) 2021-09-22 2022-09-20 Devices, methods, and graphical user interfaces for interacting with three-dimensional environments

Publications (1)

Publication Number Publication Date
KR20240048522A true KR20240048522A (ko) 2024-04-15

Family

ID=83689915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247008055A KR20240048522A (ko) 2021-09-22 2022-09-20 3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들

Country Status (4)

Country Link
EP (1) EP4388502A1 (ko)
JP (1) JP2024535753A (ko)
KR (1) KR20240048522A (ko)
WO (1) WO2023049111A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101666561B1 (ko) * 2015-07-13 2016-10-24 한국과학기술원 증강 공간 내 부분 공간 획득 시스템 및 방법
CN113728301B (zh) * 2019-06-01 2024-07-23 苹果公司 用于在2d屏幕上操纵3d对象的设备、方法和图形用户界面
US11340756B2 (en) * 2019-09-27 2022-05-24 Apple Inc. Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US20210286502A1 (en) * 2020-03-16 2021-09-16 Apple Inc. Devices, Methods, and Graphical User Interfaces for Providing Computer-Generated Experiences

Also Published As

Publication number Publication date
WO2023049111A1 (en) 2023-03-30
EP4388502A1 (en) 2024-06-26
JP2024535753A (ja) 2024-10-02

Similar Documents

Publication Publication Date Title
US11340756B2 (en) Devices, methods, and graphical user interfaces for interacting with three-dimensional environments
US11875013B2 (en) Devices, methods, and graphical user interfaces for displaying applications in three-dimensional environments
KR102562285B1 (ko) 사용자 인터페이스와 연관된 몰입을 조정 및/또는 제어하기 위한 방법
US11853527B2 (en) Devices, methods, and graphical user interfaces for providing computer-generated experiences
JP2022547930A (ja) 三次元環境と相互作用するためのデバイス、方法、及びグラフィカルユーザインタフェース
US11720171B2 (en) Methods for navigating user interfaces
US20230106627A1 (en) Devices, Methods, And Graphical User Interfaces for Interacting with Three-Dimensional Environments
KR20240049345A (ko) 3차원 환경들과의 상호작용을 위한 디바이스들, 방법들 및 그래픽 사용자 인터페이스들
US20230092874A1 (en) Devices, Methods, and Graphical User Interfaces for Interacting with Three-Dimensional Environments
KR20240048522A (ko) 3차원 환경들과 상호작용하기 위한 디바이스들, 방법들, 및 그래픽 사용자 인터페이스들
US20240094862A1 (en) Devices, Methods, and Graphical User Interfaces for Displaying Shadow and Light Effects in Three-Dimensional Environments
CN117957581A (zh) 用于与三维环境交互的设备、方法和图形用户界面
WO2024063786A1 (en) Devices, methods, and graphical user interfaces for displaying shadow and light effects in three-dimensional environments
CN118043766A (zh) 用于与三维环境进行交互的设备、方法和图形用户界面

Legal Events

Date Code Title Description
A201 Request for examination