JP2017182532A - 情報処理装置、表示制御方法及びプログラム - Google Patents

情報処理装置、表示制御方法及びプログラム Download PDF

Info

Publication number
JP2017182532A
JP2017182532A JP2016070142A JP2016070142A JP2017182532A JP 2017182532 A JP2017182532 A JP 2017182532A JP 2016070142 A JP2016070142 A JP 2016070142A JP 2016070142 A JP2016070142 A JP 2016070142A JP 2017182532 A JP2017182532 A JP 2017182532A
Authority
JP
Japan
Prior art keywords
virtual object
display
virtual
operation element
information processing
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
JP2016070142A
Other languages
English (en)
Inventor
諒 横山
Ryo Yokoyama
諒 横山
佑輔 中川
Yusuke Nakagawa
佑輔 中川
山野 郁男
Ikuo Yamano
郁男 山野
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2016070142A priority Critical patent/JP2017182532A/ja
Priority to US16/087,394 priority patent/US11301031B2/en
Priority to CN201780019351.9A priority patent/CN108885523A/zh
Priority to PCT/JP2017/010598 priority patent/WO2017169827A1/ja
Publication of JP2017182532A publication Critical patent/JP2017182532A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】仮想空間のオブジェクトに対する操作性を向上させる。
【解決手段】この情報処理装置は、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、ユーザの操作入力に基づく基準位置に基づいて仮想空間内で第1の仮想オブジェクトを移動させ、第1の仮想オブジェクトの基準位置が第2の仮想オブジェクト内にあると判定されるとき、第2の仮想オブジェクトに外接する位置に第1の仮想オブジェクトを表示させ、第2の仮想オブジェクトから第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、基準位置と第1の仮想オブジェクトの表示位置とが次第に一致するように第1の仮想オブジェクトの表示位置を制御するコントローラーとを具備する。
【選択図】図7

Description

