KR102389185B1 - 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법 - Google Patents

컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법 Download PDF

Info

Publication number
KR102389185B1
KR102389185B1 KR1020170134879A KR20170134879A KR102389185B1 KR 102389185 B1 KR102389185 B1 KR 102389185B1 KR 1020170134879 A KR1020170134879 A KR 1020170134879A KR 20170134879 A KR20170134879 A KR 20170134879A KR 102389185 B1 KR102389185 B1 KR 102389185B1
Authority
KR
South Korea
Prior art keywords
electronic device
external electronic
input
display
processor
Prior art date
Application number
KR1020170134879A
Other languages
English (en)
Other versions
KR20190043049A (ko
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170134879A priority Critical patent/KR102389185B1/ko
Priority to US16/161,240 priority patent/US10754546B2/en
Priority to EP18868965.7A priority patent/EP3665559B1/en
Priority to PCT/KR2018/012220 priority patent/WO2019078595A1/en
Publication of KR20190043049A publication Critical patent/KR20190043049A/ko
Application granted granted Critical
Publication of KR102389185B1 publication Critical patent/KR102389185B1/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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/018Input/output arrangements for oriental characters
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • G06F3/0426Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected tracking fingers with respect to a virtual keyboard projected or printed on the surface
    • 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
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/38Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory with means for controlling the display position
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/70Details of telephonic subscriber devices methods for entering alphabetical characters, e.g. multi-tap or dictionary disambiguation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

다양한 실시예들에 따른 전자 장치(electronic device)는, 디스플레이와, 통신 모듈과, 프로세서를 포함할 수 있고, 상기 프로세서는, 상기 디스플레이를 통해 컨텐츠를 표시하고, 상기 통신 모듈을 통해 터치 센서를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하고, 상기 디스플레이를 통해 상기 컨텐츠의 적어도 일부 위에(over) 표시되는 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 움직임에 대응하도록 상기 데이터를 이용하여 이동하고, 입력에 적어도 기반하여, 상기 그래픽 오브젝트 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하고, 상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 센서에 대한 입력 및 상기 터치 센서에 대한 입력에 상응하는 위치 정보를 획득하고, 상기 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하고, 상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하도록 설정될 수 있다.

Description

컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법{ELECTRONIC DEVICE AND METHOD FOR EXECUTING FUNCTION USING INPUT INTERFACE DISPLAYED VIA AT LEAST PORTION OF CONTENT}
다양한 실시예들은 컨텐츠(content)의 적어도 일부를 통해 표시된 입력 인터페이스(input interface)를 이용하여 기능(function)을 실행하기 위한 전자 장치(electronic device) 및 그의 방법에 관한 것이다.
기술(technology)의 발달(development)로 인하여, VR(virtual reality)을 위한 이미지를 표시할 수 있는 전자 장치(electronic device)가 보급되고 있다. 이러한 전자 장치는, 전자 장치의 디스플레이 상에서 표시되는 VR을 위한 이미지 내에 캐릭터(character)를 입력하는 기능을 구비할 수 있다.
전자 장치(electronic device)를 통해 VR(virtual reality)을 위한 이미지를 제공 받는 사용자는 시야(field of view)가 제한될 수 있다. 이러한 시야의 제한으로 인하여, 전자 장치의 디스플레이 상에서 표시되고 있는 VR를 위한 이미지에 캐릭터(character)를 입력하는 것은 불편함을 초래할 수 있다.
다양한 실시예들은, 외부 전자 장치에 대한 터치 입력과 상기 외부 전자 장치에 상응하는 표시(representation) 내에서(또는, 인접하여) 제공되는 가상 키보드를 이용하여 VR을 위한 이미지에 캐릭터를 입력하는 전자 장치 및 방법을 제공할 수 있다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들에 따른 전자 장치(electronic device)는, 디스플레이와, 통신 모듈과, 프로세서를 포함할 수 있고, 상기 프로세서는, 상기 디스플레이를 통해 컨텐츠를 표시하고, 상기 통신 모듈을 통해 터치 센서를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하고, 상기 디스플레이를 통해 상기 컨텐츠의 적어도 일부 위에(over) 표시되는 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 움직임에 대응하도록 상기 데이터를 이용하여 이동하고, 입력에 적어도 기반하여, 상기 그래픽 오브젝트 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하고, 상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 센서에 대한 입력 및 상기 터치 센서에 대한 입력에 상응하는 위치 정보를 획득하고, 상기 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하고, 상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하도록 설정될 수 있다.
다양한 실시 예들에 따른 전자 장치는, 명령어들을 저장하는 메모리와, 디스플레이와, 통신 인터페이스와, 상기 메모리, 상기 디스플레이, 및 상기 통신 인터페이스와 기능적으로(operably) 연결된 프로세서를 포함할 수 있고, 상기 프로세서는, 전방향(omnidirectional) 이미지를 표시하고, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하고, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하고, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하고, 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하기 위해, 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에 따른 비-일시적 컴퓨터 판동 가능 저장 매체는, 전방향(omnidirectional) 이미지를 표시하는 동작과, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하는 동작과, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하는 동작과, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작과, 상기 전방향 이미지의 적어도 일부 내에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하는 동작을 실행하기 위한 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에 따른 전자 장치의 방법은, 상기 전자 장치의 디스플레이를 통해 컨텐츠를 표시하는 동작과, 상기 전자 장치의 통신 모듈을 통해 터치 센서를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하는 동작과, 상기 디스플레이를 통해 상기 컨텐츠의 적어도 일부 위에(over) 표시되는 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 움직임에 대응하도록 상기 데이터를 이용하여 이동하는 동작과, 입력에 적어도 기반하여, 상기 그래픽 오브젝트 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하는 동작과, 상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 센서에 대한 입력 및 상기 터치 센서에 대한 입력에 상응하는 위치 정보를 획득하는 동작과, 상기 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하는 동작과, 상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하는 동작을 포함할 수 있다.
다양한 실시 예들에 따른 전자 장치의 방법은, 전방향(omnidirectional) 이미지를 표시하는 동작과, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하는 동작과, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하는 동작과, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작과, 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하는 동작을 포함할 수 있다.
다양한 실시 예들에 따른 전자 장치 및 그의 방법은, 외부 전자 장치에 대한 터치 입력과 상기 외부 전자 장치에 상응하는 표시(representation) 내에서 제공되는 가상 키보드를 이용하여 VR을 위한 이미지에 캐릭터를 입력함으로써, 향상된(enhanced) 사용자 경험(UX, user experience)을 제공할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치의 블럭도이다.
도 2는 다양한 실시예들에 따른 전자 장치 및 외부 전자 장치를 포함하는 환경의 예를 도시한다.
도 3은 다양한 실시예들에 따른 전자 장치의 기능적 구성의 예를 도시한다.
도 4는 다양한 실시예들에 따른 외부 전자 장치의 기능적 구성의 예를 도시한다.
도 5a는 다양한 실시예들에 따라 가상 키보드를 표시하는 전자 장치 및 외부 전자 장치 사이의 연동(association)의 예를 도시한다.
도 5b는 다양한 실시예들에 따라 가상 키보드를 표시하는 전자 장치 및 외부 전자 장치 사이의 연동의 다른 예를 도시한다.
도 6은 다양한 실시예들에 따른 전자 장치와 외부 전자 장치 사이의 시그널링의 예를 도시한다.
도 7은 다양한 실시예들에 따른 전자 장치의 동작의 예를 도시한다.
도 8은 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 화면의 예를 도시한다.
도 9는 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 가상 키보드의 형상(shape)의 예를 도시한다.
도 10은 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 가상 키보드와 관련된 동작의 예를 도시한다.
도 11은 다양한 실시예들에 따른 전자 장치의 동작의 다른 예를 도시한다.
도 12는 다양한 실시예들에 따라 가상 키보드에 포함된 복수의 키들 중에서 터치 입력에 상응하는 키를 식별하는 전자 장치의 동작의 예를 도시한다.
도 13은 다양한 실시예들에 따라 표시 중인 가상 키보드를 다른 가상 키보드로 변경하는 전자 장치의 동작의 예를 도시한다.
도 14는 다양한 실시예들에 따른 전자 장치에서 가상 키보드가 다른 가상 키보드로 전환되는 예를 도시한다.
도 15는 다양한 실시예들에 따른 전자 장치에서 가상 키보드가 다른 가상 키보드로 전환되는 다른 예를 도시한다.
도 16은 다양한 실시예들에 따라 가상 키보드를 통해 커서의 위치를 이동하는 전자 장치의 동작의 예를 도시한다.
도 17은 다양한 실시예들에 따라 전자 장치에서 커서의 위치가 이동되는 예를 도시한다.
도 18은 다양한 실시예들에 따라 외부 전자 장치의 표시(representation) 내에서 가상 키보드를 표시하는 전자 장치의 동작의 예를 도시한다.
도 19는 다양한 실시예들에 따라 외부 전자 장치의 표시 내에서 가상 키보드를 표시하는 전자 장치의 동작의 다른 예를 도시한다.
도 20은 다양한 실시예들에 따라 외부 전자 장치의 표시 내에서 가상 키보드를 표시하는 전자 장치의 동작의 또 다른 예를 도시한다.
도 21은 다양한 실시예들에 따라 외부 전자 장치의 표시의 위치를 변경하는 전자 장치의 동작의 예를 도시한다.
도 22는 다양한 실시예들에 따라 전자 장치에서 외부 전자 장치의 표시의 위치가 변경되는 예를 도시한다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150) 를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치 및 외부 전자 장치를 포함하는 환경의 예를 도시한다.
도 2를 참조하면, 환경(200)은 전자 장치(101) 및 외부 전자 장치(210)을 포함할 수 있다.
전자 장치(101)는, 전자 장치(101)의 디스플레이(예: 표시 장치(160))를 통해, 화면(screen)을 제공할 수 있다. 다양한 실시예들에서, 전자 장치(101)는 전자 장치(101)의 디스플레이(예: 표시 장치(160))를 통해 컨텐츠를 표시할 수 있다. 상기 컨텐츠는, VR(virtual reality)을 위한 이미지 또는 전방향(omnidirectional) 이미지 중 하나 이상을 포함할 수 있다.
다양한 실시예들에서, 전자 장치(101)는 전자 장치(101)의 외관을 구성(configure)하는 하우징(housing)을 포함할 수 있다. 상기 하우징은 사용자의 머리에 착용될 수 있도록 설정(configured)될 수 있다. 전자 장치(101)는 상기 하우징을 통해 사용자의 머리에 착용된 상태에서 VR을 위한 이미지 또는 전방향 이미지를 제공할 수 있다.
다양한 실시예들에서, 전자 장치(101)는 다른 장치(apparatus, 도 2에서 미도시)와 결합될 수 있다. 상기 다른 장치는 하우징을 포함할 수 있다. 상기 다른 장치의 하우징은 상기 다른 장치의 외관을 구성(configure)할 수 있다. 상기 다른 장치의 하우징은 사용자의 머리에 착용될 수 있도록 설정(configured)될 수 있다. 상기 다른 장치의 하우징은 전자 장치(101)와 결합될 수 있도록 설정될 수 있다. 전자 장치(101)는, 상기 다른 장치와 결합된 상태에서, VR을 위한 이미지 또는 전방향 이미지를 제공할 수 있다.
다양한 실시예들에서, 전자 장치(101)는 외부 전자 장치(210)와 통신할 수 있다. 전자 장치(101)는, 외부 전자 장치(210)와 전자 장치(101) 사이의 통신 경로를 생성할 수 있다. 다양한 실시예들에서, 상기 통신 경로는, AP(access point), 기지국(base station)과 같은 중간 노드를 요구하는 간접 통신 경로일 수 있다. 예를 들면, 상기 통신 경로는, LTE(long term evolution)과 같은 셀룰러(cellular) 통신 기법 기반(based) 경로 또는 Wi-Fi(wireless fidelity)와 같은 WLAN(wireless local area network) 통신 기법 기반 경로 중 하나 이상을 포함할 수 있다. 다양한 실시예들에서, 상기 통신 경로는, 상기 중간 노드를 요구하지 않는 직접 통신 경로일 수 있다. 예를 들면, 상기 통신 경로는, 블루투스(bluetooth) 통신 기법 기반 경로, BLE(bluetooth low energy) 통신 기법 기반 경로, LTE 사이드링크(sidelink) 통신 기법 기반 경로, 또는 Wi-Fi 다이렉트(direct) 통신 기법 기반 경로 중 하나 이상을 포함할 수 있다. 다양한 실시예들에서, 상기 통신 경로는, 유선 통신 경로일 수도 있고 무선 통신 경로일 수도 있다. 전자 장치(101)는, 외부 전자 장치(210)로부터 상기 통신 경로를 통해 신호, 데이터, 정보, 또는 메시지를 수신할 수 있다. 전자 장치(101)는, 상기 통신 경로를 통해 외부 전자 장치(210)에게 신호, 데이터, 정보, 또는 메시지를 송신할 수 있다.
외부 전자 장치(210)는 전자 장치(101)의 기능들 중 적어도 일부를 제어하기 위해 설정될(configured) 수 있다. 다양한 실시예들에서, 외부 전자 장치(210)는 전자 장치(101)의 기능들 중 VR과 관련된 적어도 하나의 기능을 원격으로(remotely) 제어하기 위해 설정될 수 있다. 다양한 실시예들에서, 외부 전자 장치(210)는 컨트롤러(controller), 조이패드(joy pad) 등으로 지칭될 수도 있다.
다양한 실시예들에서, 외부 전자 장치(210)는 하우징(housing)을 포함할 수 있다. 상기 하우징은 외부 전자 장치(210)의 외관을 구성(configure)할 수 있다. 다양한 실시예들에서, 외부 전자 장치(210)는, VR과 관련된 전자 장치(101)의 적어도 하나의 기능을 제어하기 위해, 적어도 하나의 입력 장치를 포함할 수 있다. 상기 적어도 하나의 입력 장치는, 외부 전자 장치(210)의 상기 하우징의 일부를 통해 노출될 수 있다. 다양한 실시예들에서, 상기 적어도 하나의 입력 장치는, 터치 입력을 수신할 수 있는 터치 패드(touch pad), 물리적 압력(pressure)을 수신할 수 있는 물리적 버튼(physical button), 또는 외부 전자 장치(210)의 움직임(movement)의 변화를 검출할 수 있는 센서 모듈(sensor module) 중 하나 이상을 포함할 수 있다.
다양한 실시예들에서, 외부 전자 장치(210)는 전자 장치(101)와 통신할 수 있다. 외부 전자 장치(210)는, 상기 통신 경로를 통해 전자 장치(101)에게 신호, 데이터, 정보, 또는 메시지를 송신할 수 있다. 외부 전자 장치(210)는, 전자 장치(101)로부터 상기 통신 경로를 통해, 신호, 데이터, 정보, 또는 메시지를 수신할 수 있다. 예를 들면, 외부 전자 장치(210)는, 상기 통신 경로를 통해 전자 장치(101)에게, 상기 적어도 하나의 입력 장치를 통해 수신되거나 검출된 입력에 대한 정보를 송신할 수 있다. 상기 송신된 정보는 VR과 관련된 전자 장치(101)의 적어도 하나의 기능을 제어하기 위해 이용될 수 있다. 다른 예를 들면, 외부 전자 장치(210)는, 전자 장치(101)로부터 상기 통신 경로를 통해, 외부 전자 장치(210)로의 접속을 요청하기 위한 메시지 또는 신호를 수신할 수 있다.
도 3은 다양한 실시예들에 따른 전자 장치의 기능적 구성의 예를 도시한다. 이러한 기능적 구성은, 도 1에 도시된 전자 장치(101) 또는 도 2에 도시된 전자 장치(101)에 포함될 수 있다.
도 3을 참조하면, 전자 장치(101)는 프로세서(310)(예: 프로세서(120)), 메모리(320)(예: 메모리(130)), 통신 인터페이스(330)(예: 통신 모듈(190)), 디스플레이(340)(예: 표시 장치(160)), 및 센서 모듈(350)(예: 센서 모듈(176))를 포함할 수 있다.
프로세서(310)는 전자 장치(101)의 전반적인 동작을 제어할 수 있다. 프로세서(310)는, 전자 장치(101)의 전반적인 동작을 제어하기 위해, 메모리(320), 통신 인터페이스(330), 디스플레이(340)와 같은 전자 장치(101) 내의 다른 구성요소(component)와 동작적으로 결합될 수 있다.
다양한 실시예들에서, 프로세서(310)는 하나의 프로세서 코어(core)를 포함하거나, 복수의 프로세서 코어들을 포함할 수 있다. 예를 들면, 프로세서(310)는 듀얼 코어(dual-core), 쿼드 코어(quad-core), 헥사 코어(hexa-core) 등의 멀티 코어(multi-core)를 포함할 수 있다. 실시예들에 따라, 프로세서(310)는 프로세서(310)의 내부 또는 외부에 위치된 캐시 메모리(cache memory)를 더 포함할 수 있다.
프로세서(310)는 전자 장치(101)의 다른 구성요소들의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라 계산을 수행하거나 데이터를 처리할 수 있다.
프로세서(310)는 전자 장치(101) 내에서 야기되는 데이터 또는 신호를 처리할 수 있다. 예를 들면, 프로세서(310)는 메모리(320)에게 명령어, 데이터, 또는 신호를 요청할 수 있다. 프로세서(310)는 전자 장치(101)의 제어 또는 전자 장치(101) 내의 다른 구성요소를 제어하기 위해 메모리(320) 내에 명령어, 데이터, 또는 신호를 기록(또는 저장)하거나 갱신할 수 있다.
프로세서(310)는 메모리(320), 통신 인터페이스(330), 디스플레이(340) 등으로부터 수신되는 메시지, 데이터, 명령어 또는 신호를 해석할 수 있고, 가공할 수 있다. 프로세서(310)는 수신된 메시지, 데이터, 명령어, 또는 신호에 기반하여 새로운 메시지, 데이터, 명령어, 또는 신호를 생성할 수 있다. 프로세서(310)는 가공되거나 생성된 메시지, 데이터, 명령어, 또는 신호를 메모리(320), 통신 인터페이스(330), 디스플레이(340) 등에게 제공할 수 있다.
프로세서(310)는 적어도 하나의 프로세서를 포함할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 등과 같은 상위 계층의 프로그램을 제어하는 어플리케이션 프로세서(application processor), 통신과 관련된 기능을 제어하는 통신 프로세서(communication processor), 오디오 신호와 관련된 인코딩(encoding)과 디코딩(decoding)을 제어하는 오디오 코덱(audio codec), 또는 GPU(graphical processing unit) 중 하나 이상을 포함할 수 있다.
다양한 실시예들에서, 프로세서(310)는 3차원(3D, 3 dimensions) 이미지를 2차원(2D) 래스터(raster) 이미지로 표현을 하기 위한 그래픽스 파이프라인(graphics pipeline) 또는 랜더링 파이프라인(rendering pipeline)을 수행할 수 있다. 예를 들면, 프로세서(310)는 3차원 이미지를 제공하기 위한 어플리케이션(예:VR 플레이어)을 OpenGL, OpenGLES, Direct3D 등의 API(application programming interface)를 이용하여 3차원 그래픽 렌더링(rendering)을 수행할 수 있다. 프로세서(310)는 전자 장치(101)에 포함된 그래픽 처리 장치(GPU, graphic processing unit)(미도시)를 이용하여 3차원 이미지를 2차원 이미지로 변환하고, 변환된 2차원 이미지를 디스플레이(340)에 출력할 수 있다.
메모리(320)는 전자 장치(101)을 제어하는 명령어, 제어 명령어 코드, 제어 정보(control information), 또는 사용자 데이터(user data)를 저장할 수 있다. 예를 들면, 메모리(320)는 어플리케이션(application), OS(operating system), 미들웨어(middleware), 디바이스 드라이버(device driver)를 포함할 수 있다.
메모리(320)는 휘발성 메모리(volatile memory)(예: 휘발성 메모리(132)) 또는 불휘발성 메모리(non-volatile memory)(예: 불휘발성 메모리(134)) 중 하나 이상을 포함할 수 있다. 휘발성 메모리는, DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 불휘발성 메모리는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable ROM), 플레시 메모리(flash memory) 등을 포함할 수 있다.
메모리(320)는 하드 디스크 드라이버(HDD, hard disk driver), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multi media card), UFS(universal flash storage) 등과 같은 불휘발성 매체(medium)를 포함할 수 있다.
메모리(320)는 3차원 이미지를 제공하는 어플리케이션(예:VR 플레이어) 및 3차원 그래픽 렌더링 모듈(예: OpenGL, OpenGLES, Direct3D 등의 API 및 명령어)를 포함할 수 있다. 메모리(320)(예: 어플리케이션 및 3차원 그래픽 렌더링 모듈)는 3차원 모델링(3D modeling) 데이터를 더 포함할 수 있다.
통신 인터페이스(330)는 다른 전자 장치와 전자 장치(101) 사이의 통신 경로(예: 전자 장치(101)와 외부 전자 장치(210) 사이의 통신 경로) 등을 생성(generate)하거나 수립(establish)하기 위해 이용될 수 있다. 예를 들면, 통신 인터페이스(330)는, 블루투스(bluetooth) 통신 기법, BLE(bluetooth low energy) 통신 기법, Wi-Fi(wireless fidelity) 통신 기법, 셀룰러(cellular 또는 모바일(mobile)) 통신 기법, 또는 유선 통신 기법 중 적어도 하나를 위한 모듈일 수 있다. 통신 인터페이스(330)는 상기 다른 전자 장치로부터 수신되는 신호, 정보, 데이터, 또는 메시지를 프로세서(310)에게 제공할 수 있다. 통신 인터페이스(330)는 프로세서(310)로부터 제공되는 신호, 정보, 데이터, 또는 메시지를 상기 다른 전자 장치에게 송신할 수 있다.
디스플레이(340)는 컨텐츠, 데이터, 또는 신호를 출력할 수 있다. 다양한 실시예들에서, 디스플레이(340)는 프로세서(310)에 의해 가공된 영상 신호를 표시할 수 있다. 예를 들면, 디스플레이(340)는 VR을 위한 화면(예: 3차원 그래픽 화면)을 표시할 수 있다. 다른 예를 들면, 디스플레이(340)는 캡쳐(capture) 또는 스틸(still) 이미지를 표시할 수 있다. 또 다른 예를 들면, 디스플레이(340)는 동영상 또는 카메라 프리뷰(preview) 이미지를 표시할 수 있다. 또 다른 예를 들면, 디스플레이(340)는 사용자가 전자 장치(101)와 상호작용할 수 있도록 GUI(graphical user interface)를 표시할 수 있다.
디스플레이(340)는 LCD(liquid crystal display) 또는 OLED(organic light emitting diode)로 구성(configured with)될 수 있다.
센서 모듈(350)은 전자 장치(101)의 움직임(movement)을 검출하기 위한 복수의 센서들을 포함할 수 있다. 예를 들면, 센서 모듈(350)은 전자 장치(101)의 이동에 따른 가속도 또는 가속도의 변경을 검출하기 위한 가속도 센서, 전자 장치(101)의 기울기(orientation) 또는 회전(rotation)의 변경을 검출하기 위한 자이로 센서 등을 포함할 수 있다. 센서 모듈(350)은 전자 장치(101)의 상기 움직임을 나타내기 위한 정보를 프로세서(310)에게 제공할 수 있다. 상기 움직임을 나타내기 위한 정보는, VR을 위한 이미지 내에서(in) 디스플레이(340)를 통해 표시되는 사용자의 시야를 변경하기 위해 이용될 수 있다. 예를 들면, 상기 움직임을 나타내기 위한 정보는, 전자 장치(101)을 착용한 사용자의 신체의 일부(예: 머리)의 움직임에 따라 VR을 위한 이미지 내에서 사용자의 시야를 변경하기 위해 이용될 수 있다.
다양한 실시예들에서, 프로세서(310)는, 디스플레이(340)를 통해, 컨텐츠를 표시할 수 있다. 예를 들면, 상기 컨텐츠는, 전방향 이미지 또는 VR을 위한 이미지일 수 있다. 예를 들어, 프로세서(310)는 3차원 그래픽스 기술을 이용하여 메모리(320)(예:어플리케이션)에 포함된 3차원 모델링 공간(3D modeling world)를 렌더링하여 2D 이미지로 생성하여 디스플레이에 출력할 수 있다.
다양한 실시예들에서, 프로세서(310)는, 통신 인터페이스(330)를 통해 전자 장치(101)와 외부 전자 장치(210) 사이의 통신 경로를 생성하거나 수립할 수 있다. 다양한 실시예들에서, 상기 통신 경로는 전자 장치(101)의 외부 전자 장치(210)로의 접속에 의해 생성될 수 있다. 예를 들면, 프로세서(310)는, 전자 장치(101) 내에서 외부 전자 장치(210)를 통해 VR과 관련된 전자 장치(101)의 적어도 하나의 기능을 제어하는 것이 요구됨을 결정하는 것에 기반하여, 외부 전자 장치(210)에게 접속을 요청할 수 있다. 전자 장치(101) 및 외부 전자 장치(210)는 상기 접속의 요청에 기반하여, 상기 통신 경로를 생성하거나 수립할 수 있다. 다양한 실시예들에서, 상기 통신 경로는 외부 전자 장치(210)의 전자 장치(101)로의 접속에 의해 생성될 수 있다. 예를 들면, 외부 전자 장치(210)는, 외부 전자 장치(210)의 전원이 턴-온(turn-on)되는 것에 응답하여, 전자 장치(101)에게 접속을 요청할 수 있다. 전자 장치(101) 및 외부 전자 장치(210)는, 상기 접속의 요청에 기반하여, 상기 통신 경로를 생성하거나 수립할 수 있다.
다양한 실시예들에서, 프로세서(310)는, 디스플레이(340)를 통해, 상기 전방향 이미지에 중첩되는 외부 전자 장치(210)의 표시(representation)(예: 그래픽 객체(graphic object) 등)을 표시할 수 있다. 예를 들어, 프로세서(310)는 메모리(320)(예:미들웨어,가상 키보드 입력 모듈)에 포함된 외부 전자 장치(210)에 대응하는 3차원 모델 오브젝트(3d model object)를 어플리케이션을 통해 제공되는 3차원 모델링 공간(3D modeling world)에 추가(add)하거나 로딩(load)함으로써, 전방향 이미지를 생성할 수 있다. 예를 들면, 상기 어플리케이션은 상기 어플리케이션을 통해 제공되는 3차원 모델링 공간에 외부 전자 장치에 대응하는 3차원 모델 오브젝트를 부가하여 로드할 수 있다.
상기 외부 전자 장치(210)의 표시는 전자 장치(101)와 연결된 외부 전자 장치(210)의 형상(shape)에 상응하는 형상을 가질 수 있다. 상기 외부 전자 장치(210)의 표시는, 상기 전방향 이미지의 시청(watching)으로 인하여 제한된 시야(FOV, field of view)를 가지는 사용자에게 확장된 사용자 경험(enhanced UX(user experience))을 제공하기 위해, 외부 전자 장치(210)의 형상(shape)에 상응하는 형상을 가질 수 있다. 상기 외부 전자 장치(210)의 표시는 외부 전자 장치(210)의 터치 패드(touch pad)에 상응하는 가상 터치 패드(virtual touch pad)를 포함할 수 있다. 상기 가상 터치 패드의 형상은, 외부 전자 장치(210)의 터치 패드의 형상에 상응할 수 있다. 상기 가상 터치 패드는, 외부 전자 장치(210)의 터치 패드를 통해 터치 입력을 입력하는 사용자에게 확장된 사용자 경험을 제공하기 위해, 외부 전자 장치(210)의 터치 패드의 형상에 상응하는 형상을 가질 수 있다. 상기 외부 전자 장치(210)의 표시는, 상기 가상 터치 패드 내에서(within) 가상 키보드(virtual keyboard)를 포함할 수 있다. 상기 가상 키보드는, 외부 전자 장치(210)의 터치 패드를 통해 상기 전방향 이미지의 적어도 일부에 캐릭터(character)를 입력하는 사용자에게 확장된 사용자 경험을 제공하기 위해, 상기 가상 터치 패드 내에서(within)(또는,인접하여) 표시될 수 있다. 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어 중 적어도 하나를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 상기 가상 키보드 형상의 3차원 모델 오브젝트(예: plain 형상)를 추가(add or load)하여 로드할 수 있다. 예를 들면, 상기 가상 키보드 형상의 3차원 모델 오브젝트는 상기 가상 터치패드에 인접하게 배치될 수 있다. 예를 들면, 상기 가상 터치 패드에 인접하게 배치된 상기 가상 키보드 형상의 3차원 모델 오브젝트는, 지정된 offset을 가지며 투명값을 가진 텍스쳐 모델(a texture model)일 수 있다.
다른 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 적용되는 텍스쳐 이미지(a texture image)를 교체하거나 변경할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역에 맵핑(mapping)할 수 있다. 프로세서(310)는, 상기 맵핑에 기반하여, 상기 가상 터치 패드의 적어도 일부 영역에 기-적용된 텍스쳐 이미지로부터 변경된 상기 가상 키보드 형상의 2차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역 내에서, 표시할 수 있다.
상기 가상 키보드는, 외부 전자 장치(210)의 터치 패드를 통해 캐릭터를 입력하는 사용자에게, 캐릭터의 입력과 관련된 시야를 제공할 수 있다. 상기 캐릭터는, 사용자가 상기 전방향 이미지의 적어도 일부에 입력하는 객체(object)일 수 있다. 예를 들면, 상기 캐릭터는, 알파벳(alphabet), 숫자(number) 등과 같은 글자(letter)를 포함할 수 있다. 예를 들면, 상기 캐릭터는, 글(text)의 가독성을 높이기 위해 또는 글을 나누기 위해 사용하는 문장 부호(punctuation marks)와 같은 심볼(symbol)을 포함할 수 있다. 예를 들면, 상기 캐릭터는, 사용자의 감정 등을 나타내거나 축약된(abbreviated) 글(text)을 나타내기 위한 이모티콘(emoticon)을 포함할 수 있다. 상기 가상 키보드는, 복수의 캐릭터들을 지시하기(indicate) 위한 복수의 키들을 포함할 수 있다.
다양한 실시예들에서, 프로세서(310)는, 상기 전방향 이미지를 표시하는 동안 지정된(designated) 이벤트를 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시(representation)를 표시할 수 있다. 예를 들면, 프로세서(310)는, 상기 전방향 이미지를 표시하는 동안 상기 전방향 이미지 내에서 캐릭터 입력 부분(character input portion, 또는 텍스트 입력 부분(text input portion))이 활성화됨을 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 다른 예를 들면, 프로세서(310)는, 상기 전방향 이미지를 표시하는 동안 상기 전방향 이미지 내에서 표시된 상기 캐릭터 입력 부분에 대한 사용자 입력을 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 또 다른 예를 들면, 프로세서(310)는, 상기 전방향 이미지를 표시하는 동안 전자 장치(101)에서 지정된(designated 또는 specified) 어플리케이션이 실행됨을 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 또 다른 예를 들면, 프로세서(310)는 상기 전방향 이미지를 표시하는 동안 외부 전자 장치(210)에서 외부 전자 장치(210)의 물리적(physical) 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 상기 사용자 입력에 대한 정보를 수신할 수 있다. 프로세서(310)는 상기 수신된 정보에 기반하여 상기 전방향 이미지에 중첩되는 외부 전자 장치(210)의 표시를 표시할 수 있다.
다양한 실시예들에서, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)의 상기 표시를 표시하는 동안, 외부 전자 장치(210)로부터 다양한 정보를 수신할 수 있다.
예를 들면, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)의 상기 표시를 표시하는 동안, 외부 전자 장치(210)에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신할 수 있다. 상기 제1 터치 입력은, 상기 전방향 이미지의 적어도 일부에 상기 캐릭터를 입력하기 위해 설정된(configured) 입력일 수 있다. 예를 들면, 상기 제1 터치 입력은, 외부 전자 장치(210)의 터치 패드의 일부 영역(partial area)에 대한 싱글 탭(single tab) 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역(partial area)에 대한 더블 탭(double tab) 입력, 외부 전자 장치(210)의 터치 패드에 대한 드래그 입력, 외부 전자 장치(210)의 터치 패드에 대한 스와이프(swipe) 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 포스(force) 입력, 또는 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 호버링(hovering) 입력 중 하나 이상을 포함할 수 있다.
다른 예를 들면, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)의 상기 표시를 표시하는 동안, 외부 전자 장치(210)에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신할 수 있다. 상기 제2 터치 입력은, 외부 전자 장치(210)의 상기 표시 내에서 표시되고 있는 상기 가상 키보드를 다른 가상 키보드로 변경(change)하거나 전환(switch)하기 위해 설정된(configured) 입력일 수 있다. 예를 들면, 상기 제2 터치 입력은, 제1 언어(language)의 입력을 위한 상기 가상 키보드를 제2 언어, 심볼, 또는 이모티콘의 입력을 위한 상기 다른 가상 키보드로 변경하기 위해 설정된 입력일 수 있다. 예를 들면, 상기 제2 터치 입력은, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 싱글 탭 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 더블 탭 입력, 외부 전자 장치(210)의 터치 패드에 대한 드래그 입력, 외부 전자 장치(210)의 터치 패드에 대한 스와이프 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 포스 입력, 또는 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 호버링 입력 중 하나 이상을 포함할 수 있다.
실시예들에 따라, 상기 제2 터치 입력은, 외부 전자 장치(210)의 물리적 버튼과 같은 입력 장치(예: 도 4의 입력 장치(450))를 통해 수신되는 물리적 버튼에 대한 입력으로 대체될 수도 있다. 이러한 경우, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)의 상기 표시를 표시하는 동안, 상기 물리적 버튼에 대한 정보를 수신할 수 있다. 프로세서(310)는, 상기 물리적 버튼에 대한 정보에 적어도 기반하여, 상기 가상 키보드로부터 변경된 상기 다른 가상 키보드를 표시할 수 있다.
또 다른 예를 들면, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)의 표시를 표시하는 동안, 외부 전자 장치(210)에서 상기 터치 패드에 대한 제3 터치 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 상기 제3 터치 입력에 대한 정보를 수신할 수 있다. 상기 제3 터치 입력은, 상기 전방향 이미지의 캐릭터 입력 부분 내에서(within) 표시되는 커서(cursor)를 이동하기 위해 설정된 입력일 수 있다. 상기 커서는, 캐릭터가 입력될 위치를 나타내기 위해 상기 캐릭터 입력 부분 내에서 표시될 수 있다. 상기 제3 터치 입력은, 키보드(keyboard)에서 이용되는 화살표 키(arrow key)에 상응하는 기능, 키보드에서 이용되는 엔터 키(enter key)에 상응하는 기능, 키보드에서 이용되는 스페이스 바(space bar)에 상응하는 기능, 키보드에서 이용되는 백스페이스 키(backspace key)에 상응하는 기능, 또는 키보드에서 이용되는 삭제 키(delete) 키에 상응하는 기능을 이용하기 위해 설정된 입력일 수 있다. 상기 제3 터치 입력은, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 싱글 탭 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 더블 탭 입력, 외부 전자 장치(210)의 터치 패드에 대한 드래그 입력, 외부 전자 장치(210)의 터치 패드에 대한 스와이프(swipe) 입력, 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 포스 입력, 또는 외부 전자 장치(210)의 터치 패드의 일부 영역에 대한 호버링 입력 중 하나 이상을 포함할 수 있다.
또 다른 예를 들면, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)에서 외부 전자 장치(210)의 움직임(movement)의 변경을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 상기 움직임의 변경에 대한 정보를 수신할 수 있다. 외부 전자 장치(210)의 움직임의 변경은, 외부 전자 장치(210)의 물리적 위치(physical location)의 변경, 외부 전자 장치(210)의 각도(orientation)의 변경, 또는 외부 전자 장치(210)의 이동 속도의 변경 중 하나 이상을 나타낼 수 있다. 프로세서(310)는, 외부 전자 장치(210)의 움직임에 따라 외부 전자 장치(210)의 표시를 이동함으로써 확장된 사용자 경험을 제공하기 위해, 상기 움직임의 변경에 대한 정보를 수신할 수 있다.
상기 다양한 정보는, 주기적으로(periodically) 외부 전자 장치(210)로부터 수신될 수도 있고, 비주기적으로(aperiodically) 외부 전자 장치(210)로부터 수신될 수도 있다. 예를 들면, 상기 다양한 정보는, 지정된 시간 간격마다 외부 전자 장치(210)로부터 수신될 수도 있고, 외부 전자 장치(210)에서 특정 이벤트가 발생하는 것을 조건으로 수신될 수도 있다.
다양한 실시예들에서, 프로세서(310)는 상기 수신된 정보를 처리할 수 있다.
예를 들면, 프로세서(310)는 상기 제1 터치 입력에 대한 정보를 처리할 수 있다. 프로세서(310)는, 상기 제1 터치 입력에 대한 정보(예: 터치 다운/업 이벤트(touch down/up event) 및/또는 상기 제1 터치 입력이 검출된 위치를 나타내는 좌표 정보(예: (x,y) 좌표))를 수신하는 것에 기반하여, 상기 가상 키보드 내에 포함되고 상기 복수의 캐릭터들을 나타내는 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별할 수 있다. 상기 제1 터치 입력에 대한 정보는, 외부 전자 장치(210) 내에서 상기 제1 터치 입력이 검출된 위치에 대한 데이터(예: 좌표 데이터 등)를 포함할 수 있다. 프로세서(310)는, 상기 위치에 대한 데이터에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력이 검출된 위치에 상응하는 위치에 배치된 키를 상기 제1 터치 입력에 상응하는 키로 식별할 수 있다. 프로세서(310)는, 상기 위치에 대한 데이터를 이용하여 메모리(320)에 저장된 맵핑 정보를 조회하거나 검색할 수 있다. 상기 맵핑 정보는, 상기 제1 터치 입력이 외부 전자 장치(210)의 상기 터치 패드에서 검출된 위치와 상기 가상 키보드에 포함된 상기 복수의 키들 각각의 위치 사이의 관계에 대한 데이터를 포함할 수 있다. 프로세서(310)는, 상기 맵핑 정보로부터, 상기 제1 터치 입력에 대한 정보에 포함된 상기 위치와 연계되는 상기 가상 키보드 내에서의 위치를 결정할 수 있다. 프로세서(310)는, 상기 복수의 키들 중에서 상기 결정된 위치에 상응하는 키를 상기 제1 터치 입력에 상응하는 키로 식별하고 그에 대응하는 키 이벤트(key event)와 키에 대한 데이터를 생성할 수 있다. 예를 들면, 프로세서(310)는, 상기 제1 터치 입력에 상응하고, 상기 키가 눌러짐(또는 해제됨)을 나타내는 이벤트와 상기 식별된 키를 나타내는 키 코드(key code) 값에 대한 데이터를 생성할 수 있다. 프로세서(310)는, 상기 생성된 이벤트 및 데이터를 VR 환경 상에서 포커스(focus)를 가지고 표시되는 상기 전방향 이미지 내의 VR 객체에게 또는 그에 대응되는 어플리케이션(또는 프로그램)에게 제공할 수 있다. 다시 말해, 프로세서(310)는, 상기 생성된 이벤트 및 데이터를 상기 캐릭터를 입력하기 위해 적합한 프로그램 모듈에게 제공할 수 있다.
프로세서(310)는, 디스플레이(340)를 통해, 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시할 수 있다.
다른 예를 들면, 프로세서(310)는 상기 제2 터치 입력에 대한 정보를 처리할 수 있다. 프로세서(310)는, 상기 제2 터치 입력에 대한 정보(또는 외부 전자 장치(210)의 상기 물리적 버튼에 대한 정보)를 수신하는 것에 기반하여, 표시되고 있는 상기 가상 키보드를 다른 가상 키보드로 변경할 수 있다. 예를 들어, 상기 제2 터치 입력이 제1 방향 또는 제2 방향으로의 드래그 입력에 상응하는 경우, 프로세서(310)는 상기 제2 터치 입력에 대한 정보에 기반하여, 상기 제2 터치 입력이 상기 제1 방향으로의 드래그 입력에 상응하는지 상기 제2 방향으로의 드래그 입력에 상응하는지 여부를 식별(identify)할 수 있다. 프로세서(310)는, 상기 제2 터치 입력이 상기 제1 방향으로의 드래그 입력에 상응함을 식별하는 것에 기반하여, 제1 언어(language)의 입력을 위한 제1 가상 키보드를 제2 언어의 입력을 위한 상제2 가상 키보드로 변경하거나 전환할 수 있다. 프로세서(310)는, 상기 제2 터치 입력이 상기 제2 방향으로의 드래그 입력에 상응함을 식별하는 것에 기반하여, 상기 제1 언어의 입력을 위한 제1 가상 키보드를 심볼(symbol)의 입력을 위한 제3 가상 키보드로 변경하거나 전환할 수 있다. 다른 예를 들어, 상기 제2 터치 입력이 멀티-탭 입력에 상응하는 경우, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보에 기반하여, 상기 제2 터치 입력의 탭의 횟수를 식별할 수 있다. 프로세서(310)는, 상기 탭의 횟수가 n번임을 식별하는 것에 기반하여, 상기 제1 언어의 입력을 위한 상기 제1 가상 키보드를 상기 제1 가상 키보드 다음의(subsequent to) 상기 제2 언어의 입력을 위한 상기 제2 가상 키보드로 변경하거나 전환할 수 있다. 프로세서(310)는, 상기 탭의 횟수가 n+k번임을 식별하는 것에 기반하여, 상기 제1 언어의 입력을 위한 상기 제1 가상 키보드를 상기 제2 가상 키보드 다음의(subsequent to) 상기 심볼의 입력을 위한 상기 제3 가상 키보드로 변경하거나 전환할 수 있다.
또 다른 예를 들면, 프로세서(310)는 상기 제3 터치 입력에 대한 정보를 처리할 수 있다. 프로세서(310)는, 상기 제3 터치 입력에 대한 정보를 수신하는 것에 기반하여, 상기 전방향 이미지의 캐릭터 입력 부분 내에서 표시되고 있는 커서를 이동할 수 있다. 예를 들어, 상기 제3 터치 입력이 제3 방향 또는 제4 방향으로의 드래그 입력에 상응하는 경우, 프로세서(310)는 상기 제3 터치 입력에 대한 정보에 기반하여, 상기 제3 터치 입력이 상기 제3 방향으로의 드래그 입력에 상응하는지 상기 제4 방향으로의 드래그 입력에 상응하는지 여부를 식별할 수 있다. 프로세서(310)는, 상기 제3 터치 입력이 상기 제3 방향으로의 드래그 입력에 상응함을 식별하는 것에 기반하여, 상기 커서의 위치를 현재 표시된 위치로부터 n칸 뒤의 위치로 이동할 수 있다. 프로세서(310)는, 상기 제3 터치 입력이 상기 제4 방향으로의 드래그 입력에 상응함을 식별하는 것에 기반하여, 상기 커서의 위치를 현재 표시된 위치로부터 n칸 이전의 위치로 이동할 수 있다. 실시예들에 따라, 상기 제3 터치 입력에 대한 정보는, 상기 드래그 입력의 드래그 길이에 대한 정보를 더 포함할 수 있다. 이러한 경우, 프로세서(310)는, 상기 드래그 길이에 상응하는 길이만큼 상기 커서를 이동할 수 있다. 다른 예를 들어, 상기 제3 터치 입력이 롱 프레스(long press) 입력 및 드래그 입력을 포함하는 경우, 프로세서(310)는 상기 제3 터치 입력에 대한 정보를 분석할 수 있다. 프로세서(310)는, 상기 제3 터치 입력이 롱 프레스 입력을 포함함을 확인(identify)하는 것에 기반하여, 상기 제3 터치 입력이 상기 커서의 이동과 관련됨을 결정할 수 있다. 프로세서(310)는, 상기 제3 터치 입력이 드래그 입력을 포함함을 확인하는 것에 기반하여, 상기 드래그 입력에 상응하는 방향으로 상기 커서를 이동할 수 있다.
또 다른 예를 들면, 프로세서(310)는 외부 전자 장치(210)의 상기 움직임의 변경에 대한 정보를 처리할 수 있다. 프로세서(310)는, 상기 움직임의 변경에 대한 정보를 수신하는 것에 기반하여, 표시되고 있는 외부 전자 장치(210)의 상기 표시의 상태를 변경할 수 있다. 예를 들어, 상기 움직임의 변경이 외부 전자 장치(210)의 각도(orientation)의 변경인 경우, 상기 움직임의 변경에 대한 정보는 외부 전자 장치(210)의 각도가 변경된 정도(degree)에 대한 데이터를 포함할 수 있다. 프로세서(310)는, 상기 변경된 정도에 상응하는 각(angle)만큼 외부 전자 장치(210)의 상기 표시(representation)의 각도(orientation)를 변경할 수 있다. 상기 표시의 각도의 변경에 따라 상기 가상 키보드의 적어도 일부가 사용자의 시야 밖으로 향할(direct) 것으로 판단되는(determined 또는 estimated) 경우, 프로세서(310)는, 상기 가상 키보드가 사용자의 시야로 향하도록, 상기 가상 키보드의 각도(orientation)를 상기 표시의 각도와 다르게 설정할 수 있다. 상기 표시의 각도의 변경에 따라 상기 가상 키보드의 적어도 일부가 사용자의 시야 밖으로 향할(direct) 것으로 판단되는 경우, 프로세서(310)는, 상기 가상 키보드가 사용자의 시야로 향하도록, 상기 표시에 포함된 가상 터치 패드 내에서 표시되는 상기 가상 키보드를 상기 가상 터치 패드와 구별되는 다른 영역에서 표시할 수도 있다. 다른 예를 들어, 상기 움직임의 변경이 외부 전자 장치(210)의 위치의 변경인 경우, 상기 움직임의 변경에 대한 정보는 외부 전자 장치(210)가 이동된 거리(distance) 및 외부 전자 장치(210)가 이동된 방향에 대한 데이터를 포함할 수 있다. 프로세서(310)는 외부 전자 장치(210)의 위치를 외부 전자 장치(210)가 이동된 상기 거리 및 외부 전자 장치(210)가 이동된 상기 방향에 상응하는 위치로 결정할 수 있다. 상기 위치가 사용자의 시야 밖일 것으로 판단되는 경우, 프로세서(310)는, 상기 가상 키보드가 사용자의 시야 내에 포함되도록, 상기 가상 키보드의 위치 또는 상기 표시의 위치를 상기 결정된 위치와 구별되는(distinct from) 다른 위치로 이동할 수 있다. 상기 위치가 사용자의 시야 내일 것으로 판단되는 경우, 프로세서(310)는, 상기 가상 키보드의 위치를 상기 결정된 위치로 이동할 수 있다.
다양한 실시예들에 따른 프로세서(310)는 상기 가상 키보드와 관련된 다양한 효과들을 제공할 수 있다.
예를 들면, 프로세서(310)는, 상기 가상 키보드와 관련된 시각적 효과(visual effect)를 전자 장치(101) 내에서 제공할 수 있다. 예를 들어, 상기 제1 터치 입력에 대한 정보를 수신하고 상기 제1 터치 입력에 상응하는 키를 식별하는 경우, 프로세서(310)는 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐(pressed)을 나타내는 시각적 효과를 제공할 수 있다. 상기 시각적 효과는 상기 식별된 키와 관련된 영역 내에서(within)(또는, 인접하여) 야기될 수 있다. 상기 시각적 효과는 사용자에게 확장된 사용자 경험을 제공할 수 있다. 다른 예를 들어, 상기 제2 터치 입력에 대한 정보를 수신하는 경우, 프로세서(310)는 상기 가상 키보드가 다른 가상 키보드로 전환됨을 나타내는 시각적 효과를 제공할 수 있다. 상기 시각적 효과는 사용자에게 확장된 사용자 경험을 제공할 수 있다.
다른 예를 들면, 프로세서(310)는, 상기 가상 키보드와 관련된 청각적(auditory) 효과를 전자 장치(101) 내에서 제공할 수 있다. 예를 들어, 상기 제1 터치 입력에 대한 정보를 수신하고 상기 제1 터치 입력에 상응하는 키를 식별하는 경우, 프로세서(310)는 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐을 나타내는 비언어음(non-language sound)을 출력하거나, 상기 식별된 키에 의해 지시되는(indicated) 캐릭터를 나타내는 음을 출력할 수 있다. 상기 청각적 효과는 사용자에게 확장된 사용자 경험을 제공할 수 있다.
또 다른 예를 들면, 프로세서(310)는, 상기 가상 키보드와 관련된 햅틱(haptic) 효과를 전자 장치(101) 내에서 제공할 수 있다. 예를 들어, 상기 제1 터치 입력에 대한 정보를 수신하고 상기 제1 터치 입력에 상응하는 키를 식별하는 경우, 프로세서(310)는 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐을 나타내는 진동(vibration) 또는 햅틱(haptic)을 전자 장치(101) 내의 햅틱 엑츄에이터(haptic actuator)를 통해 출력할 수 있다. 상기 햅틱 효과는 사용자에게 확장된 사용자 경험을 제공할 수 있다.
또 다른 예를 들면, 프로세서(310)는, 상기 가상 키보드와 관련된 햅틱 효과를 외부 전자 장치(210)를 통해 제공할 수 있다. 예를 들어, 상기 제1 터치 입력에 대한 정보를 수신하고 상기 제1 터치 입력에 상응하는 키를 식별하는 경우, 프로세서(310)는 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐을 나타내는 메시지를 외부 전자 장치(210)에게 송신할 수 있다. 외부 전자 장치(210)는, 상기 메시지의 수신에 응답하여, 상기 제1 터치 입력이 검출된 영역에서 진동 또는 햅틱을 출력할 수 있다. 상기 햅틱 효과는 사용자에게 확장된 사용자 경험을 제공할 수 있다.
상술한 바와 같이 다양한 실시예들에 따른 전자 장치(101)는, 전자 장치(101)의 디스플레이를 통해, 전자 장치(101)와 연결된 외부 전자 장치(210)의 표시(representation)에 포함된 외부 전자 장치(210)의 터치 패드에 상응하는 가상 터치 패드 내에서(within) 상기 가상 키보드를 표시하고, 외부 전자 장치(210)의 상기 터치 패드에 대한 입력에 기반하여 상기 가상 키보드를 통해 캐릭터를 입력함으로써, 직관적인 캐릭터 입력 서비스를 제공할 수 있다.
도 4는 다양한 실시예들에 따른 외부 전자 장치의 기능적 구성의 예를 도시한다. 이러한 기능적 구성은 도 2에 도시된 외부 전자 장치(210)에 포함될 수 있다.
도 4를 참조하면, 외부 전자 장치(210)는 프로세서(410), 메모리(420), 통신 인터페이스(430), 센서 모듈(440), 및 입력 장치(450)을 포함할 수 있다.
프로세서(410)는 외부 전자 장치(210)의 전반적인 동작을 제어할 수 있다. 프로세서(410)는, 외부 전자 장치(210)의 전반적인 동작을 제어하기 위해, 메모리(420), 통신 인터페이스(430)와 같은 외부 전자 장치(210) 내의 다른 구성요소(component)와 동작적으로 결합될 수 있다.
다양한 실시예들에서, 프로세서(410)는 하나의 프로세서 코어(core)를 포함하거나, 복수의 프로세서 코어들을 포함할 수 있다. 예를 들면, 프로세서(310)는 듀얼 코어(dual-core), 쿼드 코어(quad-core), 헥사 코어(hexa-core) 등의 멀티 코어(multi-core)를 포함할 수 있다. 실시예들에 따라, 프로세서(410)는 프로세서(410)의 내부 또는 외부에 위치된 캐시 메모리(cache memory)를 더 포함할 수 있다.
프로세서(410)는 외부 전자 장치(210)의 다른 구성요소들의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라 계산을 수행하거나 데이터를 처리할 수 있다.
프로세서(410)는 외부 전자 장치(210) 내에서 야기되는 데이터 또는 신호를 처리할 수 있다. 예를 들면, 프로세서(410)는 메모리(420)에게 명령어, 데이터, 또는 신호를 요청할 수 있다. 프로세서(410)는 외부 전자 장치(210)의 제어 또는 외부 전자 장치(210) 내의 다른 구성요소를 제어하기 위해 메모리(420) 내에 명령어, 데이터, 또는 신호를 기록(또는 저장)하거나 갱신할 수 있다.
프로세서(410)는 메모리(420), 통신 인터페이스(430) 등으로부터 수신되는 메시지, 데이터, 명령어 또는 신호를 해석할 수 있고, 가공할 수 있다. 프로세서(410)는 수신된 메시지, 데이터, 명령어, 또는 신호에 기반하여 새로운 메시지, 데이터, 명령어, 또는 신호를 생성할 수 있다. 프로세서(410)는 가공되거나 생성된 메시지, 데이터, 명령어, 또는 신호를 메모리(420), 통신 인터페이스(430) 등에게 제공할 수 있다.
메모리(420)는 외부 전자 장치(210)를 제어하는 명령어, 제어 명령어 코드, 제어 정보(control information), 또는 사용자 데이터(user data)를 저장할 수 있다. 예를 들면, 메모리(420)는 어플리케이션(application), OS(operating system), 미들웨어(middleware), 디바이스 드라이버(device driver)를 포함할 수 있다.
메모리(420)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(non-volatile memory) 중 하나 이상을 포함할 수 있다. 휘발성 메모리는, DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 불휘발성 메모리는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable ROM), 플레시 메모리(flash memory) 등을 포함할 수 있다.
메모리(420)는 하드 디스크 드라이버(HDD, hard disk driver), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multi media card), UFS(universal flash storage) 등과 같은 불휘발성 매체(medium)를 포함할 수 있다.
통신 인터페이스(430)는 다른 전자 장치와 외부 전자 장치(210) 사이의 통신 경로(예: 전자 장치(101)와 외부 전자 장치(210) 사이의 통신 경로) 등을 생성(generate)하거나 수립(establish)하기 위해 이용될 수 있다. 예를 들면, 통신 인터페이스(330)는, 블루투스(bluetooth) 통신 기법, BLE(bluetooth low energy) 통신 기법, Wi-Fi(wireless fidelity) 통신 기법, 셀룰러(cellular 또는 모바일(mobile)) 통신 기법, 또는 유선 통신 기법 중 적어도 하나를 위한 모듈일 수 있다. 통신 인터페이스(430)는 상기 다른 전자 장치로부터 수신되는 신호, 정보, 데이터, 또는 메시지를 프로세서(410)에게 제공할 수 있다. 통신 인터페이스(430)는 프로세서(410)로부터 제공되는 신호, 정보, 데이터, 또는 메시지를 상기 다른 전자 장치에게 송신할 수 있다.
센서 모듈(440)은 외부 전자 장치(210)와 관련된 상태를 검출하기 위해 이용될 수 있다. 다양한 실시예들에서, 센서 모듈(440)은 외부 전자 장치(210)의 하우징의 일부를 통해 노출되는 터치 패드를 통해 검출된 터치 입력에 대한 정보를 프로세서(410)에게 제공할 수 있다. 다양한 실시예들에서, 센서 모듈(440)은 외부 전자 장치(210)의 하우징의 내부에 배치되는 자이로 센서를 통해 검출된 사용자가 외부 전자 장치(210)를 그립함을 나타내는 정보를 프로세서(410)에게 제공할 수 있다. 다양한 실시예들에서, 센서 모듈(440)은 상기 자이로 센서를 통해 검출된 외부 전자 장치(210)의 각도(orientation)의 변화에 정보를 프로세서(410)에게 제공할 수 있다. 다양한 실시예들에서, 센서 모듈(440)은 외부 전자 장치(210)의 하우징의 내부에 배치되는 가속도 센서를 통해 검출된 외부 전자 장치(210)의 위치의 변경 또는 외부 전자 장치(210)의 움직임 속도의 변경에 대한 정보를 프로세서(410)에게 제공할 수 있다.
입력 장치(450)는 사용자와의 인터액션(interaction)을 위해 이용될 수 있다. 예를 들면, 입력 장치(450)는, 외부 전자 장치(210)의 하우징의 일부를 통해 노출되는 터치 패드, 외부 전자 장치(210)의 하우징의 다른 일부를 통해 노출되는 물리적 버튼 등으로 구성될 수 있다. 입력 장치(450)는, 사용자로부터 수신되는 입력에 대한 정보를, 프로세서(410)에게 제공할 수 있다.
다양한 실시예들에서, 프로세서(410)는, 외부 전자 장치(210)의 상기 터치 패드를 통해 수신되는 터치 입력을 검출할 수 있다. 상기 검출에 응답하여, 프로세서(410)는, 통신 인터페이스(430)를 통해, 상기 터치 입력에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 상기 터치 입력에 대한 정보는, 전자 장치(101) 내에서 표시되는 상기 가상 키보드의 상태를 갱신하기 위해 송신될 수 있다.
다양한 실시예들에서, 프로세서(410)는, 외부 전자 장치(210)의 물리적 버튼을 통해 수신되는 사용자 입력을 검출할 수 있다. 상기 검출에 응답하여, 프로세서(410)는, 통신 인터페이스(430)를 통해, 상기 사용자 입력에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 상기 사용자 입력에 대한 정보는, 전자 장치(101) 내에서 상기 가상 키보드의 상태를 갱신하기 위해 송신될 수 있다.
다양한 실시예들에서, 프로세서(410)는, 외부 전자 장치(210)의 자이로 센서 또는 외부 전자 장치(210)의 가속도 센서를 통해 외부 전자 장치(210)의 움직임의 변화를 검출할 수 있다. 상기 검출에 응답하여, 프로세서(410)는, 통신 인터페이스(430)를 통해, 상기 움직임의 변화에 대한 정보를 송신할 수 있다. 상기 움직임의 변화에 대한 정보는, 전자 장치(101) 내에서 표시되는 외부 전자 장치의 표시(representation)의 상태를 갱신하기 위해 송신될 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 외부 전자 장치(210)는 외부 전자 장치(210)와 관련된 정보를 전자 장치(101)에게 제공할 수 있다. 이러한 정보의 제공을 통해, 전자 장치(101) 및 외부 전자 장치(210)와 관련된 사용자는 보다 직관적으로 캐릭터를 VR을 위한 이미지에 입력할 수 있다.
도 5a는 다양한 실시예들에 따라 가상 키보드를 표시하는 전자 장치 및 외부 전자 장치 사이의 연동(association)의 예를 도시한다. 이러한 연동은, 도 3에 도시된 전자 장치(101)와 도 4에 도시된 외부 전자 장치(210)에 의해 야기될 수 있다.
도 5a를 참조하면, 동작 510에서, 외부 전자 장치(210)는, 사용자 입력(user input)을 검출할 수 있다. 상기 사용자 입력은 외부 전자 장치(210)의 터치 패드에 대한 터치 입력, 외부 전자 장치(210)를 그립한 사용자의 제스쳐(gesture)에 따른 외부 전자 장치(210)의 움직임의 변경, 외부 전자 장치(210), 또는 외부 전자 장치(210)의 상기 터치 패드와 구별되는 외부 전자 장치(210)의 적어도 하나의 입력 장치에 대한 입력 중 하나 이상을 포함할 수 있다. 외부 전자 장치(210)는 상기 검출된 사용자 입력에 대한 정보를 전자 장치(101)에게 송신할 수 있다.
전자 장치(101)는, 동작 520에서, 상기 사용자 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 전자 장치(101)는 메모리(320)에 저장된 커널(kernel)과 같은 OS를 이용하여, 상기 사용자 입력에 대한 정보를 수신할 수 있다. 상기 커널과 같은 OS는, 메모리(320)에 미리 저장될 수 있다. 전자 장치(101)(예: 상기 OS)는, 상기 사용자 입력에 대한 정보를 전자 장치(101)의 메모리(320)에 포함된 미들웨어 내의 가상 키보드 입력 모듈에게 제공할 수 있다.
동작 530에서, 전자 장치(101)는, 상기 가상 키보드 입력 모듈을 이용하여, 상기 사용자 입력에 대한 정보를 처리할 수 있다. 상기 가상 키보드 입력 모듈은, 필요에 따라 활성화될 수 있다. 예를 들면, 상기 가상 키보드 입력 모듈은 필요에 따라 프로그램에 로드될 수 있다. 상기 가상 키보드 입력 모듈은 전자 장치(101)에 연결된 외부 전자 장치(210)에 상응하는 외부 전자 장치(210)의 표시의 모델링 데이터를 포함할 수 있다. 예를 들면, 상기 가상 키보드 입력 모듈은, 전자 장치(101)에 연결된 외부 전자 장치(210)로부터 수신된 정보 또는, 전자 장치(101)에 포함된 OS로부터 제공되는 상기 사용자 입력에 대한 정보에 적어도 기반하여 VR을 위한 어플리케이션을 이용하여 외부 전자 장치(210)의 상기 표시를 회전하거나 이동할 수 있다. 다른 예를 들면, 상기 가상 키보드 입력 모듈은, 전자 장치(101)에 연결된 외부 전자 장치(210)로부터 수신되고, 전자 장치(101)에 포함된 OS로부터 제공되는 상기 사용자 입력에 대한 정보(예: 외부 전자 장치(210)의 터치 패드에 대한 사용자 입력 또는 외부 전자 장치(210)의 물리적 키에 대한 사용자 입력)를 분석하고, 분석 결과에 기반하여 상기 사용자 입력에 대한 정보를 적합한 이벤트 정보로 변경(예: 외부 전자 장치(210)의 터치 패드에 대한 터치 이벤트 및 터치 좌표를 가상 키보드의 키 이벤트 및 키값(또는 키 코드)로 변경)하고, 상기 이벤트 정보를 VR을 위한 어플리케이션 및/또는 다른 어플리케이션(미도시)에게 제공할 수 있다. 상기 VR을 위한 어플리케이션은, 설치 단계에서 메모리(320)에 저장될 수 있다. 상기 VR을 위한 어플리케이션은, 업데이트를 통해 메모리(320)에 저장될 수도 있다. 전자 장치(101)는 메모리(320)에 저장된 상기 가상 키보드 입력 모듈을 이용하여 상기 사용자 입력에 대한 정보를 처리할 수 있다.
예를 들면, 전자 장치(101)는, 상기 가상 키보드 입력 모듈을 이용하여, 외부 전자 장치(210)로부터 수신된 정보를 해석할 수 있다. 전자 장치(101)는, 상기 해석된 정보를, 상기 가상 키보드 입력 모듈의 캐릭터 입력 처리부(570) 또는 가상 키보드 렌더러, 시각적 효과 처리부, 가상 키보드 전환부, 및 외부 전자 장치(210)의 표시 렌더러를 포함하는 외부 전자 장치(210)를 위한 모듈(또는 가상 VR 컨트롤러 모듈)에게 제공할 수 있다. 예를 들면, 전자 장치(101)는, 상기 가상 키보드 입력 모듈을 이용하여, 외부 전자 장치(210)의 터치 패드에 입력된 터치 좌표가 상기 가상 키보드 내의 어떤 키에 해당하는지를 식별할 수 있다. 예를 들어, 외부 전자 장치(210)의 터치 패드의 중앙 영역(central area)(예: x=100, y=100)이 사용자에 의해 터치된 경우, 전자 장치(101)는 상기 가상 키보드 내의 복수의 키들 중에서 외부 전자 장치(210)의 상기 터치 패드의 상기 중앙 영역에 상응하는 적어도 하나의 키(예:keycode = 'm' 또는 'n' 또는 'o' )가 사용자에 의해 입력된 것으로 결정할 수 있다. 전자 장치(101)는 상기 결정에 대한 데이터를 상기 가상 키보드 모듈 내의 캐릭터 입력 처리부(570) 및 외부 전자 장치(210)를 위한 상기 모듈에게 제공할 수 있다. 다른 예를 들어, 전자 장치(101)는, 상기 가상 키보드 입력 모듈을 이용하여, 외부 전자 장치(210)의 상기 터치 패드에 대한 사용자의 입력의 유형(예: 탭 입력, 스와이프 입력 등)을 인식할 수 있다. 전자 장치(101)는, 상기 인식에 적어도 기반하여, 전자 장치(101) 내에서 탭 입력과 관련된 이벤트, 스와이프 입력과 관련된 이벤트 등을 생성할 수 있다. 다양한 실시예들에서, 외부 전자 장치(210)의 상기 터치 패드에 대한 사용자의 입력의 유형의 인식은, 동작 520에서 수행될 수도 있다. 또 다른 예를 들어, 전자 장치(101)는, 상기 가상 키보드 입력 모듈을 이용하여, 외부 전자 장치(210)의 센서 모듈(440)을 통해 검출된 외부 전자 장치(210)의 움직임에 대한 정보가 어떤 움직임인지 여부를 결정하고, 이를 가상 키보드 렌더러, 시각적 효과 처리부, 가상 키보드 전환부, 및 외부 전자 장치(210)의 표시 렌더러를 포함하는 외부 전자 장치(210)를 위한 모듈(또는 상기 가상 VR 컨트롤러 모듈)에게 제공할 수 있다.
다양한 실시예들에서, 전자 장치(101)는 상기 사용자 입력의 유형(type)을 식별할 수 있다. 예를 들어, 상기 사용자 입력의 유형이 상기 가상 키보드를 통한 캐릭터(character)의 입력과 관련되는 경우, 전자 장치(101)는 동작 570을 수행할 수 있다. 다른 예를 들어, 상기 사용자 입력의 유형이 상기 가상 키보드의 표시(display), 상기 가상 키보드의 전환(switching), 상기 가상 키보드와 관련된 시각적 효과, 또는 외부 전자 장치(210)의 상기 표시(representation) 중 하나 이상과 관련되는 경우, 전자 장치(101)는 동작 540을 수행할 수 있다.
동작 540에서, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 가상 키보드의 전환(switching), 상기 가상 키보드와 관련된 시각적 효과, 또는 외부 전자 장치(210)의 상기 표시(representation) 중 하나 이상과 관련된 결정(determination)을 수행할 수 있다. 예를 들어, 상기 사용자 입력이 상기 가상 키보드의 표시와 관련되는 경우, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 가상 키보드 입력 모듈의 가상 키보드 렌더러(renderer)를 이용하여 외부 전자 장치(210)의 표시(representation) 내에서 또는 인접하여 상기 가상 키보드를 표시할 것인지 여부를 결정할 수 있다. 상기 사용자 입력이 상기 가상 키보드의 표시와 관련되는 경우, 전자 장치(101)는, 상기 가상 키보드와 외부 전자 장치(210)의 상기 표시를 하나의 객체로 인식될 수 있도록, 상기 가상 키보드 입력 모듈의 상기 가상 키보드 렌더러를 이용하여, 외부 전자 장치(210)의 표시(representation)와 상기 가상 키보드를 결합할 수 있다. 다른 예를 들어, 상기 사용자 입력이 상기 가상 키보드와 관련된 시각적 효과와 관련되는 경우, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 가상 키보드 모듈의 시각적 효과 처리부를 이용하여 상기 가상 키보드와 관련된 시각적 효과를 표시할 것을 결정할 수 있다. 상기 사용자 입력이 상기 가상 키보드와 관련된 상기 시각적 효과와 관련되는 경우, 전자 장치(101)는, 사용자의 터치 입력에 상응하는 위치를 가지는 상기 가상 키보드의 특정 키가 눌러진(pressed) 것과 같은 사용자 경험을 제공하기 위해, 상기 가상 키보드 입력 모듈의 상기 시각적 효과 초리부를 이용하여 상기 시각적 효과(예: 상기 특정 키를 지시하거나 상기 특정 키 주변에서 라이팅 효과를 제공)를 제공하기 위한 데이터를 생성할 수 있다. 또 다른 예를 들어, 상기 사용자 입력이 상기 가상 키보드의 전환과 관련되는 경우, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 가상 키보드 모듈의 가상 키보드 전환부를 이용하여 표시되고 있는 상기 가상 키보드를 다른 가상 키보드로 변경할 것을 결정할 수 있다. 상기 사용자 입력이 상기 가상 키보드의 전환과 관련된 경우, 전자 장치(101)는, 상기 가상 키보드 모듈의 상기 가상 키보드 전환부를 이용하여, 상기 가상 키보드를, 상기 사용자 입력에 의해 지시되는 상기 다른 가상 키보드로 변경하기 위한 데이터를 생성할 수 있다. 또 다른 예를 들어, 상기 사용자 입력이 외부 전자 장치(210)의 상기 표시와 관련되는 경우, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 가상 키보드 모듈의 외부 전자 장치(210)의 표시 렌더러를 이용하여 외부 전자 장치(210)의 표시의 상태를 변경할 것을 결정할 수 있다. 상기 사용자 입력이 외부 전자 장치(210)의 상기 표시와 관련되는 경우, 전자 장치(101)는, 상기 가상 키보드 모듈의 외부 전자 장치(210)의 표시 렌더러를 이용하여, 실제로 외부 전자 장치(210)를 움직이는 사용자 경험을 제공할 수 있도록, 외부 전자 장치(210)의 움직임에 대한 정보에 상응하는 외부 전자 장치(210)의 표시의 위치의 변경 및/또는 회전을 제공하기 위한 데이터를 생성할 수 있다.
동작 550에서, 전자 장치(101)는, 상기 가상 키보드를 표시할 것을 결정하는 것에 응답하여, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해 상기 가상 키보드를 렌더링할 수 있다. 예를 들면, 전자 장치(101)는, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해, 외부 전자 장치(210)의 표시에 포함된 외부 전자 장치(210)의 터치 패드에 상응하는 가상 터치 패드 내에서 상기 가상 키보드를 렌더링할 수 있다. 전자 장치(101)는, 상기 가상 키보드와 관련된 시각적 효과를 표시할 것을 결정하는 것에 응답하여, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해 상기 가상 키보드와 관련된 영역 내에서 상기 시각적 효과를 렌더링할 수 있다. 예를 들면, 전자 장치(101)는, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해, 상기 시각적 효과를 상기 가상 키보드에 포함된 특정 키 주변에서 렌더링할 수 있다. 전자 장치(101)는, 상기 가상 키보드를 상기 다른 가상 키보드로 변경함을 결정하는 것에 응답하여, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해 상기 다른 가상 키보드를 렌더링할 수 있다. 전자 장치(101)는, 외부 전자 장치(210)의 표시의 상태를 변경할 것을 결정하는 것에 응답하여, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해 변경된 상태를 가지는 외부 전자 장치(210)의 표시(예: 외부 전자 장치(210)의 표시의 회전, 외부 전자 장치(210)의 표시의 위치의 변경)를 렌더링할 수 있다.
동작 560에서, 전자 장치(101)는, 전방향 이미지를 렌더링할 수 있다. 전자 장치(101)는, 어플리케이션의 실행, 전자 장치(101)의 상태의 변경 등에 기반하여, 상기 전방향 이미지를 렌더링할 수 있다. 다양한 실시예들에서, 전자 장치(101)는, 상기 어플리케이션을 통해 3차원 모델링 공간(3D modeling world)을 렌더링할 수 있다.
동작 550, 동작 560, 동작 580은 하나의 상기 어플리케이션을 통해 동시에 수행될 수 있다. 예를 들면, 상기 어플리케이션은, VR을 위한 가상 화면을 생성할 수 있다. 상기 어플리케이션은, 3D 장면(scene)을 생성하고 렌더링함으로써, 디스플레이(340)를 통해 가상 화면을 출력할 수 있다. 다양한 실시예들에서, 상기 어플리케이션은 가상 키보드 모듈을 이용하여 외부 전자 장치(210)의 상기 표시(representation)의 모델링 정보(메모리에 기저장될 수 있음) 및 캐릭터 모델링 정보(메모리에 기저장될 수 있음)을 상기 어플리케이션을 위한 VR 가상 환경에 추가(또는 로드)함으로써, 외부 전자 장치(210)의 상기 표시 및 상기 캐릭터를 포함하는 상기 가상 화면을 출력할 수 있다.
도 5a에 도시하지 않았으나, 전자 장치(101)는, 상기 전방향 이미지에서 시각적 객체를 렌더링할 수 있다. 상기 시각적 객체는, 상기 어플리케이션과 다른 어플리케이션(도 5a의 another application)을 통해, 상기 전방향 이미지 내에서 렌더링될 수 있다. 상기 다른 어플리케이션은, 전자 장치(101)이 VR을 위한 모드에서 동작하지 않는 경우(또는 비-VR(non-virtual reality)을 위한 모드에서 동작하는 경우, OS의 프레임워크의 뷰 시스템(view system)을 이용하여 2D 화면을 구성(configure)하고, 전자 장치(101)의 디스플레이(340) 또는 전자 장치(101)와 관련된 외부 디스플레이에서 상기 2D 화면을 출력하기 위해 이용될 수 있다. 동작 560은 동작 510 내지 동작 550과 독립적으로 수행될 수 있다. 동작 560은 동작 510 내지 동작 550이 수행되는 순서와 관계없이 수행될 수 있다.
동작 570에서, 전자 장치(101)는, 상기 사용자 입력에 기반하여, 상기 캐릭터의 입력과 관련된 결정을 수행할 수 있다. 예를 들면, 전자 장치(101)는, 상기 가상 키보드 모듈의 캐릭터 입력 처리부를 이용하여, 상기 사용자 입력과 관련된 캐릭터를 결정할 수 있다. 전자 장치(101)는, 상기 가상 키보드 모듈의 캐릭터 입력 처리부를 이용하여, 상기 결정된 캐릭터를 캐릭터 배열(예: 메모리)에 저장할 수 있다. 전자 장치(101)는, 상기 캐릭터 입력 처리부를 이용하여, 메모리(320)에 저장된 맵핑 정보를 조회할 수 있다. 전자 장치(101)는, 상기 사용자 입력에 대한 정보에 포함된 좌표 정보에 기반하여, 상기 조회된 맵핑 정보를 탐색할 수 있다. 전자 장치(101)는 상기 탐색에 기반하여, 상기 좌표 정보에 맵핑된 캐릭터를 상기 사용자 입력에 의해 의도되는(intended) 캐릭터로 결정할 수 있다.
동작 580에서, 전자 장치(101)는, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해, 상기 결정된 캐릭터를 렌더링할 수 있다. 전자 장치(101)는, 상기 캐릭터를 결정하는 것에 응답하여, 상기 어플리케이션을 이용하여 디스플레이(340)를 통해, 상기 결정된 캐릭터를 렌더링할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, OS, 미들웨어, 및 어플리케이션과 같이 설치 가능한 프로그램를 통해, 상기 가상 키보드와 관련된 동작을 수행할 수 있다. 이러한 프로그램을 통한 동작의 수행은, 기 출시된 전자 장치에 적용할 수 있기 때문에, 높은 확장성을 가질 수 있다.
도 5b는 다양한 실시예들에 따라 가상 키보드를 표시하는 전자 장치 및 외부 전자 장치 사이의 연동의 다른 예를 도시한다. 이러한 연동은, 도 3에 도시된 전자 장치(101)와 도 4에 도시된 외부 전자 장치(210)에 의해 야기될 수 있다.
도 5b를 참조하면, 동작 591에서, 외부 전자 장치(210)는 가상 키보드를 활성화하기 위한 사용자 입력을 검출할 수 있다. 예를 들면, 상기 사용자 입력은, 외부 전자 장치(210)의 터치 패드에 대한 터치 입력일 수 있다. 다른 예를 들면, 상기 사용자 입력은, 외부 전자 장치(210)의 물리적 버튼에 대한 입력일 수 있다. 또 다른 예를 들면, 상기 사용자 입력은, 외부 전자 장치(210)의 움직임을 야기하는 사용자의 제스쳐(gesture)일 수 있다. 또 다른 예를 들면, 상기 사용자 입력은, 상기 터치 입력, 상기 물리적 버튼에 대한 입력, 또는 상기 사용자의 제스쳐 중 하나 이상을 조합한 입력일 수 있다. 외부 전자 장치(210)는 상기 가상 키보드를 활성화하기 위한 상기 사용자 입력에 대한 정보를 전자 장치(101)에게 송신할 수 있다.
동작 592에서, 전자 장치(101)는, 메모리(320)에 저장된 커널(kernel)과 같은 OS를 이용하여, 상기 사용자 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 전자 장치(101)는, 상기 OS를 이용하여, 상기 사용자 입력에 대한 정보를, 메모리(320)에 저장된 미들웨어 내에 포함된 가상 키보드 모듈(virtual keyboard module)에게 제공할 수 있다.
동작 593에서, 전자 장치(101)는, 상기 사용자 입력에 대한 정보를 처리할 수 있다. 예를 들어, 상기 사용자 입력이 상기 터치 입력인 경우, 전자 장치(101)는, 상기 가상 키보드 모듈을 이용하여, 상기 사용자 입력에 대한 정보에 포함된 상기 터치 입력이 검출된 위치를 나타내는 좌표 정보에 적어도 기반하여, 상기 터치 입력에 상응하는 키 코드(또는 키 값)를 획득할 수 있다. 다른 예를 들어, 상기 사용자 입력이 상기 물리적 버튼에 대한 입력인 경우, 전자 장치(101)는, 상기 가상 키보드 모듈을 이용하여, 상기 사용자 입력에 대한 정보에 기반하여, 상기 물리적 버튼에 상응하는 데이터를 획득할 수 있다. 전자 장치(101)는, 상기 획득된 키 코드에 대한 데이터 및/또는 상기 물리적 버튼에 상응하는 데이터를 상기 가상 키보드 모듈 내의 캐릭터 처리부 또는 상기 가상 키보드 모듈 내에 포함되고 결합부 및 가상 키보드 로딩부를 포함하는 가상 키보드 처리부 중 하나 이상에게 제공할 수 있다.
동작 594에서, 전자 장치(101)는, 상기 캐릭터 처리부를 이용하여, 상기 획득된 키 코드에 대한 데이터를 수신할 수 있다. 전자 장치(101)는, 키 코드들과 복수의 캐릭터들 사이의 관계에 대한 데이터를 포함하는 맵핑 정보에 기반하여, 상기 키 코드에 상응하는 캐릭터를 결정할 수 있다. 전자 장치(101)는, 상기 키 코드에 상응하는 상기 캐릭터를 캐릭터 배열에 저장할 수 있다. 상기 캐릭터 배열에 저장된 상기 캐릭터는 상기 캐릭터의 랜더링을 위해 이용될 수 있다. 전자 장치(101)는, 상기 캐릭터에 대한 정보를 메모리(320)에 저장된 어플리케이션에게 제공할 수 있다.
동작 595에서, 전자 장치(101)는, 상기 가상 키보드 처리부를 이용하여, 상기 제공된 데이터에 상응하는 렌더링을 위한 정보를 생성할 수 있다. 예를 들면, 전자 장치(101)는, 상기 키보드 처리부를 이용하여, 상기 제공된 데이터 내에 포함된 터치 좌표, 터치 이벤트, 물리적 버튼 이벤트, 가상 키보드의 키 값, 외부 전자 장치(210)의 위치, 외부 전자 장치(210)의 회전에 대한 정보에 기반하여, 상기 가상 키보드를 3D 공간 내에서 렌더링하기 위한 정보를 생성할 수 있다. 예를 들면, 전자 장치(101)는, 상기 가상 키보드 처리부 내에 포함된 가상 키보드 로딩부를 이용하여, 상기 가상 키보드를 외부 전자 장치(210)의 표시 내에서 로딩하기 위하 정보를 상기 가싱 키보드를 렌더링하기 위한 정보로 생성할 수 있다. 다른 예를 들면, 전자 장치(101)는, 상기 가상 키보드 처리부 내에 포함된 결합부를 이용하여, 상기 가상 키보드와 외부 전자 장치(210)의 표시(representation)를 결합하기 위한 정보를 상기 가상 키보드를 렌더링하기 위한 정보로 생성할 수 있다. 전자 장치(101)는, 상기 가상 키보드를 렌더링하기 위한 정보를 메모리(320)에 저장된 어플리케이션에게 제공할 수 있다.
동작 596에서, 전자 장치(101)는, 전방향 이미지 또는 VR을 위한 이미지를 디스플레이(340)를 통해 렌더링할 수 있다. 전자 장치(101)는, 어플리케이션을 이용하여, 상기 전방향 이미지를 렌더링할 수 있다. 다양한 실시예들에서, 전자 장치(101)는, 상기 어플리케이션을 통해 3차원 모델링 공간을 렌더링할 수 있다.
도 5b에 도시하지 않았으나, 전자 장치(101)는, 상기 전방향 이미지에서 시각적 객체를 렌더링할 수 있다. 상기 시각적 객체는, 상기 어플리케이션과 다른 어플리케이션(도 5b의 another application)을 통해, 상기 전방향 이미지 내에서 렌더링될 수 있다. 상기 다른 어플리케이션은, 전자 장치(101)이 VR을 위한 모드에서 동작하지 않는 경우(또는 비-VR(non-virtual reality)을 위한 모드에서 동작하는 경우, OS의 프레임워크의 뷰 시스템(view system)을 이용하여 2D 화면을 구성(configure)하고, 전자 장치(101)의 디스플레이(340) 또는 전자 장치(101)와 관련된 외부 디스플레이에서 상기 2D 화면을 출력하기 위해 이용될 수 있다.
동작 597에서, 전자 장치(101)는, 상기 어플리케이션을 이용하여, 상기 가상 키보드 모듈로부터 제공된 상기 캐릭터에 대한 정보에 적어도 기반하여, 상기 캐릭터를 렌더링할 수 있다.
동작 598에서, 전자 장치(101)는, 상기 어플리케이션을 이용하여, 상기 가상 키보드 모듈로부터 제공된 상기 가상 키보드를 랜더링하기 위한 정보에 적어도 기반하여, 상기 가상 키보드를 렌더링할 수 있다. 다시 말해, 전자 장치(101)는, 상기 어플리케이션을 이용하여, 상기 가상 키보드 모듈로부터 제공된 정보에 적어도 기반하여, 상기 가상 키보드를 상기 전방향 이미지에서 활성화할 수 있다.
동작 596, 동작 597, 동작 598은 하나의 상기 어플리케이션을 통해 동시에 수행될 수 있다. 예를 들면, 상기 어플리케이션은, VR을 위한 가상 화면을 생성할 수 있다. 상기 어플리케이션은, 3D 장면(scene)을 생성하고 렌더링함으로써, 디스플레이(340)를 통해 가상 화면을 출력할 수 있다. 다양한 실시예들에서, 상기 어플리케이션은 가상 키보드 모듈을 이용하여 외부 전자 장치(210)의 상기 표시(representation)의 모델링 정보(메모리에 기저장될 수 있음) 및 캐릭터 모델링 정보(메모리에 기저장될 수 있음)을 상기 어플리케이션을 위한 VR 가상 환경에 추가(또는 로드)함으로써, 외부 전자 장치(210)의 상기 표시 및 상기 캐릭터를 포함하는 상기 가상 화면을 출력할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, OS, 미들웨어, 및 어플리케이션과 같이 설치 가능한 프로그램를 통해, 상기 가상 키보드와 관련된 동작을 수행할 수 있다. 이러한 프로그램을 통한 동작의 수행은, 기 출시된 전자 장치에 적용할 수 있기 때문에, 높은 확장성 또는 호환성을 가질 수 있다.
상술한 바와 같은, 다양한 실시예들에 따른 전자 장치(electronic device)(예: 전자 장치(101))는 디스플레이(예: 디스플레이(340))와, 통신 모듈(예: 통신 인터페이스(330))과, 프로세서(예: 프로세서(310))를 포함할 수 있고, 상기 프로세서는, 상기 디스플레이를 통해 컨텐츠를 표시하고, 상기 통신 모듈을 통해 터치 센서를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하고, 상기 디스플레이를 통해 상기 컨텐츠의 적어도 일부 위에(over) 표시되는 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 움직임에 대응하도록 상기 데이터를 이용하여 이동하고, 입력에 적어도 기반하여, 상기 그래픽 오브젝트 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 형상으로 표시된 영역 에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하고, 상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 센서에 대한 입력 및 상기 터치 센서에 대한 입력에 상응하는 위치 정보를 획득하고, 상기 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하고, 상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 하나 이상의 가상 인터페이스들은, 상기 표시된 컨텐츠의 적어도 일부 위에(over) 텍스트를 입력하기 위해 이용 가능할(usable) 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 확인된 가상 인터페이스와 관련된 기능의 상기 실행으로, 상기 확인된 가상 인터페이스에 의해 지시되는(indicated) 텍스트를 상기 컨텐츠의 적어도 일부 위에 표시하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 외부 전자 장치가 상기 터치 센서에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하고, 상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 표시 중인 상기 컨텐츠 내에서 텍스트를 입력하기 위한 객체가 표시됨을 검출하는 것에 응답하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 외부 전자 장치가 상기 외부 전자 장치의 물리적 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하고, 상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정될 수 있다.
상술한 바와 같은 다양한 실시예들에 따른 전자 장치(예: 전자 장치(101))는 명령어들을 저장하는 메모리(예: 메모리(320))와, 디스플레이(예: 디스플레이(340))와, 통신 인터페이스(예: 통신 인터페이스(330))와, 상기 메모리, 상기 디스플레이, 및 상기 통신 인터페이스와 기능적으로(operably) 연결된 프로세서(예: 프로세서(310))를 포함할 수 있고, 상기 프로세서는, 전방향(omnidirectional) 이미지를 표시하고, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하고, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하고, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하고, 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하기 위해, 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하고, 상기 제2 터치 입력에 대한 정보의 수신에 기반하여, 상기 복수의 키들을 포함하는 가상 키보드로부터 변경된 다른(another) 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 더 설정될 수 있고, 상기 다른 가상 키보드는, 복수의 다른(other) 캐릭터들을 지시하는 복수의 다른 키들을 포함할 수 있고, 상기 제1 터치 입력은, 상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력(tab input)에 상응할 수 있으며, 상기 제2 터치 입력은, 상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력(drag input)에 상응할 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 키를 식별한 후, 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐(pressed)을 나타내는 시각적 효과(visual effect)를 상기 식별된 키와 관련된 영역에서 표시하기 위해 상기 명령어들을 실행하도록 더 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 제1 터치 입력이 상기 터치 패드 내에서 검출된 위치에 대한 데이터를 포함하는 상기 제1 터치 입력에 대한 정보를 상기 외부 전자 장치로부터 수신하고, 상기 수신에 기반하여, 상기 위치에 대한 데이터를 이용하여 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하기 위해 상기 명령어들을 실행하도록 설정될 수 있다.
디양한 실시예들에서, 상기 프로세서는, 상기 외부 전자 장치에서 상기 외부 전자 장치의 움직임(movement)의 변경(change)을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 움직임의 변경에 대한 정보를 수신하고, 상기 움직임의 변경에 대한 정보에 기반하여, 상기 외부 전자 장치의 상기 표시를 이동하기 위해 상기 명령어들을 실행하도록 더 설정될 수 있다. 다양한 실시예들에서, 상기 프로세서는, 상기 움직임의 변경에 대한 정보에 기반하여, 상기 전방향 이미지 위에서 상기 외부 전자 장치의 표시가 이동될 위치(location)를 결정하고, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야(FOV, field of view) 밖인지(outside of) 여부를 확인하고, 상기 결정된 위치가 상기 전방향 이미지에 대한 상기 시야 밖임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 시야 내에 포함되는 다른 위치(another location)로 이동하고, 상기 결정된 위치가 상기 시야 내임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 위치로 이동하기 위해 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 전방향 이미지에 포함된 텍스트 입력 영역 내에서, 상기 캐릭터 다음에(subsequent to) 커서(cursor)를 표시하고, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하고, 상기 제2 터치 입력에 대한 정보에 기반하여, 상기 커서의 위치를 이동하기 위해 상기 명령어들을 실행하도록 더 설정될 수 있으며, 상기 제1 터치 입력은, 상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력에 상응할 수 있으며, 상기 제2 터치 입력은, 상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력에 상응할 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 전방향 이미지를 표시하는 동안 상기 전방향 이미지 내의 텍스트 입력 부분(text input portion)에 대한 사용자의 입력을 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 전방향 이미지를 표시하는 동안 상기 전자 장치 내에서 지정된 어플리케이션이 실행됨을 확인하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 프로세서는, 상기 전방향 이미지를 표시하는 동안, 상기 외부 전자 장치에서 상기 외부 전자 장치의 물리적(physical) 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 수신하고, 상기 사용자 입력에 대한 정보를 수신하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정될 수 있다.
다양한 실시예들에서, 상기 전방향 이미지는, 가상 현실(virtual reality)을 제공할 수 있다.
다양한 실시예들에서, 상기 전자 장치는 사용자의 머리(head)에 착용될 수 있도록 설정되는 하우징(housing)을 더 포함할 수 있다.
다양한 실시예들에서, 상기 복수의 캐릭터들 각각은, 글자(letter), 기호(symbol), 또는 이모티콘(emoticon) 중 하나 이상에 상응할 수 있다.
다양한 실시예들에 따른 비-일시적(non-transitory) 컴퓨터-판독 가능(computer-readable) 저장(storage) 매체(medium)(예: 메모리(320))는, 전방향(omnidirectional) 이미지를 표시하는 동작과, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하는 동작과, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하는 동작과, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작과, 상기 전방향 이미지의 적어도 일부 내에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하는 동작을 실행하기 위한 하나 이상의 프로그램들을 저장할 수 있다.
도 6은 다양한 실시예들에 따른 전자 장치와 외부 전자 장치 사이의 시그널링의 예를 도시한다. 이러한 시그널링은 도 3에 도시된 전자 장치(101) 및 도 4에 도시된 외부 전자 장치(210) 사이에서 야기될 수 있다.
도 6을 참조하면, 동작 610에서, 전자 장치(101)와 외부 전자 장치(210)는, 전자 장치(101)와 외부 전자 장치(210) 사이의 연결을 생성할 수 있다. 예를 들면, 전자 장치(101)는, 외부 전자 장치(210)에 접속을 요청할 수 있다. 외부 전자 장치(210)는 전자 장치(101)의 상기 요청을 수신할 수 있다. 전자 장치(101)와 외부 전자 장치(210)는, 상기 요청 및 상기 요청의 수신에 적어도 기반하여, 상기 연결을 생성할 수 있다.
동작 620에서, 외부 전자 장치(210)는 상기 연결을 통해 연결된 전자 장치(101)와 관련된 외부 전자 장치(210)의 상태의 변화를 검출할 수 있다. 예를 들면, 상기 상태의 변화의 검출은, 외부 전자 장치(210)의 터치 패드에 대한 터치 입력의 검출, 외부 전자 장치(210)의 물리적 버튼에 대한 사용자 입력의 검출, 또는 외부 전자 장치(210)의 움직임의 변화의 검출 중 하나 이상을 포함할 수 있다.
동작 630에서, 외부 전자 장치(210)는 상기 연결을 통해 전자 장치(101)에게 외부 전자 장치(210)의 상태의 변화에 대한 정보를 송신할 수 있다. 외부 전자 장치(210)는, 상기 검출에 응답하여, 상기 연결을 통해 전자 장치(101)에게, 외부 전자 장치(210)의 상태의 변화에 대한 정보를 송신할 수 있다. 외부 전자 장치(210)는, 외부 전자 장치(210)의 상태의 변화에 기반하여 전자 장치(101)를 제어하기 위해, 외부 전자 장치(210)의 상태의 변화에 대한 정보를 송신할 수 있다. 전자 장치(101)는 외부 전자 장치(210)의 상태의 변화에 대한 정보를 외부 전자 장치(210)로부터 상기 연결을 통해 수신할 수 있다.
동작 640에서, 전자 장치(101)는 상기 변화에 상응하는 기능을 실행할 수 있다. 예를 들어, 외부 전자 장치(210)의 상태의 변화에 대한 정보가 외부 전자 장치(210)의 터치 패드에 대한 터치 입력과 관련되는 경우, 전자 장치(101)는, 상기 변화에 대한 정보에 적어도 기반하여, 상기 가상 키보드를 통해 캐릭터를 디스플레이(340)를 통해 표시되고 있는 전방향 이미지에 입력할 수 있다. 다른 예를 들어, 외부 전자 장치(210)의 상태의 변화에 대한 정보가 외부 전자 장치(210)의 물리적 버튼에 대한 사용자 입력과 관련되는 경우, 전자 장치(101)는, 상기 변화에 대한 정보에 적어도 기반하여, 상기 가상 키보드를 표시하는 것을 개시(initiate)하거나 외부 전자 장치(210)의 표시(representation)를 표시하는 것을 개시할 수 있다. 또 다른 예를 들어, 외부 전자 장치(210)의 상태의 변화에 대한 정보가 외부 전자 장치(210)의 움직임의 변화와 관련되는 경우, 전자 장치(101)는, 상기 변화에 대한 정보에 적어도 기반하여, 디스플레이(340)를 통해 표시되고 있는 외부 전자 장치(210)의 표시(representation)를 이동할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210) 내에서 검출되는 입력과 전자 장치(101)과 외부 전자 장치(210) 사이의 연결을 이용하여, VR 또는 외부 전자 장치(210)와 관련된 기능을 수행할 수 있다. 이러한 기능의 수행을 통해, 전자 장치(101)는, 확장된 사용자 경험을 제공할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 8은 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 화면의 예를 도시한다.
도 9는 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 가상 키보드의 형상(shape)의 예를 도시한다.
도 10은 다양한 실시예들에 따른 전자 장치의 디스플레이에 표시되는 가상 키보드와 관련된 동작의 예를 도시한다.
도 7을 참조하면, 동작 710에서, 프로세서(310)는 디스플레이(340)를 통해 전방향 이미지 또는 VR을 위한 이미지를 표시할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 전자 장치(101)에 저장된 상기 전방향 이미지를 재생하기 위한 사용자 입력을 검출하는 것에 응답하여, 상기 전방향 이미지를 디스플레이(340)를 통해 표시할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 서버 또는 카메라 장치와 같은 다른 전자 장치로부터 수신되는 정보에 기반하여, 디스플레이(340)를 통해 상기 전방향 이미지를 표시할 수 있다.
동작 720에서, 프로세서(310)는, 외부 전자 장치(210)의 표시(representation) 내에 포함된 외부 전자 장치(210)의 터치 패드에 상응하는 가상 터치 패드 내에서 가상 키보드를 표시할 수 있다.
예를 들면, 프로세서(310)(어플리케이션 및/또는 미들웨어)는 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 상기 가상 키보드 형상의 3차원 모델 오브젝트(예: plain 형상)를 추가(add or load)하여 로드할 수 있다. 상기 가상 키보드 형상의 3차원 모델 오브젝트는 상기 가상 터치패드에 인접하게 배치될 수 있다. 예를 들면, 상기 가상 터치 패드에 인접하게 배치된 상기 가상 키보드 형상의 3차원 모델 오브젝트는, 지정된 offset을 가지며 투명값을 가진 텍스쳐 모델(a texture model)일 수 있다.
다른 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 적용되는 텍스쳐 이미지(a texture image)를 교체하거나 변경할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역에 맵핑할 수 있다. 프로세서(310)는, 상기 맵핑에 기반하여, 상기 가상 터치 패드의 적어도 일부 영역에 기-적용된 텍스쳐 이미지로부터 변경된 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역 내에서, 표시할 수 있다.
다양한 실시예들에서, 프로세서(310)는, 상기 전방향 이미지를 표시하는 동안, 외부 전자 장치(210)의 표시를 표시하기 위한 이벤트를 검출할 수 있다. 예를 들면, 상기 이벤트는, 전자 장치(101) 내에서 외부 전자 장치(210)의 상기 표시를 표시할 것을 나타내는 입력을 수신하는 것, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 상기 표시를 표시할 것을 요청하는 메시지(예: 외부 전자 장치(210)의 물리적 버튼에 대한 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신되는 메시지)를 수신하는 것, 상기 표시되고 있는 전방향 이미지 내에서 캐릭터 입력 부분이 표시되는 것 등을 포함할 수 있다. 프로세서(310)는, 상기 이벤트의 검출에 응답하여, 외부 전자 장치(210)의 상기 표시를 표시할 수 있다. 외부 전자 장치(210)의 상기 표시는 표시되고 있는 상기 전방향 이미지에 중첩될 수 있다. 예를 들어, 도 8을 참조하면, 프로세서(310)는, 화면(800) 내에서, 시각적 객체(visual object)를 포함하는 전방향 이미지(810)를 표시할 수 있다. 예를 들면, 전방향 이미지(810)는 오른쪽 눈(eye) 및 왼쪽 눈(eye) 양안에 대응하여 시점(view position 또는 view direction)이 다르게 생성된(렌더링 된) 이미지들을 포함할 수 있다. 예를 들면, 전방향 이미지(810)들 중 오른쪽에 배치된 전방향 이미지(810)는 사용자의 오른쪽 눈의 시점(view position 또는 view direction)을 위해 제공될 수 있고, 전방향 이미지(810)들 중 왼쪽에 배치된 전방향 이미지(810)는 사용자의 왼쪽 눈의 시점을 위해 제공될 수 있다. 다양한 실시예들에서, 상기 시각적 객체는 상기 전방향 이미지를 제공하는 어플리케이션과 구별되는 다른 어플리케이션에 기반하여 표시될 수 있다. 다양한 실시예에 따르면, 상기 다른 어플리케이션은 VR을 위한 상기 어플리케이션에 의해 제공되는 상기 전방향 이미지 내에서, 2D 환경의 서비스 및 어플리케이션 기능을 제공하기 위해 이용될 수 있다. 상기 다른 어플리케이션은, 메모리(320)에 저장된 OS의 프레임워크 내에서 2D 화면(또는 시각적 객체)을 구성할 수 있다. 전자 장치는 상기 다른 어플리케이션이 구성하는 2D 화면을 상기 전방향 이미지 내에 3D 객체로서 포함(실행되거나 미러링되는 방식으로)할 수 있다.
달리 표현하면, 상기 전방향 이미지를 제공하기 위한 상기 어플리케이션은, 인터넷 브라우저와 문서 편집기(editor) 등의 기능을 포함하여 VR 환경 내에서 윈도우 형태를 제공할 수 있다. 예를 들면, 상기 어플리케이션은, 상기 다른 어플리케이션의 화면(예: 인터넷 브라우저 또는 문서 편집기를 위한 윈도우 등)을 상기 전방향 이미지와 같은 3D 화면 안에 포함하여 렌더링할 수 있다.
프로세서(310)는, 상기 이벤트의 검출에 응답하여, 전방향 이미지(810)에 중첩된(superimposed on) 외부 전자 장치(210)의 표시(820)을 표시할 수 있다. 외부 전자 장치(210)의 표시(820)는, 외부 전자 장치(210)의 터치 패드에 상응하는 가상 터치 패드(830)를 포함할 수 있다. 가상 터치 패드(830)는 가상 키보드(840)를 포함할 수 있다. 가상 키보드(840)는, 전방향 이미지(810)의 시청으로 인하여 제한을 가지는 사용자의 시야를 보조하기 위해, 외부 전자 장치(210)의 표시(820)에 포함된 가상 터치 패드(830) 내에서(또는, 인접된 영역에서) 표시될 수 있다. 가상 키보드(840)는, 복수의 캐릭터들을 지시하기 위한 복수의 키들을 포함할 수 있다. 가상 키보드(840)는, 다양한 형상(shape)들을 가질 수 있다. 예를 들어, 도 9를 참조하면, 외부 전자 장치(210)의 표시(820) 내에 포함된 가상 터치 패드(830) 내에 포함된 가상 키보드(840)는 객체(910)와 같이 설정(configured)될 수 있다. 가상 키보드(840)는, 객체(910)와 같이, 피쳐 폰(feature phone) 키보드의 키들의 배열(arrangement),즉, 바둑판(grid) 형태의 배열(3*4, 4*4 등)로 배치된(disposed) 복수의 키들을 포함할 수 있다. 상기 복수의 키들 각각은, 복수의 캐릭터들을 나타내기 위해 이용될 수 있다. 상기 복수의 키들 각각은 실행 가능한(executable) 객체로 지칭될 수도 있다. 다른 예를 들어, 도 9를 참조하면, 외부 전자 장치(210)의 표시(820) 내에 포함된 가상 터치 패드(830) 내에 포함된 가상 키보드(840)는 객체(920)와 같이 설정될 수 있다. 가상 키보드(840)는, 객체(920)와 같이, 방사형(radial) 키보드의 키들의 배열로 배치된 복수의 키들을 포함할 수 있다. 상기 복수의 키들 각각은, 복수의 캐릭터들을 나타내기 위해 이용될 수 있다. 또 다른 예를 들어, 도 9를 참조하면, 가상 키보드(840)는 객체(930)와 같이 설정될 수 있다. 가상 키보드(840)는, 객체(930)와 같이, 바둑판 형태 키보드(예:피쳐 폰 키보드)의 키들의 배열로 배치된 복수의 키들을 포함할 수 있다. 상기 복수의 키들 각각은, 복수의 캐릭터들을 나타내기 위해 이용될 수 있다. 객체(930) 내에 포함된 복수의 키들 각각이 입력을 통해 캐릭터를 선택하는 방식은, 객체(910) 내에 포함된 복수의 키들 각각이 입력을 통해 캐릭터를 선택하는 방식 및 객체(920) 내에 포함된 복수의 키들 각각이 입력을 통해 캐릭터를 선택하는 방식과 다를 수 있다. 예를 들면, 프로세서(310)는, 가상 키보드(840)가 객체(910) 및 객체(920)와 같은 포맷(format)을 가지는 경우, 외부 전자 장치(210)로부터 터치 입력에 대한 정보를 수신하는 것에 응답하여, 상기 터치 입력이 싱글(single) 탭 입력임을 식별하고, 상기 식별에 기반하여 상기 복수의 키들 각각에 의해 지시되는 복수의 캐릭터들(예: 'g', 'h', 'i', '6') 중 제1 캐릭터(예: 'g')를 선택하고, 외부 전자 장치(210)로부터 다른 터치 입력에 대한 정보를 수신하는 것에 응답하여, 상기 다른 터치 입력이 더블(double) 탭 입력임을 식별하고, 상기 식별에 기반하여 상기 복수의 캐릭터들(예: 'g', 'h', 'i', '6') 중 제2 캐릭터(예: 'h')를 선택할 수 있다. 프로세서(310)는, 가상 키보드(840)가 객체(930)와 같은 포맷을 가지는 경우, 외부 전자 장치(210)로부터 입력 수단(예: 사용자의 손가락, 스타일러스(stylus 등)이 접촉됨(contacted)을 나타내는 정보를 수신하는 것에 응답하여, 상기 입력 수단이 접촉된 위치에 상응하는 키(예: 'g')로부터 파생되는 복수의 키들(예: 'g', 'h', 'i', 4')을 상기 입력 수단이 접촉된 위치에 상응하는 키의 적어도 일부 영역 위에서(over) 표시할 수 있다. 프로세서(310)는, 외부 전자 장치(210)로부터 드래그(drag) 없이 상기 입력 수단이 해제됨(released)을 나타내는 정보를 수신하는 것에 응답하여 상기 파생된 복수의 키들 중에서 제1 키(예: 'g')를 선택하고, 외부 전자 장치(210)로부터 5시 방향으로의 드래그 후 상기 입력 수단이 해제됨을 나타내는 정보를 수신하는 것에 응답하여 상기 파생된 복수의 키들 중에서 제2 키(예: '4')를 선택할 수 있다.
동작 730에서, 프로세서(310)는 외부 전자 장치(210)로부터 제1 터치 입력에 대한 정보를 수신할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 가상 키보드를 표시하는 동안, 외부 전자 장치(210)로부터 제1 터치 입력에 대한 정보를 수신할 수 있다. 상기 제1 터치 입력은, 상기 가상 키보드 내의 복수의 키들에 의해 지시되는 복수의 캐릭터들 중에서 적어도 하나의 캐릭터를 선택하기 위한 입력일 수 있다. 상기 제1 터치 입력은, 상기 가상 키보드 내의 복수의 키들에 의해 지시되는 복수의 캐릭터들 중에서 적어도 하나의 캐릭터를 상기 전방향 이미지의 적어도 일부 상에 표시하거나 입력하기 위한 입력일 수 있다. 상기 제1 터치 입력에 대한 정보는, 외부 전자 장치(210) 내에서 외부 전자 장치(210)의 터치 패드에 대한 상기 제1 터치 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신될 수 있다.
동작 740에서, 프로세서(310)는 상기 가상 키보드 내에 포함된 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 제1 터치 입력에 대한 정보의 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별할 수 있다. 예를 들면, 프로세서(310)는, 상기 복수의 키들 중에서, 외부 전자 장치(210)에서 상기 제1 터치 입력이 검출된 위치에 상응하는 위치에 배치된 키를, 상기 제1 터치 입력에 상응하는 키로 식별할 수 있다.
동작 750에서, 프로세서(310)는 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 식별된 키에 의해 지시되는 상기 캐릭터에 대한 정보를, 상기 다른 어플리케이션에게 제공할 수 있다. 예를 들어, 도 10을 참조하면, 외부 전자 장치(210)는, 외부 전자 장치(210)의 터치 패드의 일부 영역(partial area)에 대한 터치 입력(1000)을 검출할 수 있다. 외부 전자 장치(210)는, 터치 입력(1000)의 상기 검출에 응답하여, 터치 입력(1000)에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 프로세서(310)는, 터치 입력(1000)에 대한 정보에 적어도 기반하여, 상기 복수의 키들 중에서 터치 입력(1000)에 상응하는 키를 식별할 수 있다. 프로세서(310)는, 터치 입력(1000)에 상응하는 상기 키를 식별하는 것에 응답하여, 상기 키에 대한 정보 또는 상기 키에 의해 지시되는 상기 캐릭터에 대한 정보를 상기 시각적 객체를 제공하기 위한 상기 다른 어플리케이션에게 제공할 수 있다. 예를 들면, 프로세서(310)는, 상기 다른 어플리케이션을 이용하여, 화면(1010)를 표시할 수 있다. 화면(1010)은 시각적 객체(1015)를 포함할 수 있다. 상기 다른 어플리케이션은, VR을 위해 이용되지 않는 경우, 2D 화면을 전자 장치(101) 내에서 제공할 수 있다. 시각적 객체(1015)는, 2D 화면을 제공하도록 설정된 상기 다른 어플리케이션을 통해 화면(1010) 내에서 표시될 수 있다. 화면(1010)은 다른 시각적 객체(미도시)를 더 포함할 수 있다. 상기 다른 시각적 객체는, 상기 전방향 이미지의 일부 구성 요소일 수 있다. 상기 다른 시각적 객체는, 3D 화면을 제공하도록 설정된 상기 어플리케이션을 통해 화면(1010) 내에서 표시될 수 있다. 화면(1010)은, 전방향 이미지(810)에 중첩된 외부 전자 장치(210)의 표시(820)를 포함할 수 있다. 표시(820)는 가상 터치 패드(830) 내에 포함된 가상 키보드(840)를 포함할 수 있다. 프로세서(310)는, 터치 입력(1000)에 상응하는 키를 식별하는 것에 응답하여, 전방향 이미지 내의 시각적 객체(1015) 내의 문자 입력 부분 내에서, 상기 식별된 키에 의해 지시되는 'j'를 표시할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 터치 입력(1000)에 상응하는 키를 식별하는 것에 응답하여, 시각적 효과를 표시할 수 있다. 예를 들어, 도 10을 참조하면, 프로세서(310)는, 터치 입력(1000)에 상응하는 키를 식별하는 것에 응답하여, 상기 식별된 키가 터치 입력(1000)에 의해 눌러짐(pressed 또는 선택됨)을 나타내는 시각적 효과(1020)를 상기 식별된 키와 관련된 영역(예: 상기 식별된 키의 바운더리(boundary)에서 표시할 수 있다.
도 7에 도시하지 않았으나, 프로세서(310)는, 상기 캐릭터를 표시한 후, 상기 캐릭터가 상기 시각적 객체 등에 입력되는 경우, 상기 캐릭터에 대한 정보를 다른 개체(entity)에게 제공할 수 있다. 예를 들어, 상기 시각적 객체가 검색과 관련되는 경우, 프로세서(310)는 상기 캐릭터에 대한 정보를 다른 전자 장치(예: 서버) 또는 전자 장치(101) 내에 저장된 검색을 위한 어플리케이션에게 제공할 수 있다. 프로세서(310)는, 상기 제공에 기반하여, 상기 다른 전자 장치 또는 전자 장치(101) 내에 저장된 검색을 위한 어플리케이션으로부터 획득되는 정보를 디스플레이(340)를 통해 제공할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210)를 통해 수신되는 터치 입력에 기반하여, 전자 장치(101)에서 표시되고 있는 외부 전자 장치(210)의 표시 내에 포함된 상기 가상 키보드를 이용하여 상기 전방향 이미지 내에 캐릭터를 입력할 수 있다. 상기 가상 키보드는, 상기 전방향 이미지의 시청으로 인하여 제한된 시야를 가지는 사용자를 보조(assist)할 수 있다. 이러한 보조는 사용자에게 편의성을 제공할 수 있다.
도 11은 다양한 실시예들에 따른 전자 장치의 동작의 다른 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 11을 참조하면, 동작 1110에서, 프로세서(310)는 디스플레이(340)를 통해 컨텐츠를 표시할 수 있다. 상기 컨텐츠는, VR 서비스를 위해 표시될 수 있다.
동작 1120에서, 프로세서(310)는 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임에 대한 데이터를 획득할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 외부 전자 장치의 형상에 상응하는 객체(또는 그래픽 객체(graphic object))를 상기 컨텐츠의 적어도 일부의 위에(over) 표시하는 동안, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임에 대한 데이터를 획득할 수 있다. 프로세서(310)는, 전자 장치(101)와 외부 전자 장치(210) 사이의 연결을 통해, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임에 대한 데이터를 수신할 수 있다.
동작 1130에서, 프로세서(310)는 상기 수신된 데이터를 이용하여 외부 전자 장치(210)의 움직임에 대응하도록 상기 컨텐츠 위에 표시된 외부 전자 장치(210)의 상기 객체를 이동할 수 있다. 예를 들면, 프로세서(310)는 외부 전자 장치(210)의 각도(orientation)의 변경에 대응하도록, 상기 컨텐츠 위에 표시된 외부 전자 장치(210)의 상기 객체의 각도를 변경할 수 있다. 다른 예를 들면, 프로세서(310)는 외부 전자 장치(210)가 이동된 거리와 외부 전자 장치(210)가 이동된 방향에 대응하도록, 상기 컨텐츠 위에 표시된 외부 전자 장치(210)의 상기 객체의 위치를 변경할 수 있다.
동작 1140에서, 프로세서(310)는 입력에 적어도 기반하여 상기 객체 중 외부 전자 장치(210)의 터치 센서에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 지정된 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스들을 표시할 수 있다. 예를 들면, 프로세서(310)는, 상기 하나 이상의 가상 인터페이스들을 외부 전자 장치(210)의 터치 센서에 대응하는 형상으로 표시된 영역 내에서 표시할 수 있다. 다른 예를 들면, 프로세서(310)는, 상기 하나 이상의 가상 인터페이스들을 외부 전자 장치(210)의 터치 센서에 대응하는 형상으로 표시된 영역 주변에서 표시할 수 있다. 다양한 실시예들에서, 상기 입력은, 전자 장치(101)에서 야기될 수 있다. 예를 들면, 상기 입력은, 전자 장치(101)에서 표시되고 있는 상기 컨텐츠 내에서 캐릭터 입력 부분을 활성화하기 위한 사용자 입력일 수 있다. 다른 예를 들면, 상기 입력은, 상기 캐릭터 입력 부분을 선택하기 위한 사용자 입력일 수 있다. 다양한 실시예들에서, 상기 하나 이상의 가상 인터페이스들은, 상기 표시된 컨텐츠의 적어도 일부 위에 캐릭터를 입력하기 위해 설정될 수 있다. 예를 들면, 상기 하나 이상의 가상 인터페이스들은, 가상 키보드 내에 포함된 하나 이상의 키(또는 실행 가능한 객체)들에 상응할 수 있다. 상기 하나 이상의 지정된 기능들은, 하나 이상의 캐릭터를 상기 표시된 컨텐츠의 적어도 일부 위에 입력하는 것을 나타낼 수 있다.
동작 1150에서, 프로세서(310)는, 통신 인터페이스(330)를 통해, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 터치 센서에 대한 입력 및 외부 전자 장치(210)의 터치 센서에 대한 상기 입력에 상응하는 위치 정보를 획득할 수 있다. 예를 들면, 프로세서(310)는 외부 전자 장치(210)의 터치 센서에 대한 입력이 검출됨을 나타내는 정보와 상기 입력이 검출된 위치에 대한 정보를 외부 전자 장치(210)로부터 통신 인터페이스(330)를 통해 수신할 수 있다.
동작 1160에서, 프로세서(310)는, 외부 전자 장치(210)의 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 획득된 위치 정에 상응하는 가상 인터페이스를 확인할 수 있다. 프로세서(310)는, 외부 전자 장치(210)의 터치 센서에 대한 입력이 검출됨을 나타내는 정보에 적어도 기반하여, 메모리(320)에 저장된 맵핑 정보를 호출할 수 있다. 프로세서(310)는, 상기 맵핑 정보를 상기 획득된 위치 정보를 이용하여 검색함으로써, 상기 위치 정보에 상응하는 가상 인터페이스를 확인할 수 있다.
동작 1170에서, 프로세서(310)는, 상기 하나 이상의 지정된 기능들 중 상기 가상 인터페이스와 관련된 기능을 실행할 수 있다. 예를 들면, 프로세서(310)는, 상기 하나 이상의 가상 인터페이스들에 상응하는 상기 하나 이상의 캐릭터들 중에서, 상기 확인된 가상 인터페이스에 상응하는 캐릭터를 상기 컨텐츠에 입력(또는 표시)할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210)로부터 수신되는 정보에 적어도 기반하여, 전자 장치(101) 내에서 표시되고 있는 외부 전자 장치(210)의 객체를 이동하거나, 외부 전자 장치(210)의 객체 내에 포함된 하나 이상의 가상 인터페이스들 중 특정 가상 인터페이스와 관련된 기능을 실행할 수 있다.
도 12는 다양한 실시예들에 따라 가상 키보드에 포함된 복수의 키들 중에서 터치 입력에 상응하는 키를 식별하는 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 12에 도시된 동작 1210 및 동작 1220은 도 7에 도시된 동작 740과 관련될 수 있다.
도 12를 참조하면, 동작 1210에서, 프로세서(310)는, 상기 제1 터치 입력이 외부 전자 장치(210)의 터치 패드 내에서 검출된 위치에 대한 데이터를 포함하는 상기 제1 터치 입력에 대한 정보를 수신할 수 있다. 예를 들면, 상기 데이터는, 외부 전자 장치(210)의 상기 터치 패드 내의 특정 지점 또는 특정 영역을 나타내는 좌표로 설정될(configured with) 수 있다. 예를 들면, 상기 좌표는, (X,Y)로 설정되는 카테시안 좌표계(cartesian coordinate)일 수 있다.
동작 1220에서, 프로세서(310)는, 상기 위치에 대한 데이터와 맵핑 정보를 이용하여, 상기 가상 키보드 내에 포함된 복수의 키들 중에서 제1 터치 입력에 상응하는 키를 식별할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 제1 터치 입력에 대한 정보를 수신하는 것에 응답하여, 메모리(320)에 저장된 맵핑 정보를 호출할 수 있다. 상기 맵핑 정보는, 외부 전자 장치(210)의 터치 패드에 의해 점유되는(occupied) 전체(entire) 영역이 분할된 복수의 영역들에 대한 복수의 좌표들을 포함할 수 있다. 상기 맵핑 정보는, 상기 복수의 좌표들과 각각 연계되는 상기 복수의 키들의 좌표들을 포함할 수 있다. 프로세서(310)는, 상기 복수의 영역들에 대한 상기 복수의 좌표들 중에서, 상기 위치에 대한 데이터가 나타내는 상기 제1 터치 입력이 검출된 위치에 상응하는 좌표를 결정할 수 있다. 프로세서(310)는, 상기 복수의 키들의 좌표들 중에서, 상기 선택된 좌표에 연계되는 키의 좌표를 결정할 수 있다. 프로세서(310)는, 상기 결정된 키의 좌표에 기반하여, 상기 복수의 키들 중 상기 제1 터치 입력에 상응하는 키를 식별할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210)의 터치 패드에 의해 점유되는 영역이 분할된 복수의 영역들과 상기 가상 키보드 내의 복수의 키들 사이의 위치 관계에 대한 데이터를 포함하는 맵핑 정보를 이용하여, 사용자가 보다 직관적으로 캐릭터를 입력할 수 있도록, 보조할 수 있다.
도 13은 다양한 실시예들에 따라 표시 중인 가상 키보드를 다른 가상 키보드로 변경하는 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 14는 다양한 실시예들에 따른 전자 장치에서 가상 키보드가 다른 가상 키보드로 전환되는 예를 도시한다.
도 15는 다양한 실시예들에 따른 전자 장치에서 가상 키보드가 다른 가상 키보드로 전환되는 다른 예를 도시한다.
도 13을 참조하면, 동작 1310에서, 프로세서(310)는, 외부 전자 장치(210)로부터 제2 터치 입력에 대한 정보를 수신할 수 있다. 상기 제2 터치 입력에 대한 정보는, 외부 전자 장치(210)에서 외부 전자 장치(210)의 상기 터치 패드에 대한 상기 제2 터치 입력을 검출하는 것에 응답하여, 외부 전자 장치(210)로부터 송신될 수 있다. 상기 제2 터치 입력은, 상기 가상 키보드를 통해 캐릭터를 입력하기 위한 상기 제1 터치 입력과 구별될 수 있다(distinct from). 예를 들면, 상기 제1 터치 입력은 외부 전자 장치(210)의 상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력(tab input)에 상응하는 반면, 상기 제2 터치 입력은 외부 전자 장치(210)의 상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력에 상응할 수 있다. 다른 예를 들면, 상기 제1 터치 입력은, 외부 전자 장치(210)의 상기 터치 패드의 일부 영역에 대한 싱글(single) 탭 입력에 상응하는 반면, 상기 제2 터치 입력은 외부 전자 장치(210)의 상기 터치 패드의 일부 영역에 대한 멀티(multi) 탭 입력에 상응할 수 있다.
동작 1320에서, 프로세서(310)는 디스플레이(340)를 통해 표시되고 있는 상기 가상 키보드로부터 변경된 다른 가상 키보드를 표시할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 기반하여, 상기 가상 키보드를 상기 다른 가상 키보드로 변경하거나 전환할 수 있다.
예를 들어, 도 14를 참조하면, 프로세서(310)는 피쳐 폰 키보드의 포맷을 가지는 제1 가상 키보드(1410)를 외부 전자 장치(210)의 표시(representation) 내에서 표시할 수 있다. 프로세서(310)는, 제1 가상 키보드(1410)를 표시하는 동안, 상기 제2 터치 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1410)를 다른 가상 키보드로 변경할 수 있다. 예를 들어, 상기 제2 터치 입력이 상기 제1 방향으로의 드래그 입력(또는 더블 탭 입력)에 상응하는 경우, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1410)를 피쳐 폰 키보드의 포맷을 가지는 제2 가상 키보드(1420)로 변경할 수 있다. 제1 가상 키보드(1410)를 통해 입력할 수 있는 복수의 캐릭터들은 제1 언어와 관련되는 반면, 제2 가상 키보드(1420)을 통해 입력할 수 있는 복수의 캐릭터들은 제2 언어와 관련될 수 있다. 다른 예를 들어, 상기 제2 터치 입력이 상기 제2 방향으로의 드래그 입력(또는 트리플 탭 입력)에 상응하는 경우, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1410)를 피쳐 폰 키보드의 포맷을 가지는 제3 가상 키보드(1430)로 변경할 수 있다. 상기 제1 가상 키보드(1410)를 통해 입력할 수 있는 복수의 캐릭터들은 상기 제1 언어와 관련된 반면, 제3 가상 키보드(1430)를 통해 입력할 수 있는 복수의 캐릭터들은 심볼과 관련될 수 있다.
다른 예를 들어, 도 15를 참조하면, 프로세서(310)는 방사형(radial) 키보드의 포맷을 가지는 제1 가상 키보드(1510)를 외부 전자 장치(210)의 표시 내에서 표시할 수 있다. 프로세서(310)는, 제1 가상 키보드(1510)를 표시하는 동안, 상기 제2 터치 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1510)를 다른 가상 키보드로 변경할 수 있다. 예를 들어, 상기 제2 터치 입력이 상기 제1 방향으로의 드래그 입력(또는 더블 탭 입력)에 상응하는 경우, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1510)를 방사형 키보드의 포맷을 가지는 제2 가상 키보드(1520)로 변경할 수 있다. 제1 가상 키보드(1510)를 통해 입력할 수 있는 복수의 캐릭터들은 제1 언어와 관련되는 반면, 제2 가상 키보드(1520)을 통해 입력할 수 있는 복수의 캐릭터들은 제2 언어와 관련될 수 있다. 다른 예를 들어, 상기 제2 터치 입력이 상기 제2 방향으로의 드래그 입력(또는 트리플 탭 입력)에 상응하는 경우, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 제1 가상 키보드(1510)를 방사형 키보드의 포맷을 가지는 제3 가상 키보드(1530)로 변경할 수 있다. 제1 가상 키보드(1510)를 통해 입력할 수 있는 복수의 캐릭터들은 상기 제1 언어와 관련된 반면, 제3 가상 키보드(1530)를 통해 입력할 수 있는 복수의 캐릭터들은 제3 언어와 관련될 수 있다.
다양한 실시예들에서, 상기 제2 터치 입력은 다른 터치 입력으로 대체될 수 있다. 예를 들면, 상기 다른 터치 입력은, 외부 전자 장치(210)의 물리적 버튼이 눌려진(pressed) 상태에서 수행되는 사용자의 제스쳐일 수 있다. 이러한 경우, 외부 전자 장치(210)는, 상기 물리적 버튼에 대한 입력에 대한 정보 및 상기 제스쳐에 따른 외부 전자 장치(210)의 움직임에 대한 정보를 전자 장치(101)에게 송신할 수 있다. 프로세서(310)는, 외부 전자 장치(210)로부터 수신되는 상기 정보에 기반하여, 제1 가상 키보드(1410)(또는 제1 가상 키보드(1510))로부터 변경된 제2 가상 키보드(1420)(또는 제2 가상 키보드(1520))를 표시하거나, 제1 가상 키보드(1410)(또는 제1 가상 키보드(1510))로부터 변경된 제3 가상 키보드(1430)(또는 제3 가상 키보드(1530))를 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 전방향 이미지의 시청으로 인하여 시야가 차단된 사용자가 직관적으로 가상 키보드를 변경할 수 있도록, 외부 전자 장치(210) 내에서 야기되고 상기 제1 터치 입력의 속성과 다른 속성을 가지는 상기 제2 터치 입력에 기반하여 상기 가상 키보드를 다른 가상 키보드로 전환할 수 있다.
도 16은 다양한 실시예들에 따라 가상 키보드를 통해 커서의 위치를 이동하는 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 17은 다양한 실시예들에 따라 전자 장치에서 커서의 위치가 이동되는 예를 도시한다.
도 16을 참조하면, 동작 1610에서, 프로세서(310)는 외부 전자 장치(210)로부터 제2 터치 입력에 대한 정보를 수신할 수 있다. 상기 제2 터치 입력에 대한 정보는, 외부 전자 장치(210)에서 외부 전자 장치(210)의 상기 터치 패드에 대한 상기 제2 터치 입력을 검출하는 것에 응답하여, 외부 전자 장치(210)로부터 송신될 수 있다. 상기 제2 터치 입력은, 상기 가상 키보드를 통해 캐릭터를 입력하기 위한 상기 제1 터치 입력과 구별될 수 있다(distinct from). 예를 들면, 상기 제1 터치 입력은 외부 전자 장치(210)의 상기 터치 패드의 일부 영역에 대한 탭 입력에 상응하는 반면, 상기 제2 터치 입력은 외부 전자 장치(210)의 상기 터치 패드에 대한 제3 방향 또는 제4 방향으로의 드래그 입력에 상응할 수 있다. 다른 예를 들면, 상기 제1 터치 입력은, 외부 전자 장치(210)의 상기 터치 패드의 일부 영역에 대한 싱글 탭 입력에 상응하는 반면, 상기 제2 터치 입력은 외부 전자 장치(210)의 상기 터치 패드의 일부 영역에 대한 멀티 탭 입력에 상응할 수 있다.
동작 1620에서, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보에 기반하여, 상기 전방향 이미지에 포함된 캐릭터 입력 영역 내에서 표시되고 있는 커서의 위치를 이동할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 상기 제2 터치 입력에 대한 정보를 수신하는 것에 기반하여, 상기 전방향 이미지에 포함된 캐릭터 입력 영역 내에서 표시되고 있는 상기 커서의 위치를 이동할 수 있다.
예를 들어, 도 17을 참조하면, 프로세서(310)는 화면(1710)을 표시할 수 있다. 도 17은, 사용자의 2개의 눈들의 시점들 중 하나의 눈의 시점을 위한 화면(1710)을 표시하고 있으나, 이는 설명을 위한 예시일 뿐일 수 있다. 다양한 실시예들에서, 프로세서(310)는 화면(1710)에 상응하고, 사용자의 다른 하나의 눈의 시점을 위한 화면을 더 표시할 수 있다. 프로세서(310)는, 화면(1710)을 표시하는 동안, 상기 제2 터치 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 텍스트 입력 부분(1715)에 표시된 커서(1720)를 이동할 수 있다. 예를 들어, 상기 제2 터치 입력이 상기 제3 방향으로의 드래그 입력(또는 더블 탭 입력)에 상응하는 경우, 프로세서(310)는 텍스트 입력 부분(1715)의 'c' 다음에 표시된 커서(1720)를 한칸 만큼 오른쪽으로 이동할 수 있다. 도 17의 화면(1710)은 커서(1720)가, 상기 제2 터치 입력에 기반하여 한칸 만큼 오른쪽으로 이동되는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 프로세서(310)는, 상기 제3 방향으로의 드래그 입력에 상응하는 상기 제2 터치 입력에 기반하여, 예를 들면, 오른쪽 방향으로의 스와이프와 같은 사용자 입력에 기반하여, 커서(1720)를 상기 드래그 입력의 드래그 길이에 상응하는 n 칸(n은 2 이상의 자연수임)만큼 오른쪽으로 이동할 수 있다.
다른 예를 들어, 도 17을 참조하면, 프로세서(310)는 화면(1730)을 표시할 수 있다. 프로세서(310)는, 화면(1730)을 표시하는 동안, 상기 제2 터치 입력에 대한 정보를 외부 전자 장치(210)로부터 수신할 수 있다. 프로세서(310)는, 상기 제2 터치 입력에 대한 정보의 수신에 응답하여, 텍스트 입력 부분(1715)에 표시된 커서(1740)를 위치(1735)로부터 이동할 수 있다. 예를 들어, 상기 제2 터치 입력이 상기 제4 방향으로의 드래그 입력(또는 트리플 탭 입력)에 상응하는 경우, 프로세서(310)는 텍스트 입력 부분(1715)의 'd' 다음에 표시된 커서(1740)를 위치(1735)로부터 한칸 만큼 왼쪽으로 이동할 수 있다. 예를 들어, 상기 제2 터치 입력이 상기 제4 방향으로의 드래그 입력(또는 트리플 탭 입력)에 상응하는 경우, 프로세서(310)는 텍스트 입력 부분(1715)의 'd' 다음에 표시된 커서(1740)를 위치(1735)로부터 한칸 만큼 왼쪽으로 이동하면서 'd'를 삭제할 수 있다. 도 17의 화면(1730)은 커서(1740)가, 상기 제2 터치 입력에 기반하여 한칸 만큼 왼쪽으로 이동되는 예를 도시하고 있으나, 이는 설명의 편의를 위한 것이다. 프로세서(310)는, 상기 제4 방향으로의 드래그 입력에 상응하는 상기 제2 터치 입력에 기반하여, 커서(1740)를 상기 드래그 입력의 드래그 길이에 상응하는 n 칸(n은 2 이상의 자연수임)만큼 왼쪽으로 이동할 수 있다.
도 16 및 도 17에 도시하지 않았으나, 도 16 및 도 17을 통해 설명된 동작들은 외부 전자 장치(210)를 이용하는 사용자의 제스쳐에 기반하여 수행될 수도 있다. 예를 들면, 프로세서(310)는 외부 전자 장치(210)로부터 사용자의 제스쳐에 의해 야기되는 외부 전자 장치(210)의 움직임에 대한 정보를 수신할 수 있다. 프로세서(310)는, 상기 수신된 정보에 적어도 기반하여, 디스플레이(340)를 통해 표시되고 있는 입력 영역 내에서 표시되고 있는 텍스트를 수정하거나 삭제할 수 있다. 예를 들면, 텍스트 입력 모드에서 사용자가 칠판을 지우듯이 컨트롤러의 특정 키를 누른 상태에서 외부 전자 장치(210)를 위 또는 아래로 흔드는 동작을 반복적으로 수행하는 경우, 전자 장치(101)는 외부 전자 장치(210)로부터 수신되는 외부 전자 장치(210)의 움직임에 대한 정보에 적어도 기반하여, 사용자에 의해 입력된 모든 텍스트를 상기 입력 영역으로부터 삭제할 수 있다. 다른 예를 들면, 사용자가 외부 전자 장치(210)의 특정 키를 누른 상태에서 외부 전자 장치(210)를 위 혹은 아래 방향으로 빠르게 움직이는 경우, 전자 장치(101)는 외부 전자 장치(210)로부터 수신되는 외부 전자 장치(210)의 움직임에 대한 정보에 적어도 기반하여, 상기 입력 영역 내의 커서의 위치를 하나의 문단 위, 또는 아래로 이동시킬 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 전방향 이미지의 시청으로 인하여 시야가 차단된 사용자가 직관적으로 커서의 위치를 변경할 수 있도록, 외부 전자 장치(210) 내에서 야기되고 상기 제1 터치 입력의 속성과 다른 속성을 가지는 상기 제2 터치 입력에 기반하여 상기 커서를 이동할 수 있다.
도 18은 다양한 실시예들에 따라 외부 전자 장치의 표시(representation)를 표시 내에서 가상 키보드를 표시하는 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 18의 동작 1810 및 동작 1820은 도 7에 도시된 동작 720과 관련될 수 있다.
도 18을 참조하면, 동작 1810에서, 프로세서(310)는, 메모리(320)에 저장된 미들웨어에 포함된 가상 키보드 모듈(예: 도 5에 도시된 가상 키보드 모듈)을 이용하여, 상기 전방향 이미지 내의 캐릭터 입력 부분에 대한 사용자 입력을 검출할 수 있다. 다양한 실시예들에서, 프로세서(310)는 디스플레이(340)를 통해 표시되고 있는 상기 전방향 이미지 내의 캐릭터 입력 부분을 선택하기 위한 사용자 입력을 검출할 수 있다. 다양한 실시예들에서, 상기 사용자 입력은, 사용자의 시선(user's attention 또는 user's eyes)에 기반하여 야기될 수 있다. 예를 들면, 프로세서(310)는 사용자의 시선이 지정된 시간 구간 동안 상기 캐릭터 입력 부분에서 정지됨을 검출할 수 있다.
동작 1820에서, 프로세서(310)는 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 프로세서(310)는, 상기 검출에 응답하여, 메모리(320)에 저장된 미들웨어에 포함된 가상 키보드 모듈(예: 도 5에 도시된 가상 키보드 모듈)을 이용하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 외부 전자 장치(210)의 상기 표시는, 복수의 키들을 포함하는 가상 키보드를 포함할 수 있다. 상기 가상 키보드는, 상기 표시 내의 가상 터치 패드에 의해 점유되는 영역 내에 배치될 수 있다. 예를 들어, 프로세서(310)(어플리케이션 및/또는 미들웨어)는 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 상기 가상 키보드 형상의 3차원 모델 오브젝트(예: plain 형상)를 추가(add or load)하여 로드할 수 있다. 상기 가상 키보드 형상의 3차원 모델 오브젝트는 상기 가상 터치패드에 인접하게 배치될 수 있다. 예를 들면, 상기 가상 터치 패드에 인접하게 배치된 상기 가상 키보드 형상의 3차원 모델 오브젝트는, 지정된 offset을 가지며 투명값을 가진 텍스쳐 모델(a texture model)일 수 있다.
다른 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 적용되는 텍스쳐 이미지(a texture image)를 교체하거나 변경할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역에 맵핑할 수 있다. 프로세서(310)는, 상기 맵핑에 기반하여, 상기 가상 터치 패드의 적어도 일부 영역에 기-적용된 텍스쳐 이미지로부터 변경된 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역 내에서, 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 모니터링할 수 있다. 전자 장치(101)는, 상기 모니터링 결과, 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 검출하는 것에 응답하여, 재생 중인 상기 전방향 이미지 내에서 외부 전자 장치(210)의 표시를 표시함으로써, 확장된 사용자 경험을 제공할 수 있다.
도 19는 다양한 실시예들에 따라 외부 전자 장치의 표시를 표시하는 전자 장치의 동작의 다른 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 19의 동작 1910 및 동작 1920은 도 7에 도시된 동작 720과 관련될 수 있다.
도 19를 참조하면, 동작 1910에서, 프로세서(310)는 전자 장치(101) 내에서 지정된 어플리케이션이 실행됨을 확인할 수 있다. 상기 지정된 어플리케이션은 캐릭터의 입력이 요구되는 어플리케이션일 수 있다. 프로세서(310)는 메모리(320)와 프로세서(310) 사이의 시그널링을 모니터링함으로써, 상기 지정된 어플리케이션이 실행됨을 확인할 수 있다.
동작 1920에서, 프로세서(310)는 디스플레이(340)를 통해 표시되고 있는 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 프로세서(310)는 상기 확인에 응답하여, 메모리(320)에 저장된 미들웨어에 포함된 가상 키보드 모듈(예: 도 5에 도시된 가상 키보드 모듈)을 이용하여, 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 외부 전자 장치(210)의 상기 표시는, 복수의 키들을 포함하는 가상 키보드를 포함할 수 있다. 상기 가상 키보드는, 상기 표시 내의 가상 터치 패드에서 표시될 수 있다. 예를 들어, 프로세서(310)(어플리케이션 및/또는 미들웨어)는 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 상기 가상 키보드 형상의 3차원 모델 오브젝트(예: plain 형상)를 추가(add or load)하여 로드할 수 있다. 상기 가상 키보드 형상의 3차원 모델 오브젝트는 상기 가상 터치패드에 인접하게 배치될 수 있다. 예를 들면, 상기 가상 터치 패드에 인접하게 배치된 상기 가상 키보드 형상의 3차원 모델 오브젝트는, 지정된 offset을 가지며 투명값을 가진 텍스쳐 모델(a texture model)일 수 있다.
다른 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 적용되는 텍스쳐 이미지(a texture image)를 교체하거나 변경할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역에 맵핑할 수 있다. 프로세서(310)는, 상기 맵핑에 기반하여, 상기 가상 터치 패드의 적어도 일부 영역에 기-적용된 텍스쳐 이미지로부터 변경된 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역 내에서, 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는 전자 장치(101) 내의 구성요소들 사이의 시그널링을 모니터링함으로써, 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 모니터링할 수 있다. 전자 장치(101)는, 상기 모니터링 결과, 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 검출하는 것에 응답하여, 재생 중인 상기 전방향 이미지 내에서 외부 전자 장치(210)의 표시를 표시함으로써, 확장된 사용자 경험을 제공할 수 있다.
도 20은 다양한 실시예들에 따라 외부 전자 장치의 표시를 표시하는 전자 장치의 동작의 또 다른 예를 도시한다. 이러한 동작은, 도 3에 도시된 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 20의 동작 2010 및 동작 2020은 도 7에 도시된 동작 720과 관련될 수 있다.
도 20을 참조하면, 동작 2010에서, 프로세서(310)는 외부 전자 장치(210)로부터 사용자 입력에 대한 정보를 수신할 수 있다. 다양한 실시예들에서, 상기 사용자 입력은, 외부 전자 장치(210)의 물리적 버튼이 눌러지는(pressed) 것일 수 있다. 상기 사용자 입력에 대한 정보는, 외부 전자 장치(210)에서 외부 전자 장치(210)의 물리적 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 외부 전자 장치(210)로부터 송신될 수 있다.
동작 2020에서, 프로세서(310)는 디스플레이(340)를 통해 표시되고 있는 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 프로세서(310)는, 상기 수신에 응답하여, 메모리(320)에 저장된 미들웨어에 포함된 가상 키보드 모듈(예: 도 5에 도시된 가상 키보드 모듈)을 이용하여, 디스플레이(340)를 통해 표시되고 있는 상기 전방향 이미지에 중첩된 외부 전자 장치(210)의 표시를 표시할 수 있다. 외부 전자 장치(210)의 상기 표시는, 복수의 키들을 포함하는 상기 가상 키보드를 포함할 수 있다. 상기 가상 키보드는, 상기 표시 내의 가상 터치 패드에서 표시될 수 있다.
예를 들어, 프로세서(310)(어플리케이션 및/또는 미들웨어)는 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 상기 가상 키보드 형상의 3차원 모델 오브젝트(예: plain 형상)를 추가(add or load)하여 로드할 수 있다. 상기 가상 키보드 형상의 3차원 모델 오브젝트는 상기 가상 터치패드에 인접하게 배치될 수 있다. 예를 들면, 상기 가상 터치 패드에 인접하게 배치된 상기 가상 키보드 형상의 3차원 모델 오브젝트는, 지정된 offset을 가지며 투명값을 가진 텍스쳐 모델(a texture model)일 수 있다.
다른 예를 들어, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 터치 패드의 3차원 모델 오브젝트(3d model object)에 적용되는 텍스쳐 이미지(a texture image)를 교체하거나 변경할 수 있다. 예를 들면, 프로세서(310)는, 어플리케이션 또는 미들웨어를 이용하여, 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역에 맵핑할 수 있다. 프로세서(310)는, 상기 맵핑에 기반하여, 상기 가상 터치 패드의 적어도 일부 영역에 기-적용된 텍스쳐 이미지로부터 변경된 상기 가상 키보드 형상의 3차원 텍스쳐를 상기 가상 터치 패드의 적어도 일부 영역 내에서, 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210)로부터 외부 전자 장치(210)에서 검출된 사용자 입력에 대한 정보를 수신하는지 여부를 모니터링함으로써, 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 모니터링할 수 있다. 전자 장치(101)는, 상기 모니터링 결과, 외부 전자 장치(210)의 표시를 표시하는 것이 요구되는 상황을 검출하는 것에 응답하여, 재생 중인 상기 전방향 이미지 내에서 외부 전자 장치(210)의 표시를 표시함으로써, 확장된 사용자 경험을 제공할 수 있다.
도 21은 다양한 실시예들에 따라 외부 전자 장치의 표시의 위치를 변경하는 전자 장치의 동작의 예를 도시한다. 이러한 동작은, 도 3에 전자 장치(101) 또는 전자 장치(101) 내의 프로세서(310)에 의해 수행될 수 있다.
도 22는 다양한 실시예들에 따라 전자 장치에서 외부 전자 장치의 표시의 위치가 변경되는 예를 도시한다.
도 21을 참조하면, 동작 2110에서, 프로세서(310)는 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임의 변경에 대한 정보를 수신할 수 있다. 상기 움직임의 변경에 대한 정보는, 외부 전자 장치(210)의 각도(orientation)의 변경에 대한 정보 또는 외부 전자 장치(210)의 위치의 이동에 대한 정보 중 하나 이상을 포함할 수 있다.
동작 2120에서, 프로세서(310)는 상기 수신된 정보에 기반하여, 디스플레이(340)를 통해 표시되고 있는 전방향 이미지 위에서(over) 외부 전자 장치(210)의 표시가 이동될 위치를 결정할 수 있다. 예를 들면, 상기 움직임의 변경에 대한 정보는, 외부 전자 장치(210)가 이동된 거리에 대한 데이터 및 외부 전자 장치(210)가 이동된 방향에 대한 데이터를 포함할 수 있다. 다양한 실시예들에서, 프로세서(310)는, 외부 전자 장치(210)가 이동된 상기 거리 및 외부 전자 장치(210)가 이동된 상기 방향에 적어도 기반하여, 외부 전자 장치(210)의 이동에 따라 변경될 외부 전자 장치(210)의 상기 표시의 위치를 결정할 수 있다.
동작 2130에서, 프로세서(310)는, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 밖인지 여부를 확인할 수 있다. 예를 들면, 프로세서(310)는, 상기 전방향 이미지에 대한 상기 사용자의 상기 시야에 의해 점유되는 영역을 식별할 수 있다. 프로세서(310)는, 외부 전자 장치(210)의 상기 표시에 의해 점유되는 영역의 적어도 일부가 상기 사용자의 상기 시야에 의해 점유되는 영역에 포함되지 않음을 식별하는 것에 기반하여, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 밖임을 결정할 수 있다. 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 밖임을 결정하는 경우, 프로세서(310)는 동작 2140를 수행할 수 있다. 프로세서(310)는, 외부 전자 장치(210)의 상기 표시에 의해 점유되는 영역의 적어도 일부가 상기 사용자의 상기 시야에 의해 점유되는 영역에 포함됨을 식별하는 것에 기반하여, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 내임을 결정할 수 있다. 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 내임을 결정하는 경우, 프로세서(310)는 동작 2150를 수행할 수 있다.
동작 2140에서, 프로세서(310)는, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 밖임을 결정하는 것에 응답하여, 외부 전자 장치(210)의 표시를 사용자의 시야 내에 포함되는 다른 위치로 이동할 수 있다.
예를 들어, 도 22를 참조하면, 프로세서(310)는 화면(2210) 내에서 가상 키보드(840)를 포함하는 외부 전자 장치(210)의 표시(820)를 표시할 수 있다. 프로세서(310)는, 화면(2210)을 표시하는 동안, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임의 변경에 대한 정보를 수신할 수 있다. 프로세서(310)는 상기 수신된 정보에 기반하여 전방향 이미지 위에서 외부 전자 장치(210)의 표시(820)가 이동될 위치에 상응하는 영역이 화면(2220) 내의 영역(2215)임을 결정할 수 있다. 프로세서(310)는, 영역(2215)가 사용자의 시야 밖임을 확인하는 것에 기반하여, 외부 전자 장치(210)의 표시(820)가 사용자의 시야 내에 포함되도록, 외부 전자 장치(210)의 표시(820)를 영역(2215)가 아닌 영역(2217)로 이동할 수 있다.
동작 2150에서, 프로세서(310)는, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야 안임을 결정하는 것에 응답하여, 외부 전자 장치(210)의 표시를 상기 결정된 위치로 이동할 수 있다.
예를 들어, 도 22를 참조하면, 프로세서(310)는 화면(2210) 내에서 가상 키보드(840)를 포함하는 외부 전자 장치(210)의 표시(820)를 표시할 수 있다. 프로세서(310)는, 화면(221)을 표시하는 동안, 외부 전자 장치(210)로부터 외부 전자 장치(210)의 움직임의 변경에 대한 정보를 수신할 수 있다. 프로세서(310)는 상기 수신된 정보에 기반하여 전방향 이미지 위에서 외부 전자 장치(210)의 표시(820)가 이동될 위치에 상응하는 영역이 화면(2230) 내의 영역(2235)임을 결정할 수 있다. 프로세서(310)는, 영역(2235)가 사용자의 시야 내임을 확인하는 것에 기반하여, 외부 전자 장치(210)의 표시(820)를 영역(2235)로 이동할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 외부 전자 장치(210)의 표시(representation)가 사용자의 시야 내에 위치하도록, 외부 전자 장치(210)의 표시의 위치를 적응적으로 제어할 수 있다. 이러한 제어를 통해, 전자 장치(101)는, 확장된 사용자 경험을 제공할 수 있다.
상술한 바와 같은 다양한 실시예들에 따른 전자 장치의 방법은, 상기 전자 장치의 디스플레이를 통해 컨텐츠를 표시하는 동작과, 상기 전자 장치의 통신 모듈을 통해 터치 센서를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하는 동작과, 상기 디스플레이를 통해 상기 컨텐츠의 적어도 일부 위에(over) 표시되는 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 움직임에 대응하도록 상기 데이터를 이용하여 이동하는 동작과, 입력에 적어도 기반하여, 상기 그래픽 오브젝트 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하는 동작과, 상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 센서에 대한 입력 및 상기 터치 센서에 대한 입력에 상응하는 위치 정보를 획득하는 동작과, 상기 터치 센서에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하는 동작과, 상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 하나 이상의 가상 인터페이스들은, 상기 표시된 컨텐츠의 적어도 일부 위에(over) 텍스트를 입력하기 위해 이용 가능할 수 있다.
다양한 실시예들에서, 상기 실행하는 동작은 상기 확인된 가상 인터페이스에 의해 지시되는(indicated) 텍스트를 상기 컨텐츠의 적어도 일부 위에 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 그래픽 객체를 표시하는 동작은, 상기 외부 전자 장치가 상기 터치 센서에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하고, 상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 그래픽 객체를 표시하는 동작은, 표시 중인 상기 컨텐츠 내에서 텍스트를 입력하기 위한 객체가 표시됨을 검출하는 것에 응답하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 그래픽 객체를 표시하는 동작은, 상기 외부 전자 장치가 상기 외부 전자 장치의 물리적 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하는 동작과, 상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 센서에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하는 동작을 포함할 수 있다.
상술한 바와 같은 다양한 실시예들에 따른 전자 장치의 방법은, 전방향(omnidirectional) 이미지를 표시하는 동작과, 상기 전방향 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하는 동작과, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하는 동작과, 상기 수신에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작과, 상기 전방향 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터를 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 방법은, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하는 동작과, 상기 제2 터치 입력에 대한 정보의 수신에 기반하여, 상기 복수의 키들을 포함하는 가상 키보드로부터 변경된 다른(another) 가상 키보드를 표시하는 동작을 더 포함할 수 있고, 상기 다른 가상 키보드는, 복수의 다른(other) 캐릭터들을 지시하는 복수의 다른 키들을 포함할 수 있고, 상기 제1 터치 입력은, 상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력(tab input)에 상응할 수 있으며, 상기 제2 터치 입력은, 상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력(drag input)에 상응할 수 있다.
다양한 실시예들에서, 상기 방법은, 상기 키를 식별한 후, 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐(pressed)을 나타내는 시각적 효과(visual effect)를 상기 식별된 키와 관련된 영역에서 표시하는 동작을 더 포함할 수 있다.
다양한 실시예들에서, 상기 키를 식별하는 동작은, 상기 제1 터치 입력이 상기 터치 패드 내에서 검출된 위치에 대한 데이터를 포함하는 상기 제1 터치 입력에 대한 정보를 상기 외부 전자 장치로부터 수신하는 동작과, 상기 수신에 기반하여, 상기 위치에 대한 데이터를 이용하여 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 방법은, 상기 외부 전자 장치에서 상기 외부 전자 장치의 움직임(movement)의 변경(change)을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 움직임의 변경에 대한 정보를 수신하는 동작과, 상기 움직임의 변경에 대한 정보에 기반하여, 상기 외부 전자 장치의 표시를 이동하는 동작을 더 포함할 수 있다. 다양한 실시예들에서, 상기 외부 전자 장치의 표시를 이동하는 동작은, 상기 움직임의 변경에 대한 정보에 기반하여, 상기 전방향 이미지 위에서 상기 외부 전자 장치의 표시가 이동될 위치(location)를 결정하는 동작과, 상기 결정된 위치가 상기 전방향 이미지에 대한 사용자의 시야(FOV, field of view) 밖인지(outside of) 여부를 확인하는 동작과, 상기 결정된 위치가 상기 전방향 이미지에 대한 상기 시야 밖임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 시야 내에 포함되는 다른 위치(another location)로 이동하는 동작과, 상기 결정된 위치가 상기 시야 내임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 위치로 이동하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 방법은, 상기 전방향 이미지에 포함된 텍스트 입력 영역 내에서, 상기 캐릭터 다음에(subsequent to) 커서(cursor)를 표시하는 동작과, 상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하는 동작과, 상기 제2 터치 입력에 대한 정보에 기반하여, 상기 커서의 위치를 이동하는 동작을 더 포함할 수 있고, 상기 제1 터치 입력은, 상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력에 상응할 수 있으며, 상기 제2 터치 입력은, 상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력에 상응할 수 있다.
다양한 실시예들에서, 상기 가상 키보드를 표시하는 동작은, 상기 전방향 이미지를 표시하는 동안 상기 전방향 이미지 내의 텍스트 입력 부분(text input portion)에 대한 사용자의 입력을 검출하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 가상 키보드를 표시하는 동작은, 상기 전방향 이미지를 표시하는 동안 상기 전자 장치 내에서 지정된 어플리케이션이 실행됨을 확인하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 가상 키보드를 표시하는 동작은, 상기 전방향 이미지를 표시하는 동안, 상기 외부 전자 장치에서 상기 외부 전자 장치의 물리적(physical) 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 수신하는 동작과, 상기 사용자 입력에 대한 정보를 수신하는 것에 응답하여, 상기 전방향 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서, 상기 전방향 이미지는, 가상 현실(virtual reality)을 제공할 수 있다.
다양한 실시예들에서, 상기 복수의 캐릭터들 각각은, 글자(letter), 기호(symbol), 또는 이모티콘(emoticon) 중 하나 이상에 상응할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: read only memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: electrically erasable programmable read only memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: compact disc-ROM), 디지털 다목적 디스크(DVDs: digital versatile discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 전자 장치(electronic device)에 있어서,
    디스플레이;
    통신 모듈; 및
    프로세서를 포함하고, 상기 프로세서는,
    상기 디스플레이를 통해 컨텐츠를 표시하고;
    상기 통신 모듈을 통해 터치 패드를 포함하는 외부 전자 장치의 움직임에 대한 데이터를 획득하고;
    상기 디스플레이를 통해 상기 외부 전자 장치의 형상에 상응하는 그래픽 객체(graphic object)를 상기 컨텐츠의 적어도 일부 위에(over) 표시하고, 상기 그래픽 객체를 표시하는 동작은 상기 데이터를 이용하여 상기 움직임에 대응하도록 상기 그래픽 객체를 이동하는 동작을 포함하고;
    입력에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 패드에 대응하는 형상으로 표시된 영역에 대응하여 하나 이상의 기능들을 실행할 수 있는 하나 이상의 가상 인터페이스(virtual interface)들을 상기 디스플레이를 통해 표시하고;
    상기 통신 모듈을 통해 상기 외부 전자 장치로부터 상기 터치 패드에 대한 입력 및 상기 터치 패드에 대한 입력에 상응하는 위치 정보를 획득하고;
    상기 터치 패드에 대한 입력을 나타내는 시각적 효과 및 상기 터치 패드에 대한 입력에 상응하는 위치 정보를 상기 디스플레이를 통해 표시하고;
    상기 터치 패드에 대한 입력에 적어도 기반하여, 상기 하나 이상의 가상 인터페이스들 중 상기 위치 정보에 상응하는 가상 인터페이스를 확인하고; 및
    상기 하나 이상의 지정된 기능들 중 상기 확인된 가상 인터페이스와 관련된 기능을 실행하도록 설정되는 전자 장치.
  2. 청구항 1에 있어서, 상기 하나 이상의 가상 인터페이스들은,
    상기 표시된 컨텐츠의 적어도 일부 위에(over) 텍스트를 입력하기 위해 이용 가능한(usable) 전자 장치.
  3. 청구항 1에 있어서, 상기 프로세서는,
    상기 확인된 가상 인터페이스와 관련된 기능의 상기 실행으로, 상기 확인된 가상 인터페이스에 의해 지시되는(indicated) 텍스트를 상기 컨텐츠의 적어도 일부 위에 표시하도록 설정되는 전자 장치.
  4. 청구항 1에 있어서, 상기 프로세서는,
    상기 외부 전자 장치가 상기 터치 패드에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하고,
    상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 패드에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정되는 전자 장치.
  5. 청구항 1에 있어서, 상기 프로세서는,
    표시 중인 상기 컨텐츠 내에서 텍스트를 입력하기 위한 객체가 표시됨을 검출하는 것에 응답하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 패드에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정되는 전자 장치.
  6. 청구항 1에 있어서, 상기 프로세서는,
    상기 외부 전자 장치가 상기 외부 전자 장치의 물리적 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 상기 통신 모듈을 통해 수신하고,
    상기 수신된 사용자 입력에 대한 정보에 적어도 기반하여, 상기 그래픽 객체 중 상기 외부 전자 장치의 상기 터치 패드에 대응하는 상기 형상으로 표시된 영역 내에서 상기 하나 이상의 가상 인터페이스들을 표시하도록 설정되는 전자 장치.
  7. 전자 장치(electronic device)에 있어서,
    명령어들을 저장하는 메모리;
    디스플레이;
    통신 인터페이스; 및
    상기 메모리, 상기 디스플레이, 및 상기 통신 인터페이스와 기능적으로(operably) 연결된 프로세서를 포함하고,
    상기 프로세서는,
    가상 현실(virtual reality)을 위한 이미지를 표시하고,
    상기 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하고,
    상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하고,
    상기 제1 터치 입력에 대한 정보를 수신함에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하고,
    상기 이미지의 적어도 일부 상에서, 상기 식별된 키에 의해 지시되는 캐릭터 및 상기 식별된 키가 입력됨을 나타내는 시각적 효과를 표시하기 위해, 상기 명령어들을 실행하도록 설정되는 전자 장치.
  8. 청구항 7에 있어서, 상기 프로세서는,
    상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하고,
    상기 제2 터치 입력에 대한 정보의 수신에 기반하여, 상기 복수의 키들을 포함하는 가상 키보드로부터 변경된 다른(another) 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 더 설정되고,
    상기 다른 가상 키보드는,
    복수의 다른(other) 캐릭터들을 지시하는 복수의 다른 키들을 포함하고,
    상기 제1 터치 입력은,
    상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력(tab input)에 상응하며,
    상기 제2 터치 입력은,
    상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력(drag input)에 상응하는 전자 장치.
  9. 청구항 7에 있어서, 상기 프로세서는,
    상기 키를 식별한 후, 상기 식별된 키가 상기 제1 터치 입력에 의해 눌러짐(pressed)을 나타내는 시각적 효과(visual effect)를 상기 식별된 키와 관련된 영역에서 표시하기 위해 상기 명령어들을 실행하도록 더 설정되는 전자 장치.
  10. 청구항 7에 있어서, 상기 프로세서는,
    상기 제1 터치 입력이 상기 터치 패드 내에서 검출된 위치에 대한 데이터를 포함하는 상기 제1 터치 입력에 대한 정보를 상기 외부 전자 장치로부터 수신하고,
    상기 수신에 기반하여, 상기 위치에 대한 데이터를 이용하여 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하기 위해 상기 명령어들을 실행하도록 설정되는 전자 장치.
  11. 청구항 7에 있어서, 상기 프로세서는,
    상기 외부 전자 장치에서 상기 외부 전자 장치의 움직임(movement)의 변경(change)을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 움직임의 변경에 대한 정보를 수신하고,
    상기 움직임의 변경에 대한 정보에 기반하여, 상기 외부 전자 장치의 상기 표시를 이동하기 위해 상기 명령어들을 실행하도록 더 설정되는 전자 장치.
  12. 청구항 11에 있어서, 상기 프로세서는,
    상기 움직임의 변경에 대한 정보에 기반하여, 상기 이미지 위에서 상기 외부 전자 장치의 표시가 이동될 위치(location)를 결정하고,
    상기 결정된 위치가 상기 이미지에 대한 사용자의 시야(FOV, field of view) 밖인지(outside of) 여부를 확인하고,
    상기 결정된 위치가 상기 이미지에 대한 사용자의 시야 밖임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 시야 내에 포함되는 다른 위치(another location)로 이동하고,
    상기 결정된 위치가 상기 이미지에 대한 사용자의 시야 내임을 확인하는 것에 기반하여, 상기 외부 전자 장치의 표시를 상기 위치로 이동하기 위해 상기 명령어들을 실행하도록 설정되는 전자 장치.
  13. 청구항 7에 있어서, 상기 프로세서는,
    상기 이미지에 포함된 텍스트 입력 영역 내에서, 상기 캐릭터 다음에(subsequent to) 커서(cursor)를 표시하고,
    상기 외부 전자 장치에서 상기 터치 패드에 대한 제2 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제2 터치 입력에 대한 정보를 수신하고,
    상기 제2 터치 입력에 대한 정보에 기반하여, 상기 커서의 위치를 이동하기 위해 상기 명령어들을 실행하도록 더 설정되며,
    상기 제1 터치 입력은,
    상기 터치 패드의 일부 영역(partial area)에 대한 적어도 하나의 탭 입력에 상응하며,
    상기 제2 터치 입력은,
    상기 터치 패드에 대한 제1 방향 또는 제2 방향으로의 드래그 입력에 상응하는 전자 장치.
  14. 청구항 7에 있어서, 상기 프로세서는,
    상기 이미지를 표시하는 동안 상기 이미지 내의 텍스트 입력 부분(text input portion)에 대한 사용자의 입력을 검출하는 것에 응답하여, 상기 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정되고,
    상기 텍스트 입력 부분은,
    상기 이미지를 제공하기 위해 이용되는 제1 어플리케이션과 다른 제2 어플리케이션을 통해 상기 이미지 내에서 제공되는 전자 장치.
  15. 청구항 7에 있어서, 상기 프로세서는,
    상기 이미지를 표시하는 동안 상기 전자 장치 내에서 지정된 어플리케이션이 실행됨을 확인하는 것에 응답하여, 상기 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드와 관련된 영역 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정되는 전자 장치.
  16. 청구항 7에 있어서, 상기 프로세서는,
    상기 이미지를 표시하는 동안, 상기 외부 전자 장치에서 상기 외부 전자 장치의 물리적(physical) 버튼에 대한 사용자 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 사용자 입력에 대한 정보를 수신하고,
    상기 사용자 입력에 대한 정보를 수신하는 것에 응답하여, 상기 이미지에 중첩되는 상기 표시 내에 포함된 상기 가상 터치 패드와 관련된 영역 내에서 상기 가상 키보드를 표시하기 위해 상기 명령어들을 실행하도록 설정되는 전자 장치.
  17. 청구항 7에 있어서, 상기 이미지는,
    전방향(omnidirectional) 이미지로 설정되는(configured with) 전자 장치.
  18. 청구항 7에 있어서,
    사용자의 머리(head)에 착용될 수 있도록 설정되는 하우징(housing)을 더 포함하는 전자 장치.
  19. 청구항 7에 있어서, 상기 복수의 캐릭터들 각각은,
    글자(letter), 기호(symbol), 또는 이모티콘(emoticon) 중 하나 이상에 상응하는 전자 장치.
  20. 비-일시적(non-transitory) 컴퓨터-판독 가능(computer-readable) 저장(storage) 매체(medium)에 있어서,
    전방향(omnidirectional) 이미지를 표시하는 동작과,
    상기 이미지에 중첩되는 외부 전자 장치의 표시(representation) 내에 포함된 상기 외부 전자 장치의 터치 패드(touch pad)에 상응하는 가상(virtual) 터치 패드와 관련된 영역 내에서(within), 복수의 캐릭터(character)들을 지시하는(indicate) 복수의 키들을 포함하는 가상 키보드를 표시하는 동작과,
    상기 외부 전자 장치에서 상기 터치 패드에 대한 제1 터치 입력을 검출하는 것에 응답하여 상기 외부 전자 장치로부터 송신되는 상기 제1 터치 입력에 대한 정보를 수신하는 동작과,
    상기 제1 터치 입력에 대한 정보를 수신함에 기반하여, 상기 복수의 키들 중에서 상기 제1 터치 입력에 상응하는 키를 식별하는 동작과,
    상기 이미지의 적어도 일부 내에서, 상기 식별된 키에 의해 지시되는 캐릭터 및 상기 식별된 키가 입력됨을 나타내는 시각적 효과를 표시하는 동작을 실행하기 위한 하나 이상의 프로그램들을 저장하기 위한 비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020170134879A 2017-10-17 2017-10-17 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법 KR102389185B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170134879A KR102389185B1 (ko) 2017-10-17 2017-10-17 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법
US16/161,240 US10754546B2 (en) 2017-10-17 2018-10-16 Electronic device and method for executing function using input interface displayed via at least portion of content
EP18868965.7A EP3665559B1 (en) 2017-10-17 2018-10-17 Electronic device and method for executing function using input interface displayed via at least portion of content
PCT/KR2018/012220 WO2019078595A1 (en) 2017-10-17 2018-10-17 ELECTRONIC DEVICE AND METHOD FOR PERFORMING A FUNCTION USING AN INPUT INTERFACE DISPLAYED BY MEANS OF AT LEAST ONE PART OF CONTENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170134879A KR102389185B1 (ko) 2017-10-17 2017-10-17 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190043049A KR20190043049A (ko) 2019-04-25
KR102389185B1 true KR102389185B1 (ko) 2022-04-21

Family

ID=66097621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170134879A KR102389185B1 (ko) 2017-10-17 2017-10-17 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법

Country Status (4)

Country Link
US (1) US10754546B2 (ko)
EP (1) EP3665559B1 (ko)
KR (1) KR102389185B1 (ko)
WO (1) WO2019078595A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929008B2 (en) 2015-06-05 2021-02-23 Apple Inc. Touch-based interactive learning environment
US10379737B2 (en) * 2015-10-19 2019-08-13 Apple Inc. Devices, methods, and graphical user interfaces for keyboard interface functionalities
US10810773B2 (en) * 2017-06-14 2020-10-20 Dell Products, L.P. Headset display control based upon a user's pupil state
US20190266742A1 (en) * 2018-02-26 2019-08-29 Lenovo (Singapore) Pte. Ltd. Entity location provision using an augmented reality system
US10678956B2 (en) * 2018-06-25 2020-06-09 Dell Products, L.P. Keyboard for provisioning security credentials
KR20200098034A (ko) * 2019-02-11 2020-08-20 삼성전자주식회사 가상 현실 유저 인터페이스를 제공하기 위한 전자 장치 및 그의 동작 방법
KR20210016752A (ko) * 2019-08-05 2021-02-17 윤현진 중증 환자를 위한 영문 입력자판
CN112988029B (zh) * 2019-12-17 2023-05-30 中标软件有限公司 一种登录界面启动软键盘的实现方法
US11644972B2 (en) * 2021-09-24 2023-05-09 Htc Corporation Virtual image display device and setting method for input interface thereof
CN113821139A (zh) * 2021-09-24 2021-12-21 维沃移动通信有限公司 信息显示方法、装置、眼镜及介质
CN115857684A (zh) * 2022-11-30 2023-03-28 维沃移动通信有限公司 显示控制方法、显示控制装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090530A (ja) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 画像表示システム、画像表示システムを制御する方法、および、頭部装着型表示装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091353A (ja) 2001-09-18 2003-03-28 Canon Inc Hmd用入力装置
US9058103B2 (en) * 2012-07-25 2015-06-16 Facebook, Inc. Gestures for keyboard switch
US11422695B2 (en) * 2013-03-27 2022-08-23 Texas Instruments Incorporated Radial based user interface on touch sensitive screen
KR102091235B1 (ko) * 2013-04-10 2020-03-18 삼성전자주식회사 휴대 단말기에서 메시지를 편집하는 장치 및 방법
KR20150132896A (ko) 2014-05-19 2015-11-27 박태운 터치패드로 구성된 리모컨과 그 작동 방법
KR102358548B1 (ko) 2014-10-15 2022-02-04 삼성전자주식회사 디바이스를 이용한 화면 처리 방법 및 장치
US10628037B2 (en) * 2014-10-16 2020-04-21 Griffin Innovation Mobile device systems and methods
US9870052B2 (en) 2015-06-11 2018-01-16 Oculus Vr, Llc Hand-held controller with pressure-sensing switch for virtual-reality systems
CN106484085B (zh) * 2015-08-31 2019-07-23 北京三星通信技术研究有限公司 在头戴式显示器中显示真实物体的方法及其头戴式显示器
JP6598617B2 (ja) 2015-09-17 2019-10-30 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
US20170140484A1 (en) 2015-11-18 2017-05-18 Lennar Pacific Properties Management, Inc. Virtual or augmented reality customization system and method
US10133407B2 (en) * 2015-12-28 2018-11-20 Seiko Epson Corporation Display apparatus, display system, method for controlling display apparatus, and program
KR20170081493A (ko) * 2016-01-04 2017-07-12 엘지전자 주식회사 헤드 마운트 디스플레이 장치
KR20170084458A (ko) * 2016-01-12 2017-07-20 엘지전자 주식회사 헤드 마운트 디스플레이 장치
US10317989B2 (en) 2016-03-13 2019-06-11 Logitech Europe S.A. Transition between virtual and augmented reality
US10852913B2 (en) * 2016-06-21 2020-12-01 Samsung Electronics Co., Ltd. Remote hover touch system and method
JP6883394B2 (ja) 2016-08-03 2021-06-09 株式会社コロプラ プログラム、コンピュータ及び方法
JP6093473B1 (ja) * 2016-08-19 2017-03-08 株式会社コロプラ 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
CN108415654A (zh) * 2017-02-10 2018-08-17 上海真曦通信技术有限公司 虚拟输入系统和相关方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090530A (ja) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 画像表示システム、画像表示システムを制御する方法、および、頭部装着型表示装置

Also Published As

Publication number Publication date
US10754546B2 (en) 2020-08-25
EP3665559B1 (en) 2021-12-01
KR20190043049A (ko) 2019-04-25
EP3665559A4 (en) 2020-08-05
WO2019078595A1 (en) 2019-04-25
US20190114075A1 (en) 2019-04-18
EP3665559A1 (en) 2020-06-17

Similar Documents

Publication Publication Date Title
KR102389185B1 (ko) 컨텐츠의 적어도 일부를 통해 표시된 입력 인터페이스를 이용하여 기능을 실행하기 위한 전자 장치 및 방법
US10521967B2 (en) Digital content interaction and navigation in virtual and augmented reality
US20170061700A1 (en) Intercommunication between a head mounted display and a real world object
KR102500666B1 (ko) 입력 인터페이스를 구성하는 방법 및 이를 사용하는 전자 장치
US11947752B2 (en) Customizing user interfaces of binary applications
US20200201515A1 (en) Method and electronic device for controlling augmented reality device
KR20200014128A (ko) 전자 장치의 디스플레이 및 외부 디스플레이 전부를 이용하여 어플리케이션을 실행하기 위한 전자 장치 및 방법
CN110543229A (zh) 具有显示器的便携式终端及其操作方法
US11487377B2 (en) Electronic device acquiring user input when in submerged state by using pressure sensor, and method for controlling electronic device
KR20240084532A (ko) 오브젝트를 생성하는 전자장치 및 시스템
KR20190093003A (ko) 지문 상태를 변경하기 위한 가이드 정보를 표시하기 위한 장치 및 방법
US11334152B2 (en) Electronic device and content executing method using sight-line information thereof
KR102513752B1 (ko) 전자 장치 및 전자 장치의 제어 방법
KR20200076325A (ko) 외부 객체를 컨트롤러로 이용하기 위한 웨어러블 장치 및 방법
KR20200066962A (ko) 사용자의 움직임에 기반하여 콘텐트를 제공하기 위한 전자 장치 및 방법
KR102527824B1 (ko) 복수의 출력 화면 환경에서 가상 입력 인터페이스의 표시를 제어하기 위한 전자 장치 및 그의 동작 방법
CN112534390A (zh) 用于提供虚拟输入工具的电子装置及其方法
KR20190058839A (ko) 사용자 인터페이스를 적응적으로 구성하기 위한 장치 및 방법
KR102288431B1 (ko) 가상현실을 이용한 이미지입력시스템 및 이를 이용한 이미지데이터 생성방법
KR101592977B1 (ko) 디스플레이 장치 및 그 제어 방법
KR102353919B1 (ko) 터치의 압력에 응답하여 지정된 동작을 수행하는 전자 장치 및 방법
CN107924276B (zh) 电子设备及其文本输入方法
KR20200125244A (ko) 터치 센서를 포함하는 표시 장치를 포함하는 전자 장치
US11622097B2 (en) Apparatus and method for providing point of interest (POI) information in 360 video
EP3652613B1 (en) Improved transmission of haptic input

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant