JP2024009171A - ヘッドマウントディスプレイ装置 - Google Patents

ヘッドマウントディスプレイ装置 Download PDF

Info

Publication number
JP2024009171A
JP2024009171A JP2023197777A JP2023197777A JP2024009171A JP 2024009171 A JP2024009171 A JP 2024009171A JP 2023197777 A JP2023197777 A JP 2023197777A JP 2023197777 A JP2023197777 A JP 2023197777A JP 2024009171 A JP2024009171 A JP 2024009171A
Authority
JP
Japan
Prior art keywords
virtual object
coordinate system
user
grid
hmd
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2023197777A
Other languages
English (en)
Inventor
康宣 橋本
Yasunobu Hashimoto
仁 秋山
Hitoshi Akiyama
恵 藏知
Megumi Kurachi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maxell Ltd
Original Assignee
Maxell Ltd
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 Maxell Ltd filed Critical Maxell Ltd
Priority to JP2023197777A priority Critical patent/JP2024009171A/ja
Publication of JP2024009171A publication Critical patent/JP2024009171A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • 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
    • 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
    • G02B27/0172Head mounted characterised by optical features
    • 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/0179Display position adjusting means not related to the information to be displayed
    • 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
    • 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/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • 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/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic 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/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/0362Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 1D translations or rotations of an operating part of the device, e.g. scroll wheels, sliders, knobs, rollers or belts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/04817Interaction 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 using icons
    • 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/0482Interaction with lists of selectable items, e.g. 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/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
    • 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/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】現実空間に対し仮想物体を配置する際に、利用者の手間が少なく、使い勝手が良好で、好適に配置することができる技術を提供する。【解決手段】実施の形態のヘッドマウントディスプレイ装置(HMD装置)は、利用者の操作に基づいて空間内に仮想物体を配置および表示する機能を持つ。HMD装置は、表示面に、仮想物体の操作をサポートするための複数の点を含む格子を表示し、対象仮想物体の指定と配置先の第1点の指定とを含む操作に応じて、対象仮想物体を第1点の位置に配置し表示する。【選択図】図11

Description

本発明は、ヘッドマウントディスプレイ装置(HMD:Head Mounted Display、頭部装着型表示装置)等の表示装置の技術に関する。また、本発明は、VR(Virtual Reality)、AR(Augmented Reality)、MR(Mixed Reality)等に関して現実空間の光景に仮想物体を配置する技術に関する。
スマートグラス等を含むHMD等の表示装置の性能向上が進んでいる。HMDは、利用者の視点から見た現実空間の光景において実物(対応する実像)に対し仮想物体(仮想画像と記載する場合がある)を重畳するように配置し表示することができる。画像は、静止画や動画を含む。
上記表示装置に係わる先行技術例として、特開2018-49629号公報(特許文献1)が挙げられる。特許文献1には、仮想空間において入力を支援するための方法等として、オブジェクトの配置を容易にする旨や以下の旨が記載されている。この方法は、HMDのモニタに仮想空間を表示し、仮想空間に、配置対象となるオブジェクト、およびガイドオブジェクト(例えばグリッド)を配置し、手オブジェクトの動きに連動させてガイドオブジェクトを前後に移動し、指示された場所にオブジェクトを配置する。
特開2018-49629号公報
近年のHMDは、仮想物体を配置および表示できる空間が拡大している。そのため、HMDには、仮想物体の配置に係わる利用者の操作に関してサポートする機能が実装されることが望ましい。従来のHMDは、空間内に仮想物体を配置する際に、利用者の操作の手間が大きい場合や操作がしにくい場合があり、使い勝手の点およびサポートの点で改善余地があった。特に、従来のHMDは、利用者の視点から見た表示面内において、多数の仮想物体を配置したい場合、手間が大きく、時間がかかり、配置数に制限があり、多数を配置できたとしても見にくくなり作業等がしにくい。
なお、特許文献1の方法は、仮想空間にガイドオブジェクトとして格子線を表示し、利用者が仮想物体を配置する目安として用いる。この方法は、手オブジェクト(手を模した移動操作用の仮想物体)を用いて仮想物体を移動させることで、格子線に対する仮想物体の配置を実現している。この方法は、例えばゲーム内で箱を積み上げる際のガイドとして用いられている。
本発明は、HMD等の表示装置の技術に関して、現実空間に対し仮想物体を配置する際に、利用者の手間が少なく、使い勝手が良好で、好適に配置することができる技術を提供する。上記以外の課題や効果等については、発明を実施するための形態で説明される。
本発明のうち代表的な実施の形態は、以下に示す構成を有する。一実施の形態のヘッドマウントディスプレイ装置は、利用者の操作に基づいて空間内に仮想物体を配置および表示するヘッドマウントディスプレイ装置であって、表示面に、前記仮想物体の操作をサポートするための複数の点を含む格子を表示し、対象仮想物体の指定と配置先の第1点の指定とを含む操作に応じて、前記対象仮想物体を前記第1点の位置に配置し表示する。
本発明のうち代表的な実施の形態によれば、HMD等の表示装置の技術に関して、現実空間に対し仮想物体を配置する際に、利用者の手間が少なく、使い勝手が良好で、好適に配置することができる。
本発明の実施の形態1のHMD装置を含む表示システムの構成を示す図である。 実施の形態1のHMD装置の外観の構成例を示す図である。 実施の形態1のHMD装置の機能ブロック構成を示す図である。 実施の形態1で、表示面における実物や仮想物体の表示例を示す図である。 実施の形態1で、OS、アプリケーション等の構成例を示す図である。 実施の形態1で、HMD装置の基本機能を構成する処理部やデータの構成を示す図である。 実施の形態1で、座標系情報の構成例を示す図である。 実施の形態1で、格子データの構成例を示す図である。 実施の形態1で、仮想画像データの構成例を示す図である。 実施の形態1で、HMD装置の処理フローを示す図である。 実施の形態1で、表示面での現実空間に対する仮想物体の配置および移動の操作に関わる基本方式についての説明図である。 実施の形態1で、各種の操作方式における入力操作例を示す図である。 実施の形態1で、表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例を示す図である。 実施の形態1で、他の表示制御例として、表示面内に表示されていない仮想物体を配置する制御を行う場合を示す図である。 実施の形態1で、世界座標系についての説明図である。 実施の形態1で、局所座標系についての説明図である。 実施の形態1で、慣性座標系についての説明図である。 実施の形態1で、慣性座標系に格子を配置する場合の構成例等を示す図である。 実施の形態1で、慣性座標系における格子の他の構成例を示す図である。 実施の形態1で、慣性座標系における格子の他の構成例を示す図である。 実施の形態1で、慣性座標系の格子を用いて複数の仮想物体を扱う例を示す図である。 実施の形態1で、格子として3次元格子の構成例を示す図である。 実施の形態1で、3次元格子に対する複数の仮想物体の配置例を示す図である。 実施の形態1で、変形例における格子等の表示例を示す図である。 実施の形態1で、3次元格子の点のIDに関する表示例を示す図である。 実施の形態1で、3次元格子の他の表示例を示す図である。 実施の形態1で、3次元格子の他の表示制御例を示す図である。 実施の形態1で、3次元格子の他の表示制御例を示す図である。 実施の形態1で、3次元格子の他の表示制御例を示す図である。 実施の形態1で、3次元格子の他の表示制御例を示す図である。 実施の形態1で、3次元格子の他の構成例を示す図である。 実施の形態1で、3次元格子の他の表示制御例を示す図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
[課題等]
従来技術例のHMDの課題等について補足する。実施の形態に対する比較例のHMDは、表示面に見える現実空間の光景において、利用者の操作に基づいて、仮想物体を所定の位置に配置し、また、仮想物体をある位置から別の位置へ移動させる。その際の操作方式としては、公知技術として、ジェスチャ方式、操作器を用いる方式、音声認識方式、等がある。ジェスチャ方式は、空間内での手指の動きをカメラ画像等に基づいてジェスチャとして検出し、ジェスチャをコマンドに対応付ける方式である。操作器を用いる方式は、HMDの操作器(いわゆるリモコン)によるビームやボタンの操作をコマンドに対応付ける方式である。音声認識方式は、利用者の音声を検出しコマンドに対応付ける方式である。
いずれかの操作方式を用いて空間に仮想物体を配置または移動する場合に、利用者の詳しい操作内容としては、例えば、以下のような一連の動作が必要である。すなわち、利用者は、対象仮想物体を選択し、その対象仮想物体を、ドラッグ等の操作によって、配置先または移動先の位置へ移動させ、その位置で配置または移動を確定させるといった動作が必要である。
利用者は、多数の仮想物体を扱いたい場合、仮想物体毎にこのような操作を繰り返す必要がある。このような操作は、手間が大きく、時間がかかり、使い勝手が良くない場合がある。また、このような操作では、仮想物体の配置位置が操作終了時点で決まるので、利用者が仮想物体を空間内の所望の位置に正確にまたは迅速に配置することが難しい場合もある。また、特に、空間内でHMDおよび利用者の視点に対する前方(言い換えると奥行き方向)において仮想物体を配置または移動する場合、対象位置までの距離が遠い等の理由から、このような操作がしにくい場合や操作ができない場合もある。
また、比較例のHMDは、空間に対する仮想物体の配置の位置を管理するための座標系として、公知の世界座標系(World coordinate system)や局所座標系(Local coordinate system)を用いている。世界座標系は、現実空間に固定される座標系である。世界座標系の空間は広くとれるので、仮想物体の配置数を多くできる。局所座標系は、HMDおよび利用者の視点から見て表示面に固定される座標系である。局所座標系に配置される仮想物体は、表示面との位置関係が固定される。すなわち、その仮想物体は、表示面内で所定の位置に固定される。表示面の局所座標系に仮想物体が配置された場合、利用者が移動した場合や頭の向きを変えた場合でも、表示面内での仮想物体の位置が維持される。
しかしながら、比較例のHMDは、それらの2種類の座標系のみでは、多数の仮想物体の配置が難しく、利用者の作業がしにくい場合がある。世界座標系に配置される仮想物体は、利用者がいる空間内の場所の位置に固定される。利用者がその場所から離れた場合、利用者からその仮想物体が見えなくなる、または見にくくなる。局所座標系に配置される仮想物体は、表示面または視野範囲の領域の大きさが限られているので、仮想物体の配置数に限界がある。表示面内に多数の仮想物体を配置できたとしても、利用者から実物および仮想物体の両方が見にくくなり、言い換えると視認性が低下し、利用者は作業がしにくい。例えば、表示面内に利用者が作業のために頻繁に参照したい仮想物体を適宜に切り替えて配置したい場合、操作の手間が大きい。
本発明は、上記課題等を考慮し、HMDの仮想物体の配置および表示に係わる利用者の操作に関する新たな方式を提案し、これにより、操作性、使い勝手を向上し、仮想物体を用いる作業の容易性や効率等を向上する。
(実施の形態1)
図1~図39を用いて、本発明の実施の形態1のHMD装置について説明する。実施の形態1のHMD装置は、利用者による仮想物体の配置や移動の操作に関して、サポートのための新たな方式、およびグラフィカル・ユーザ・インタフェース(GUI)を含むマン・マシン・インタフェース等を提供する。このHMD装置は、座標系を用いて管理される現実空間(対応する仮想空間)内において、仮想物体の配置基準として利用できる複数の点を含む格子を設定する。この点は、基準点または格子点等と言い換えることができる。利用者は、所定の操作に応じて、この点に仮想物体を配置できる。利用者は、所定の操作として、配置または移動したい対象仮想物体を指定し、配置先または移動先の位置に対応する点(第1点)を指定する。HMD装置は、この操作に従い、空間内で対象仮想物体を格子の第1点の位置に配置または移動させ、表示面内に表示する。この基本操作によって、1個の仮想物体の配置または移動を、少ない手間で実現する。また、後述の仕組みによって、複数の仮想物体の配置または移動についても少ない手間で実現する。
[表示システム]
図1は、実施の形態1のHMD装置を含む表示システムの構成を示す。この表示システムは、実施の形態1のHMD装置であるHMD1と、HMD1に対し通信で接続されるサーバ3やPC4等とを有する。HMD1は、操作器2を含む。利用者は、HMD1を頭部に装着して使用する。操作器2は、本体と通信するリモコンであり、利用者が手指で操作でき、入力手段の1つである。利用者の眼前の視界には、表示面5を通じて、現実空間の実物を含む光景に対し、仮想物体(対応する仮想画像)が重畳表示される。HMD1は、例えば事業者のサーバ3や、利用者の自宅のPC4等の装置と通信で連携できる。サーバ3やPC4は、例えば各種のアプリケーションプログラムや仮想物体のデータをHMD1に提供してもよいし、HMD1のデータを保存してもよい。また、HMD1とサーバ3との連携の方式(クライアントサーバ方式等)で後述の機能を実現してもよい。
HMD1は、操作器2と例えば近距離無線通信で通信して信号を送受信する。なお、操作器2を用いない形態も可能である。操作器2は、ボタンやセンサを備える。例えば、利用者は、操作器2を動かし、操作器2からのビームによって仮想物体等を指し示し、操作器2のボタンを押す。HMD1は、操作器2からの信号に応じて、利用者の動作を認識し、所定のコマンド、例えば仮想物体の選択や実行として解釈する。他の入力手段として、キーボードやマウス等を利用してもよい。
[HMD]
図2は、HMD1の外観の構成例を示す。(A)は、HMD1を装着した利用者の側面から見た図を示し、(B)は、HMD1の正面から見た図を示す。(A)で、HMD1は、利用者の頭部に装着される筐体10と、筐体10に接続されている表示デバイス50とを有する。筐体10には、基板等が内蔵され、マイク81やスピーカ82等が設けられている。表示デバイス50は、利用者の両眼の前方に配置されている。表示デバイス50は、表示面5、カメラ6、カバーレンズ7等を含む。表示面5は、例えば透過型表示デバイスであり、両眼に近接して配置される2枚のレンズを含む。カバーレンズ7は、表示面5よりも前方に配置され、例えば透過型の1枚のレンズを含む。カメラ6は、複数のカメラを含む。表示デバイス50は、投射型表示デバイス等を適用でき、特に限定しない。
HMD1の表示面5を含む表示方式は、透過型とするが、非透過型(VRタイプ)にも同様に適用できる。透過型の場合、実像に対する仮想物体の重畳表示が可能である。VRタイプの場合、カメラで撮影した画像等に対する仮想物体の合成表示が可能である。なお、VRタイプの場合、公知技術に基づいて、視界にVR空間を表示でき、例えば、利用者は、自分の身体を移動させずに、操作器2の操作によって、VR空間内を移動するような体感ができる。利用者は、操作によってVR空間内に仮想物体を配置できる。VR空間は、例えば3次元CADによって作成されたビデオゲーム空間等である。透過型の場合、現実空間内に世界座標系が設定される。VRタイプの場合、VR空間内に世界座標系が設定される。
HMD1は、筐体10または表示デバイス50に、制御ユニットを内蔵している。制御ユニットは、プロセッサ、メモリ、OS、アプリケーションプログラム、通信インタフェース等を含む。制御ユニットは、音声認識機能等を含む。HMD1は、音声認識機能を用いて、利用者の音声を認識し、その音声をコマンド等に対応付ける。HMD1は、各種のセンサも内蔵している。筐体10には、他に、操作ボタン、コネクタ、バッテリ等を備える。通信インタフェースは、無線LAN、モバイル網の通信規格、USB、Bluetooth(登録商標)、赤外線通信方式(例えばIrDA)、Zigbee(登録商標)、HomeRF(登録商標)、RFID方式、等が挙げられる。
(B)で、HMD1は、筐体10の左右を含む位置に複数のマイク81および複数のスピーカ82を備える。HMD1は、カバーレンズ7に対し複数の位置に複数のカメラ6を備える。複数のカメラ6は、視界の光景を撮像するRGBカメラ、ジェスチャを検出するためのカメラ、測距センサを構成するためのカメラ、視線検出センサを構成するためのカメラ等を含む。HMD1は、複数のカメラ6によって撮影した画像およびセンサの検出情報を用いて、各種の検出や制御を行う。本例のHMD1は、表示面5を通じて利用者の視点から前方に例えば0.5m~5mの距離範囲内の位置に、仮想物体の形成が可能である。
[HMD-機能ブロック]
図3は、HMD1の機能ブロック構成例を示す。HMD1は、プロセッサ101、メモリ102、表示デバイス50、カメラ6、センサ70、通信デバイス80、マイク81、スピーカ82、操作ボタン83、バッテリ84等を備え、これらはバス等を通じて相互に接続されている。プロセッサ101は、CPU、GPU、ROM、RAM等を含み、HMD1のコントローラを構成し、OSやアプリケーションの処理を実行する。プロセッサ101は、プログラムに従った処理を実行することで、各機能を実現する。プロセッサ101は、ハードウェアおよびソフトウェアプログラム処理に基づいて構成される処理部として、設定部11、状態認識部12、座標計算部13、格子制御部14、指示認識部15、表示制御部16、アプリケーション制御部17等を有する。
メモリ102は、不揮発性記憶装置等で構成され、プロセッサ101が扱う各種のデータや情報を記憶する。メモリ102には、例えば、制御プログラム21、アプリケーションプログラム22、設定情報30、座標系情報31、仮想画像データ32、格子データ33等が記憶される。メモリ102には、カメラ6で撮影した画像のデータや、センサ70の検出情報等も記憶される。制御プログラム21は、実施の形態1のHMD1の後述の基本機能を実現するプログラムである。アプリケーションプログラム22は、仮想物体の生成に係わる公知のプログラムを含み、一例としては3次元CADプログラムを含む。
表示デバイス50は、図2の表示面5を含み、プロセッサ101からの制御に従って、表示面5に仮想物体に対応する仮想画像を表示する駆動を行う。カメラ6は、複数のカメラを含み、各カメラは、レンズを通じた入射光を撮像素子で撮像し画像として取得する。センサ70は、各種のセンサを含み、GPS受信器、地磁気センサ、慣性センサ(ジャイロセンサおよび加速度センサ)等を含む。センサ70は、利用者およびHMD1の姿勢の状態を検出する姿勢検出センサを含む。GPS受信器は、測位によって位置情報を得る。地磁気センサは、方位を検出し、3軸タイプを用いる場合には頭の動きを検出できる。慣性センサは、HMD1の方向、運動および慣性の状態に対応する、角度、角速度、および加速度を検出する。加速度センサは、3軸の加速度を検出し、HMD1の位置の変化と重力加速度の向きとから垂直方向を捉えることができる。ジャイロセンサは、HMD1の3軸の回転方向の角速度を検出する。ジャイロセンサは、角速度から、HMD1の姿勢(例えば世界座標系の方向に対する局所座標系の方向)を表す角度を検出する。この角度は、公知のオイラー角(ピッチ角、ヨー角、およびロール角)、あるいは正規化四元数で表すことができる。
なお、四元数(quaternion)は、複素数を拡張した数体系である。四元数を用いる場合、3次元空間のベクトルの回転(対応する座標系間の変換)を少ない計算量で扱うことができる。四元数は、4次元のベクトルで表される。各ベクトル成分には、回転軸および回転角を用いた所定の計算結果が格納される。四元数をqとすると、q=w+xi+yj+zkで表される。(w,x,y,z)は実数である。(i,j,k)は、i=j=k=-1、ij=-ij=k、jk=-kj=i、ki=-ik=jを満たす。四元数同士の積は四元数となる。オイラー角を用いた回転行列の積の演算は、四元数の積を用いた演算で表すことができる。
HMD1は、カメラ6およびセンサ70を用いて、利用者の位置、利用者の基準方向、頭の動きや方向、視線方向、手指の位置やジェスチャ等を検出する。HMD1は、カメラ6の画像から、実物の特徴点を検出し、実物の構造を把握してもよい。HMD1は、カメラ6およびセンサ70を用いて構成される測距センサおよび視線検出センサを備える。測距センサは、利用者の視点(対応するHMD1の位置)から見た対象物の位置までの距離(言い換えると深度)を測定するセンサである。視線検出センサは、利用者の視線方向(対応する表示面内の位置)を測定するセンサである。測距センサや視線検出センサの方式については限定しない。
マイク81は、複数のマイクを含む音声入力装置である。複数のマイクの複数の入力音声を用いることで、3次元空間での音の指向性の検出が可能である。スピーカ82は、複数のスピーカを含む音声出力装置である。複数のスピーカの複数の出力音声を用いることで、3次元空間での立体音響の生成が可能である。操作ボタン83は、電源オン/オフボタン、明るさ調整ボタン、音量調整ボタン等を含む。バッテリ84は、充電に基づいて各部へ電力を供給する。通信デバイス80は、各種の通信インタフェースに対応するアンテナやIC等の部分を含み、操作器2との近距離無線通信や、外部の基地局、サーバ3やPC4等との通信を行う。
設定情報30は、基本機能に係わるシステム設定情報やユーザ設定情報である。座標系情報31は、後述の3種類の座標系を管理するための情報である。仮想画像データ32は、表示面5に仮想物体を表示するためのデータである。格子データ33は、後述の格子を管理するためのデータである。
プロセッサ101は、OSやアプリケーションによって生成した仮想物体のデータ、あるいは、サーバ3やPC4等から取得した仮想物体のデータを、仮想画像データ32に記憶する。HMD1は、利用者による操作器2の操作に基づいた入力操作情報を、操作器2から受信し、その入力操作情報を解釈してコマンド等に対応付ける。HMD1は、カメラ6の画像およびセンサ70の検出情報を用いて、利用者の視界の光景、利用者およびHMD1の姿勢の状態、利用者の視線方向、対象物との距離等を認識する。
[HMD-表示面]
図4は、HMD1の表示面5における実物や仮想物体の表示例を示す。本例では、表示面5の画像400において、実物としては、利用者の前方にある作業台401やホワイトボード402が写っており、作業台401上には立方体の実物403が置かれている。本例では、表示面5内に、複数の仮想物体が重畳表示されている。仮想物体は、2次元の形状または3次元の形状の物体の画像の他に、GUIの画像でもよい。仮想物体のGUIの画像例として、システム情報411、メニュー欄412、アプリウィンドウ413、カーソル414を有する。システム情報411は、時刻、バッテリ状態、通信状態、音量状態、音声認識機能の状態等を表す画像である。メニュー欄412(言い換えるとランチャー欄)には、アプリアイコン415やコマンドボタン416等の画像が表示されている。アプリアイコン415は、アプリケーション(アプリケーションプログラム22)を表すアイコンの画像であり、例えば2次元の矩形形状を持つ。アプリアイコン415が利用者によって選択実行された場合、対応するアプリケーションが起動され、例えばアプリウィンドウ413が表示される。コマンドボタン416は、利用者によって選択実行された場合、対応するコマンドの処理が実行される。メニュー欄412等の表示は、利用者の操作やHMD1の状態に応じてオン/オフができる。メニュー欄412には他の項目、例えばWebブラウザのブックマーク、ファイルのアイコン等が配置されてもよい。メニュー欄412に配置される項目は利用者が設定できる。
アプリウィンドウ413は、アプリケーション起動状態で表示され、2次元の矩形形状を持つ。アプリウィンドウ413の位置やサイズや表示のオン/オフは、利用者が調整できる。アプリウィンドウ413内には、対応するアプリケーションプログラム22によって生成された画像が表示される。カーソル414は、利用者の操作、例えば操作器2の操作に応じて動かすことができ、仮想物体の選択操作等が可能である。カーソル414は、手指形状のカーソルの例を示すが、これに限らず、点形状、矢印形状、クロス形状等が可能である。
このように、表示面5内には、HMD1のGUIを構成する仮想物体等が配置できる。HMD1は、後述の局所座標系を用いて、表示面5内の所定の位置に、このようなGUIの仮想物体を配置することができる。表示面5内の所定の領域は、GUIの配置のための固定的な領域として設定されてもよい。また、HMD1は、カメラ6の画像からの実物の認識に基づいて、実物と仮想物体との位置関係を制御する。例えば、HMD1は、作業台401の面やホワイトボード402の面に合わせた位置に仮想物体を配置し表示することができる。また、例えば、HMD1は、作業台401の下側やホワイトボード402の裏側に仮想物体が配置されている場合、表示面5内にはその仮想物体を表示しない。
利用者の作業およびアプリケーションの例としては、空間内で作業台401上に実物403と並べるようにして3次元CADアプリケーションで作成したモデルを仮想物体の画像として表示し、そのモデルの3次元形状等を利用者が各方向から確認する例が挙げられる。他の例としては、ホワイトボード402の面に利用者が2次元の仮想画像を貼り付けるように配置する例が挙げられる。HMD1は、実物の平面に合わせるようにして後述の格子を設定してもよい。
[HMD-OSおよびアプリケーション]
図5は、HMD1における、OSやアプリケーション等の構成例を示す。HMD1のプロセッサ101は、OS500内またはOS500上で、制御プログラム21の処理を実行する。OS500内には、AR等に対応する仮想物体またはその元となる画像情報(例えばシステム情報411)を作成するプログラム501を含む。また、OS500上で起動および実行される各種のアプリケーションプログラム22(例えばアプリA1~Am)を有する。アプリケーションプログラム22の例は、ARアプリ、写真アプリ、Webブラウザ、SNSアプリ、電話アプリ等が挙げられる。各アプリケーションプログラム22は、それぞれ、AR等に対応する仮想物体またはその元となる画像情報を作成し、表示面5に仮想物体の画像503を表示する。例えば、アプリA1は、仮想物体の画像B1を作成し、表示面5に表示する。プログラム501やアプリケーションプログラム22は、対応する仮想物体が利用者によって選択された場合には、対応する所定の処理を実行する。
制御プログラム21は、プログラム501やアプリケーションプログラム22が表示面5に仮想物体の画像503を表示する際に、所定の表示制御を行う。制御プログラム21は、表示面5に、格子K1を表示する。格子K1は、複数の格子点である複数の点P1と、複数の格子線とを含む。制御プログラム21は、各点P1にIDマークM1を表示する。制御プログラム21は、仮想物体の画像503にもIDマークを表示してもよい。各格子K1には、配置される座標系や空間内の領域が対応付けて設定される。制御プログラム21は、利用者による所定の入力操作として、仮想物体に対する操作を受け付ける。この操作は、仮想物体の選択操作等の他、仮想物体の配置または移動の操作等がある。入力操作の方式は、音声認識、手指によるジェスチャ、操作器2を用いたカーソル等の操作、視線方向を用いた操作、頭(対応するHMD1)の動きを用いた操作、等が利用できる。
制御プログラム21は、所定の操作を受けた場合、対象仮想物体を指定の配置先または移動先の点P1の位置に配置または移動する。所定の操作は、(1)対象仮想物体の指定の操作と、(2)配置先または移動先の位置の点P1を指定する操作とを含む操作である。対象仮想物体は、配置または移動の際、指定の点P1が属する格子K1が配置されている座標系に配置されるように、自動的に設定される。
HMD1は、図4のアプリアイコン415やアプリウィンドウ413等のGUIの仮想画像を表示面5内に配置し表示する。HMD1は、利用者がアプリアイコン415等によって指定したアプリケーションプログラム22を起動させる。プロセッサ101は、アプリケーションプログラム22に対応する実行モジュールを動作させる。HMD1は、利用者による指定が無い場合には、局所座標系のデフォルト設定位置に、GUIの画像を配置し表示する。HMD1は、利用者による指示操作がある場合には、利用者が指定した位置にGUIの画像を配置し表示する。アプリケーションプログラム22は、種類として、2次元アプリと3次元アプリがある。2次元アプリの場合、アプリウィンドウ413内、または表示面5内のアプリモードにおいて、2次元平面内の位置に仮想物体が配置される。3次元アプリの場合、表示面5内の3次元空間内の位置に仮想物体が配置される。
HMD1は、空間内における座標系および格子K1に対する仮想物体の配置の位置、方向、および表示サイズ等を管理および制御する。HMD1は、本体の起動時やアプリケーションの起動時に、座標系および格子K1の適用を判断し、配置対象仮想物体および配置位置等を判断する。HMD1は、利用者の動きや操作に応じて、空間内における座標系、格子K1、および仮想物体等の状態を更新する。HMD1は、本体の起動終了時やアプリケーションの終了時には、それらの状態を情報として保存する。HMD1は、本体の再起動時やアプリケーションの再起動時には、保存していた情報に従って、座標系、格子K1、および仮想物体等の状態を復元する。
[操作方式]
実施の形態1における操作方式の例は以下の通りである。HMD1は、少なくとも1つの操作方式を用いる。音声方式の場合、HMD1は、マイク81からの利用者の入力音声から、音声認識機能を用いて、所定の音声を認識し、所定のコマンドに対応付ける。例えば、HMD1は、音声として「画像表示オン」が入力された場合、表示面5に仮想物体を表示し、「画像表示オフ」が入力された場合、表示面5の仮想物体を非表示にする。HMD1は、例えば「格子オン」が入力された場合、表示面5に格子K1(IDマークM1を含む)を表示し、「格子オフ」が入力された場合、表示面5内の格子K1を非表示にする。ジェスチャ方式の場合、HMD1は、カメラ6の画像から手指のジェスチャを検出し、所定のコマンドに対応付ける。例えば、HMD1は、表示面5内の仮想物体の位置に対するタッチまたはタップのジェスチャを検出した場合、その仮想物体の指定として対応付ける。例えば、HMD1は、手を開閉するジェスチャを検出した場合には、前の状態に戻る、またはキャンセルを表すコマンドとして対応付ける。
操作器2を用いたカーソル操作の方式の場合、HMD1は、操作器2からの信号に基づいて、表示面5内に表示するカーソルを動かし、例えば操作器2のボタンが押された場合、その時のカーソル位置にある仮想物体の指定として対応付ける。視線方向を用いる操作方式の場合、HMD1は、例えば、視線検出センサを用いて検出した利用者の視線方向と表示面5との交わりの位置を検出し、その位置にカーソルを表示し、その位置にある仮想物体の指定として対応付ける。頭の動きを用いる操作方式の場合、HMD1は、例えば、センサを用いて頭(対応するHMD1)の正面方向および動きを検出し、その正面方向および動きに応じて、カーソルを表示し、その正面方向にある仮想物体の指定として対応付ける。
[HMD-基本機能]
図6は、図3の構成に基づいたHMD1の基本機能を構成する処理部やデータの構成を示す。基本機能は、格子K1等を用いて仮想物体の表示制御を行う機能であり、仮想物体の配置や移動を制御する機能を含む。設定部11は、予め、基本機能等に係わる設定情報30を設定し保存する。一例として、適用対象のアプリケーション、使用する格子K1、座標系、空間領域、表示するIDマークM1の種類等がユーザ設定可能である。状態認識部12は、カメラ6の画像やセンサ70の検出情報を用いて、時点毎に、利用者およびHMD1の姿勢状態を含む状態を認識する。
座標系計算部13は、カメラ6の画像やセンサ70の検出情報を用いて、時点毎に、座標系の状態を計算する。座標系は、後述の3種類の座標系を含み、座標系間での配置関係を有する。座標系計算部13は、座標系情報31に対し、計算および設定した座標系の情報を読み書きする。座標系情報31は、各座標系の原点の位置、および正面方向の情報と、座標系間の配置関係の情報とを含む。座標系計算部13は、座標系に対する格子K1の配置や仮想物体の配置を計算する。また、座標系計算部13は、座標系の変更や座標系間での移動等がある場合には、オイラー角または正規化四元数を用いて、座標系間での回転等を計算する。
格子制御部14は、表示面5および座標系に対する格子K1の配置を制御する。格子制御部14は、格子データ33に対し、格子K1の構成(点P1およびIDマークM1の情報を含む)を含むデータを読み書きする。指示認識部15は、適用する操作方式に基づいて、カメラ6の画像、センサ70の検出情報、操作器2からの信号、マイク81の入力音声等を用いて、利用者による入力操作(対応する指示)を認識する。指示認識部15は、所定の入力操作を所定のコマンドと対応付けて、コマンドに応じて表示制御部16等を制御する。表示制御部16は、指示認識部15からの制御、格子データ33や仮想画像データ32に基づいて、表示面5内に格子K1や仮想物体を表示し、スピーカ82から音声(例えば操作に伴う効果音)を出力する。アプリケーション制御部17は、各アプリケーションプログラム22の起動や終了を制御し、各アプリケーションプログラム22が生成する仮想物体のデータ、アプリアイコン415やアプリウィンドウ413等のデータを、仮想物体データ32に記憶する。
[座標系情報]
図7は、座標系情報31の構成例としてのテーブル701を示す。テーブル701には、3種類の座標系の原点位置および正面方向が情報として管理されている。テーブル701は、列として、座標系ID、原点位置、正面方向を有する。3種類の座標系として、世界座標系CS1、局所座標系CS2、慣性座標系CS3がある。なお、座標系の種類毎にさらに複数の座標系(対応する複数の領域)を設定して使い分けることも可能である。
[格子データ]
図8は、格子データ33の構成例としてのテーブル801を示す。テーブル801は、列として、格子ID、点ID、配置座標系、配置位置座標、表示フラグ、IDマーク等を有する。格子IDは、格子K1毎のIDである。点IDは、その格子K1に属する複数の点P1の点P1毎のIDである。配置座標系は、その格子K1(対応する点P1)が配置される座標系を示す。配置位置座標は、その点P1の配置座標系内での位置座標を示す。表示フラグは、その点P1(または対応するIDマークM1)を表示面5内に表示するか非表示にするかの状態を管理するためのフラグである。IDマークは、その点P1に対応付けられるIDマークM1のID値を示す。
[仮想画像データ]
図9は、仮想画像データ32の構成例としてのテーブル901を示す。テーブル901は、列として、仮想物体ID、形状(ファイル)、配置座標系、配置格子、配置点、配置方向、ラベル等を有する。仮想物体IDは、仮想物体(対応する仮想画像)毎のIDである。形状(ファイル)は、仮想物体の形状を表す画像ファイル等である。配置座標系は、その仮想物体が配置される座標系を示す。配置格子は、その仮想物体が配置される格子K1を示す。配置点は、その仮想物体が配置される点P1を示す。なお、仮想物体の配置位置として配置位置座標を用いてもよい。配置方向は、その仮想物体が点P1に配置された時の方向を示す。ラベルは、その仮想物体にIDマーク(点P1のIDマークM1との区別のためにラベルと記載する場合がある)を付与および表示する際のそのラベルのID値を示す。なお、図示しないが、仮想物体毎に、配置サイズ、表示フラグ等を設けることができる。
[処理フロー]
図10は、HMD1の基本機能の処理フローを示す。図10は、ステップS1~S13を有し、以下順に説明する。ステップS1で、HMD1は、利用者によって主電源がオン状態にされて起動する。これに伴い、HMD1は、所定の初期化処理を行う。センサ70の各センサは、それぞれ計測を開始する。カメラ6の各カメラは、それぞれ撮影を開始する。ステップS2で、HMD1は、初期化処理に伴い、3種類の座標系の設定(再設定を含む)を行う。利用者は、その際、HMD1を静止状態にする。HMD1の座標系計算部13は、3種類の各座標系の原点および正面方向を所定のルールに従って設定する。座標系計算部13は、過去に設定済みの座標系を維持する場合には、座標系情報31から設定情報を読み出し、その設定情報に合わせて座標系を再設定する。あるいは、座標系計算部13は、新規に座標系を設定してもよい。座標系の設定例については後述する。
ステップS3で、HMD1は、表示面5内に、前述の図4の例のようなGUIの仮想画像を表示する。例えば、HMD1は、局所座標系CS2に合わせて、システム情報411やメニュー欄412を表示し、メニュー欄412にアプリアイコン415等を表示する。ステップS4で、HMD1は、利用者による操作または設定に応じてアプリケーション(アプリケーションプログラム22)を選択する。利用者は、例えばメニュー欄412のアプリアイコン415から、起動するアプリケーションを選択操作できる。
ステップS5で、HMD1は、ステップS4で選択されたアプリケーションに係わる仮想物体を表示面5内に表示する。その際、表示制御部16は、仮想画像データ32(例えば図9のテーブル901)を参照し、表示対象の各仮想物体、形状、配置座標系、配置格子、配置点等を確認する。表示制御部16は、各仮想物体について、どの座標系のどの格子K1の領域に配置するかを決める。基本的には、過去に配置済みの仮想物体については、その時の座標系や格子K1が維持される。HMD1は、利用者の入力操作によって配置座標系または格子K1の指定があった場合には、その指定された座標系または格子K1に仮想物体を配置してもよい。なお、仮想物体が格子K1に配置されていない場合もある。表示制御部16は、各仮想物体について、配置座標系の格子K1における位置、方向、表示サイズ等を計算する。表示制御部16は、仮想物体の配置座標系が世界座標系CS1や慣性座標系CS3である場合の配置位置や配置方向を、局所座標系CS2での情報に変換し、表示面5内の対応する位置に表示する。
ステップS6で、HMD1の表示制御部16は、表示面5内に、格子K1の複数の点P1および点P1毎のIDマークM1を表示する。ステップS7で、HMD1の指示認識部15は、操作方式に基づいて利用者による入力操作を受け付けて指示として認識する。この指示は、種類としては、例えば作業およびアプリケーションに係わる公知の仮想物体の操作や、仮想物体の配置または移動の操作や、座標系の設定に係わる操作、等がある。公知の仮想物体の操作は、仮想物体を選択し、アプリケーションプログラム22等によって所定の処理を実行するための操作である。仮想物体の配置または移動の操作は、後述の図11等に示す特有の操作である。
ステップS8で、HMD1は、ステップS7の入力操作(対応する指示)が、仮想物体の配置または移動の操作(対応するコマンド)であるかを確認し、該当する場合(Y)にはステップS9へ進む。ステップS9で、HMD1は、表示面5内で、指定された対象仮想物体を、指定された配置先または移動先の点P1の位置に配置または移動するように、表示状態を更新する。この更新は、点P1のIDマークM1や仮想物体のラベル等の表示状態の更新を含む。HMD1は、仮想物体の配置または移動の際には、その仮想物体が配置される座標系を、配置先の点P1が属する座標系に合わせるように、適宜に変更する。すなわち、実施の形態1では、座標系間(対応する格子K1間)での仮想物体の移動が可能である。例えば、対象仮想物体の配置元の座標系が局所座標系CS2または世界座標系CS1である場合に、配置先を慣性座標系CS3の対応する格子K1の点P1の位置とすること等が可能である。
ステップS10で、HMD1は、ステップS7の入力操作として、座標系設定指示が有るかを確認し、有る場合(Y)にはステップS11へ進む。座標系設定指示は、例えば3種類の座標系間で、仮想物体を配置する座標系を変更する指示や、後述の慣性座標系CS3の回転移動操作の指示が挙げられる。ステップS11で、HMD1は、座標系設定指示に応じて、座標系、格子K1、および仮想物体の設定の情報を更新する。ステップS12で、HMD1は、利用者によって主電源がオフ状態にされた場合(Y)には、ステップS13へ進む。ステップS13で、HMD1は、その時点の座標系等の状態を座標系情報31等に保存し、HMD1の終了処理を実行する。これにより、本処理フローが終了する。ステップS12で主電源がオン状態のままの場合(N)には、例えばステップS2へ戻り、時点毎に同様の繰り返しである。ステップS2、ステップS5、ステップS6等の処理は、時点毎に利用者の頭の方向を含む姿勢状態に応じて更新するように行われる。
[基本方式]
図11は、HMD1の基本機能における表示面5での現実空間に対する仮想物体の配置および移動の操作に関わる基本方式についての説明図を示す。図11の画像111は、表示面5に対応する利用者の視点から見た光景を示す。画像111は、実像の例としては、作業台401、ホワイトボード402、立方体の実物403がある。また、画像111には、利用者によって選択されたアプリケーションプログラム22の処理に基づいて、仮想物体110として、仮想物体V1,V2,V3が表示されている。例えば、仮想物体V1は、雪だるま形状の3次元物体を表す画像である。仮想物体V2は、円柱形状の3次元物体を表す画像である。仮想物体V3は、円錐形状の3次元物体を表す画像である。
HMD1は、利用者による仮想物体の配置や移動の操作をサポートするために、表示面5内に、格子K1の複数の点P1およびIDマークM1を表示する。本例では、格子K1は、2次元平面(対応する格子面)に2行5列で配置されている合計10個の点P1を有する。本例では、各点P1は、白い円形の仮想画像として表示されている。また、各点P1には、IDマークM1が付与および表示されている。IDマークM1は、点P1の識別情報(点ID)を表す仮想画像である。HMD1は、点P1の近傍の位置または重なる位置にIDマークM1を表示する。本例では、IDマークM1は、点P1と一体化しており、円形のマーク内に点IDの数字が表示されている。本例では、10個の点P1には、ID=1~10が付与されている。IDの順序方向については限定しない。
また、HMD1は、画像111内の各仮想物体110(V1,V2,V3)に対し、IDマークN1を付与および表示する。IDマークN1は、仮想物体の識別情報(言い換えるとラベル)を表す仮想画像である。本例では、IDマークN1は、矩形形状のマークであり、矩形内にIDの英字が表示されている。HMD1は、仮想物体110の近傍の位置または重なる位置にIDマークN1を表示する。本例では、仮想物体V1にはID=A、仮想物体V2にはID=B、仮想物体V3にはID=Cが表示されている。
利用者は、所定の操作として、仮想物体の配置または移動の操作を行う。例えば、利用者は、表示面5内に表示されている仮想物体V1を、格子K1のうちID=7で示す点P1の位置に配置または移動させたいとする。利用者は、その際、所定の操作として、(1)対象仮想物体の指定または移動元位置の指定と、(2)配置先または移動先の点P1の指定とを行う。HMD1は、この操作に応じて、指定された対象仮想物体を、指定された点P1の位置に配置または移動する。この基本操作によって、まず1個の仮想物体の配置または移動を容易に実現できる。基本操作は、上記(1)および(2)に加えて、(3)配置または移動の指示を含むものとしてもよい。利用者は、例えばジェスチャまたは操作器2を用いる方式の場合、第1に、仮想物体V1を手指またはカーソルで指し示すように選択操作し、次に、第2に、配置先のID=7の点P1を指し示すように選択操作する。音声方式の場合、利用者は、例えば「Aのオブジェクトを7番に配置(または移動)」等の音声を入力する。音声方式の場合、利用者は、IDマークM1の数字やIDマークN1の英字を音声で指定できる。このような操作に従って、仮想物体V1は、下側の画像111bに示すように、ID=7の点P1の位置に配置および表示される。この際、従来方式のように利用者が仮想物体V1をID=7の位置までドラッグ等の操作で移動させることは不要である。
なお、HMD1は、表示面5内に常時に格子K1(点P1やIDマークM1等)を表示してもよいし、利用者の指示や操作に応じて格子K1の表示のオン/オフを切り替えてもよい。利用者は、表示面5内の格子K1の表示が煩わしい場合には、表示をオフ状態にできる。例えば、HMD1は、通常時には格子K1を表示せず、利用者が格子オンのコマンドを入力した場合や、利用者が仮想物体を選択操作した場合に、格子K1を表示してもよい。また、HMD1は、利用者の手指が格子K1の存在位置に近付いた場合に格子K1を表示してもよい。また、HMD1は、表示面5内で利用者の視線方向に対応する一部の領域の格子K1の点P1のみを表示してもよい。また、HMD1は、点P1の表示とIDマークM1の表示とを独立に制御してもよい。例えば、HMD1は、点P1を表す点画像のみを表示してもよい。HMD1は、利用者によるコマンド入力に応じて、IDマークM1の表示のオン/オフを切り替えてもよい。表示面5内に格子K1等の操作用に各種のコマンドのボタンを設けてもよい。他の例として、表示面5内で一部の領域のみに格子K1の表示を許可し、他の一部の領域には格子K1の表示を不許可としてもよい。例えば、表示面5内で中央付近領域のみに格子K1を表示させてもよいし、逆に、中央付近領域以外の周辺領域に格子K1を表示させてもよい。
画像111bでは、ID=7の点P1の位置に仮想物体V1が配置されている。本例では、点P1のIDマークM1の上に重ねて仮想物体V1が表示され、後ろ側の点P1のIDマークM1は見えなくなっている。なお、ID=7のIDマークM1が隠れないように前側に表示したままとしてもよい。また、本例では、仮想物体V1の配置元の位置には、ID=0の点P1がある。そのため、この点P1が見える状態になっている。ID=0の点P1は、表示面5内の所定の位置(例えば下辺領域の中央位置)に後述のホーム領域として設定されてもよい。ホーム領域の設定および表示については省略も可能である。この設定がある場合、ID=0の点P1を配置先または移動先として指定可能である。例えば、一旦ID=7の点P1に配置した仮想物体V1を、ID=0の点P1の位置に戻すことも容易に可能である。例えば、利用者は、音声方式の場合、「Aのオブジェクトを0番に移動」または「Aのオブジェクトを戻す」等と入力すればよい。
[入力操作例]
図12は、各種の操作方式における入力操作例を示す。(A)は、操作器2から発するビーム(例えば赤外線)をポインティング手段として用いる例を示す。利用者は、操作器2を手で動かして、ビームの先を表示面5内の対象仮想物体(例えば仮想物体V1)や点P1に当てる。HMD1は、表示面5内でビームの先の位置にカーソルを表示してもよい。(B)は、表示面5内の仮想物体V1の位置に操作器2のビームの先のカーソル122(例えばクロス形状)を表示する例を示す。(C)は、仮想物体V1の位置に手指形状のカーソル123を表示する例を示す。なお、HMD1は、カーソルを仮想物体または点P1に合わせて重ねるように表示してもよいし、それらの近傍に表示してもよい。ビームやカーソルを用いることで、利用者は、対象仮想物体や配置先の点P1等を指定できる。例えば、仮想物体V1は、カーソル122等が一定時間以上当てられることで、選択状態にされる。また、操作器2の代わりに、視線方向を用いても、同様の制御が可能である。また、利用者の頭(対応するHMD1)の正面方向で表示面5の中心位置にカーソルを表示する方式を用いても、同様の制御が可能である。
また、対象仮想物体や点P1の指定操作は、詳しくは、仮選択と選択確定とに分けて構成されてもよい。(D)は、例えば仮想物体V1に関する選択前(非選択)、仮選択、および選択確定に伴う表示状態の変化例を示す。例えば、仮選択の操作は、操作器2のビームやカーソルを対象仮想物体に当てるまたは重ねることである。HMD1は、操作器2のビームが当てられている仮想物体の表示状態を、仮選択を表す所定の表示状態(例えば特定の色、形状、サイズ等)になるように変える。本例では色を変えているが、仮選択の仮想物体を囲む枠等が表示されてもよい。選択確定の操作は、例えば、仮選択状態からビームを当てたまま一定時間以上維持することである。選択確定の他の操作例は、操作器2のボタンを押すこと、あるいは、所定の音声(例えば「このオブジェクト」「選択」等)の入力である。HMD1は、選択確定操作を受けた仮想物体の表示状態を、選択確定を表す所定の表示状態(例えば特定の色、形状、サイズ等)になるように変える。本例では色を変えているが、選択確定の仮想物体を囲む枠等が表示されてもよい。なお、仮選択状態を省略する方式も可能である。
仮想物体の配置または移動の指示(対応するコマンド)を設ける方式の場合、その操作は、対象仮想物体および点P1の指定後に、操作器2のボタンの押下、表示面5内の配置ボタン等の押下としてもよい。あるいは、その操作は、配置または移動を表すジェスチャ(例えば対象仮想物体を指ではじくジェスチャ)、配置または移動を表す音声(例えば「配置」「移動」等)の入力等としてもよい。
[表示制御例(1)]
図13は、表示制御例として、表示面5(図1)の画像131における格子K1の構成例や、仮想物体の移動の操作例を示す。本例の格子K1は、3行5列の場合で、3×5=15個の点P1を有し、点P1毎のIDマークM1のIDとして1~15を有する。本例では、最初、仮想物体V2が、ID=12の点P1の位置に配置されている。利用者は、例えば仮想物体V2をID=3の点P1の位置に移動させたいとする。その場合、利用者は、音声方式の場合では、例えば「Bのオブジェクトを3番に移動」または「12番のオブジェクトを3番に移動」等と入力する。仮想物体が点P1に配置されている場合、移動の際の対象仮想物体の指定は、対応する移動元の点P1の指定に代えることができる。利用者は、ジェスチャ方式やカーソル方式の場合では、移動元のID=12の点P1または仮想物体V2を指定し、次に移動先のID=3の点P1を指定する。これらの操作に従い、HMD1は、仮想物体V2をID=3の点P1の位置に移動する。上記のように、表示面5内の格子K1上で移動元と移動先の2つが指定された場合に、仮想物体の移動を実行する方式が可能である。
また、画像131の例では、仮想画像として移動ボタン132が表示されている。この移動ボタン132を、移動の指示(対応するコマンド)として用いてもよい。HMD1は、例えば、予め移動ボタン132を表示してもよいし、あるいは、対象仮想物体の指定後または点P1の指定後に移動ボタン132を表示してもよい。例えば、利用者は、対象仮想物体および移動先の点P1の指定後に移動ボタン132を押す(例えばカーソル等の選択操作)。HMD1は、この操作を移動の指示として、仮想物体を移動させる。上記のように、移動の指示を用いる方式としてもよい。
他の方式としては、利用者が最初に移動ボタン132を押し、次に移動元と移動先を指定する方式としてもよい。他の方式としては、利用者が配置先または移動先の点P1を指定し、次に対象仮想物体を指定する方式としてもよい。また、他の方式として、複数の仮想物体をまとめて移動させたい場合に、利用者が複数の対象仮想物体を指定し、次に1つの移動先の点P1を指定する方式等としてもよい。
また、配置先または移動先となる点P1の指定については、絶対的な位置の指定に限らず、他の点P1や仮想物体の位置に対する相対的な位置の指定としてもよい。例えば、画像131では、ID=2の点P1の位置に既に仮想物体V3が配置されているとする。利用者は、仮想物体V2をID=3の点P1の位置に移動させる場合に、仮想物体V3の位置に対する相対的な位置の指定を用いることができる。利用者は、音声方式の場合、例えば「BのオブジェクトをCのオブジェクトの右に移動」または「Bのオブジェクトを2番の右に移動」等と入力すればよい。
点P1のIDマークM1や仮想物体のIDマークN1については、数字や英字等の文字が適用できる他、色や形状の違い等を適用してもよい。IDマークM1とIDマークN1は、区別がしやすいように異なる体系の画像とする。表示面5での点P1のIDや仮想物体のIDの表示については、最初から全部を表示してもよいが、最初は表示しない、または一部しか表示しないようにしてもよい。例えば、利用者のカーソルが点P1や仮想物体に近付いた場合に、対応するIDを表示してもよい。また、その際に、例えばID=10のIDマークM1の例のように、カーソルの付近の点P1やIDのみを拡大表示する、色を変える等して、目立たせてもよい。
なお、従来例の方式では、表示面内で仮想物体を移動させる場合に、利用者が選択した対象仮想物体を移動先の位置までドラッグ等の操作によって移動させる必要があり、手間がかかる。実施の形態1の方式では、そのようなドラッグ等の操作は基本的に不要であり、効率的な操作が可能である。
[表示制御例(2)]
図14は、他の表示制御例を示す。表示面5の画像141には、図13と同様の格子K1が配置されている。本例は、利用者が、3個の仮想物体110として仮想物体V1,V2,V3を、同じID=6の位置の点P1に配置する場合を示す。例えば、利用者は、最初、ID=Cで仮想物体V3を指定し、ID=6の点P1を指定することで、仮想物体V3を移動させる。例えば、音声方式の場合、「Cのオブジェクトを6番に移動」等の入力である。次に、利用者は、ID=Bで仮想物体V2を指定し、ID=6の点P1を指定することで、仮想物体V2を移動させる。次に、利用者は、ID=Aで仮想物体V1を指定し、ID=6の点P1を指定することで、仮想物体V1を移動させる。これにより、同じID=6の点P1の位置には、3個の仮想物体が重なるように配置される。HMD1は、同じ点P1の位置に複数の仮想物体を配置する際には、配置の順序に応じて重ねて表示する。例えば、最後に配置された仮想物体V1が最も前面に見える。あるいは、HMD1は、同じ点P1の位置には、最後に配置された1個の仮想物体のみを表示してもよい。
また、HMD1は、同じ点P1の位置に複数の仮想物体が配置されている場合には、それらの複数の仮想物体の複数のIDが分かりやすいように、その点P1の近傍に、対応する複数のIDマークN1を表示してもよい。例えば、ID=6の点P1の近傍には、仮想物体V1,V2,V3に対応するIDマークN1(ID=A,B,C)が並列で表示されている。
他の操作例として、利用者が複数の仮想物体110(仮想物体V1,V2,V3)を順に指定し、次に移動先のID=6の点P1を指定することで、それらの複数の仮想物体をまとめて移動させることもできる。利用者は、音声方式の場合、例えば「A,B,Cのオブジェクトを6番に移動」等と入力すればよい。他の例として、ID=3の点P1の位置には、仮想物体V4,V5が重ねて配置されている。仮想物体V4,V5は、アプリアイコンであり、IDマークN1は、三角形の場合であり、ID=D,Eである。
利用者は、同じ点P1の位置に重ねて配置されている複数の仮想物体を、他の位置に移動させることもできる。例えば、利用者は、まず、ID=6の点P1の位置の仮想物体V1をIDマークN1によって指定し、移動先の他の点P1(例えばID=9)の位置を指定することで、1個の仮想物体V1を移動させることができる。ID=6の位置の3個の仮想物体をまとめて移動させたい場合、例えば、利用者は、ID=6の点P1を指定し、移動先の他の点P1の位置を指定する。操作に従い、HMD1は、ID=6の位置の3個の仮想物体をまとめて移動させる。利用者は、音声方式の場合、例えば「6番のオブジェクトを9番に移動」等と入力すればよい。
また、HMD1は、同じ点P1の位置に複数の仮想物体が配置されている場合には、その状態を表す所定の画像を表示してもよい。例えば、ID=10の点P1の位置には、枠線の画像142が表示されている。枠線の画像142は、その点P1の位置に複数の仮想物体が配置されている状態を表す。また、利用者が枠線の画像142を選択する操作に応じて、HMD1は、その点P1の位置に配置されている複数の仮想物体をまとめて選択状態にする。あるいは、HMD1は、枠線の画像142またはその内部領域の選択操作に応じて、複数の仮想物体を確認できるように、一時的に並列に表示してもよい。吹き出しの画像143は、その例を示し、各仮想物体(仮想物体V6,V7,V8)と各ID(F,G,H)とが並列表示されている。
[表示制御例(3)]
図15は、他の表示制御例を示す。この表示面5の画像151では、格子K1として、格子K11と格子K12の2つを有し、それぞれの領域に配置されている。本例では、表示面5内の上側寄りの領域には、2行5列の10個の点P11(ID=6~15)を持つ第1種類の格子K11が配置され、下側寄りの領域には、1行5列の5個の点P12(ID=1~5)を持つ第2種類の格子K12が配置されている。また、本例では、格子K11は世界座標系CS1に配置され、格子K12は慣性座標系CS3に配置されている。
2種類の格子K1は、配置座標系の違いが利用者に分かりやすいように、表示態様を異ならせてもよい。本例では、格子K11は、点P11のIDマークM11の形状が、世界座標系CS1を表す形状(例えば菱形)とされ、格子K12は、点P12のIDマークM12の形状が、慣性座標系CS3を表す形状(例えば円形)とされている。配置座標系の区別のための他の表示例としては、格子K1毎の領域を囲む枠線や境界線等を表示してもよいし、格子K1毎の領域に格子ID(または領域ID)を表す画像を表示してもよい。また、本例では、表示面5で、2つの格子K11,K12の全体で、同じID値が重複しないように、各IDマークM1のIDが付与されている。これに限らず、格子K1毎に同じID値が重複するようにしてもよい。ただし、その場合、ID値の指定のみでは位置を特定できないので、加えて格子ID等の指定が必要となる。
本例では、座標系間での仮想物体の配置や移動の例も示す。最初、仮想物体V1は、格子K12のID=3の点P12の位置に配置されているとする。利用者は、この仮想物体V1を、格子K11のID=7の点P11に移動させるとする。利用者は、音声方式の場合、例えば「Aのオブジェクトを7番に移動」等と入力する。HMD1は、操作に従い、慣性座標系CS3の格子K12のID=3の位置の仮想物体V1を、世界座標系CS1の格子K11のID=7の位置に移動する。これに伴い、仮想物体V1が属する座標系は、自動的に慣性座標系CS3から世界座標系CS1に変更される。他の例として、最初、仮想物体V2は、格子K11のID=14の点P11の位置に配置されている。利用者は、この仮想物体V2を、格子K12のID=5の点P11の位置に移動させる。利用者は、音声方式の場合、例えば「Bのオブジェクトを5番に移動」等と入力する。HMD1は、操作に従い、世界座標系CS1の格子K11のID=14の位置の仮想物体V2を、慣性座標系CS3の格子K12のID=5の点P12の位置に移動する。仮想物体V2が属する座標系は、自動的に世界座標系CS1から慣性座標系CS3に変更される。これに限らず、世界座標系CS1と局所座標系CS2との間、および局所座標系CS2と慣性座標系CS3との間で、同様の制御が可能である。
慣性座標系CS3は、後述の回転移動操作に基づいて、正面方向(方向DIR3)を変更でき、それに伴い、表示面5内に表示される格子K12の領域を変更できる。例えば、図示の格子K12の領域は、表示面5の外側の左右にも連続して存在していてもよい。これにより、利用者は、慣性座標系CS3の格子K12に配置されている他の仮想物体を表示面5内に表示させることや、表示面5内に表示されている仮想物体を表示面5外に配置させること等ができる。
HMD1には、予め、デフォルト設定やユーザ設定として、各座標系の複数の格子K1が設定されている。格子K1毎に、配置座標系、点P1の数、IDマークN1の表示態様、表示面5内での領域、等が設定できる。利用者は、複数の格子K1を使い分けて作業を行うことができる。
[表示制御例(4)]
図16は、他の表示制御例を示す。表示面5の画像161は、格子K1が配置されている。この格子K1は、概念として、複数の領域152で構成されている。領域152は、ブロックや基準領域や格子領域と言い換えることができる。各領域152は、領域152の図示しない中心点が、前述の点P1と対応する。領域152は、本例では、四角形の破線の枠(格子線に対応する)の仮想画像として表示される。各領域151内の例えば左上には、IDマークM1と対応するID153の画像が付与および表示されている。このような格子K1の構成でも、各領域152に対し同様に仮想物体が配置できる。本例では、ID=3,7,13,15の領域152に、仮想物体V1,V2,V4,V5が配置されている。仮想物体V4,V5は、アプリアイコンの例である。領域152内の例えば右下には仮想物体のIDマークN1が表示されている。
[表示制御例(5)]
図17は、他の表示制御例を示す。表示面5の画像171は、所定の領域、例えば下辺付近の領域が、ホーム領域H0として設定されている。ホーム領域H0は、利用者の作業のホームポジション、ワーク領域等として使用される。ホーム領域H0は、例えば破線の枠線の画像等で表示されてもよい。ホーム領域H0には、例えばID=0が付与および表示されている。利用者は、ホーム領域H0に、自由に仮想物体を配置できる。利用者は、設定または操作によって、表示面5内の所望の領域にホーム領域H0を設定できる。ホーム領域H0の設定操作は、例えばホーム領域H0の左上点と右下点を指定する操作でもよい。利用者は、ホーム領域H0の移動や拡大縮小等の操作もできる。他の形態では、ホーム領域H0内に格子K1を配置してもよい。
(A)の画像171は、ホーム領域H0内に何も配置されていない状態を示す。表示面5内の上側寄りの領域には、格子K1が配置されている。格子K1は例えば世界座標系CS1に配置されている。格子K1の例えばID=7,8,9の点P1の位置に仮想物体V1,V2,V3が配置されている。格子K1の例えばID=5の点P1の位置には仮想物体V6,V7,V8が重ねて配置されている。(B)の画像171bは、ホーム領域H0内に、仮想物体V1,V2,V3が配置されている状態を示す。例えば、(A)の状態で、利用者は、前述のメニュー欄等を用いて、所望の仮想物体を指定して読み出し、ホーム領域H0内に配置することができる。また、利用者は、格子K1上の仮想物体を指定し、ホーム領域H0内に移動させることができる。例えば、利用者は、音声方式の場合、「Aのオブジェクトをホーム(または0番)に移動」等と入力すればよい。HMD1は、操作に従い、ホーム領域H0内の中央位置に仮想物体V1を配置する。
HMD1は、ホーム領域H0内では、利用者が自由に指定した位置に仮想物体を配置してもよいし、自動的に決めた整列した位置に仮想物体を配置してもよい。例えば、ホーム領域H0内に仮想物体V1のみがある状態で、さらに、仮想物体V2,V3がホーム領域H0内に移動された場合、(B)の画像171bのホーム領域H0の状態になる。ホーム領域H0内には、3個の仮想物体V1,V2,V3が、各IDマークN1と共に、等間隔で整列した位置に配置されている。他の例としては、ホーム領域H0内で複数の仮想物体を重ねて配置することもできる。
また、利用者は、ホーム領域H0内の全仮想物体をまとめて格子K1上に移動させることができる。例えば、利用者は、仮想物体V1,V2,V3をまとめてID=1の位置に移動させたい場合、音声方式の場合では、「ホーム(または0番)のオブジェクトを1番に移動」等と入力する。また、利用者は、例えば格子K1上のID=5の位置の全仮想物体をまとめてホーム領域H0に移動させたい場合、例えば「5番のオブジェクトをホーム(または0番)に移動」等と入力する。また、利用者は、格子K1上の全仮想物体をまとめてホーム領域H0に移動させることもできる。例えば、利用者は、音声方式の場合、「全オブジェクトをホーム(または0番)に移動」等と入力すればよい。また、ホーム領域H0内で自由な位置に配置されている複数の仮想物体をまとめて格子K1上の整列した位置に移動させることもできる。この場合、格子K1の領域に設定されている格子ID(または領域ID)を用いる。例えば、格子ID=R1とする。例えば、利用者は、音声方式の場合、「ホーム(または0番)のオブジェクトをR1に配置」等と入力する。HMD1は、操作に従い、ホーム領域H0内の複数の仮想物体を格子K1の領域内の空いている複数の点P1の位置に整列して配置する。
[表示制御例(6)]
図18は、他の表示制御例を示す。本例は、座標系を変更する操作について示す。表示面5の画像181は、下側にはホーム領域H0が配置されており、上側には格子K11が配置されている。ホーム領域H0内には仮想物体V1が配置されている。格子K11は、世界座標系CS1に配置されている。格子K11上のID=3の点P1には仮想物体V2が配置されている。格子K11の領域には、配置座標系が世界座標系CS1であることを表す格子IDまたは領域IDの画像(本例では「CS1」)が表示されてもよい。また、表示面5内には、座標系を変更するためのボタン182が表示されている。このボタン182は、座標系設定指示として用いることができる。利用者は、ボタン182を用いて格子K11の配置座標系を変更できる。例えば、格子K11の配置座標系を局所座標系CS2に変更したい場合、利用者は、格子K11を指定し、局所座標系CS2を指定するボタン182を押す。格子K11の指定は、格子ID等の指定でもよいし、格子K11の格子線の選択操作でもよい。HMD1は、操作に従い、格子K11の配置座標系を、世界座標系CS1から局所座標系CS12に変更する。この変更に伴い、格子K11上に配置されている仮想物体V2は、局所座標系CS2に配置される状態に変更される。この例では、仮想物体V2は、表示面5内のID=3の位置に固定されるので、利用者が移動したり頭を動かしたりしても同じ位置に維持される。
同様に、HMD1は、慣性座標系CS3を指定するボタン182の押下を含む座標系設定指示に応じて、世界座標系CS1の格子K1を慣性座標系CS3の格子K1に変更することが容易にできる。(B)の画像181bは、(A)の世界座標系CS1の格子K11を慣性座標系CS3の格子K31に変更した場合の表示例を示す。HMD1は、変更に伴い、座標系情報31、格子データ33、および仮想画像データ32の内容を更新する。IDマークM1は、世界座標系CS1を表す菱形から慣性座標系CS3を表す円形に変更されている。変更後、点P1の数や位置やID値は維持されている。この場合、格子K31の領域は、後述の回転移動操作が可能となる。その操作に応じて、仮想物体V2は、表示面5外へ配置することが可能となる。
[表示制御例(7)]
図19は、他の表示制御例として、格子K1上の仮想物体の配置の位置や方向や表示サイズ等を利用者が調整できる機能について示す。前述のように、格子K1の点P1の位置に対し仮想物体を配置できるが、作業等に応じて、より細かく仮想物体の配置位置等を調整したい場合もある。その場合、利用者は、この機能を利用できる。(A)の画像191は、格子K1を有する。本例は、ID=0の点P1の位置に配置されている仮想物体V1を、格子K1のID=7の点P1の付近に移動する場合を示す。この移動の操作は前述と同様である。次に、利用者は、仮想物体V1の配置位置を調整する。利用者は、そのための所定の指示操作を行う。その指示操作は、例えば、音声方式での「調整」等の入力でもよいし、表示面5内に表示される調整ボタン195の押下でもよい。HMD1は、指示操作に応じて、調整モードに移行する。
(B)は、調整モードの表示例を示す。この画像191bは、配置調整用の領域193が表示されている。領域193は、領域192を拡大コピーしたものをベースとしている。領域192は、仮想物体V1が一旦配置されたID=7の点P1を中心とした所定の大きさの領域であり、本例では、ID=7の周囲にあるID=1,2,3,6,8,0を含む程度の領域である。領域193では、元の格子K1に関連付けられた調整用の格子K1bが表示されている。領域193の格子K1bは、元の格子K1よりも点P1の数を増大している。本例では、格子K1bは、元の格子K1の点P1間にもう1個の点P1bを追加して密度を2倍にしている。これに限らず、格子K1bは、多数の点P1を追加してもよい。また、本例では、追加された点P1bには、新たにIDマークM1b(例えば四角形で英小文字のIDを持つ)が付与および表示されている。これに限らず、格子K1bは、全体でIDの付け直しとしてもよい。
利用者は、領域193の格子K1bにおいて、仮想物体V1を所定の操作で移動させることで、配置位置の調整ができる。例えば、利用者は、音声方式の場合、「fの位置に移動」等と入力すればよい。これにより、HMD1は、ID=7の点P1の位置の仮想物体V1を、ID=fの点P1bの位置に移動する。また、利用者は、表示面5内に表示される上下左右の矢印で示す移動ボタン196を操作することで、対象仮想物体を上下左右に移動させることもできる。また、領域193では、格子K1bの表示に限らず、対象仮想物体に対する所定の操作に応じて、画素レベルでの位置調整を可能としてもよい。また、領域193では、所定の操作に応じて、対象仮想物体の表示サイズの変更(拡大/縮小等)や、対象仮想物体の方向(3次元空間内での回転状態)の変更が可能である。利用者は、所定の操作、例えば調整終了ボタン197の押下によって、調整モードを終了し、通常状態に戻ることができる。
対象仮想物体を点P1に移動した時の仮想物体の方向の制御に関しては、以下の方式が適用できる。1つの方式は、移動前後での仮想物体の方向を維持する方式である。他の方式は、移動前後で仮想物体の方向を自動的に変更する方式である。例えば、HMD1は、移動先の格子K1の座標系に合わせて、仮想物体の配置方向を選択する。例えば、HMD1は、仮想物体の正面方向を、移動先の点P1が属する格子面における利用者(HMD1)に向かう側の垂直方向に合わせるように変更する。
[表示制御例(8)]
図20は、他の表示制御例として、空間内に複数の領域を設け、各領域の複数の仮想物体をグループとして扱い、グループ毎にまとめて操作を可能とする例を示す。図20の表示面5の画像201は、複数の領域が設定されている。本例では、表示面5内に、中央付近の領域R1、上辺付近の領域R2、下辺付近の領域R3、左辺付近の領域R4、右辺付近の領域R5を有する。中央付近の領域R1は、世界座標系CS1が設定されている。領域R1には、実物403や、仮想物体V11等が配置されている。領域R1が慣性座標系CS3として設定されてもよい。上辺付近の領域R2は、メニュー欄が局所座標系CS2で設定されている。領域R2には、仮想物体V21(例えばアプリアイコン)等が配置されている。下辺付近の領域R3は、ホーム領域が慣性座標系CS3で設定されている。領域R3には、仮想物体V31等が配置されている。左辺付近の領域R4および右辺付近の領域R5は、慣性座標系CS3として設定されている。領域R4には、仮想物体V32等が配置されている。領域R5には、仮想物体V33等が配置されている。各領域には、図示を省略するが、それぞれ対応する座標系の格子が配置されている。各領域は、区別のために、枠線や境界線の画像が表示されてもよいし、領域ID等が表示されてもよい。
利用者は、領域内の複数の仮想物体をグループとして操作が可能である。これにより、利用者は、複数の領域を使い分けながら効率的に作業ができる。例えば、領域R1内の複数の仮想物体を第1グループとし、領域R4内の複数の仮想物体を第2グループとし、領域R5内の複数の仮想物体を第3グループとする。利用者は、領域R1内の第1グループの複数の仮想物体を、他の領域、例えば領域R4内へまとめて移動させることができる。その際、利用者は、例えば、音声方式の場合では、「中央(または第1グループ、R1等)のオブジェクトを左(または第2グループ、R4等)へ移動」等と入力する。また、例えば、利用者は、領域R5内の第3グループの複数の仮想物体を、他の領域、例えば領域R1内へまとめて移動させることができる。その際、利用者は、例えば、音声方式の場合では、「右(または第3グループ、R5等)のオブジェクトを中央(または第1グループ、R1等)へ移動」等と入力する。グループ単位での移動の際、前述と同様に、各仮想物体は、配置座標系等が自動的に変更される。
また、領域毎に、配置仮想物体の表示サイズを異ならせてもよい。例えば、中央の領域R1では、配置仮想物体の表示サイズを大きくして目立たせてもよい。同じ仮想物体でも、配置領域に応じて表示サイズが自動的に変更される。
領域R3,R4,R5は、慣性座標系CS3として設定されているので、後述の回転移動操作によって表示内容の切り替えが可能である。また、HMD1は、世界座標系CS1に対し、複数の慣性座標系CS3を設定してもよい。例えば、3つの領域R3,R4,R5は、それぞれ独立した慣性座標系CS3の格子の領域として設定されてもよい。HMD1は、各慣性座標系CS3の格子の領域を、グループやページ等の単位として管理する。利用者は、各慣性座標系CS3のグループやページを、作業等に応じて使い分けて、仮想物体の配置ができ、これにより効率的な作業ができる。例えば、利用者は、領域R4を左手で操作し、領域R5を右手で操作してもよい。利用者は、各慣性座標系CS3の領域の表示のオン/オフ等も切り替えできる。上記のように、各種の座標系の組合せの方式が可能であり、1種類の座標系のみを用いる方式も可能である。
[配置制御例]
図21は、他の表示制御例として、表示面5内で、表示されていない仮想物体を、新たに格子K1上の所望の位置に配置および表示する制御を行う場合を示す。この配置制御例として、アプリアイコン等の仮想画像を配置する場合を説明する。(A)の表示面5の画像211は、格子K2が配置されている。格子K2は、例えば4行6列の24個の点P2を持つ。格子K2は、例えば局所座標系CS2に配置されている。格子K2の点P2にはIDマークM2が表示されている。IDマークM2は、例えば三角形であり、IDの数字(1~24)が表示されている。また、表示面5内で、上辺付近の領域212、下辺付近の領域213、左辺付近の領域214、または右辺付近の領域215のうち、少なくとも1つの領域は、局所座標系CS2を用いた所定の領域として確保される。この所定の領域には、例えば前述のメニュー欄やシステム情報等が配置される。
利用者は、所定の操作として、対象仮想物体の指定と、配置先の点P2の指定とを含む操作を行う。HMD1は、その操作に応じて、対象仮想物体を、格子K2の指定の点P2の位置に配置および表示する。例えば、利用者は、ID=2の点P2の位置に、対象仮想物体としてアプリXのアプリアイコンに対応する仮想物体V4を配置したいとする。利用者は、例えば、音声方式では、「2番にX(またはアプリX)のオブジェクト(またはアイコン)を配置」等と入力する。利用者は、ジェスチャ方式やカーソル方式の場合では、例えば図示しないメニュー欄やポップアップ欄等で対象アプリアイコンを指定してから、配置先の点P2を指定する。あるいは、他の操作例としては、配置先の点P2を指定した後、対象仮想物体を指定する操作としてもよい。
HMD1は、このような操作に従い、(B)の画像211bのように、指定されたID=2の点P1の位置に、指定されたアプリXのアイコンに対応する仮想物体V4を配置および表示する。さらに、HMD1は、アプリXのアイコンの配置と共に、バックグラウンドでアプリXの起動処理を進めてもよい。
他の例として、利用者は、所望の点P2の位置に、アプリウィンドウ413を起動および配置することができる。例えば、利用者は、(A)の状態から、ID=11の点P2の位置に、アプリYのアプリウィンドウ413を起動および配置したいとする。利用者は、例えば、音声方式では、「11番にY(またはアプリY)のウィンドウを配置(または起動)」等と入力する。利用者は、ジェスチャ方式やカーソル方式の場合では、例えば図示しないメニュー欄等で、対象アプリを指定してから、配置先の点P2を指定する。HMD1は、操作に従い、指定されたアプリYの起動処理を実行すると共に、指定されたID=11の点P2の位置に、指定されたアプリYのアプリウィンドウ413を配置および表示する。
利用者は、格子K1上に配置したアプリアイコンやアプリウィンドウについては、前述と同様の操作によって、格子K1上の別の位置に移動させることもできる。また、上記配置制御のための所定の操作は、さらに、配置または起動の指示(対応するコマンド)を含むものとしてもよい。その指示は、前述と同様に、表示面5内に表示されるボタン等で可能としてもよい。
また、例えば、HMD1は、利用者がHMD1を使用中に、外部からの通信等の契機によって、アプリケーション(アプリケーションプログラム22)を起動する場合がある。例えば、HMD1は、電話アプリを備える場合に、外部から電話の着信を受ける場合がある。その場合、HMD1は、対象仮想物体である電話アプリのアイコンまたはウィンドウに関する情報を、表示面5内に表示する。その際、HMD1は、例えば、対象仮想物体である電話アプリのアイコンまたはウィンドウの配置先を利用者に対し問い合わせるGUI画像(例えばポップアアップ欄)を表示面5に表示する。利用者は、その問い合わせに対し、配置先の所望の点P2を指定する操作を行う。HMD1は、その操作に応じて、電話アプリのアイコンまたはウィンドウを、指定の点P2の位置に配置する。
上記のような配置制御機能によれば、最初は表示されていなかったアイコン等の仮想物体を、利用者の所望の位置、例えば作業がしやすい好適な位置に容易に配置することができる。例えば、表示面5内の中央付近の領域には、作業用に実物や仮想物体が配置される。利用者は、中央付近の実物や仮想物体の視認を妨げないように、周辺の好適な位置にアプリアイコン等を配置することができ、作業をしやすくできる。また、利用者は、表示面5内に作業用に配置済みの仮想物体がある時、その仮想物体の近くで隣りの位置に、作業用の他の仮想物体を呼び出すようにして配置できる。例えば、利用者は、実物の何かの装置の操作中に、その装置の隣りの位置に、その装置の操作に関するマニュアル等の仮想物体を配置することができる。利用者は、装置の操作を妨げず、あまり離れておらず、空いている好適な位置を選択して仮想物体を配置できる。また、例えば、利用者は、作成中の3次元モデルの仮想物体に対し、近くの位置に、コマンドボタン等を配置し、作成作業を効率的に行うことができる。
上記配置制御例は、局所座標系CS2への配置の場合である。そのため、利用者が頭(対応するHMD1)を回転させても、表示面5内の同じ位置にアプリアイコン等が維持される。アプリアイコン等のGUIの画像に限らず、アプリケーション内の仮想物体についても、同様に所望の位置に配置できる。また、局所座標系CS2に限らず、世界座標系CS1や慣性座標系CS3に対しても、同様の制御を適用できる。また、上記アプリアイコン等の配置制御は、予めユーザ設定として行うこともできる。なお、上記例のように、アプリアイコン等がその画像や名称等によって識別できる場合には、IDマークN1(ラベル)の付与および表示は必須ではない。
[座標系]
次に、3種類の座標系について説明する。HMD1は、3次元空間に対する仮想物体の配置を管理するために、3種類の座標系として、世界座標系CS1、局所座標系CS2、および慣性座標系(Inertia coordinate system)CS3を用いる。HMD1の座標系計算部13(図6等)は、各座標系間の対応関係を適宜に設定および計算する。座標系計算部13は、カメラ6およびセンサ70を用いて、HMD1および利用者と仮想物体の配置用の座標系との相対関係を計算する。HMD1および利用者は、3種類の座標系のうち任意の選択した座標系に対し、格子K1および仮想物体を配置することができる。HMD1は、所定のルールで選択した座標系に対し、格子K1および仮想物体を配置する。HMD1は、例えば利用者が選択指定した座標系に対し、格子K1および仮想物体を配置する。
世界座標系CS1および局所座標系CS2は、公知技術による座標系である。世界座標系CS1は、現実空間に固定される第1座標系である。局所座標系CS2は、HMD1および利用者の視点から見て表示面5に固定される第2座標系である。慣性座標系CS3は、世界座標系CS1および局所座標系CS2では不足する部分を補うための第3座標系である。世界座標系CS1の座標原点を原点G1とし、方向を方向DIR1とする。局所座標系CSの座標原点を原点G2とし、方向を方向DIR2とする。慣性座標系CS3の座標原点を原点G3とし、方向を方向DIR3とする。
慣性座標系CS3の原点G3については、例えば局所座標系SC2の原点G2と同じに設定され、HMD1および利用者の頭および視点の位置に追随する。慣性座標系CS3の方向DIR3については、世界座標系CS1の方向DIR1に対し固定するように設定される。慣性座標系CS3の正面方向(方向DIR1)は、慣性座標系CS1の基準方向を意味する。この方向DIR1は、利用者が一時的に頭の向きを変えた場合、言い換えるとHMD1の方向(対応する回転状態)が変化した場合でも、利用者の基準方向に留まる。利用者の基準方向は、例えば体幹方向であり、胴体等が向いている平均的な方向である。方向DIR3は、利用者の所定の操作(後述の回転移動操作)やHMD1の所定の制御に応じて適宜に変更可能である。慣性座標系CS3の特徴は、利用者およびHMD1の移動に応じて原点G3が移動し、かつ、利用者の頭およびHMD1の回転に対しては方向DIR3が固定されることである。また、慣性座標系CS3の特徴は、局所座標系CS2の表示面5の範囲よりも広い空間に仮想物体を配置できることである。また、慣性座標系CS3の特徴は、利用者が、頭の方向の変更や、方向DIR3の変更によって、適宜に所望の一部の領域の仮想物体を参照できることである。
HMD1は、局所座標系CS2の方向DIR2や慣性座標系CS3の方向DIR3については、世界座標系CS1の方向DIR1を基準とした世界座標系CS1に対する方向として計算および設定する。HMD1は、その方向DIR2や方向DIR3を、世界座標系CS1を回転させた場合の回転操作によって表す。このような3次元空間のベクトルの回転操作の計算は、前述のオイラー角あるいは正規化四元数を用いて実現できる。
[世界座標系]
図22は、世界座標系CS1についての説明図を示す。世界座標系CS1は、現実空間に固定された1点を原点G1とし、現実空間に固定された3軸直交座標系を構成する3つの座標軸方向を有する座標系である。世界座標系CS1の3つの座標軸方向を(X,Y,Z)で表す。世界座標系CS1の位置は、原点G1の位置座標(xW0,yW0,zW0)で表される。世界座標系CS1の方向DIR1は、1つの座標軸方向、例えば軸Xで表される。世界座標系CS1内に配置される仮想物体の位置は座標(x,y,z)で表される。軸Zは鉛直方向に合わせられる。軸X,Yは、水平面を構成する2つの直交する方向に合わせられる。
図22の下側には、世界座標系CS1内における仮想物体の配置例と、利用者およびHMD1の移動例とを示す。例えば、点Pw1の位置(xW1,yW1,zW1)に、仮想物体V1が配置されるとする。仮想面221は、点Pw1が配置されている仮想的な平面(視野範囲に対応する)を示す。方向222は、仮想物体V1の配置方向を示す。最初、利用者およびHMD1は、点Pw2の位置(xW2,yW2,zW2)にいるとする。点Pw2は、HMD1および頭の中心とし、視点にも対応するものとする。方向223は、HMD1の正面方向、および利用者の頭の方向を示す。この方向とは別に、利用者の視線方向も存在する。利用者およびHMD1は、例えば、点Pw2から点Pw3の位置に移動したとする。この移動に伴い、HMD1および頭の方向が方向224に変化したとする。この移動および回転(対応する位置変化および方向変化)に対し、世界座標系CS1に配置されている仮想物体V1の位置(点Pw1)および方向222は変化しない。利用者から見ると、仮想物体V1の見え方が変わる。利用者は、移動後の状態によっては、仮想物体V1がよく見えない。
[局所座標系]
図23は、局所座標系CS2についての説明図を示す。局所座標系CS2は、3軸直交座標系である。局所座標系CS2の3つの座標軸方向を(X,Y,Z)で示す。HMD1は、初期化時に設定した世界座標系CS1に対する局所座標系CS2の原点G2の位置および方向DIR2を計算する。局所座標系CS2の位置は、原点G2の位置(xL0,yL0,zL0)で表される。局所座標系CS2の方向DIR2は、1つの軸方向、例えば軸Xで表される。局所座標系CS2内に配置される仮想物体の位置は、座標(x,y,z)で表される。局所座標系CS2の原点G2は、HMD1の位置、頭の位置、および視点の位置に対し設定される。
図23の下側には、世界座標系CS1内での利用者およびHMD1の移動例と、局所座標系CS2での仮想物体の配置例とを示す。例えば、最初、利用者およびHMD1は、点Pw4の位置(xW4,yW4,zW4)にいる。局所座標系CS2の軸Xは、HMD1の正面方向および頭の方向に合わせて設定される。頭の左右方向が軸Yとなり、鉛直方句が軸Zとなる。この時、表示面5で、局所座標系CS2に対応する仮想面231(視野範囲に対応する)において、例えば点PL1の位置(xL1,yL1,zL1)に、仮想物体V1が配置されているとする。利用者およびHMD1は、例えば、点Pw4から点Pw5の位置に移動したとする。また、この移動に伴い、HMD1および頭の方向が方向233から方向234に変化したとする。例えば、頭の方向が右側に回転している。この移動および回転に対し、局所座標系CS2の状態は維持され、利用者から見た仮想面231での仮想物体V1の見え方は維持される。
[慣性座標系(1)]
図24は、慣性座標系CS3についての説明図を示す。慣性座標系CS3は、3つの座標軸方向を(X,Y,Z)で示す。慣性座標系CS3の位置は、原点G3の位置(xI0,yI0,zI0)で表される。慣性座標系CS3の方向DIR3は、1つの軸方向、例えば軸Xで表される。慣性座標系CS3内に配置される仮想物体の位置は、座標(x,y,z)で表される。
図24の下側には、世界座標系CS1内での利用者およびHMD1の移動例と、慣性座標系CS3での仮想物体の配置例とを示す。例えば、最初、利用者およびHMD1は、点Pw6の位置(xW6,yW6,zW6)にいる。この位置に、局所座標系CS2の原点G2および慣性座標系CS3の原点G3が設定される。慣性座標系CS3の正面方向(軸X)は、世界座標系CS1の方向DIR1(軸X)に一致させて設定される。慣性座標系CS3の3軸は局所座標系CS2の3軸と重なっている。この時、表示面5で、慣性座標系CS3に対応する仮想面241(視野範囲FOV1に対応する)において、例えば点PI1の位置(xI1,yI1,zI1)に、仮想物体V1が配置されているとする。また、仮想面241で、左側の位置には、他の仮想物体V1bが配置されている。また、仮想面241の延長上で視野範囲FOV1外の位置には、他の仮想物体V1cが配置されている。
利用者およびHMD1は、例えば、点Pw6から点Pw7の位置に移動したとする。また、この移動に伴い、HMD1および頭の方向が方向243から方向244に変化したとする。例えば、頭の方向が左側に45度程度回転している。この移動および回転に対し、慣性座標系CS3の原点G3は原点G2に追随して移動している。一方、慣性座標系CS3の方向DIR3(軸X)は、移動前と同じく、世界座標系CS1の方向DIR1に対し固定されている。頭の回転に応じて、利用者の視点から見た視野範囲は、視野範囲FOV2に変わっている。表示面5で、その視野範囲FOV2に対応する仮想面242では、見える仮想物体が変化している。仮想面242では、仮想物体V1b,V1cが表示されており、仮想物体V1は見えなくなっている。このように、HMD1および利用者の頭の方向に応じて、慣性座標系CS3上の仮想物体の表示領域を変更することができる。
図24の仮想面241,242は、曲面とする場合を示した。慣性座標系CS3に配置する格子K1は、平面の構成としてもよいし、曲面の構成としてもよい。HMD1は、慣性座標系CS3に仮想物体を配置する場合、慣性座標系CS3の格子K1における仮想物体の配置位置等を計算する。HMD1は、表示面5の範囲内に、慣性座標系CS3の格子K1上に配置されている仮想物体が含まれる場合、その仮想物体を表示する。
[慣性座標系(2)]
図25は、慣性座標系CS3に格子K1を配置する場合の構成例等を示す。図25の例では、利用者およびHMD1の位置を慣性座標系CS3の原点G3として、その周囲に、概略円柱面に沿って、複数の仮想面(仮想面VS1,VS2,VS3等)が配置されている。複数の仮想面は、全体で1つの概略円柱面の領域を構成している。本例では、各仮想面は2次元平面である。慣性座標系CS3の正面の方向DIR1(軸X)に対し、表示面5の画像251がある。画像251の中に仮想面VS1がある。仮想面VS1には、格子K31が配置されている。仮想面VS1に対し、左手側の隣りには、仮想面VS2があり、右手側の隣りには、仮想面VS3がある。仮想面VS2には格子K32が配置されており、仮想面VS3には格子K33が配置されている。格子K31,K32,K33等は、慣性座標系CS3の1つの格子K3を構成し、その格子K3は、概略円柱面の領域に配置されている。各仮想面の格子には、仮想物体が配置できる。例えば、仮想面VS1の格子K31には、仮想物体v1,v2,v3が配置されている。仮想面VS2の格子K32には、仮想物体v4が配置されている。仮想面VS3の格子K33には、仮想物体v5が配置されている。利用者は、図24と同様に、頭の方向を変えることで、表示面5内に、仮想面VS2上の仮想物体v4や仮想面VS3上の仮想物体v5を表示させることができる。
また、他の操作として、利用者は、慣性座標系CS3の回転移動操作を行うこともできる。この操作は、前述の図10のステップS10の座標系設定指示のうちの1つである。利用者は、例えば、左回転操作252や右回転操作253を行うことができる。この操作は、音声方式やジェスチャ方式等を用いて、所定の操作として規定できる。一例としては、手を左または右にスワイプ操作のように移動させるジェスチャでもよい。音声方式の場合、例えば「左回転」等の入力としてもよい。HMD1は、この回転移動操作を認識した場合、慣性座標系CS3の方向DIR3(軸X)を回転させる。(A)の状態から、例えば左回転操作252を行うとする。(B)は、回転後の状態を示す。軸Xおよび軸Yは、軸Z(鉛直方向)の周りに例えば45度程度回転している。表示面5の画像251bでは、仮想面VS1が左側へ移動しており、右側にあった仮想面VS3が中央付近に表示されている。これにより、表示面5内には仮想物体v5が見えている。
この回転移動操作を用いる場合、利用者は、頭を回転させる必要無く、慣性座標系CS3の格子K3上の仮想物体の見え方を変更することができる。また、表示面5には、実物や、世界座標系CS1上の仮想物体や、局所座標系CS2上の仮想物体も併せて表示される。よって、利用者は、表示面5で、例えば、実物、世界座標系CS1上の仮想物体、および局所座標系CS2上の仮想物体については同じ位置に視認しながら、慣性座標系CS3上で表示する仮想物体を切り替えることができる。利用者は、表示面5の拡張領域として慣性座標系CS3の広い空間を利用して、多数の仮想物体を扱うことができ、効率的な作業が可能である。利用者は、慣性座標系CS3の利用のオン/オフ等の設定や指示も可能である。
また、利用者は、慣性座標系CS3の利用例として、各仮想面をグループとして扱うこともできる。例えば、利用者は、仮想面VS1に配置される複数の仮想物体を第1グループ、仮想面VS2に配置される複数の仮想物体を第2グループ等として、使い分けて作業ができる。利用者は、仮想面またはグループを指定する操作によって、指定の仮想面またはグループを表示面5の中央に移動させることもできる。仮想面またはグループを指定する操作は、例えば領域の枠線の操作でもよいし、グループID等の指定でもよい。また、HMD1は、仮想面のグループ間で、複数の仮想物体をまとめて移動させることができる。利用者は、所定の操作として、移動元のグループと移動先のグループとを指定する。利用者は、例えば、音声方式の場合、「第1グループを第2グループに移動」等と入力する。HMD1は、操作に従い、仮想面VS1内の全仮想物体を、仮想面VS2内にまとめて移動する。また、この際、HMD1は、移動元の仮想面VS1の格子K31上の複数の仮想物体の配置位置関係をなるべく維持したまま、移動先の仮想面VS2の格子K32上に自動的に配置する。あるいは、HMD1は、移動先の格子K32から空いている複数の点を選んで、移動元の複数の仮想物体を自動的に整列した状態で配置してもよい。このようなグループの移動は、異なる座標系間でも同様に可能である。グループ単位の移動によって、複数の仮想物体の移動に関わる手間が大幅に低減できる。
また、変形例として、仮想面またはグループの単位で交換操作を可能としてもよい。利用者は、交換したい2つの仮想面またはグループを指定する。例えば、利用者は、仮想面VS1と仮想面VS2とを指定する。HMD1は、操作に従い、仮想面VS1の全仮想物体のグループと仮想面VS2の全仮想物体のグループとを交換するように移動させ、設定情報を更新する。
[慣性座標系(3)]
図26は、慣性座標系CS3における格子K3の他の構成例を示す。この格子K3は、円柱面に構成されている。利用者の視点位置に対応する慣性座標系CS3の原点G3から、軸Xおよび軸Yの方向に、放射状に伸びるように、格子線が設定されている。軸Xおよび軸Yの方向(円柱の径方向)で、所定の距離の位置(例えば4つの位置)に円柱面を有する。円柱面の円周方向にも格子線を有する。各円柱面に格子点である点P3が設けられている。原点G3から全方向に点P3を有する。HMD1は、格子K3のうち、利用者およびHMD1の正面方向の視野範囲FOV1に対応する領域の部分を、表示面5内に表示する。例えば、HMD1の方向が軸Xと一致する場合の視野範囲FOV1では、仮想物体v1が表示される。
図27は、慣性座標系CS3における格子K3の他の構成例を示す。この格子K3は、半天球面に構成されている。利用者の視点位置に対応する慣性座標系CS3の原点G3から、軸Xおよび軸Yの方向(径方向)の所定の距離の位置の半球面に格子線が設けられている。1つの半球面を示すが、同様に、径方向で複数の位置の半球面に格子線を設けてもよい。各半球面に点P3が設けられる。HMD1は、格子K3のうち、利用者およびHMD1の正面方向の視野範囲FOV1に対応する領域の部分を、表示面5内に表示する。この構成の場合、例えば、利用者が頭の方向を上下に回転させる場合でも、その方向に応じた慣性座標系CS3の領域を利用できる。上記例では、世界座標系CS1および局所座標系CS2では直交形状の格子を適用し、慣性座標系CS3に曲面形状の格子を適用したが、これに限らず、任意の形状の格子を任意の座標系で適用できる。
[慣性座標系(4)]
図28は、慣性座標系CS3の格子を用いて複数の仮想物体を扱う例を示す。図28を用いて、慣性座標系CS3の格子を利用することで多数の仮想物体を配置できることについて説明する。最初、(A)の第1状態で、利用者およびHMD1は、位置L1にいるとする。位置L1には原点G1,G2,G3が対応する。仮想面281は、1つの円柱面上の格子に対応する。仮想面281には、円周方向の各位置で、複数の仮想物体、例えば仮想物体v1,v2,v3,v4,v5,v6,v7,v8,v9,v10が配置されている。利用者の頭および視線の方向は、軸Xと同じである。この時、表示面5で、視野範囲FOV1には、仮想物体v1,v2,v3が表示される。次に、(B)の第2状態で、利用者は、同じ位置L1で、頭の方向を左側に45度程度回転している。この時、表示面5で、視野範囲FOV2には、仮想物体v2,v4が表示される。このように、利用者は、視野範囲FOV1外にある仮想物体v4等を参照できる。
次に、(C)の第3状態で、利用者およびHMD1は、位置L1から位置L2に移動している。位置L2には原点G2,G3が対応付けられる。この移動に伴い、原点G3は平行移動し、(A)の複数の仮想物体(仮想物体v1~v10)は、位置関係を維持したまま追随して移動している。この時、表示面5で、視野範囲FOV1には、同じく仮想物体v1,v2,v3が表示される。このように、利用者は、多数の仮想物体を容易に移動できる。
次に、(D)の第4状態で、利用者は、位置L2で、慣性座標系CS3の回転移動操作、例えば左回転を回転角度90度で行っている。これにより、慣性座標系CS3の方向DIR3(軸X)は、左手の方向(局所座標系CS2の軸Y)に変化している。その回転移動に伴い、仮想面281上の複数の仮想物体は、それぞれ回転角度90度で回転している。この時、表示面5で、視野範囲FOV1には、仮想物体v7が表示される。このように、利用者は、慣性座標系CS3上の所望の領域の仮想物体を正面に配置し参照できる。
上記のように、利用者は、慣性座標系CS3の格子を用いることで、多数の仮想物体を少ない手間で扱うことができる。慣性座標系CS3の方向DIR3は、利用者の基準方向(例えば体幹方向)に合わせて維持することができる。利用者は、例えば、頻繁に確認や操作をしたい仮想物体を、慣性座標系CS3の領域に配置しておく。利用者は、通常時、表示面5の例えば中央付近の領域で主な作業を行い、必要に応じて、頭の方向の回転または回転移動操作によって、慣性座標系CS3上の他の仮想物体を参照できる。
また、応用として、HMD1は、慣性座標系CS3の領域において、複数の方向を設定してもよい。例えば図26のような円柱面に配置された格子において、複数の方向、言い換えると円柱面の領域上の複数の位置(例えば位置a1,a2,a3,a4)を設定してもよい。HMD1は、利用者の操作に応じて、その方向(対応する位置)を選択し、選択した方向の領域を表示面5内の中央に表示させる。例えば、利用者は、作業の目的等に応じて、複数の仮想物体を、複数のグループに分けて、各グループに対し、上記方向を設定してもよい。例えば、図26で、正面方向(軸Xの正方向)の位置a1には第1グループの仮想物体が配置される。同様に、左手方向(軸Yの正方向)の位置a2には第2グループが配置され、右手方向(軸Yの負方向)の位置a4には第3グループが配置され、背面方向(軸Xの負方向)の位置a4には第4グループが配置される。利用者は、作業に応じて選択した方向のグループを表示面5内に表示できる。
図28の(D)のような慣性座標系CS3の方向DIR3の回転、言い換えると慣性座標系CS3の表示領域の変更は、一時的なものとしてもよい。すなわち、HMD1は、利用者の回転移動操作を受けた時から所定の時間、例えば(D)の第4状態を維持し、その時間の経過後、自動的に元の(C)の第3状態に戻してもよい。あるいは、HMD1は、利用者が所定のジェスチャをしている間、その第4状態を維持してもよい。また、HMD1は、慣性座標系CS3の方向DIR3を変化させるように表示状態を変える際に、慣性(対応する速度変化)を持たせてもよい。
回転移動操作の他の例として、利用者は、所定の操作で慣性座標系CS3上の対象仮想物体を指定し、HMD1は、その対象仮想物体が表示面5の中心位置に表示されるように、慣性座標系CS3の方向DIR3を変更してもよい。回転移動操作の他の例として、利用者が頭を例えば左右に回転させる動作を用いてもよい。例えば、(A)から(B)への変化のように利用者が頭を左側に回転させる動作に応じて、HMD1は、(D)の例のように慣性座標系CS3の方向DIR3を変更する。
他の例として、HMD1は、利用者の基準方向に合わせて、自動的に慣性座標系CS3の方向DIR3を変更してもよい。HMD1は、カメラ6やセンサ70を用いて利用者の基準方向(例えば体幹方向)を検出する。この場合、利用者が例えば胴体の方向を変えると、それに追随するように方向DIR3が変更される。利用者の基準方向を水平方向に限定してもよい。利用者が移動中の場合には移動方向を基準方向としてもよい。HMD1は、初期化処理時、利用者の基準方向に合わせるように、慣性座標系CS3の方向DIR3を設定してもよい。また、利用者は、設定や指示に応じて、慣性座標系CS3の方向DIR3の変更が可能な状態(静止状態)と不可能な状態(固定状態)とを切り替えることができる。
[座標系の設定]
HMD1の起動時の初期化処理の際(前述の図2のステップS2)に3種類の座標系を再設定する場合の方式例は以下の通りである。HMD1は、初期化処理時に、その時のHMD1の位置および姿勢を基準として、世界座標系CS1(原点G1および方向DIR1)を設定する。座標系計算部13は、3軸の加速度センサに基づいて重力方向を検出し、この重力方向と局所座標系CS2の軸Xとから、世界座標系CS1を再設定する。HMD1は、初期化時には、世界座標系CS1の原点G1を、局所座標系CS2の原点G2に合わせる。また、HMD1は、初期化時には、慣性座標系CS3の原点G3を、局所座標系CS2の原点G2に合わせるように設定し、慣性座標系CS3の方向DIR3を、世界座標系CS1の方向DIR1に合わせるように設定する。座標系計算部13は、座標系情報31に、世界座標系CS1を基準とした局所座標系CS1および慣性座標系CS3の初期化時の位置(原点G2,G3)、方向(方向DIR2,DIR3)、および重力加速度ベクトルの情報を記憶する。
HMD1は、初期化後には、センサ70を用いてHMD1の位置および姿勢の変化を追跡し、その変化に応じて随時に各座標系の設定を更新する。HMD1は、加速度センサが検出する加速度ベクトル、ジャイロセンサが検出する角速度ベクトルを含む、各センサ70の測定値を更新する。座標系計算部13は、更新された加速度ベクトルおよび角速度ベクトルに基づいて、世界座標系CS1を基準とした局所座標系CS2の位置(原点G2)および方向DIR2を更新する。座標系計算部13は、座標系情報31に更新情報を記憶する。座標系計算部13は、更新した局所座標系CS2の位置(原点G2)および方向DIR2と、慣性座標系CS3の回転移動操作等とに基づいて、世界座標系CS1を基準とした慣性座標系CS3の位置(原点G3)および方向DIR3を更新する。座標系計算部13は、座標系情報31に更新情報を記憶する。HMD1は、GPS受信器による位置情報や地磁気センサによる方位情報を、各座標系の計算の補助として用いてもよい。
上記例では、慣性座標系CS3の原点G3を局所座標系CS2の原点G2と同じとしたが、これに限らず、原点G2から離れた位置に設定してもよい。また、上記例では、鉛直方向の軸(Z,Z,Z)の周りの回転の場合を説明したが、これに限らず、他の軸の場合でも同様に回転制御が可能である。慣性座標系CS3の軸Zの設定については、世界座標系CS1の軸Z、すなわち鉛直方向に合わせるように制限してもよい。
[3次元格子(1)]
上記格子K1は、図11のような例に限らず、多数の点P1を持ってもよい。また、格子K1は、2次元格子に限らず、3次元格子としてもよい。その場合、表示面5内で候補となる点P1の数が多くなるので、表示面5内で位置をより細かく指定できる。ただし、その場合、格子K1の全体で点P1のIDの数も多くなり、全IDを一意に識別できるためには、ID値の範囲が大きくなる。これに対する工夫について以下に示す。
図29は、格子K1として3次元格子の構成例を示す。(A)の格子K1は、3軸の各方向に点P1および格子線が並んでおり、3×3×3=27個の点P1を持つ場合を示す。X方向は例えば局所座標系CS2の軸Xと対応する奥行き方向である。格子K1の全体の全点P1にIDマークM1で一意のIDを付与および表示する場合、例えばID=1~27が必要となる。利用者は、このIDを指定することで、仮想物体の配置先の点P1を指定できる。(B)の画像291は、表示面5での(A)の格子K1の表示例を示す。本例では、格子K1が局所座標系CS2に配置されており、格子K1の前面の中央の点P1(ID=5)が、軸Xに沿って表示面5の中心位置に配置されている場合を示す。利用者は、例えば、対象の仮想物体V1を指定し、配置先の点P1をIDで指定することで、仮想物体V1を格子K1上の位置に配置できる。
図30は、同様の格子K1に対し、奥行き方向(軸X)で複数の点P1を用いて複数の仮想物体を配置する例を示す。格子K1のうち、例えばID=4,13,22の3個の点P1に対し、前から順に、仮想物体V1,V2,V3が配置されている。このように、利用者は、3次元格子を用いることで、複数の仮想物体を奥行き方向にも配置できる。利用者は、表示面5内の限られた領域に多くの仮想物体を配置できる。なお、3次元格子の点P1に対し、利用者の視点から見て奥行き方向に配置される仮想物体については、利用者からの仮想物体までの距離に応じて、表示サイズを異ならせてもよい。すなわち、距離が離れている仮想物体ほど、表示サイズを小さくしてもよい。このように、利用者の視点から見て奥行き方向に複数の点P1や複数の仮想物体が並ぶ場合がある。よって、利用者がこれらを見やすくなるように、後述する表示の工夫が有効である。
また、図30の例のように配置したい場合に、個別の仮想物体毎の配置の操作でも可能であるが、他の操作例として以下も可能である。操作例として、利用者は、まず、対象の仮想物体V1,V2,V3またはそれらのグループ等を指定する。次に、利用者は、格子K1の最も前面(例えばID=1~9を持つ格子面)のうち所望の位置の点P1(例えばID=4)を指定する。HMD1は、この操作に従い、指定のID=4の点P1から奥行き方向で、対象仮想物体の数に対応する3個の点P1(ID=4,13,22)を選択し、それらの点P1に対し一対一で対象の仮想物体V1,V2,V3を配置する。
点P1の数は、上記例に限らず、例えば8×8×8=512個等、各種の設定が利用できる。HMD1は、デフォルト設定として、各種の構成の格子K1(点P1の数や密度等を含む)が用意されており、ユーザ設定で格子K1の選択や調整ができる。
変形例としては、格子K1の各点P1に対し、IDマークM1によるIDを表示しない構成も可能である。この場合、表示面5には、格子K1の点P1を表す画像や格子線を表す画像が表示され、数字等のID画像は表示されない。利用者は、音声方式でIDを指定する操作はできないが、他の方式で点P1、格子線または格子領域を指定する操作(例えばタッチ等のジェスチャ、カーソルでの指し示し)によって、仮想物体の配置先の位置等を指定できる。また、上記仮想物体の配置の操作の際には、複数の操作手段を組み合わせて使用してもよい。例えば、利用者は、対象仮想物体を音声方式やジェスチャ方式等のいずれかの第1操作方式で指定する。次に、利用者は、配置先の点P1を、第1操作方式とは異なる他のいずれかの第2操作方式で指定する。
図31は、変形例における表示面5での格子K1等の表示例を示す。この変形例では、通常時、(A)の画像311のように、格子K1(例えば2次元格子)は、格子線で表示されており、点P1は、格子線の交差点である。この点P1には、前述の円形のIDマーク等は表示されていない。仮想物体にもIDマーク(ラベル)が表示されていない。利用者は、例えば仮想物体V1を格子K1上の点p1に移動したい場合、移動先の点p1を、IDを用いずに指定する。この操作は、前述のジェスチャ方式等を用いて可能である。(B)の画像311bは、利用者が手指または操作器2のカーソルで点p1を指定する場合を示す。HMD1は、カーソル等が格子K1の任意の点P1に対しある程度近付いた場合、その近付いた点P1の表示状態を変更する。本例では、カーソル312が点p1の付近に近付いた状態を示す。HMD1は、カーソル312に近い位置にある点p1とその周りの4個の点P1に、点P1を表す円形の画像313を表示する。また、HMD1は、カーソル312に一番近い1個の点p1については、目立つように、画像313の拡大や色変更等をしてもよい。HMD1は、カーソル312が重なる点p1については、仮選択状態または選択確定状態にして対応する表示状態にする。これにより、利用者は、格子K1にIDが表示されなくても、点P1を選択しやすい。
[3次元格子(2)]
前述の例では、格子K1の全点P1にIDマークM1によってIDを表示する場合を示したが、格子K1の一部の点P1のみにIDマークM1によってIDを表示してもよい。HMD1は、利用者の操作等に応じて、IDを表示する点P1および表示しない点P1を決める。HMD1は、IDを表示する一部の点P1に対し、ID値を付与および表示する。また、その際、HMD1は、ある点P1に対し、一貫性を持って同じID値を使用し続けてもよいし、適宜にID値を振り直してもよい。これにより、格子K1の全点P1にIDを表示する場合に比べ、表示面5内に表示されるID数を少なく、ID値の範囲を狭くできる。利用者にとっては、表示面5内の情報量が抑制されるので、IDを指定する操作等がしやすくなる。
[格子制御(1)]
格子K1の点P1のIDに関する表示制御例について以下に示す。図32は、3次元の格子K1の構成例において、一部の点P1、例えばある格子面の点P1のみに対し、IDマークM1によってIDを表示する例を示す。利用者は、その一部の点P1に対する選択操作等ができる。図32の格子K1は、説明上わかりやすいように、世界座標系CS1に配置されており、利用者の視点として斜め上から格子K1を見る場合を示す。このような格子K1が局所座標系CS2や慣性座標系CS3に配置されている場合でも、以下の制御は同様に適用できる。格子K1は、奥行き方向(軸X)で3つの格子面を有し、前側から、格子面SF1,SF2,SF3とする。HMD1は、表示面5に格子K1を表示する際、各格子面を表すIDマークQ1の画像を表示する。本例では、IDマークQ1として、格子面SF1にはID=1、格子面SF2にはID=2、格子面SF3にはID=3が付与されている。IDマークQ1は、他の種類のIDマークと区別できるように、例えば星形状を持つ。IDマークQ1は、例えば、対応する格子面のうちの1個の点P1から線でつなげた位置に表示されているが、これに限らず可能である。格子線とIDマークQ1とをつなげて表示してもよい。
最初、格子K1の点P1には、IDマークM1が表示されない。利用者は、例えば仮想物体V1を、格子K1の中央の点P1に配置させたいとする。利用者は、所定の操作として、対象仮想物体を指定後、配置先の点P1が含まれる格子面(例えば格子面SF2)を指定する。この操作は、例えば、音声方式では、「2番の面」等の入力であり、カーソル方式等の場合、ID=2のIDマークQ1を指し示す操作である。HMD1は、この操作に従い、指定された格子面SF2のみを仮選択状態にし、他の格子面を非選択状態にする。HMD1は、指定された格子面SF2に属する複数の点P1について、IDマークM1によるID(例えば1~9)を表示する。HMD1は、仮選択状態の格子面SF2については、点P1の指定の操作を受け付け、非選択状態の格子面SF1,SF3については、その操作を受け付けない。
次に、利用者は、仮選択状態の格子面SF2から、配置先の点P1、例えばID=5の点p1を指定する。例えば、利用者は、音声方式では、「5番」と入力し、カーソル方式等では、ID=5の点p1を指し示す。HMD1は、この操作に従い、指定されたID=5の点p1を選択確定状態にする。そして、HMD1は、そのID=5の点p1の位置に仮想物体V1を配置する。上記のように、3次元の格子K1で多数の点P1がある場合でも、利用者は、少ないID値の範囲から、1個の点p1を容易に指定できる。
また、利用者は、一旦ある格子面を仮選択した後、他の格子面を選択し直すことも容易にできる。例えば、利用者は、格子面SF2の仮選択状態から、格子面SF3を選択する場合、音声方式では、「3番の面」等と入力する。HMD1は、格子面SF3を仮選択状態にし、その面に属する複数の点P1についてIDマークM1を表示する。この際、HMD1は、格子面SF3の9個の点P1について、格子面SF2で使用したID(1~9)と同じIDを再使用して表示してもよいし、異なるID(例えば元々格子K1に一意に付与されていたID)を表示してもよい。各格子面で同じIDを使用する場合、表示面5に表示されるID値の範囲を例えば1~9のように限定できる。
他の制御例として、表示面5内に、格子面を指定するためのボタンを設けてもよく、そのボタンをIDマークQ1の代わりに使用してもよい。他の制御例として、HMD1は、表示面5内に、格子面を表すIDマークQ1等を表示しない。HMD1は、利用者がある点P1を仮選択または選択確定した場合、あるいはカーソル等を近付けた場合に、その点P1が属する奥行き方向での格子面を仮選択状態にし、IDマークM1を表示する。
図33は、3次元格子の他の表示例を示す。表示面5の画像331において、格子K1が表示されている。この格子K1は、最初、点P1には点画像やIDマークM1が表示されていない。利用者は、格子面、例えば格子面SF2を選択する。利用者は、格子面を指定するためのボタン332を用いて格子面を選択してもよい。HMD1は、操作に従い、指定の格子面SF2に属する点P1について、点画像(例えば黒丸)を表示する。点画像に加え、IDマークM1が表示されてもよい。
他の制御例として以下としてもよい。HMD1は、利用者の操作に基づいて、3次元の格子K1内で、仮想物体を移動させる。まず、対象仮想物体が配置されている移動元の点P1が属する格子面と、移動先の格子面とが同じである場合、HMD1は、それらの両方が属する格子面における各点P1のIDマークM1を表示し、操作を受け付ける。移動元の点P1が属する格子面と、移動先の格子面とが異なる場合、HMD1は、移動先の格子面における各点P1のIDマークM1を表示し、操作を受け付ける。
他の制御例として、格子K1の格子線を選択操作することで、対応する格子面を選択可能としてもよい。例えば、図33で、格子線333が選択操作された場合、その格子線333は、格子面SF2に属しているので、格子面SF2の選択として対応付けることができる。
[格子制御(2)]
図34は、3次元の格子K1の点P1のIDに関する他の表示制御例を示す。図34の3次元の格子K1は、図32と同様に、各格子面をIDマークQ1で指定できる構成を有する。この構成では、利用者は、格子面のIDマークQ1の操作によって、格子面間での仮想物体の移動または交換が可能であり、あるいは格子面自体の移動または交換が可能である。例えば、第1状態で、利用者の作業に基づいて、ID=1のIDマークQ1で表す前面の格子面SF1(例えば中央の行)において、複数の仮想物体341(例えば仮想物体V1,V2,V3)が配置されている。次に、利用者は、格子面SF1の複数の仮想物体341を、格子面SF2に移動させたいとする。この際、利用者は、例えば、音声方式では、「1番の面のオブジェクトを2番の面に移動」等と入力する。利用者は、カーソル方式等では、まず対象格子面としてID=1のIDマークQ1によって格子面SF1を指定し、次に、移動先の格子面としてID=2のIDマークQ1によって格子面SF2を指定する。
HMD1は、操作に従い、格子面SF1に配置されている複数の仮想物体341をまとめて格子面SF2に移動する。この際、HMD1は、移動前後の格子面間で、仮想物体341が配置される点P1の位置関係をなるべく維持する。例えば、格子面SF2の全点P1が空いている場合、格子面SF2の中央の行におけるID=4,5,6の点P1に対し、複数の仮想物体341が配置される。HMD1は、格子面SF2の対応する位置の点P1に仮想物体が配置済みである場合には、格子面SF2内の空いている他の点P1を選び、複数の仮想物体341を配置してもよい。HMD1は、格子面SF2に空いている点P1が不足し複数の仮想物体341を配置できない場合には、その旨を利用者に伝える。
なお、格子面間で1個の仮想物体を移動することも同様に可能である。例えば、格子面SF1の仮想物体V1のみを格子面SF2に移動したいとする。その場合、操作は、例えば、音声方式では、「Aのオブジェクトを2番の面に移動」または「Aのオブジェクトを背面(または奥)に移動」等の入力とすればよい。面のIDを指定しなくても、相対的な位置関係(例えば「背面」等)の指定があれば、移動が可能である。
他の制御例として、格子面間で配置仮想物体を交換してもよい。この交換は、格子面の移動や交換と捉えてもよい。例えば、格子面SF1上の仮想物体と、格子面SF2上の仮想物体とを交換する場合、以下のようになる。利用者は、IDマークQ1を用いて、移動元の格子面SF1のID=1、および移動先の格子面SF2のID=2を指定する。HMD1は、この操作に従い、格子面SF1を仮想物体V1,V2,V3と共に格子面SF2の位置に移動し、格子面SF2を格子面SF1の位置に移動する。また、格子面の移動は、格子K1全体での循環的な移動としてもよい。例えば、HMD1は、格子面SF1を格子面SF2の位置に移動させる場合、それに伴い、格子面SF2を格子面SF3の位置に移動させ、格子面SF3を格子面SF1の位置に移動させる。
上記制御例は、奥行き方向(軸X)での例を示したが、左右方向(軸Y)や上下方向(軸Z)でも同様の制御が可能である。上記制御例によれば、利用者の視点位置に対し奥行き方向に離れた位置に対しても、仮想物体の配置や移動がしやすい。また、奥行き方向で複数の仮想物体が配置されて重なって見える場合でも、上記操作によって、所望の仮想物体を前面に持ってきて見やすい状態にすることができる。
[格子制御(3)]
図35は、3次元格子に関する他の表示制御例を示す。(A)の画像351は、表示面5内に3次元の格子K1が表示されている。この格子K1は、同様に、奥行き方向で3つの格子面(格子面SF1,SF2,SF3)を有する。例えば、前側の格子面SF1と中間の格子面SF2にはそれぞれ仮想物体が配置されている。格子面SF1の中央行には仮想物体v11,v12,V13が配置されている。格子面SF2の中央行には仮想物体V1,V2,V3が配置されている。格子K1は、点P1のIDマークM1が表示されていない。本例では、利用者の視点から奥行き方向で前後に複数の仮想物体が重なっている。例えば、仮想物体v11と仮想物体V1とが重なっており、対応する位置の点P1が認識しにくい。この場合、その点P1の選択等がしにくい場合がある。そこで、HMD1は、利用者の所定の指示操作に応じて、格子K1に配置されている仮想物体の表示のオン/オフを切り替える。あるいは、HMD1は、所定の指示操作に応じて、格子K1上の仮想物体の表示を、透過状態に切り替える。
(A)の画像351の状態では、格子K1上の仮想物体が通常表示されている。利用者は、全点P1を認識しやすくしたい場合、指示操作として、例えば、音声方式では、「オブジェクト透過(またはオブジェクト表示オフ)」等と入力する。あるいは、表示面5内に表示されるオブジェクト透過ボタン352等を代わりに用いてもよい。HMD1は、操作に従い、(B)の画像351bの状態のように、格子K1に配置されている全仮想物体を透過状態(例えば輪郭線のみが破線で表示される状態)にする。これにより、利用者は、格子K1の各点P1を認識しやすくなり、移動先の点P1の指定等が容易になる。
他の制御例として、HMD1は、利用者がある格子面を選択操作した場合に、その格子面の仮想物体のみを通常状態で表示し、他の格子面の仮想物体を透過状態に表示してもよい。また、HMD1は、他の格子面の点P1や格子線等のすべてを非表示状態にしてもよい。あるいは、HMD1は、選択された格子面よりも前側にある全格子面の仮想物体を透過状態に表示してもよいし、点P1等のすべてを非表示状態にしてもよい。
[格子制御(4)]
図36は、3次元格子に関する他の表示制御例を示す。この制御例では、格子K1のうちの格子線を操作することで、点P1のグループの操作を可能とする。HMD1は、表示面5内に、格子K1の格子線(例えば実線の直線)を表示する。各点P1間に格子線がある。例えば、前側の格子面SF1において、格子線KL11,KL12等を有する。本例の格子K1は、最初、点P1のIDマークM1が表示されていない。利用者は、仮想物体の移動の際に、格子線を指定する所定の操作を行う。所定の操作は、例えば、操作器2のカーソルを用いる方式の場合、カーソルによって格子線を指し示す操作である。本例は、格子線KL11を指定する場合を示す。格子線KL11は、格子面SF1の一方端(点p1)から他方端(点p3)までの線とする。
HMD1は、例えば格子線KL11が指定された場合、その格子線KL11を強調表示(例えば太くする、色を変える等)する。HMD1は、その格子線KL11上に有する全点P1(例えば点p1,p2,p3)の表示状態を変更する。例えば、HMD1は、その格子線KL11上の全点P1について、円形のIDマークM1を表示する(例えばID=1,2,3)。HMD1は、それらの点P1(点p1,p2,p3)を仮選択状態にする。これにより、利用者は、まず、指定した格子線KL11に対応する1列の複数の点P1を仮選択できる。利用者は、さらに、その仮選択した格子線KL11上の点P1から、所望の1個の点P1を指定できる。例えば、利用者は、カーソルを点p2に合わせることで、その点p2を指定して選択確定状態にできる。この操作の際、格子K1の他の格子線上の点P1については指定ができない。他の制御例として、格子線毎に格子線識別情報を持つIDマークを表示して操作可能としてもよい。
[格子制御(5)]
図37は、3次元格子に関する他の表示制御例を示す。この制御例は、図36の制御例の変形例である。図37の格子K1は、最初、点P1にIDマークM1が表示されていない。利用者は、格子K1のうち、ある1個の点P1、例えば中央の点p1を、例えば操作器2によって指し示したとする。その場合に、HMD1は、その点p1を強調表示し、その点p1に対し、3つの方向(X,Y,Z)の格子線(例えば格子線KL31,KL32,KL33)を強調表示する。この格子線は、格子K1の一方端から他方端までの線としてもよいし、隣接する点P1間の部分の線としてもよい。また、HMD1は、それらの3本の格子線に属する全点P1、例えば点p1に対し隣接する点p2,p3,p4,p5,p6,p7を強調表示する。HMD1は、例えばそれらの合計7個の点p1~p7に、円形のIDマークM1を表示する。例えば、点p1~p7には、ID=1~7が表示されている。また、このIDは、数字に限らず、“左”,“右”,“上”,“下”,“前”,“後”のようにしてもよい。HMD1は、上記3本の格子線および7個の点P1を仮選択状態にする。利用者は、仮選択状態の部分から所望の1個の点P1を指定することができる。
[格子制御(6)]
図38は、3次元格子に関する他の構成例を示す。3次元の格子K1についても、前述の図16と同様に、ブロックの概念を適用できる。利用者は、ブロック毎の選択操作ができる。本例では、格子K1のうち、8個の頂点から成る立方体の部分が1個のブロックである。HMD1は、ブロック毎に、ブロックIDを表すIDマーク381を表示する。利用者は、所定の操作によって、対象仮想物体を指定し、配置先のブロックを指定し、そのブロックの領域内に対象仮想物体を配置することができる。本例では、あるブロックの付近にカーソルが近付いた場合に、そのブロック(対応する点P1および格子線)が強調表示され、そのブロックに対し線でつなげてIDマーク381(例えばID=B1)が表示されている。ブロックに配置される仮想物体には、方向382等も設定できる。
上記の各種の制御例において、対象仮想物体、または点P1、またはグループ等を指定した場合の選択状態は、利用者の所定の操作によって解除できる。この操作は、例えば、「解除」の音声入力や解除ボタン等の操作としてもよいし、格子K1の外側の空いている箇所を指し示す操作等としてもよい。
[格子制御(7)]
図39は、3次元格子に関する他の表示制御例を示す。奥行き方向に格子K1の複数の点P1または複数の仮想物体が重なっている場合、利用者からはそれらが見にくい、または操作しにくい場合がある。そこで、HMD1は、それらを見やすく、操作しやすくために以下のような制御を行う。図39の画像391の例では、格子K1の中央付近で、視線方向に対応する奥行き方向(軸X)に、3個の点P1(点p1,p2,p3とする)が並んでいる。表示面5内でそれら3個の点P1が密集しており、利用者から見にくい。そこで、HMD1は、例えば3個の点P1(p1,p2,p3)について、自動的に、またはカーソル等で指し示された場合に、見やすくなるように表示状態を変更する。
(B)の画像391bは、変更後の表示状態を示す。HMD1は、3個の点P1(点p1,p2,p3)について、(A)の軸Xの方向とは異なる方向で表示する。本例では、HMD1は、前側の格子面SF1の中央の点P1である点p1からつなげるように直線392(例えば点線)を表示し、その直線392上に、3個の点p1,p2,p3を並べ、対応するIDマークM1を表示する。直線392の方向は、軸Xの方向以外の方向とされ、格子K1の他の格子線や点P1がなるべく無い領域に配置される。特に、直線392の方向は、例えば利用者の手指の方向、操作器2のビームの方向、または視線方向等になるべく合わせる方向としてもよい。また、直線392上に並べる複数の点P1についてのIDマークM1は、遠近感に合わせて表示サイズを異ならせてもよい。
上記制御例は、仮想物体の重なりに関しても同様に適用できる。(A)の画像391で、点p1の右側の点P1(例えば点p4)の位置には、奥行き方向に、3個の仮想物体、例えば仮想物体V1,V2,V3が配置されて重なって見える。そこで、HMD1は、(B)の画像391bのように、点p4からつながる直線393上に、仮想物体V1,V2,V3および対応するラベルを並べて表示する。直線393の方向は、例えば操作器2のビームの方向に対し90度程度の方向とする場合を示す。直線392や直線393は、曲線等としてもよい。
[効果等]
上記のように、実施の形態1のHMD1によれば、現実空間に対し仮想物体を配置する際に、利用者の手間が少なく、使い勝手が良好で、好適に配置することができる。実施の形態1によれば、格子および座標系の制御を用いることで、少ない手間や短時間で、複数の仮想物体を好適に配置や移動することができる。利用者は、複数の仮想物体を用いて、効率的な作業が実現できる。実施の形態1によれば、様々なアプリケーションに関して、サポートを提供でき、アプリケーションの使い勝手を高めることができる。利用者は、格子を用いて、複数の仮想物体を整列して見やすく配置することができる。実施の形態1によれば、利用者の視点から見て奥行き方向に仮想物体を配置する場合でも、容易に位置決め等が可能であり、遠くに配置することも可能である。以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は前述の実施の形態に限定されず、要旨を逸脱しない範囲で種々変更可能である。本発明は、HMDに限らず他の表示装置にも適用可能である。
1…HMD、2…操作器、3…サーバ、4…PC、5…表示面、K1…格子、P1…基準点、M1…IDマーク、N1…IDマーク、111,111b…画像、110,V1,V2,V3…仮想物体、403…実物。