本技術は、情報処理装置、表示制御方法及びプログラムに関する。
表示画面に表示される仮想空間内で、仮想的な物体(以下、「オブジェクト」と呼ぶ。)に対して"持つ"、"触れる"などの基本的な物理現象を伴う操作を与える方法には、例えば、次のようなものが知られる。
仮想空間にオブジェクトに対して上記操作を与えるポインティングオブジェクトが表示される。このポインティングオブジェクトは、センサーによって検出されたユーザの手の前後左右の動きに従って、仮想空間内で移動される。ユーザが仮想空間内のオブジェクトを持つように手を握ると、センサーによってこの手を握った動きが検出され、この検出情報を受けた制御部は、ポインティングオブジェクトにオブジェクトを保持させるように制御を行う(例えば、特許文献1参照)。
特開2012−018559号公報
しかしながら、仮想空間のオブジェクトに対するユーザの操作性に関しては、様々な点で改善すべき課題がある。
以上のような事情に鑑み、本技術の目的は、仮想空間のオブジェクトに対する操作性を向上させることが可能な、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提供することにある。
上記の課題を解決するために、本技術に係る一形態の情報処理装置は、
表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとを具備する。
前記コントローラーは、
前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成されたものであってよい。
前記コントローラーは、
前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成されたものであってよい。
前記コントローラーは、
前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成されてもよい。
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成されてもよい。
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成されてもよい。
本技術に係る一形態の情報処理方法は、
表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する。
本技術に係る一形態のプログラムは、
表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
コンピュータを動作させる。
以上のように、本技術によれば、仮想空間のオブジェクトに対する操作性を向上させることが可能な、新規かつ改良された情報処理装置を提供することができる。
仮想空間のオブジェクト内への操作子のめり込みを説明すするための図である。 本技術にかかる第1の実施形態の情報処理システム1の構成の一例を示すブロック図である。 図2の情報処理システム1に属する情報処理装置10のハードウェア構成を示すブロック図である。 図3の情報処理装置10での操作子3の表示制御に関するフローチャートである。 図3の情報処理装置10での操作子3のめり込み防止のための表示制御を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う表示制御その1を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う表示制御その2を説明するための図である。 オブジェクト2から操作子3を離す操作の判定方法の一例を説明するための図である。 グローブタイプの動作検出デバイスによって検出可能なユーザの指の関節の曲がりについて説明するための図である。 グローブタイプの動作検出デバイスによって検出可能なユーザの指の左右の振りについて説明するための図である。 グローブタイプの動作検出デバイスによって検出される動作情報をもとに仮想空間に表示可能な複数の操作子について説明するための図である。 複数の操作子に対するめり込み防止のための表示制御の課題を説明する図である。 操作子間の長さを拘束した操作子のめり込み防止のための表示制御を説明するための図である。 操作子間の長さを拘束した操作子のめり込み防止のための表示制御の課題を説明するための図である。である。 操作子間の長さおよび関節間の曲がり方を拘束した複数の操作子のめり込み防止のための表示制御その1を説明するための図である。 操作子間の長さおよび関節間の曲がり方を拘束した複数の操作子のめり込み防止のための表示制御その2を説明するための図である。 オブジェクト2から操作子3を離す操作に伴う操作子3の制御量を算出する方法を説明するための図である。
以下、本技術に係る実施の形態を説明する。
本実施の形態の説明は、以下の順に行われる。
1.概要
2.システム構成
3.情報処理装置10の構成
4.操作子めり込み防止のための表示制御
5.オブジェクト2から操作子3を離す操作に伴う表示制御その1
6.オブジェクト2から操作子3を離す操作に伴う表示制御その2
7.オブジェクト2から操作子3を離す操作の判定方法
8.操作子3の制御量の算出方法の一例
9.拘束条件下での複数の操作子のめり込み防止のための表示制御その1
10.拘束条件下での複数の操作子のめり込み防止のための表示制御その2
<第1の実施形態>
[1.概要]
本開示の技術は、表示デバイスの画面に構築された仮想空間における仮想的な物体であるオブジェクト(第2の仮想オブジェクト)に対して、"持つ"、"触れる"などの基本的な物理現象を伴う操作をユーザの手指などの動きを検出した情報をもとに与える情報処理システムに関する。この情報処理システムにおいて、ユーザの手や指などの動きの情報は、仮想空間に操作用のオブジェクトとして表示される操作子(第1の仮想オブジェクト)の動きに反映される。
この情報処理システムは、表示デバイス、動作検出デバイス、そしてVR(Virtual Reality:仮想現実)、AR(Augmented Reality:拡張現実)などの仮想空間の表示に関する様々な情報処理を行う情報処理装置を基本的な構成として有する。情報処理装置は、PC(Personal Computer)、ゲーム機、サーバ装置、スマートホンなど、CPU(Central Processing Unit)およびメモリを備え、プログラムを実行して演算処理を行うことが可能なコントローラーを有するものであればよい。
動作検出デバイスは、表示デバイスの画面の仮想空間に配置された仮想物体であるオブジェクトに対して、例えば"持つ"、"触れる"などの操作を目的としたユーザの手や指などの動きを検出し、検出情報を情報処理装置に供給する。
(1)動作検出デバイスより入力されたユーザの動きの検出情報をもとに仮想空間内の操作子の位置を計算し、その計算上の位置に操作子を表示させる方法によると、例えば、図1に示すように、オブジェクト2の空間内に操作子3の計算上の位置があるとき、操作子3がオブジェクト2内にめり込んだ見た目となる。柔軟な物性を想定しないオブジェクト2内に操作子3が表示されると、"持つ"、"触れる"などの操作の見た目としては不自然である。そこで本明細書においては、オブジェクト2内に操作子3の計算上の位置が存在しても、操作子3がオブジェクト2内にめり込まないように操作子3の表示位置を変更する操作子のめり込み防止のための表示制御について開示する。
なお、動作検出デバイスより入力されたユーザの動きの検出情報をもとに計算された仮想空間内の操作子の位置を以後「操作子の計算位置」と呼び、仮想空間に表示された操作子の位置を以後「操作子の表示位置」と呼ぶ。操作子の計算位置は、特許請求の範囲でいうところの「ユーザの操作入力に基づく基準位置」に対応し、操作子の表示位置は、特許請求の範囲でいうところの「第1の仮想オブジェクトの表示位置」に対応する。
(2)さらに、操作子のめり込み防止のための表示制御を採用した場合、操作子3をオブジェクト2の内から外に移動させる操作を行っても、その直後暫くの時間は操作子3の計算位置はオブジェクト2内にある。このため、操作子3が見た目上移動しはじめるまでには遅延時間が生じ、見掛け上の応答性が劣化する。そこで、本明細書においては、操作子3をオブジェクト2から離す操作が行われたときの操作子3の自然な応答感をユーザに与えることができる表示制御について開示する。
[2.システム構成]
図2は、本技術にかかる第1の実施形態の情報処理システム1の構成の一例を示すブロック図である。
この情報処理システム1は、情報処理装置10と、表示デバイス20と、動作検出デバイス30とを有する。情報処理装置10は、表示デバイス20と無線あるいは有線により通信することが可能である。情報処理装置10と動作検出デバイス30とは無線あるいは有線による通信することが可能である。各々の通信には、望ましくは無線通信が用いられる。無線通信には、例えば、無線LAN(Local Area Network)、Bluetooth(登録商標)、Wi−Fi(登録商標)、Zigbee(登録商標)などの任意の無線通信方式を適用し得る。
表示デバイス20は、例えば、情報処理装置10から独立した据え置き型のディスプレイ、テレビジョンモニター、立体視ディスプレイ、あるいは、ヘッドマウントディスプレイ(HMD)、ブレスレット型ディスプレイなどのウェアラブル型ディスプレイであってよい。また、ノート型PC、タブレット端末、スマートホンのように、情報処理装置10と表示デバイス20とは一体化されたものであってもよい。あるいは、ヘッドマウントディスプレイ(HMD)、ブレスレット型ディスプレイなどのウェアラブル型ディスプレイ内に情報処理装置10が組み込まれていてもよい。
動作検出デバイス30は、ユーザUの例えば手や指などの動きを検出することのできるものであればよい。動作検出デバイス30としては、例えば、モーションセンサーを搭載したステッィク型のデバイスや、ユーザの手の甲、各指の関節の位置などを検出することのできるグローブ型のデバイスなどが挙げられる。あるいは、1以上のカメラでユーザの手や指を撮像して画像認識によってユーザの手や指などの動きを検出してもよい。
[3.情報処理装置10の構成]
図3は、上記の情報処理システム1に属する情報処理装置10のハードウェア構成を示すブロック図である。
同図に示すように、情報処理装置10は、制御部101、操作部102、記憶部103、表示デバイス20との表示インタフェース104、動作検出デバイス30との入力インタフェース105およびバス106を備える。
制御部101は、本技術にかかる請求項の「コントローラー」に相当するものであり、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)などのプロセッサと、RAM(Random Access Memory)などにより構成されるメインメモリとを含む。制御部101はメインメモリを作業領域として用いてプログラムを実行し、VRなどの仮想空間の表示に関する情報処理を行う。また、制御部101は、バス106を通じて操作部102、記憶部103、表示インタフェース104、入力インタフェース105との間で情報をやりとりする。
操作部102は、情報処理装置10に対するユーザからの各種入力を受け付けるためのユーザインタフェースである。操作部102は、例えば、キーボード、マウス、ボタン、スイッチ、キーパッド、ゲーム機用コントローラー、マイク(音声入力)など、ユーザからの入力を受け付けることができるものであればよい。
記憶部103は、例えば、半導体メモリ、ハードディスクなどの記憶媒体により構成される。記憶部103には、VRなどの仮想空間の表示に関する処理に必要なプログラムおよびデータが格納される。なお、プログラムおよびデータの少なくとも一部は、記憶部103により記憶されることなく、例えば、データサーバ、ネットワークストレージ、外付け記録装置など、情報処理装置10の外部のストレージから取得されてもよい。
表示インタフェース104は、制御部101により生成された仮想空間の表示のための表示データを表示デバイス20に無線通信方式または有線通信方式で送信するためのインタフェースである。
入力インタフェース105は、動作検出デバイス30よりユーザの動作情報を無線通信方式または有線通信方式で受信するためのインタフェースである。入力インタフェース105は、特許請求の範囲の「表示制御部」に対応する。
バス106は、制御部101、操作部102、記憶部103、表示インタフェース104、入力インタフェース105との間での情報の伝送に用いられる伝送路である。
[4.操作子めり込み防止のための表示制御]
情報処理装置10の制御部101は、プログラムに基づいて、操作対象である仮想的な物体であるオブジェクト2およびこれを操作する操作子3を含む仮想空間の表示データを生成する。制御部101は、インタフェース105を用いて動作検出デバイス30より入力したユーザの動作情報をもとに、仮想空間における操作子3の位置を計算し、その位置に操作子3を表示させる。
図1に示したように、オブジェクト2の空間内に操作子3の計算位置があり、その位置に操作子3をそのまま表示させると、操作子3がオブジェクト2内にめり込んだ見た目となってしまい、不自然である。そこで、本実施形態の情報処理装置10では、オブジェクト2の空間内に操作子3の計算位置がある場合には、操作子3がオブジェクト2内にめり込まないように操作子3の表示位置を変更するめり込み防止のための表示制御が行われる。
図4は、操作子3のめり込み防止のための表示制御、および後述するオブジェクト2から操作子3を離す操作時の表示制御の手順を示すフローチャートである。
情報処理装置10の制御部101は、動作検出デバイス30から取得した動作情報をもとに操作子3の仮想空間内の位置を計算する(ステップS101)。制御部101は、動作検出デバイス30から時間的に連続して取得した動作情報をもとに2つの位置P0、P1を算出し、操作子3が計算上、オブジェクト2の空間内にめり込んだかどうかを判定する(ステップS102)。
ここで、少なくとも操作子3の計算位置P1(以下、「第1の位置P1」と呼ぶ。)がオブジェクト2内である場合には、制御部101は、操作子3が計算上、オブジェクト2の空間内にめり込んだことを判定し(ステップS102のYES)、操作子3の表示位置のめり込み防止のための制御を発動する(ステップS103)。
図5は、操作子3のめり込み防止のための表示制御を説明するための図である。
なお、この説明では、動作検出デバイス30としてステッィク型のデバイスが用いられる場合を想定する。この場合、操作子3の数は"1"である。仮想空間におけるオブジェクト2の形状は特に規定されない。但し、この説明では、x軸方向に沿った互いに平行な2つの辺を有し、各々の辺の両端が曲線により接続された形状のオブジェクト2を想定する。
操作子3のめり込み防止のための制御として、まず、制御部101は、操作子3の計算位置がオブジェクト2の外の位置P0からオブジェクト2内の第1の位置P1に移動する過程でオブジェクト2と外接する第2の位置Pa1に操作子3を表示する。
次に、制御部101は、第1の位置P1から第2の位置Pa1の方向にあるオブジェクト2の輪郭線2aに対する第1の法線方向La1を求める。
次に、制御部101は、第1の位置P1から第1の法線方向La1にあるオブジェクト2の輪郭線2aに対する第2の法線方向Lb1を求める。
続いて、制御部101は、第1の位置P1から第2の法線方向Lb1にあるオブジェクト2の輪郭線2aに外接する第3の位置Pa2に操作子3の表示位置を更新する。
この後も制御部101は、同様の処理を繰り返すことによって、操作子3の表示位置をオブジェクト2の輪郭線2aに沿って第4の位置Pa3、第5の位置Pa4の順に移動させる。本例では、第1の位置P1から第5の位置Pa4の方向にあるオブジェクト2の輪郭線2aに対する法線方向Lb3はy軸方向と平行であるため、この第5の位置Pa4で操作子3の表示位置を更新する処理が収束する。
なお、このタイミングで操作子3の表示位置の更新処理が収束するのは、この例では、第1の位置P1から第5の位置Pa4の方向にあるオブジェクト2の輪郭線2aに対する法線方向Lb3がy軸方向と平行であるためであり、法線方向Lb3がy軸方向と平行でない場合には更新処理が継続される。
動作検出デバイス30から取得した動作情報をもとに操作子3の仮想空間内の計算位置が変化すると、制御部101は、操作子3のめり込み防止のための表示制御を再度発動し、操作子3の表示位置が再び更新される。
このように、本開示の技術にかかる操作子3のめり込み防止のための表示制御では、操作子3の計算位置がオブジェクト2内の任意の第1の位置P1に移動するとき、その移動過程で操作子3の表示位置が、オブジェクト2に最初に外接する第2の位置Pa1から、オブジェクト2内の第1の位置P1の真上にあたる位置に次第に近付くようにオブジェクト2の輪郭線2aに沿って連続的に移動する。これにより、例えば、操作子3の計算位置がオブジェクト2内の任意の第1の位置P1に移動する過程で操作子3がオブジェクト2に最初に外接する第2の位置Pa1に操作子3を止めて表示させるだけの制御に比べ、ユーザに与える違和感を軽減することができる。
本開示の技術にかかる操作子のめり込み防止のための表示制御などに代表されるように、操作子3をオブジェクト2の外から内に移動させる操作が発生した場合に、オブジェクト2に外接する位置に操作子3を表示させる制御が行われる場合、次のような課題がある。
オブジェクト2から操作子3を離す操作が発生した場合、操作子3の計算位置がオブジェクト2の外に出るまでは、操作子3はオブジェクト2(の輪郭線2a)に外接した位置に表示されたままとなる。このため、オブジェクト2から操作子3を離す操作に対する応答速度が遅いようにユーザに感じさせてしまう可能性がある。
この課題を解決するために、制御部101は、図4のフローチャートにも示したように、オブジェクト2から操作子3を離す操作が発生した場合(ステップS104のYES)、その操作に伴って、操作子3の計算位置と操作子3の表示位置とが次第に一致するように操作子3の表示位置を制御する(ステップS105、S106)。
以下に、このオブジェクト2から操作子3を離す操作に伴う表示制御の詳細を説明する。
[5.オブジェクト2から操作子3を離す操作に伴う表示制御その1]
図6は、このオブジェクト2から操作子3を離す操作に伴う表示制御その1を説明するための図である。
まず、操作子3の計算位置P1がオブジェクト2内にあるものの、例えば、上記の操作子のめり込み防止のための表示制御によって操作子3はオブジェクト2と外接する位置Ph1に表示されている状態を想定する。なお、本例では、この操作子3の表示位置Ph1は、上記のめり込み防止のための表示制御によって最終的に収束した表示位置であり、図5の第5の位置Pa4に相当する。
この後、オブジェクト2から操作子3を離す操作が発生し、制御部101がその操作の発生を判定したこととする。なお、このオブジェクト2から操作子3を離す操作の判定方法については後で説明する。
制御部101は、オブジェクト2から操作子3を離す操作が発生したことを判定すると、操作子3の計算位置と操作子3の表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。つまり、図6において、制御部101は、操作子3の計算位置がP1からP2に更新すると、操作子3の表示位置を、オブジェクト2に外接する位置であるPh1から、オブジェクト2から離間した位置Ph2に更新する。
次に、制御部101は、操作子3の計算位置がP2からP3に更新すると、操作子3の表示位置をPh2からPh3へ更新する。この例では、さらに、操作子3の計算位置がP3からP4に更新すると、操作子3の表示位置がPh3から、操作子3の計算位置P4と同じ位置あるいは略同じ位置であるPh4へと更新した場合を示している。
ここで、P2とPh2との距離をL1、P3とPh3との距離をL2、P4とPh4との距離をL3、そしてP4とPh4との距離をL4とするとL1>L2>L3>L4が成立する。
操作子3の表示位置を更新するための制御量は、例えば、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示上の位置と計算位置との差分ベクトルをもとに算出することが可能である。
[6.オブジェクト2から操作子3を離す操作に伴う表示制御その2]
上記の表示制御その1では、オブジェクト2から操作子3を離す操作が行われる直前の操作子3の表示位置Ph1と操作子3の計算位置P1とのx軸上の位置が互いに一致し、y軸上の位置が一致しないことを前提したが、本開示の技術にかかる操作子3の表示制御は、オブジェクト2から操作子3を離す操作が行われる直前の操作子3の表示位置Ph1と操作子3の計算位置P1とがxy軸方向において異なる場合においても有効である。次に、この場合の表示制御を、オブジェクト2から操作子3を離す操作に伴う表示制御その2として説明する。
図7は、オブジェクト2から操作子3を離す操作に伴う表示制御その2を説明するための図である。
ここでは、めり込み防止のための表示制御として、操作子3の計算位置がオブジェクト2内の任意の位置P1に移動する過程で、操作子3がオブジェクト2に最初に外接するときの位置Ph1に止めて表示する方式を採用した場合を想定する。
この表示制御その2においても、上記の表示制御その1と同様に、制御部101は、オブジェクト2から操作子3を離す操作が発生したことを判定すると、操作子3の計算位置と操作子3の表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。つまり、図7において、制御部101は、操作子3の計算位置がP1からP2に更新すると、操作子3の表示位置をオブジェクト2に外接する位置であるPh1から、オブジェクト2から離間した位置Ph2に更新する。
次に、制御部101は、操作子3の計算位置がP2からP3に更新すると、操作子3の表示位置をPh2からPh3へ更新する。
この例では、さらに、操作子3の計算位置がP3からP4に更新すると、操作子3の表示位置がPh3から、P4と同じ位置または略同じ位置であるPh4へと更新した場合を示している。
ここで、P2とPh2との距離をL1、P3とPh3との距離をL2、そしてP4とPh4との距離をL3、そしてP4とPh4との距離をL4とするとL1>L2>L3>L4が成立する。
この表示制御その2の場合も、操作子3の表示位置を更新するための制御量は、表示制御その1の場合と同様に、例えば、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示上の位置と計算位置との差分ベクトルをもとに算出することが可能である。
このように、本開示の技術にかかるオブジェクト2から操作子3を離す操作に伴う表示制御によれば、オブジェクト2から操作子3を離す操作に伴って操作子3の計算位置と操作子3の表示位置とが次第に一致するように操作子3の表示位置が更新されるので、オブジェクト2から操作子3を離す操作に対する見掛け上の応答性が向上する。
[7.オブジェクト2から操作子3を離す操作の判定方法]
図8は、上記の表示制御その2の場合を例として、オブジェクト2から操作子3を離す操作の判定方法の一例を説明するための図である。
同図において、操作子3の計算位置がオブジェクト2内の任意の位置P1に移動する過程で、操作子3がオブジェクト2に最初に外接するときの表示位置Ph1と操作子3の計算位置P1の各中心とを結んだ直線Hを「操作子めり込み軸H」と呼ぶこととする。vはオブジェクト2から操作子3を離す操作による操作子3の計算位置の移動ベクトルである。この移動ベクトルvの操作子めり込み軸Hに対する角度をθ、移動ベクトルvの操作子めり込み軸H方向の大きさをvとする。
以下の式(1)は、オブジェクト2から操作子3が離れる操作の判定条件である。
|θ|<TθかつTv<|v| ・・・(1)
ここで、Tθ、Tvはそれぞれ閾値である。
このように、オブジェクト2から操作子3が離れる操作の判定条件が規定されることによって、手振れなどによる操作子3の微量の動きをキャンセルできるとともに、操作子3の計算位置がオブジェクト2内にめり込んできた方向を基準にオブジェクト2から離れる操作を判定することができる。これにより、オブジェクト2から離れる操作をより適切に判定することができる。
なお、オブジェクト2から操作子3を離す操作の判定方法は上記のものに限定されない。その他、様々な方法や、変形が考えられる。
[8.操作子3の制御量の算出方法の一例]
次に、オブジェクト2から操作子3を離す操作に伴う操作子3の制御量を、操作子3の移動前後の計算位置間の移動ベクトルと、操作子3の表示位置と計算位置との差分ベクトルをもとに算出する方法の一例を図17を用いて説明する。
制御部101は、操作子3の制御量である制御ベクトルcを次式(2)により算出する。
c=(α×v)+(β×d) ・・・(2)
ここで、vは移動ベクトル、dは差分ベクトルである。αおよびβは制御パラメータであり、例えば、0以上かつ1以下の値をとり、移動ベクトルvの大きさ|v|あるいは角度の大きさ|θ|に依存する値である。
移動ベクトルvの大きさ|v|に依存して決まる制御パラメータβの例を以下に挙げる。
β=e−γ/|v|(γは定数)
β=1−e−γ/|v|(γは定数)
<第2の実施形態>
次に、本開示の技術にかかる操作子のめり込み防止のための表示制御の第2の実施形態として、ユーザの手および指の形態を模して互いに接続された複数の操作子を仮想空間に表示する場合のめり込み防止のための表示制御について説明する。
ユーザの手および指の動きを検出する動作検出デバイス30としてグローブタイプのものがある。グローブタイプの動作検出デバイス30は、図9に示すように、手の甲の3次元位置や、指の各関節(第1関節、第2関節、第3関節)の曲げ角度θ1,1、θ1,2、θ1,3、さらには図10に示すように、指の左右の振り角度φ1,1などを、グローブ体に設けられたセンサーにより検出するように構成される。また、ユーザの手あるいは指をカメラで撮像し、画像処理して同様な検出を行ってもよい。
図11は、上記のようなグローブタイプの動作検出デバイス30を用いて検出される動作情報をもとに仮想空間に表示される複数の操作子の接続関係を示す図である。
ここで、Aは手の甲に対応する操作子である。B1−B4は親指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。C1−C4は人差し指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。D1−D4は中指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。E1−E4は薬指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。F1−F4は小指の第1関節、第2関節、第3関節および指先の位置に各々対応する操作子である。
例えば、操作で使われる指が例えば人差し指である場合、仮想空間には、手の甲に対応する操作子Aと、人差し指の第1関節、第2関節、第3関節および指先に各々対応する操作子C1−C4が表示される。このように操作で用いられて仮想空間に表示される複数の操作子A、C1−C4のまとまりを「操作子セット」と呼ぶことにする。
このように操作子セットが仮想空間に表示される方式の場合、例えば、図12に示すように、オブジェクト2内に計算位置が存在する1以上の操作子C2、C3、C4が、各々個別に上記の操作子のめり込み防止のための表示制御が行われることによって、各々点線で示される計算位置PC2、PC3、PC4から各々実線で示される表示位置に表示される。この場合、操作子C2、C3、C4が、指の操作子間の長さを無視した位置に表示されるため、指が短くみえるなど不自然である。
この課題を解決するために、制御部101は、操作子セットにおいて互いに隣り合う操作子間で決められた長さを保った上で操作子のめり込み防止のための表示制御を行う。例えば、制御部101は、操作で使われた指が人差し指である場合には、手の甲の操作子Aと、人指し指の第1関節、第2関節、第3関節および指先の各操作子C1−C4について、隣り合うもの同士の間に決められた長さlA−C1、lC1−C2、lC2−C3、lC3−C4を保った上で、各々の操作子C2、C3、C4のめり込み防止のための表示制御を行う。
なお、操作子セットにおいて、互いに隣り合う操作子間の決められた長さは、指の種類によっても異なる。
このように、操作子間の長さを拘束した操作子のめり込み防止のための表示制御によって、例えば、図13に示すように、計算上、オブジェクト2内に位置する操作子C2、C3、C4がそれぞれ自然な位置関係で表示され、操作子セット全体の見た目の違和感が解消される。
但し、操作子間の長さの条件だけを拘束した操作子のめり込み防止のための表示制御では、オブジェクト2の形状によっては見た目の違和感が残る場合がある。例えば、図14に示すように、操作子間の長さを拘束した操作子のめり込み防止のための表示制御の結果、オブジェクト2の輪郭線2aにおける平らな線に沿って各操作子C2、C3、C4が表示される場合、第2関節に対応する操作子C2が本来曲がり得ない方向に曲がっており、不自然な見た目となっている。
そこで、操作子間の長さの条件に加え、関節の曲がりの向きと曲げ角度の範囲を拘束した条件下で、操作子のめり込み防止のための表示制御を行うことがより望ましい。関節の曲がりの向きと曲げ角度の範囲は関節の位置(第1関節、第2関節、第3関節)によって異なり、さらには指の種類によっても異なる。例えば、第1関節は掌の高さに対して上下に曲げられるが、第2関節および第3関節は、掌側に曲げることができるものの、手の甲側にはほとんど曲げられない。このような関節毎の性質を考慮して、各々の関節の曲がりの向きと曲げ角度の範囲が、操作子間の長さとともに、操作子のめり込み防止のための表示制御の拘束条件として予め設定される。
次に、上記の拘束条件下での複数の操作子のめり込み防止のための表示制御の動作を説明する。
[9.拘束条件下での複数の操作子のめり込み防止のための表示制御その1]
図15は上記の拘束条件下での複数の操作子のめり込み防止のための表示制御その1を説明するための図である。
制御部101は、動作検出デバイス30から取得した動作情報をもとに、まず、手の甲、人差し指の第1関節、指先に各々対応する複数の操作子A、C1、C4の計算位置P、PC1、PC4を算出する。
次に、制御部101は、算出した各々の計算位置P、PC1、PC4に対して、上記の<5.操作子のめり込み防止のための表示制御>によって各々の操作子A、C1、C4の表示位置を算出する。この際、手の甲、人差し指の第1関節の各操作子A、C1の計算位置P、PC1はオブジェクト2の外にあるため、それらの計算位置P、PC1に手の甲の操作子Aと人差し指の第1関節の操作子C1が表示される。一方、指先の操作子C4の計算位置PC4はオブジェクト2内にあるため、上記の<5.操作子のめり込み防止のための表示制御>によって指先に対応する操作子C4はオブジェクト2の輪郭線2aと外接する位置に表示される。
続いて、制御部101は、操作子A、C1、C4の表示位置を固定したまま、第2関節および第3関節の各操作子C2、C3の位置を、上記の<5.操作子のめり込み防止のための表示制御>に拠らず、上記の拘束条件の制約下で生成する。
もし、手の甲、第1関節および指先の各操作子A、C1、C4の表示位置を固定したまま、拘束条件下で第2関節および第3関節の操作子C2、C3の表示位置を生成できない場合、制御部101は、手の甲、第1関節および指先の各操作子A、C1、C4のうち1以上の操作子の表示位置を上記の拘束条件の制約下で調整するなどして、最終的に、すべての操作子A、C1−C4の表示位置を上記の拘束条件の制約下で生成する。
以上により、ユーザの手および指の形態を模した複数の操作子で構成される操作子セットに対して、自然の形態を崩すことなく、めり込み防止処理を施すことができる。
[10.拘束条件下での複数の操作子のめり込み防止のための表示制御その2]
図16は、上記の拘束条件下での複数の操作子のめり込み防止のための表示制御その2を説明するための図である。
まず、制御部101は、動作検出デバイス30から取得した動作情報をもとに、手の甲の操作子A、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の順に、計算位置がオブジェクト2内にある操作子を探す。計算位置がオブジェクト2内にある操作子が見つかると、制御部101は、操作子間の長さの拘束条件下での操作子のめり込み防止のための表示制御によって、その操作子の変更先の表示位置を計算する。
次に、制御部101は、その操作子の変更先の表示位置が、対応する関節の曲がり方の拘束条件の違反を発生させるかどうかを判定する。もし、拘束条件の違反を発生させる場合、制御部101は、対応する関節の曲がり方に影響を与える1以上の操作子の表示位置を操作子間の長さの拘束条件を守りながら、拘束条件の違反を発生させない別の変更先の表示位置を探索し、その位置に操作子を表示させる。
図16の例では、第3関節の操作子C3の表示位置が、第2関節の操作子C2の曲が方の拘束条件の違反を発生させることが制御部101によって判定される。そこで制御部101は、第2関節の操作子C2の曲が方に影響を与える操作子である第2関節の操作子C2および第3関節の操作子C3の表示位置をそれぞれ操作子間の長さの拘束条件を守りながら調整する。
図16の例では、その後、指先の操作子C4の表示位置が、第3関節の操作子C3の曲がり方の拘束条件の違反を発生させることが制御部101によって判定される。制御部101は、前記同様に、第3関節の操作子C3の曲が方に影響を与える操作子である第3関節の操作子C3の表示位置と指先の操作子C4の表示位置を操作子間の長さの拘束条件を守りながら調整する。
また、第3関節の操作子C3の位置が再度調整されたことによって、第2関節の操作子C2の曲がり方の拘束条件の違反が再度発生する可能性がある。第2関節の操作子C2の曲がり方の拘束条件の違反が再度発生した場合、制御部101は、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
さらに、この調整により、第1関節の操作子C1の曲がり方の拘束条件違反が再度発生した場合には、制御部101は、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
この調整により、手の甲の操作子A1の曲がり方の拘束条件違反が発生した場合、制御部101は、手の甲の操作子A、第1関節の操作子C1、第2関節の操作子C2、第3関節の操作子C3、指先の操作子C4の各々の表示位置を各々の操作子間の長さの拘束条件を守りながら再度調整する。
以上により、この操作子のめり込み防止のための表示制御その2によっても、ユーザの手および指の形態を模した複数の操作子で構成される操作子セットに対して、自然の形態を崩すことなく、めり込み防止処理を施すことができる。
オブジェクト2から操作子セットを離す操作が発生した場合、制御部101は、その操作子セットに属する各操作子について、各々個別に、操作子の計算位置と表示位置とが次第に一致するように、オブジェクト2の外の空間内での操作子3の表示位置を算出する。
あるいは、制御部101は、操作子間の長さ、関節の曲がり方向および曲がりの角度の範囲を拘束した条件下で、操作子セットを構成する複数の操作子の位置関係を調整しながら、操作子の計算位置と表示位置とが次第に一致するように、オブジェクト2の外の空間内での各操作子の表示位置を算出するようにしてもよい。
<変形例1>
以上、操作子の計算位置がオブジェクト内にあるとき、オブジェクトに外接する位置に操作子を表示させることによって、ユーザが仮想空間内で操作子でオブジェクトに触れたときの自然な見た目を提示する操作子のめり込み防止のための表示制御と、オブジェクトから操作子を離す操作の見た目上の応答性を改善する表示制御について説明したが、これらの処理及び制御に関連して以下のような変形も考えられる。
動作検出デバイスとして、圧電素子などの触覚提示素子を有するものを用いてもよい。制御部は、操作子のめり込み防止のための表示制御によって、仮想空間内の操作子がオブジェクトに外接しているときに触覚提示素子を駆動して、ユーザにオブジェクトに接触している感覚を提示する。この際、制御部は、操作子の仮想空間での計算位置と表示位置との距離をめり込み量として、このめり込み量に応じた刺激の強度で触覚提示素子が駆動されるように制御をする。これにより、めり込み量をパラメータとしてオブジェクトに対する何からの制御が行われることを想定した場合、めり込み量が触感の強さによりユーザにフィードバックされるので、ユーザの操作性か向上する。
触覚提示においては、オブジェクトの種類(物品の種類)や属性(材質、硬さ、表面特性)などに応じて、触覚刺激の強度、パターンなどを切り替えるようにしてもよい。さらに、操作子に属性(材質、硬さ、表面特性)を与えることが可能である場合には、制御部は、操作子の属性とオブジェクトの属性との組み合わせに応じて異なる触覚をユーザに提示するように制御してもよい。あるいは、1つのオブジェクトが属性の異なる複数の部位で構成される場合、操作子が触れた部位の属性に対応した触覚提示が行われることによって、ユーザは触覚を通して操作子で触れた部位を知ることができる。
ユーザにめり込み量を提示する方法としては、触覚の他、オブジェクトの表示そのものに反映させる方法がある。オブジェクトの表示に反映させる方法には、例えば、オブジェクトの形や大きさ、色、テスクチャ、透明度、輝度値を変える方法などがある。これらの方法においても、オブジェクトおよび操作子の各々の属性により、オブジェクトの表示への反映のさせ方を変えてもよい。
また、オブジェクトあるいは操作子に対してめり込み量の閾値を設定しておき、めり込み量が閾値を超えた場合には、操作子の表示位置を、オブジェクト内のめり込み量に対応した位置に表示させるようにしてもよい。
<変形例2>
オブジェクトから操作子を離す操作が行われた際の操作子の表示制御として、第1の実施形態では、操作子の計算位置がオブジェクト内にあるとき、オブジェクトから操作子を離す操作の開始とともに、操作子の表示位置もオブジェクトから離れ始めることとした。
オブジェクトから操作子を離す操作の開始タイミングと操作子の表示位置がオブジェクトから離れ始めるタイミングに、例えば、オブジェクトに与えられた属性(材質、硬さ、表面特性)、操作子3に与えられた属性(材質、硬さ、表面特性)などに応じた時間差を設けてもよい。より具体的には、オブジェクトまたは操作子の表面の属性に粘着性が与えられている場合には、オブジェクトから操作子が離れる際に両接触面の間にあたかも粘着力が働いたかのように、オブジェクトから操作子を離す操作の開始から時間差(遅延時間)を置いて操作子の表示位置がオブジェクトから離れ始めるように制御してもよい。
<変形例3>
第1の実施形態では、操作子の表示位置が、オブジェクトの輪郭線に外接した位置から、計算サイクルごとに操作子の計算位置に次第に近付いて行き、最終的に操作子の計算位置と一致するまで操作子の表示位置を移動されることとした。ここで、オブジェクトから操作子を離す操作を開始してから、操作子の表示位置が計算位置と一致するまでの動き方は、上記(2)式の制御パラメータα、βによって決まり、制御パラメータα、βは、移動ベクトルの大きさ|v|、角度|θ|に依存する。
そこで、ユーザより制御パラメータα、βと移動ベクトルの大きさ|v|、角度|θ|との依存関係の詳細の選択あるいは設定を受け付けるためのユーザインタフェースを設けてもよい。これにより、ユーザは、オブジェクトから操作子を離す操作に対する操作子の表示位置の動き方として好みの動き方を選択することができる。
<変形例4>
オブジェクトおよび操作子の少なくとも一方が滑りやすい表面特性を有するものである場合、互いの接触時の滑りによる操作子の移動量を推定し、操作子のめり込み防止のための表示制御によって得られた操作子の表示位置をその滑りによる移動分だけ移動させてもよい。
<変形例5>
仮想空間に手の形態による複数の操作子を表示させる場合に、動作検出デバイスより与えられるユーザからの指令をもとに複数の操作子のスケールを変更するようにしてもよい。制御部は、変更された操作子のスケールに合せて、操作子のめり込み防止のための表示制御、オブジェクトから操作子を離す操作に対する操作子の表示制御を行う。
<変形例6>
操作子のめり込み防止のための表示制御が発動されるとき、力覚提示デバイスを用いてユーザに力のフィードバックを与えるようにしてもよい。これにより、操作子の表示位置が計算位置から操作子が移動してきた方向とは逆方向に移動した感覚をユーザに提示することができる。
<変形例7>
本開示の操作子のめり込み防止のための表示制御およびオブジェクトから操作子を離す操作に対する表示制御は、オブジェクトが別の物体の裏に隠れているなど、表示上ユーザの視界に入らない場合には、無効にとなるように制御されてよい。これにより制御部のCPUの無駄な演算が実行されずにすみ、CPUの負担を軽減することができる。
<変形例8>
操作子のめり込み防止の表示制御において、操作子はオブジェクトに外接する位置に表示されることとしたが、オブジェクトに近接する位置であってもよい。
また、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御は、必ずしも、第1の実施形態で説明した操作子のめり込み防止のための表示制御、あるいは第2の実施形態で説明した複数の操作子のめり込み防止のための表示制御と組み合わせて用いられることに限定されない。
例えば、オブジェクトに操作子が入り込んできた位置に、操作子をオブジェクトと外接して、あるいは近接して表示させる方法と、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御とを組み合わせてもよい。
あるいは、オブジェクト内の操作子の計算位置と最も近い位置に、操作子をオブジェクトと外接して、あるいは近接して表示させる方法と、本開示の技術に係るオブジェクトから操作子を離す操作に対する表示制御とを組み合わせてもよい。
本開示の技術は、VR(Virtual Reality)に分野に限らず、AR(Augmented Reality)の分野においても有効である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成もとることができる。
(1)表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーと
を具備する情報処理装置。
(2)上記(1)に記載の情報処理装置であって、
前記コントローラーは、
前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成された
情報処理装置。
(3)上記(1)または(2)に記載の情報処理装置であって、
前記コントローラーは、
前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成された
情報処理装置。
(4)上記(3)に記載の情報処理装置であって、
前記コントローラーは、
前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成された
情報処理装置。
(5)上記(1)または(2)に記載の情報処理装置であって、
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成された
情報処理装置。
(6)上記(1)または(2)に記載の情報処理装置であって、
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成された
情報処理装置。
(7)表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する
情報処理方法。
(8)上記(7)に記載の情報処理方法であって、
前記コントローラーは、
前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出する
情報処理方法。
(9)上記(7)または(8)に記載の情報処理方法であって、
前記コントローラーは、
前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させる
情報処理方法。
(10)上記(9)に記載の情報処理方法であって、
前記コントローラーは、
前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御する
情報処理方法。
(11)上記(7)または(8)に記載の情報処理方法であって、
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させる
情報処理方法。
(12)上記(7)または(8)に記載の情報処理方法であって、
前記コントローラーは、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返す
情報処理方法。
(13)表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
コンピュータを動作させるプログラム。
(14)上記(13)に記載のプログラムであって、
前記コントローラーにて、
前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように
コンピュータを動作させるプログラム。
(15)上記(13)または(14)に記載のプログラムであって、
前記コントローラーにて、
前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように
コンピュータを動作させるプログラム。
(16)上記(15)に記載のプログラムであって、
前記コントローラーにて、
前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように
コンピュータを動作させるプログラム。
(17)上記(13)または(14)に記載のプログラムであって、
前記コントローラーにて、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように
コンピュータを動作させるプログラム。
(18)上記(13)または(14)に記載のプログラムであって、
前記コントローラーて、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように
コンピュータを動作させるプログラム。
1…情報処理システム
2…オブジェクト
3…操作子
10…情報処理装置
20…表示デバイス
30…動作検出デバイス
101…制御部
102…操作部
103…記憶部
104…表示インタフェース
105…入力インタフェース