Claims (4)

  1. 利用者の操作に基づいて空間内に仮想物体を配置および表示するヘッドマウントディスプレイ装置であって、
    表示面に、前記仮想物体の操作をサポートするための複数の点を含む格子を表示し、
    対象仮想物体の指定と配置先の第1点の指定とを含む操作に応じて、前記対象仮想物体を前記第1点の位置に配置し表示し、
    前記格子の前記複数の点における点毎に、識別情報を持つ画像を表示し、
    前記仮想物体毎に、仮想物体識別情報を持つ画像を表示し、
    前記操作は、前記仮想物体識別情報の指定、または前記識別情報の指定を含み、
    前記表示面に表示されている移動元の前記対象仮想物体の指定、または前記対象仮想物体が配置されている第2点の指定と、前記第1点の指定とを含む前記操作に応じて、前記移動元の前記対象仮想物体を前記第1点の位置へ移動する、
    ヘッドマウントディスプレイ装置。
  2. 請求項1記載のヘッドマウントディスプレイ装置において、
    前記仮想物体は、アプリケーションプログラムによって作成された画像と、前記アプリケーションプログラムのアイコン、前記アプリケーションプログラムのウィンドウ、システム情報、およびコマンドボタンを含むグラフィカル・ユーザ・インタフェースの画像とを有する、
    ヘッドマウントディスプレイ装置。
  3. 利用者の操作に基づいて空間内に仮想物体を配置および表示するヘッドマウントディスプレイ装置であって、
    表示面に、前記仮想物体の操作をサポートするための複数の点を含む格子を表示し、
    対象仮想物体の指定と配置先の第1点の指定とを含む操作に応じて、前記対象仮想物体を前記第1点の位置に配置し表示し、
    前記格子の前記複数の点における点毎に、識別情報を持つ画像を表示し、
    前記仮想物体毎に、仮想物体識別情報を持つ画像を表示し、
    前記操作は、前記仮想物体識別情報の指定、または前記識別情報の指定を含み、
    前記表示面に表示されていない前記対象仮想物体の指定と、前記第1点の指定とを含む前記操作に応じて、前記対象仮想物体を前記第1点の位置へ配置する、
    ヘッドマウントディスプレイ装置。
  4. 請求項3記載のヘッドマウントディスプレイ装置において、
    前記仮想物体は、アプリケーションプログラムによって作成された画像と、前記アプリケーションプログラムのアイコン、前記アプリケーションプログラムのウィンドウ、システム情報、およびコマンドボタンを含むグラフィカル・ユーザ・インタフェースの画像とを有する、
    ヘッドマウントディスプレイ装置。