Claims (8)

  1. 表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
    ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーと
    を具備する情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記コントローラーは、
    前記第1の仮想オブジェクトの前記基準位置の移動ベクトルおよび前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置との差分ベクトルをもとに、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作に伴う前記第1の仮想オブジェクトの表示位置を更新するための制御量を算出するように構成された
    情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記コントローラーは、
    前記ユーザの操作入力に基づく基準位置をもとに、複数の前記第1の仮想オブジェクトを前記仮想空間内に表示する場合、前記複数の第1の仮想オブジェクトの少なくとも一部の第1の仮想オブジェクトの前記仮想空間内の前記基準位置が前記第2の仮想オブジェクト内にあるとき、前記複数の第1の仮想オブジェクトの間に決められた相対的な位置関係の拘束条件下で、前記第2の仮想オブジェクトに外接する位置に前記一部の第1の仮想オブジェクトを表示させるように構成された
    情報処理装置。
  4. 請求項3に記載の情報処理装置であって、
    前記コントローラーは、
    前記第2の仮想オブジェクトから前記複数の第1の仮想オブジェクトを離す操作に伴って、前記拘束条件を守りながら、前記第1の仮想オブジェクトの前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記複数の第1の仮想オブジェクトの表示位置を制御するように構成された
    情報処理装置。
  5. 請求項1に記載の情報処理装置であって、
    前記コントローラーは、
    前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の位置に移動させる操作が判定されたとき、前記第1の仮想オブジェクトの移動過程で前記第2の仮想オブジェクトと外接する位置に前記第1の仮想オブジェクトを表示させるように構成された
    情報処理装置。
  6. 請求項1に記載の情報処理装置であって、
    前記コントローラーは、
    前記第1の仮想オブジェクトを前記第2の仮想オブジェクトの外から前記第2の仮想オブジェクト内の第1の位置に移動させる操作が判定されたとき、
    前記第1の仮想オブジェクトを前記第2の仮想オブジェクト内の第1の位置に移動させる過程で前記第2の仮想オブジェクトと外接する第2の位置に前記第1の仮想オブジェクトを表示させ、
    前記第2の位置に表示された前記第1の仮想オブジェクトが外接する前記第2の仮想オブジェクトの輪郭線に対する第1の法線方向を求め、
    前記第1の位置から前記第1の法線方向にある前記第2の仮想オブジェクトの前記輪郭線に対する第2の法線方向を求め、
    前記第1の位置から前記第2の法線方向にある前記第2の仮想オブジェクトの輪郭線に外接する第3の位置に前記第1の仮想オブジェクトの表示位置を更新し、
    前記第1の仮想オブジェクトの表示位置を更新するための処理を収束まで繰り返すように構成された
    情報処理装置。
  7. 表示制御部が、表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成し、
    コントローラーが、ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御する
    情報処理方法。
  8. 表示デバイスに、仮想空間に定義される第1の仮想オブジェクトと、前記第1の仮想オブジェクトとは異なる第2の仮想オブジェクトと、を表示させるための表示情報を生成する表示制御部と、
    ユーザの操作入力に基づく基準位置に基づいて前記仮想空間内で前記第1の仮想オブジェクトを移動させ、前記第1の仮想オブジェクトの前記基準位置が前記第2の仮想オブジェクト内にあると判定されるとき、前記第2の仮想オブジェクトに外接する位置に前記第1の仮想オブジェクトを表示させ、前記第2の仮想オブジェクトから前記第1の仮想オブジェクトを離す操作が判定されたとき、当該操作に伴って、前記基準位置と前記第1の仮想オブジェクトの表示位置とが次第に一致するように前記第1の仮想オブジェクトの表示位置を制御するように構成されたコントローラーとして
    コンピュータを動作させるプログラム。
JP2016070142A 2016-03-31 2016-03-31 情報処理装置、表示制御方法及びプログラム Pending JP2017182532A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016070142A JP2017182532A (ja) 2016-03-31 2016-03-31 情報処理装置、表示制御方法及びプログラム
US16/087,394 US11301031B2 (en) 2016-03-31 2017-03-16 Information processing apparatus and display control method to control a display position of a virtual object
CN201780019351.9A CN108885523A (zh) 2016-03-31 2017-03-16 信息处理设备、显示控制方法和程序
PCT/JP2017/010598 WO2017169827A1 (ja) 2016-03-31 2017-03-16 情報処理装置、表示制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016070142A JP2017182532A (ja) 2016-03-31 2016-03-31 情報処理装置、表示制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2017182532A true JP2017182532A (ja) 2017-10-05

Family

ID=59964380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016070142A Pending JP2017182532A (ja) 2016-03-31 2016-03-31 情報処理装置、表示制御方法及びプログラム

Country Status (4)

Country Link
US (1) US11301031B2 (ja)
JP (1) JP2017182532A (ja)
CN (1) CN108885523A (ja)
WO (1) WO2017169827A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11181972B2 (en) 2017-10-26 2021-11-23 Sony Interactive Entertainment Inc. Image processing apparatus, image processing method, and program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102702585B1 (ko) * 2019-12-03 2024-09-04 삼성전자주식회사 전자 장치 및 이의 제어 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472047B2 (en) * 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
US20060277466A1 (en) 2005-05-13 2006-12-07 Anderson Thomas G Bimodal user interaction with a simulated object
CN105892924A (zh) 2010-07-01 2016-08-24 上海本星电子科技有限公司 基于触摸手势的数据自动传输方法
JP5589625B2 (ja) 2010-07-08 2014-09-17 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP5656514B2 (ja) * 2010-08-27 2015-01-21 キヤノン株式会社 情報処理装置及び方法
JP2014072576A (ja) 2012-09-27 2014-04-21 Kyocera Corp 表示装置および制御方法
CN106020620B (zh) 2012-09-27 2019-07-26 京瓷株式会社 显示装置、控制方法和控制程序
WO2015156068A1 (ja) 2014-04-10 2015-10-15 ソニー株式会社 画像処理装置及び画像処理方法
JP6301813B2 (ja) 2014-11-05 2018-03-28 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP6499900B2 (ja) 2015-04-06 2019-04-10 日本放送協会 力覚制御装置及び力覚提示装置
CN105159459B (zh) 2015-09-06 2018-09-14 东南大学 一种可用于移动终端的虚拟物体三维形状触觉再现方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11181972B2 (en) 2017-10-26 2021-11-23 Sony Interactive Entertainment Inc. Image processing apparatus, image processing method, and program