JP2023197777A 2019-04-23 2023-11-22 ヘッドマウントディスプレイ装置 Pending JP2024009171A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023197777A JP2024009171A (ja) 2019-04-23 2023-11-22 ヘッドマウントディスプレイ装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/JP2019/017311 WO2020217326A1 (ja) 2019-04-23 2019-04-23 ヘッドマウントディスプレイ装置
JP2021515362A JP7391950B2 (ja) 2019-04-23 2019-04-23 ヘッドマウントディスプレイ装置
JP2023197777A JP2024009171A (ja) 2019-04-23 2023-11-22 ヘッドマウントディスプレイ装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021515362A Division JP7391950B2 (ja) 2019-04-23 2019-04-23 ヘッドマウントディスプレイ装置

Publications (1)

Publication Number Publication Date
JP2024009171A true JP2024009171A (ja) 2024-01-19

Family

ID=72941093

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021515362A Active JP7391950B2 (ja) 2019-04-23 2019-04-23 ヘッドマウントディスプレイ装置
JP2023197777A Pending JP2024009171A (ja) 2019-04-23 2023-11-22 ヘッドマウントディスプレイ装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021515362A Active JP7391950B2 (ja) 2019-04-23 2019-04-23 ヘッドマウントディスプレイ装置

Country Status (4)