Also Published As

Publication number Publication date
WO2017169827A1 (ja) 2017-10-05
US11301031B2 (en) 2022-04-12
CN108885523A (zh) 2018-11-23
US20210200301A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US11557102B2 (en) Methods for manipulating objects in an environment
CN109690447B (zh) 信息处理方法、用于使计算机执行该信息处理方法的程序、以及计算机
US10884493B2 (en) Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions
EP3425481B1 (en) Control device
US20190265802A1 (en) Gesture based user interfaces, apparatuses and control systems
TW202105133A (zh) 在人工實境環境中使用周邊裝置的虛擬使用者介面
US10583359B2 (en) Systems and methods for providing haptic effects related to touching and grasping a virtual object
TW202101172A (zh) 用於人工實境系統的手臂視線驅動的使用者介面元件閘控
TW202046085A (zh) 基於捏合和拉放手勢偵測人工實境系統中的輸入
US20170293351A1 (en) Head mounted display linked to a touch sensitive input device
TW202105129A (zh) 具有用於閘控使用者介面元件的個人助理元件之人工實境系統
TW202101170A (zh) 用於人工實境系統的角點識別手勢驅動的使用者介面元件閘控
US20230152935A1 (en) Devices, methods, and graphical user interfaces for presenting virtual objects in virtual environments
EP3499344A1 (en) Haptically-enabled peripheral usable for two-dimensional and three-dimensional tracking
JP2018113025A (ja) 触覚によるコンプライアンス錯覚のためのシステム及び方法
WO2017169827A1 (ja) 情報処理装置、表示制御方法及びプログラム
US20240295922A1 (en) Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions
US20220262080A1 (en) Interfaces for presenting avatars in three-dimensional environments
JP4665172B2 (ja) 対話型インターフェース方式および対話型インターフェース用プログラム
JP2022140141A (ja) 情報処理システム、情報処理プログラム、及び情報処理方法
WO2023230088A1 (en) Devices, methods, and graphical user interfaces for generating and displaying a representation of a user
JP2019134880A (ja) プログラム及びゲーム装置