Country Link
US (2) US11893153B2 (ja)
JP (2) JP7391950B2 (ja)
CN (1) CN113728361A (ja)
WO (1) WO2020217326A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023032173A1 (ja) * 2021-09-03 2023-03-09 日本電気株式会社 仮想空間提供装置、仮想空間提供方法、及びコンピュータ読み取り可能な記憶媒体
US11847267B2 (en) * 2022-05-11 2023-12-19 Hewlett-Packard Development Company, L.P. Input device tracking systems
WO2024064925A1 (en) * 2022-09-23 2024-03-28 Apple Inc. Methods for displaying objects relative to virtual surfaces

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5925231A (ja) * 1983-07-11 1984-02-09 Hitachi Ltd シリコンウエ−ハ
US20080104074A1 (en) * 2006-11-01 2008-05-01 Lynch Thomas W Cascading sort interface
US20090327969A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Semantic zoom in a virtual three-dimensional graphical user interface
US9245387B2 (en) * 2013-04-12 2016-01-26 Microsoft Technology Licensing, Llc Holographic snap grid
US10019057B2 (en) * 2013-06-07 2018-07-10 Sony Interactive Entertainment Inc. Switching mode of operation in a head mounted display
US10416760B2 (en) * 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
US20180059788A1 (en) * 2016-08-23 2018-03-01 Colopl, Inc. Method for providing virtual reality, program for executing the method on computer, and information processing apparatus
JP6227732B1 (ja) * 2016-08-23 2017-11-08 株式会社コロプラ 仮想空間において入力を支援するための方法および装置、ならびに当該方法をコンピュータに実行させるプログラム
JP6734236B2 (ja) 2017-08-14 2020-08-05 株式会社 ディー・エヌ・エー ゲームを提供するためのプログラム、システム、及び方法
JP2018049629A (ja) 2017-10-10 2018-03-29 株式会社コロプラ 仮想空間において入力を支援するための方法および装置、ならびに当該方法をコンピュータに実行させるプログラム
US10650579B2 (en) * 2017-11-30 2020-05-12 Microsoft Technology Licensing, Llc Systems and methods of distance-based shaders for procedurally generated graphics
US10855979B2 (en) * 2018-10-23 2020-12-01 Microsoft Technology Licensing, Llc Interpreting eye gaze direction as user input to near-eye-display (NED) devices for enabling hands free positioning of virtual items
JP7451084B2 (ja) * 2019-02-07 2024-03-18 キヤノン株式会社 情報処理装置および情報処理方法

Also Published As

Publication number Publication date
WO2020217326A1 (ja) 2020-10-29
US11893153B2 (en) 2024-02-06
JP7391950B2 (ja) 2023-12-05
US20220137705A1 (en) 2022-05-05
CN113728361A (zh) 2021-11-30
US20240103621A1 (en) 2024-03-28
JPWO2020217326A1 (ja) 2020-10-29

Similar Documents

Publication Publication Date Title
US9721396B2 (en) Computer and computer system for controlling object manipulation in immersive virtual space
US10339723B2 (en) Generating virtual notation surfaces with gestures in an augmented and/or virtual reality environment
JP2024009171A (ja) ヘッドマウントディスプレイ装置
US9628783B2 (en) Method for interacting with virtual environment using stereoscope attached to computing device and modifying view of virtual environment based on user input in order to be displayed on portion of display
US9489040B2 (en) Interactive input system having a 3D input space
US9886102B2 (en) Three dimensional display system and use
CN115443445A (zh) 用于可穿戴系统的手部手势输入
US10930075B2 (en) User interface discovery and interaction for three-dimensional virtual environments
CN116324680A (zh) 用于操纵环境中的对象的方法
US10296359B2 (en) Interactive system control apparatus and method
EP3814876B1 (en) Placement and manipulation of objects in augmented reality environment
CN110489027B (zh) 手持输入设备及其指示图标的显示位置控制方法和装置
JP2022526512A (ja) インタラクティブオブジェクト駆動方法、装置、機器、及び記憶媒体
JP6174646B2 (ja) 仮想空間内のオブジェクトを3軸操作するためのコンピュータ・プログラム
Lee et al. Tunnelslice: Freehand subspace acquisition using an egocentric tunnel for wearable augmented reality
CN111708504A (zh) 一种扩展屏幕的显示方法
JP5767371B1 (ja) 仮想空間平面上に配置したオブジェクトを表示制御するゲーム・プログラム
JP2016181302A (ja) 没入型仮想空間でオブジェクト操作を制御するためのコンピュータ・プログラムおよびコンピュータ・システム
GB2535730A (en) Interactive system control apparatus and method
JPH08249500A (ja) 3次元図形の表示方法
WO2021131862A1 (ja) 情報処理装置、方法及びプログラム
CN111766959B (zh) 虚拟现实交互方法和虚拟现实交互装置
CN111343446B (zh) 视频图像翻转显示方法及装置
WO2023095519A1 (ja) 表示制御装置、表示制御方法、及びプログラム
KR20230049520A (ko) 가상 현실 공간에 대한 제어를 수행하는 전자 시스템, 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231122