(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024172831
(43)【公開日】2024-12-12
(54)【発明の名称】情報処理装置、情報処理方法、プログラム
(51)【国際特許分類】
G06F 3/0487 20130101AFI20241205BHJP
G06F 3/0346 20130101ALI20241205BHJP
G06F 3/0338 20130101ALI20241205BHJP
【FI】
G06F3/0487
G06F3/0346 425
G06F3/0338 412
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023090829
(22)【出願日】2023-06-01
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】池田 宏治
(72)【発明者】
【氏名】峰 陽介
【テーマコード(参考)】
5B087
5E555
【Fターム(参考)】
5B087AA10
5B087AB09
5B087BC02
5B087BC16
5B087BC34
5B087DD10
5E555AA10
5E555AA63
5E555BA02
5E555BA08
5E555BB02
5E555BB08
5E555BE17
5E555CA06
5E555CA19
5E555CA21
5E555CB21
5E555CC03
5E555DA08
5E555FA00
(57)【要約】
【課題】コントローラに対する操作に応じた処理が行われる場合に、ユーザにとってコントローラを使用しやすくする技術を提供する。
【解決手段】コントローラの姿勢を取得する取得手段と、ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理手段と、前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替手段と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コントローラの姿勢を取得する取得手段と、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理手段と、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記処理手段は、前記空間に表示された表示アイテムを、前記第1の操作に応じて移動させる処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記表示アイテムを移動させる方向との対応関係を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示アイテムは、前記空間における位置を示すポインタ、または、前記空間における仮想物体である、
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記処理手段は、前記空間に表示された仮想物体を、前記第1の操作に応じて回転させる処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記仮想物体を回転させる方向との対応関係を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記処理手段は、前記空間における仮想物体を伸縮する処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記仮想物体の伸縮方向との対応関係を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記処理手段は、前記第1の操作に応じて、複数の選択肢から1つを選択する処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が行われることによって選択される選択肢を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記処理手段は、前記第1の操作に応じて、前記空間に表示された表示アイテムに処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記処理手段による処理が行われる前記表示アイテムを切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記切替手段は、前記コントローラの姿勢に基づき、前記空間における仮想物体と、前記空間における位置を示すポインタとのうちから、前記処理手段による処理が行われる前記表示アイテムを切り替える
ことを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記切替手段は、基準面に対する前記コントローラの傾きが、所定の傾きよりも大きいか否かに応じて、前記第1の操作と前記処理の内容または対象との対応関係を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
前記処理手段は、前記空間における仮想物体と、前記空間における位置を示すポインタとのいずれかを、前記第1の操作に応じて移動させる処理を行い、
前記切替手段は、
1)前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも小さい場合には、前記第1の操作に応じて前記仮想物体が移動するように制御し、
2)前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも大きい場合には、前記第1の操作に応じて前記ポインタが移動するように制御する、
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記処理手段は、前記第1の操作に応じて、前記空間のうち第1の平面において前記処理を行い、
前記切替手段は、前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも大きいか否かに応じて、前記第1の平面として選択する平面を切り替える、
ことを特徴とする請求項9に記載の情報処理装置。
【請求項12】
前記所定の傾きは、45度の傾きである、
ことを特徴とする請求項9から11のいずれか1項に記載の情報処理装置。
【請求項13】
前記処理手段は、前記第1の操作に応じて、前記空間のうち第2の平面において前記処理を行い、
前記切替手段は、基準面に対する前記コントローラのピッチ、ヨー、およびロール方向の傾きに基づき、前記処理が行われる前記第2の平面を切り替える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項14】
前記基準面は、水平面である、
ことを特徴とする請求項9から11のいずれか1項に記載の情報処理装置。
【請求項15】
前記基準面は、前記ユーザの頭部の上下方向に垂直な面である、
ことを特徴とする請求項9から11のいずれか1項に記載の情報処理装置。
【請求項16】
前記ユーザの手の状態を検知する検知手段をさらに有し、
前記切替手段は、さらに前記手の状態に基づき、前記第1の操作の操作量に対する処理の強度である操作感度を変更する、
ことを特徴とする請求項1から11のいずれか1項に記載の情報処理装置。
【請求項17】
前記切替手段により前記対応関係が切り替えられた場合には、前記対応関係が切り替えられた旨を通知する通知手段をさらに有する、
ことを特徴とする請求項1から11のいずれか1項に記載の情報処理装置。
【請求項18】
コントローラの姿勢を取得する取得ステップと、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理ステップと、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替ステップと、
を有することを特徴とする情報処理方法。
【請求項19】
コンピュータを、請求項1から11のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【0002】
頭部装着型の表示装置であるHMD(Head Mounted Display)が利用されている。そして、HMDを用いた複合現実感(Mixed Reality:MR)技術および仮想空間(Virtual Reality:VR)技術において、各種操作に応じて、HMDに表示される3次元空間を制御する方法が検討されている。
【0003】
特許文献1では、表示装置としてスマートフォンを使用しており、入力装置としてポインティングデバイス(マウスなど)を使用している。特許文献1では、表示装置であるスマートフォンの向きが縦および横のいずれの向きであるかに応じて、ポインティングデバイスの移動方向を補正することで、操作性を向上させる技術が開示されている。
【0004】
特許文献2では、十字キーを含むコントローラを用いた操作に関する。特許文献2では、表示装置は、十字キーが操作されていない場合に、コントローラの傾きおよび変位に応じてポインタの表示位置を移動させる。また、表示装置は、十字キーが操作された場合には、コントローラの傾きおよび変位に関わらず、十字キーへの操作に応じてポインタを移動させる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2019-46156号公報
【特許文献2】特開2022-171178号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1および特許文献2の技術を用いても、ユーザが操作部に対して操作を行った場合に、コントローラを適切な方向で把持していなければ、その操作に応じた処理がユーザの意図しない処理である可能性がある。このため、ユーザにとって、コントローラが使いにくい場合があった。
【0007】
そこで、本発明は、コントローラに対する操作に応じた処理が行われる場合に、ユーザにとってコントローラを使用しやすくする技術の提供を目的とする。
【課題を解決するための手段】
【0008】
本発明の1つの態様は、
コントローラの姿勢を取得する取得手段と、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理手段と、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替手段と、
を有することを特徴とする情報処理装置である。
【0009】
本発明の1つの態様は、
コントローラの姿勢を取得する取得ステップと、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に
応じて、表示手段に表示された空間における処理を行う処理ステップと、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替ステップと、
を有することを特徴とする情報処理方法である。
【発明の効果】
【0010】
本発明によれば、コントローラに対する操作に応じた処理が行われる場合に、ユーザにとってコントローラを使用しやすくすることが可能になる。
【図面の簡単な説明】
【0011】
【
図1】実施形態1に係る表示装置とコントローラの内部構成図である。
【
図2】実施形態1に係る入力操作処理のフローチャートである。
【
図3】実施形態1に係るコントローラの形状と向きを説明する図である。
【
図4】実施形態1に係るコントローラの形状と向きを説明する図である。
【
図5】実施形態1に係る入力操作と表示の関係を説明する図である。
【
図6】実施形態1に係る入力操作と表示の関係を説明する図である。
【
図7】実施形態1に係る入力操作と表示の関係を説明する図である。
【
図8】実施形態2に係る入力操作と表示の関係を説明する図である。
【
図9】実施形態2に係る入力操作と表示の関係を説明する図である。
【
図10】変形例1に係る手の収縮の状態を示す図である。
【
図11】実施形態3に係る入力操作と表示の関係を説明する図である。
【
図12】実施形態4に係る入力操作と表示の関係を説明する図である。
【
図13】実施形態4に係る入力操作と表示の関係を説明する図である。
【
図14】実施形態4に係る入力操作と表示の関係を説明する図である。
【
図15】実施形態5に係る入力操作と表示の関係を説明する図である。
【
図16】実施形態6に係る入力操作と表示の関係を説明する図である。
【
図17】実施形態8に係る入力操作と表示の関係を説明する図である。
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して、各実施形態について説明する。なお、各実施形態で同様の番号が付されている構成は、特に説明がない限り、各実施形態において同様の構成(同様の処理を行う構成)であるとする。
【0013】
<実施形態1>
図1を参照して、実施形態1に係る表示装置200およびコントローラ100の内部構成について説明する。
【0014】
コントローラ100は、例えば、ユーザが手で把持するリモコン型コントローラ、指に装着する指輪型コントローラ、または、手首に装着する腕輪型コントローラなどである。コントローラ100は、ユーザが手で保持でき、かつ、
図1に示す内部構成を有していれば、任意の装置であってよい。
【0015】
表示装置200は、コントローラ100と通信可能に接続する外部制御装置(情報処理装置)である。例えば、表示装置200は、HMD(Head Mounted Display:頭部装着型の表示装置)である。表示装置200は、表示領域をユーザが視認可能であって、かつ、
図1に示す内部構成を有する装置であれば、任意の装置であってよい。例えば、表示装置200は、スマートフォンまたはノート型PCであってもよい。
【0016】
コントローラ100は、制御部101、方向指示部102、姿勢検出部103、不揮発性メモリ104、揮発性メモリ105、および通信部106を有する。これらの構成は、
内部バス107を介して互いにデータのやり取りを行う。
【0017】
制御部101は、不揮発性メモリ104に格納されたプログラムを実行することによって、コントローラ100全体の処理を制御する。制御部101は、単体または複数のプロセッサにより構成される。
【0018】
方向指示部102は、ユーザによる方向指示(1つの方向を示す指示)を受け付ける。方向指示部102は、1次元もしくは2次元の操作が可能な操作部材を有する操作部である。方向指示部102は、
図3A~
図3Cに示すように、例えば、アナログスティック(ジョイスティックなど)である。方向指示部102は、1次元または2次元の方向指示をユーザから受け付ける。
【0019】
なお、方向指示部102は、ユーザによる1次元または2次元の方向指示を受け付けることができれば、任意の操作部であってよい。例えば、方向指示部102は、押下可能な操作ボタンの表面におけるユーザの指の動きを光学的に検出することにより、方向指示を受け付けてもよい。例えば、方向指示部102は、光学トラッキングポインタであるOptical Track Pad(以下、「OTP」と呼ぶ)であってもよい。また、方向指示部102は、タッチパネルであってもよい。方向指示部102は、1次元の方向指示を受け付ける部材(スライドバー、ダイアル、または回転ホイールなど)であってもよい。
【0020】
姿勢検出部103は、コントローラ100の姿勢(傾きおよび変位)を検知する。姿勢検出部103は、例えば、ジャイロセンサ、または加速度センサである。
【0021】
不揮発性メモリ104は、制御部101が実行するプログラムなどのデータを格納する。
【0022】
揮発性メモリ105は、制御部101がプログラムを実行する際に、バッファおよびワーキングメモリとして利用するメモリである。
【0023】
通信部106は、方向指示部102および姿勢検出部103により取得された情報を、表示装置200に送信する。
【0024】
図1に示すように、表示装置200は、制御部201、撮像部202、表示部203、通信部204、不揮発性メモリ205、および揮発性メモリ206を有する。これらの構成は、内部バス207を介して互いにデータのやり取りを行う。
【0025】
制御部201は、不揮発性メモリ205に格納されたプログラムを実行することによって、表示装置200全体の処理を制御する。制御部201は、単体または複数のプロセッサにより構成される。制御部201は、入力操作が示す方向と処理または内容との対応関係を切り替える切替部であり、かつ、当該処理を実行する処理部でもある。
【0026】
撮像部202は、撮像レンズ、撮像素子(CMOSセンサなど)、およびA/D変換器などを有する。撮像部202は、アナログ信号(撮像レンズを介して入力されるアナログ信号)をデジタルデータに変換して、デジタルデータを画像として取得する。撮像部202は、画像を揮発性メモリ206に展開する。このように、撮像部202は、現実空間を撮像した画像を取得する。
【0027】
表示部203は、揮発性メモリ206に展開された画像をリアルタイムに表示する。すなわち、表示部203の表示領域には、現実空間の画像のライブビュー表示(LV表示;
リアルタイム表示)が行われる。また、表示部203は、複数の仮想物体(制御部201により生成される複数の仮想物体)を表示する。
【0028】
表示部203は、現実空間の画像を表示する。また、表示部203は、位置画像(「コントローラ100への操作に応じて制御される位置」を示す画像)を現実空間の画像に重畳して表示する。ここで、位置画像は、例えば、「コントローラ100の位置」から「表示領域における1つの位置」までを結ぶレーザポインタである。しかしながら、位置画像は、1つの位置を特定する画像であればよい。位置画像は、例えば、1つの位置のみを示す表示アイテムであれば、任意の表示アイテムであってよい。このため、位置画像は、矢印の形状またはその他の任意の形状を有していてもよい。以下、位置画像を、単に「ポインタ」という。
【0029】
通信部204は、コントローラ100(通信部106)から送信された情報を受信する。
【0030】
不揮発性メモリ205は、制御部201が実行するプログラムなどのデータを格納する。
【0031】
揮発性メモリ206は、制御部201がプログラムを実行する際に、バッファおよびワーキングメモリとして利用するメモリである。
【0032】
また、通信部106と通信部204との間の通信は、例えば、無線通信および有線通信のいずれで実現されてもよい。無線通信には、Bluetooth(登録商標)または無線LANを用いることができる。有線通信には、USB(登録商標)またはPCIe(登録商標)のようなインターフェースを用いることができる。
【0033】
なお、実施形態1では、姿勢検出部103がコントローラ100に含まれる例を説明しているが、姿勢検出部103がコントローラ100の外部に存在していてもよい。例えば、姿勢検出部103は、表示装置200の外部に別に設置したカメラ、または、撮像部202であってもよい。この場合には、姿勢検出部103は、コントローラ100を撮影した画像に基づき、コントローラ100の姿勢を検出してもよい。
【0034】
また、表示装置200における撮像部202と表示部203と以外は、表示装置200の表示を制御する情報処理装置が有していてもよい。
【0035】
以下、
図2に示すフローチャートを参照して、実施形態1に係るコントローラ100への入力操作に応じた処理(以下、「入力操作処理」と呼ぶ)について説明する。
図2に示すフローチャートの処理は、コントローラ100がユーザの操作を待っている状態(操作の待ち受け状態)であれば、繰り返し実行される。
【0036】
ステップS2001において、制御部101は、姿勢検出部103が取得したコントローラ100の姿勢の情報をリアルタイムに制御部201に送信する。このとき、表示部203は、LV表示が行われる現実空間の画像に、複数の仮想物体および1つのポインタ(位置画像)を重畳する。
【0037】
ステップS2002において、制御部201は、コントローラ100の姿勢の情報を取得して、コントローラ100の姿勢を把握する。
【0038】
ステップS2003において、制御部201は、コントローラ100への入力操作が行われたか否かを判定する。入力操作が行われていないと判定された場合には、本フローチ
ャートの処理が終了する。入力操作が行われたと判定された場合には、ステップS2004に進む。
【0039】
ここでの「入力操作」は、1次元もしくは2次元の操作可能な操作部材への操作である。なお、「入力操作」は、方向を指示する操作であれば、任意の操作であってもよい。この「入力操作」は、ユーザにより実行されるたびに、姿勢情報と一緒に(或いは、姿勢情報に含まれて)、コントローラ100から制御部201に送信される。
【0040】
ステップS2004において、制御部201は、コントローラ100の姿勢に基づき、入力操作に応じた処理(入力操作処理)を実行する。その処理の実行結果は、表示装置200に反映される。実施形態1では、制御部201は、入力操作と表示装置200の表示との関係として、入力操作が示す方向とポインタの移動方向との関係を、コントローラ100の姿勢に基づき決定する。そして、制御部201は、決定した関係に従って、入力操作に応じてポインタを移動させる。
【0041】
図3A~
図3Cは、コントローラ100の形状と向きの一例を説明する図である。
図3Aは、コントローラ100を上から見た図である、
図3Bは、コントローラ100を横から見た図である。
図3Cは、コントローラ100を斜めから見た図である。
【0042】
コントローラ100において、直方体の形状の本体部に、方向指示部102としてジョイスティックが備え付けられている。ここで、コントローラ100の本体部において、ジョイスティックが備えられている面を「表面」と呼ぶ。そして、コントローラ100の表面の短辺方向を「X軸方向」と呼び、長手方向を「Y軸方向」と呼ぶ。ユーザは、XY平面におけるジョイスティックへの操作により、2次元方向の入力操作を行う。なお、表面に対して鉛直方向を「Z軸方向」と呼ぶ。
【0043】
図4A~
図4Cは、別の形状のコントローラ100の一例として、指輪型のコントローラを説明する図である。
図4Aは、コントローラ100を上から見た図である。
図4Bは、コントローラ100を横から見た図である。
図4Cは、コントローラ100を斜めから見た図である。
【0044】
図4A~
図4Cに示すコントローラ100において、リング状の形状の本体部に、方向指示部102としてOTPが備え付けられている。OTPの操作面を、コントローラ100の「表面」と呼ぶ。そして、リング外装の円環部の中心軸方向を「X軸方向」と呼び、表面でX軸に直交する方向を「Y軸方向」と呼ぶ。ユーザは、XY平面上におけるOTPへの操作により、2次元方向の入力操作を行う。なお、OTP操作面に対して鉛直方向を「Z軸方向」と呼ぶ。
【0045】
図5~
図7に示す表示装置200の表示の例を用いて、実施形態1に係るコントローラ100への入力操作と表示装置200の表示との関係を説明する。
【0046】
図5~
図7では、表示画像501は、表示装置200の表示部203に表示される画像を示す。表示部203において、LV表示が行われている現実空間の画像に、複数のアイコン502(メニューボタン)が重畳されている。また、現実空間の画像では、ユーザが方向指示部102を視認しながら操作を行うために、ユーザの指510に装着された指輪型のコントローラ100が、指510とともに表示されている。さらに、表示されているオブジェクトおよびアイコンを選択するための表示アイテムであるポインタ503が表示されている。なお、仮想物体がさらに表示されていてもよい。
【0047】
(1)
図5を参照して、コントローラ100への入力操作に応じて、制御部201が表
示装置200の表示を制御する処理の流れの第1の例を説明する。
【0048】
まず、コントローラ100の姿勢検出部103は、重力方向を検知する。
図5の例では、Y軸の負方向が重力方向である。そして、表示装置200の制御部201は、重力方向が伝えられると、Y軸の負方向と表示画像501の下方向とを対応させるように、表示画像501とコントローラ100との向きの関係(操作の方向とポインタ503の移動方向との関係)を決める。なお、コントローラ100の向きは、現実空間の画像の解析により検出されてもよい。
【0049】
次に、ユーザは、方向指示部102であるOTPを操作する。例えば、コントローラ100のX軸の正方向に移動するように、ユーザがOTPの表面をなぞる操作をした場合(X軸の正方向を指示する操作が行われた場合)には、その入力情報が制御部201に伝わり、ポインタ503は、
図5のD1方向に移動する。同様に、コントローラ100のY軸の正方向に移動するように、ユーザがOTPの表面をなぞる操作をした場合(Y軸の正方向を指示する操作が行われた場合)には、ポインタ503は、
図5のD2方向に移動する。
【0050】
(2)
図6を参照して、コントローラ100への入力操作に応じて、制御部201が表示装置200の表示を制御する処理の流れの第2の例を説明する。
【0051】
図6では、
図5に示す状態から、指510の向きが90度だけ時計回り方向に回転している。そして、指510に装着されているコントローラ100も、指510に合わせて向きが変わっている。
図6では、X軸の負方向が重力方向である。このため、表示装置200の制御部201は、重力方向が伝えられると、X軸の負方向と表示画像501の下方向とを対応させるように、表示画像501とコントローラ100との向きの関係を決める。
【0052】
図6では、例えば、コントローラ100のX軸の正方向に移動するように、ユーザがOTPの表面をなぞる操作(=X軸の正方向を指示する操作)をした場合には、ポインタ503は
図6のD2方向に移動する。同様に、コントローラ100のY軸の正方向に移動するように、ユーザがOTPの表面をなぞる操作(=Y軸の正方向を指示する操作)をした場合には、ポインタ503は、
図6のD1方向の逆方向に移動する。
【0053】
このように、制御部201は、コントローラ100の姿勢に応じて、コントローラ100に同じ操作が行われた場合であっても、表示装置200に表示されるポインタ503の移動方向を変える。このことで、ユーザの操作の利便性が向上する。
【0054】
(3)
図7を参照して、コントローラ100への入力操作に応じて、制御部201が表示装置200の表示を制御する処理の流れの第3の例を説明する。
【0055】
図7では、指510の向きは、
図5に示す指510の向きと
図6に示す指510の向きの中間の向きである。指510に装着されているコントローラ100の向きも、指510の向きの変化に合わせて、変化している。この状態で、姿勢検出部103は、重力方向を検知する。制御部201は、重力方向が伝えられると、重力方向と表示画像501の下方向とを対応させるように、表示画像501とコントローラ100との向きの関係を決める。
【0056】
図7で、例えば、ユーザがコントローラ100のX軸の正方向に移動するようにOTPの表面をなぞる操作をした場合には、ポインタ503は
図7のD1方向に移動する。同様に、ユーザがコントローラ100のY軸の正方向に移動するようにOTPの表面をなぞる操作をした場合には、ポインタ503は
図7のD2方向に移動する。
【0057】
このように、
図7の例では、コントローラ100の姿勢が
図5および
図6と異なることにより、表示装置200に表示されたポインタ503の移動する方向が変わる。このことで、ユーザの操作の利便性が向上する。
【0058】
なお、
図7では、ポインタ503の移動方向の基準軸(基準方向)が、コントローラ100の傾きと連動する。しかし、コントローラ100のX軸方向が水平方向よりも重力方向に近い場合に、
図5を用いて説明した制御が行われ、X軸方向が重力方向よりも水平方向に近い場合に、
図6を用いて説明した制御が行われてもよい。
【0059】
なお、上記では、入力操作が示す方向とポインタ503の移動方向との関係(以下、「操作移動関係」と呼ぶ)が変更されている。しかし、コントローラ100がユーザの視野の外に位置している場合には、操作移動関係が変更されると、ユーザに違和感が発生することがある。
【0060】
そこで、制御部201は、コントローラ100がユーザの視野の外に位置している場合には、コントローラ100の姿勢に応じて「操作移動関係」を変更することをせずに、予め決定された「操作移動関係」に従ってポインタ503を動かす。例えば、
図5に示す操作移動関係が予め決定されている場合には、制御部201は、コントローラ100の姿勢に関わらず、
図5に示す操作移動関係に従ってポインタ503を動かす。なお、例えば、コントローラ100の方向指示部102の全体が、表示部203の画像に含まれていない場合に、制御部201は、コントローラ100がユーザの視野の外に位置すると判定できる。
【0061】
なお、コントローラ100がユーザの視野の外に位置する場合であっても、コントローラ100が視野の中に位置する場合と同様に、制御部201は、コントローラ100の姿勢情報に応じて操作移動関係を切り替えてもよい。
【0062】
なお、実施形態1では、仮想物体の移動方向を示すアイコン(表示アイテム)が表示されてもよい。このアイコンは、例えば、操作可能な2軸の方向を示す。しかし、コントローラ100の指示方向が1次元である場合には、アイコンは、操作可能な1軸の方向を示していてもよい。
【0063】
実施形態1によれば、コントローラ100の姿勢に応じて、入力操作とポインタの移動方向との関係がより適切に制御されるため、よりユーザの意図に合致した処理が実現できる。このため、ユーザは、コントローラ100をより使用しやすい。
【0064】
<実施形態2>
以下、実施形態2に係るコントローラ100への入力操作と表示装置200の表示との関係を説明する。
図8Aおよび
図8Bは、表示装置200に3次元的な空間(奥行きを含む空間)が表現されている表示領域801と、入力操作との関係を説明する。この3次元的な空間は、現実空間と仮想空間が複合した複合現実空間であってもよいし、仮想空間であってもよい。
【0065】
表示領域801には、予め選択された仮想物体803と、その他の仮想物体804と、仮想物体の移動可能な方向を示すアイコン802とが表示されている。コントローラ100では、
図3に示すように、直方体の形状の本体部に、方向指示部102としてジョイスティックが備え付けられている。
【0066】
図8Aは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が縦
向きに(重力方向に延在するように)把持されている場合を説明する図である。コントローラ100のY軸の正方向を天頂方向(天頂方向)として、Y軸の負方向を重力方向とする。制御部201は、「Y軸の負方向と表示領域801の3次元空間における重力方向とが対応し、かつ、X軸の正方向と
図8AのD1方向が対応する」ように、コントローラ100への入力操作と表示装置200の表示との関係を設定する。このため、方向指示部102がX軸の正方向に操作される(=X軸の正方向を指示する操作が行われる)と、その入力情報が制御部201に伝わり、仮想物体803がD1方向に移動する。同様に、コントローラ100の方向指示部102がY軸の正方向に操作される(=Y軸の正方向を指示する操作が行われる)と、仮想物体803がD2方向(上方向)に移動する。
【0067】
なお、仮想物体の移動方向を示すアイコン802は、3次元的な空間の奥行き方向を含まない2方向を指し示している。この2方向が、仮想物体803の移動可能な方向である。
【0068】
図8Bは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が横向きに(水平方向に延在するように)把持されている場合を説明する図である。コントローラ100のX軸の正方向を天頂方向として、X軸の負方向を重力方向とする。制御部201は、「X軸の負方向と表示領域801における重力方向とが対応し、かつ、Y軸の負方向と
図8BのD1方向が対応する」ように、コントローラ100への入力操作と表示装置200の表示との関係を設定する。このため、方向指示部102がX軸の正方向に操作されると、仮想物体803がD2方向(縦方向)に移動する。方向指示部102がY軸の正方向に操作されると、仮想物体803がD1方向の逆方向に移動する。
【0069】
また、
図9Aは、コントローラ100が奥行方向に延在するように、かつ、コントローラ100の表面が天頂方向に向いた状態で、コントローラ100が把持されている場合を説明する図である。コントローラ100のZ軸の正方向が天頂方向であり、Z軸の負方向が重力方向であるとする。制御部201は、「Z軸の負方向と表示領域801の3次元空間における重力方向とが対応し、かつ、X軸の正方向と
図9AのD1方向とが対応する」ように、コントローラ100への入力操作と表示装置200の表示との関係を設定する。このため、方向指示部102がX軸の正方向に操作されると、その入力情報が制御部201に伝わり、仮想物体803がD1方向に移動する。同様に、コントローラ100の方向指示部102がY軸の正方向に操作されると、仮想物体803がD2方向に移動する。
【0070】
図9Aでは、仮想物体の移動方向を示すアイコン802は、表示領域801の空間における奥行き方向と横方向との2つの方向を示している。この2つの方向が仮想物体803の移動可能な方向である。
【0071】
図9Bは、コントローラ100の表面が天頂方向に向き、かつ、コントローラ100が横向きに把持されている場合を説明する図である。コントローラ100のZ軸の正方向を天頂方向として、Z軸の負方向を重力方向とする。制御部201は、「Z軸の負方向と表示領域801の3次元空間における重力方向とが対応し、かつ、Y軸の負方向と
図9BのD1方向とが対応する」ように、コントローラ100への入力操作と表示装置200の表示との関係を設定する。このため、方向指示部102がX軸の正方向に操作されると、仮想物体803がD2方向(奥行き方向)に移動する。同様に、コントローラ100の方向指示部102がY軸の正方向に操作されると、仮想物体803がD1方向の逆方向に移動する。
【0072】
このように、コントローラ100の姿勢に基づき、コントローラ100のX軸およびY軸方向への入力操作に対応する処理対象(仮想物体)の移動方向(奥行き方向を含む)を切り替えている。従って、コントローラ100の姿勢が一定でない場合であっても、ユー
ザの意図する方向に仮想物体を移動させることができる。
【0073】
【0074】
しかし、コントローラ100の姿勢に応じた対応関係の切り替えは、90度の回転に限定されず、その中間的な回転角度でも効果を得ることができる。例えば、リアルタイムにコントローラ100の姿勢を検出し続け、コントローラ100の向きが中途半端な向きである場合には、その向きに応じて仮想物体の移動方向を設定することにより、実施形態2に係る効果が得られる。
【0075】
<変形例1>
変形例1として、
図10A~
図10Cを参照して、コントローラ100の位置を検知した結果(手の延縮の状態)に応じて、さらに操作感度(操作量に対する処理の強度)を変更する例を説明する。変形例1では、入力操作に応じて仮想物体を移動させる例を説明する。
【0076】
コントローラ100は、実施形態1の構成に加えて、検知部を有する。検知部は、例えば、撮像部202によるコントローラ100を撮影した結果に基づき、コントローラ100の位置を検知する。検知部は、検知したコントローラ100の位置とユーザの体との距離(距離が短いか、長いか、または、操作しやすい中間くらいの距離であるか)を判定(識別)する。
【0077】
図10Aは、コントローラ100を持ったユーザの手が体との距離Lが第1の距離L1(短い距離)である場合のユーザを示している。
図10Cは、コントローラ100を持ったユーザの手が体との距離Lが第2の距離L2(長い距離)である場合のユーザを示している。
図10Bは、コントローラ100を持ったユーザの手が体との距離Lが第3の距離L3(第1の距離L1<第3の距離L3<第2の距離L2)である場合のユーザを示している。
【0078】
通常の操作時には、ユーザは、第2の距離L2だけコントローラ100から離れて、コントローラ100を操作していると仮定する。この場合には、コントローラ100自体の向きは、
図9Aに示すように、奥行き方向に向いている。
【0079】
図10Aに示すユーザの状態において、ユーザが方向指示部102を奥行き方向(または手前方向)に操作した場合には、コントローラ100とユーザの体との距離Lが第1の距離L1である。このとき、制御部201は、距離Lが第1の距離L1より長い場合よりも、奥行き方向への仮想物体の移動速度を遅くする。なお、制御部201は、コントローラ100とユーザの体との距離Lが短いほど、移動速度を遅くしてもよい。
【0080】
一方で、
図10Cに示すユーザの状態において、ユーザが方向指示部102を奥行き方向(または手前方向)に操作した場合には、制御部201は、コントローラ100とユーザの体との距離Lが第2の距離L2である。このとき、制御部201は、距離Lが第2の距離L2より短い場合よりも、奥行き方向への仮想物体の移動速度を速くする。制御部201は、コントローラ100とユーザの体との距離Lが長いほど、移動速度を速くしてもよい。
【0081】
このように、表示装置200は、コントローラ100の体からの距離(手の延縮)に応じて、コントローラ100の方向指示部102への入力操作時の処理対象の操作感度(操
作量に対する処理の強度)である移動速度を切り替えている。よって、ユーザは、直感的な操作によって、意図と合致するような処理を行うことができる。
【0082】
なお、制御部201は、ユーザの任意の手の状態に基づき、操作感度を制御(変更)してもよい。例えば、制御部201は、ユーザの手が開いている状態では操作感度を第1の感度に設定して、ユーザの手が閉じている状態では操作感度を第1の感度よりも低い第2の感度に設定してもよい。または、制御部201は、曲がっている指の数が多いほど、操作感度を低く設定してもよい。さらに、制御部201は、ユーザの任意の手の状態に基づき、入力操作が行われてから処理が実行されるまでの時間(遅延時間)を制御(変更)してもよい。制御部201は、例えば、コントローラ100とユーザの体との距離Lが長い(または、短い)ほど、遅延時間を長くしてもよい。
【0083】
<変形例2>
さらに、変形例2として、制御部201は、コントローラ100の姿勢が水平方向よりも鉛直方向に傾いている(鉛直方向よりも水平方向に傾いている)か否かを判定してもよい。そして、制御部201は、判定した結果に対応した内容の処理を、入力操作に応じて行ってもよい。制御部201は、例えば、コントローラ100の姿勢が水平方向よりも鉛直方向に傾いている場合には、実施形態1に示すように入力操作に応じて仮想物体を移動させる処理を行う。一方で、制御部201は、コントローラ100の姿勢が水平方向よりも鉛直方向に傾いていない場合には、入力操作に応じて仮想物体の色または形を変更する処理を行う。なお、水平方向は奥行き方向と横向き方向との両方を含んでいるが、奥行き方向と横向き方向のいずれかに入力操作が示す方向を限定することで、誤作動を減らすこともできる。
【0084】
<実施形態3>
以下、
図11A~
図11Cを用いて、実施形態3に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0085】
実施形態3では、実施形態1とは異なり、入力操作に応じた処理が仮想物体の回転処理である。制御部201は、姿勢検出部103により検出されたコントローラ100の姿勢に基づき、入力操作が示す方向と仮想物体(表示アイテム)の回転方向との対応関係を切り替える。
【0086】
図11Aでは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が縦向きに把持されている場合を説明する図である。このとき、ユーザが方向指示部102をX軸方向に操作すると、予め選択された仮想物体803が、3次元空間の縦方向(上下方向)を回転軸とした回転方向で回転する。
【0087】
図11Bでは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が横向きに把持されている場合を説明する図である。コントローラ100のX軸の正方向が天頂方向であり、X軸の負の方向が重力方向であるとする。このとき、ユーザが方向指示部102をX軸方向に操作すると、予め選択された仮想物体803が3次元空間の横方向(左右方向)を回転軸とした回転方向で回転する。
【0088】
図11Cでは、コントローラ100の表面が天頂方向に向き、かつ、コントローラ100が奥行き方向に延在するように把持されている場合を説明する図である。このとき、ユーザが方向指示部102をX軸方向に操作すると、予め選択された仮想物体803が3次元空間の奥行き方向を軸とした回転方向で回転する。
【0089】
このように、表示装置200は、コントローラ100の姿勢に基づき、方向指示部10
2への入力操作に対応する処理対象の回転方向を切り替えている。よって、ユーザは、直感的な操作によって、意図と合致するような処理を行うことができる。
【0090】
<実施形態4>
以下、
図12A~
図14Cを参照して、実施形態4に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0091】
実施形態4では、実施形態1とは異なり、入力操作に応じた処理は、仮想物体の伸縮の処理(拡大または縮小の処理)である。制御部201は、姿勢検出部103により検出されたコントローラ100の姿勢に基づき、入力操作と仮想物体の伸縮方向(拡大または縮小の方向)との関係を切り替える。
【0092】
図12Aおよび
図12Bは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が縦向きに把持されている場合の表示を表す図である。
図12Cは、コントローラ100の表面がユーザに向き、かつ、縦向きのコントローラ100を示している。
【0093】
このとき、ユーザが方向指示部102をY軸の正方向に操作すると、予め選択された仮想物体803が、
図12Aのように、3次元空間の縦方向(D1の矢印の方向)に拡大して表示される。Y軸の負方向に操作すると、予め選択された仮想物体803が、3次元空間の縦方向(D1の矢印の方向)に縮小して表示される。
【0094】
一方、ユーザが方向指示部102をX軸の負方向に操作すると、仮想物体803が、
図12Bのように、3次元空間の横方向(D2の矢印の方向)に拡大して表示される。X軸の正方向に操作すると、仮想物体803が、3次元空間の横方向(D2の矢印の方向)に縮小して表示される。
【0095】
図13Aおよび
図13Bは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が横向きに把持されている場合の表示を表す図である。
図13Cは、コントローラ100の表面がユーザに向き、かつ、横向きのコントローラ100を示している。
【0096】
このとき、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803が、
図13Aに示すように、3次元空間の縦方向(D1の矢印の方向)に拡大して表示される。ユーザが方向指示部102をX軸の負方向に操作すると、仮想物体803が、3次元空間の縦方向(D1の矢印の方向)に縮小して表示される。
【0097】
一方、ユーザが方向指示部102をY軸の正方向に操作すると、仮想物体803が、
図13Bに示すように、3次元空間の横方向(D2の矢印の方向)に拡大して表示される。ユーザが方向指示部102をY軸の負方向に操作すると、仮想物体803が、3次元空間の横方向(D2の矢印の方向)に縮小して表示される。
【0098】
図14Aおよび
図14Bは、コントローラ100の表面が天頂方向を向き、かつ、コントローラ100が奥行き方向に延在するように把持されている場合の表示を示す。
図14Cは、コントローラ100の表面が天頂方向を向き、かつ、コントローラ100が奥行き方向に延在するように把持されている場合のコントローラ100を示している。
【0099】
このとき、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803が、
図14Aに示すように、3次元空間の横方向(D1の矢印の方向)に拡大して表示される。ユーザが方向指示部102をX軸の負方向に操作すると、仮想物体803が、3次元空間の横方向(D1の矢印の方向)に縮小して表示される。
【0100】
一方、ユーザが方向指示部102をY軸の正方向に操作すると、仮想物体803が、
図14Bに示すように、3次元空間の奥行き方向(D2の矢印の方向)に拡大して表示される。ユーザが方向指示部102をY軸の負方向に操作すると、仮想物体803が、3次元空間の奥行き方向(D2の矢印の方向)に縮小して表示される。
【0101】
このように、制御部201は、コントローラ100の姿勢に応じて、方向指示部102への入力操作によって処理対象を拡大するか(または縮小するか)否かとともに、伸縮方法(拡大方向または縮小方法)を切り替える。よって、ユーザは、直感的な操作によって、意図と合致するような処理を行うことができる。
【0102】
<実施形態5>
図15A~
図15Cを用いて、実施形態5に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0103】
実施形態5では、実施形態1とは異なり、入力操作に応じた処理は、複数の仮想物体(複数の選択肢)の中から少なくとも1つを選ぶ選択処理である。実施形態5では、制御部201は、姿勢検出部103により検出されたコントローラ100の姿勢に基づき、現在選択している仮想物体を基準として、他の仮想物体の中から選択する仮想物体の選択方向を切り替える。以下では、仮想物体803が現在選択されているものとして説明する。
【0104】
図15Aは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が縦向きに把持されている場合を説明する図である。このとき、制御部201は、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803のD1方向に存在する仮想物体805を選択する。また、制御部201は、ユーザが方向指示部102をY軸の正方向に操作すると、仮想物体803のD2方向に存在する仮想物体806を選択する。
【0105】
図15Bは、コントローラ100の表面がユーザに向き、かつ、コントローラ100が横向きに把持されている場合を説明する図である。このとき、制御部201は、ユーザが方向指示部102をY軸の負方向に操作すると、仮想物体803のD1方向に存在する仮想物体805を選択する。また、制御部201は、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803のD2方向に存在する仮想物体806を選択する。
【0106】
図15Cは、コントローラ100の表面が天頂方向を向き、かつ、コントローラ100が奥行き方向に延在するように把持されている場合を説明する図である。このとき、制御部201は、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803のD1方向に存在する仮想物体805を選択する。また、制御部201は、ユーザが方向指示部102をY軸の正方向に操作すると、仮想物体803のD2方向に存在する仮想物体807を選択する。
【0107】
このように、表示装置200は、コントローラ100の姿勢に応じて、方向指示部102への入力操作時に選択されている仮想物体を基準として、他の仮想物体うちから、どのように仮想物体を選択するかを切り替えている。特に、選択可能な仮想物体の数が多く、3次元的な空間内で広く分散して配置されているときに特に有効である。よって、ユーザは、直感的な操作によって、意図と合致するような処理を行うことができる。
【0108】
<実施形態6>
図16Aおよび
図16Bを用いて、実施形態6に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0109】
実施形態6では、実施形態1とは異なり、入力操作に応じた処理は、表示アイテム(仮
想物体およびポインタ)の移動処理である。表示装置200は、姿勢検出部103により検出されたコントローラ100の姿勢に基づき、仮想物体の移動処理とポインタの移動処理とを切り替える。
【0110】
図16Aは、コントローラ100の表面が天頂方向を向き、かつ、コントローラ100が奥行き方向に延在するように把持されている場合を説明する図である。この場合には、制御部201は、処理対象として仮想物体803を選択する。そして、ユーザが方向指示部102をX軸の正方向に操作すると、仮想物体803がD1方向に移動する。また、ユーザが方向指示部102をY軸の正方向に操作すると、仮想物体803がD2方向に移動する。
【0111】
図16Bは、コントローラ100がユーザに向き、かつ、コントローラ100が縦向きに把持されている場合を説明する図である。
図16Bは、
図16Aに示すようにコントローラ100が奥行き方向に延在するように把持されていた状態から、縦向きに変えられた状態を示す。
【0112】
この場合には、コントローラ100の姿勢が検出されると、表示領域801にポインタ503が表示される。ポインタ503が表示されている状態では、コントローラ100の入力操作に応じてポインタが移動する。つまり、制御部201は、処理対象としてポインタ503を選択する。例えば、ユーザが方向指示部102をX軸の正方向に操作すると、ポインタ503がD1方向に移動する。また、ユーザが方向指示部102をY軸の正方向に操作すると、ポインタ503がD2方向に移動する。
【0113】
なお、仮想物体の移動では、画像またはマーカーなどを用いて、仮想物体の移動範囲の床面が認識されて、床面に接した2次元平面においてのみ仮想物体が移動するとよい。現実の物体に対応する物体が仮想物体として配置される場合(例えば、家具が配置される場合)には、仮想物体が空中に浮かんでいると不自然に見えるため、床面に接した仮想物体が配置される。
【0114】
このため、実施形態6のように、ポインタの移動と仮想物体の移動とを1つのコントローラ100で実現する場合には、仮想物体の移動は3次元的な移動ではなく、2次元的な移動である方が、ユーザの操作性が高い。例えば、コントローラ100の表面が天頂方向に向いている場合にのみ、制御部201は、床面に接した2次元平面において仮想物体を移動させる。言い換えると、水平方向に平行な2次元的な方向の操作を方向指示部102が受け付ける場合にのみ、仮想物体の移動が実現される。
【0115】
また、縦向きに把持されている場合と、そうでない場合との判定は、ポインタの移動と仮想物体の移動の切り替えに用いることができる。ポインタの移動と仮想物体の移動の切り替えは、基準面に対するコントローラ100(コントローラ100の表面)の角度と所定の角度(例えば、45度または30度など)との大小関係で明確に行うことができる。
【0116】
ここで、基準面とは、仮想物体を配置する平面に対応する、現実空間の平面である。例えば、基準面は、重力方向に垂直な平面(=水平面)である。基準面が水平面である場合には、ユーザが立って、コントローラ100を操作している場合に好適である。
【0117】
一方、ユーザが前面を見て立っていない場合(仰向けに寝た状態でユーザが表示装置200を装着している場合、またはユーザが床を見ている場合)には、水平面(重力方向に垂直な面)を基準面としない方がよいことがある。この場合には、頭部姿勢検出部により検出されたユーザの頭部の姿勢に対応する平面を基準面とした方が、ユーザが見ている画面内の向きに好適な基準面が設定できるため、より直感的に操作しやすい。
【0118】
なお、頭部姿勢検出部は、ユーザが装着している表示装置200の撮像部202により取得された周囲の画像に画像処理をすることによって、頭部の姿勢を検出する。または、頭部姿勢検出部は、表示装置200に内蔵されたジャイロセンサなどによって取得されるセンサ情報に基づき、頭部の姿勢を検出する。
【0119】
このようにして、ユーザの頭部の姿勢が検出されると、制御部201は、ユーザの頭頂部側を上方向と定義し、ユーザの顎側を下方向と定義することで、頭部の上下方向に垂直な平面を基準面として設定できる。または、制御部201は、仮想物体の移動可能な範囲の床面を画像またはマーカーなどで認識して、その床面を基準面としてもよい。
【0120】
実施形態6では、制御部201は、基準面に対するコントローラ100(コントローラ100の表面)の傾き(角度)が所定の傾き(例えば、45度の傾き)よりも大きい場合には、ポインタを移動させる。制御部201は、基準面に対するコントローラ100の傾きが所定の傾きよりも小さい場合には、仮想物体を移動させる。このような制御を実現するために、コントローラ100は、コントローラ100の姿勢情報を制御部201に継続的に送り続ける。ここで、所定の傾き(所定の角度)が45度の傾きであれば、ユーザは、コントローラ100がどのような状態で処理対象の切り替えが行われるかを把握しやすい。
【0121】
このように、表示装置200は、コントローラ100の姿勢に応じて、方向指示部102への入力操作を、仮想物体の移動とポインタの移動とのいずれに用いるかを切り替える。よって、ユーザは、直感的な操作によって、意図と合致するような処理を行うことができる。
【0122】
<実施形態7>
実施形態7に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0123】
実施形態7では、表示装置200は、実施形態1とは異なり、基準面に対する、コントローラ100の表面(操作部材の操作面)のピッチ、ヨー、およびロール方向の傾きに基づき、3次元空間のうち、処理を行う2次元平面を切り替える。
【0124】
姿勢検出部103は、基準面(例えば、水平面)に対する、コントローラ100の表面のピッチ、ヨー、およびロール方向のそれぞれの傾きを算出する。表示装置200は、この傾きに基づき、3次元空間内でコントローラ100の入力操作に対応する処理を行う2次元平面(或いは操作方向の軸)を決定して、その平面上(或いは、操作軸上)での処理を行う。
【0125】
制御部201は、コントローラ100の操作部材(コントローラ100の表面)と全く同じ姿勢の2次元平面を、操作平面として決定してもよい。例えば、現実空間におけるユーザから見て奥行方向をz方向として、ユーザから見て左右方向をx方向として、重力方向をy方向と仮定する。この場合に、制御部201は、例えば、現実空間のxy平面、xz平面、およびyz平面のうち、コントローラ100の表面に最も姿勢が近い平面を選択し、選択した平面で処理を行ってもよい。
【0126】
実施形態7によれば、コントローラ100の姿勢に応じてより適切な平面が選択されるため、ユーザの意図する平面で処理を行うことが可能になる。
【0127】
<実施形態8>
図17A~
図17Cを用いて、実施形態8に係るコントローラ100への入力操作と表示装置200の表示の関係を説明する。
【0128】
実施形態8では、実施形態1とは異なり、入力操作に応じた処理は、仮想物体の移動および設定変更の処理である。制御部201は、姿勢検出部103により検出されたコントローラ100の姿勢に基づき、複数の仮想物体の中から選択対象を切り替える。なお、予め、コントローラ100の向きと選択される仮想物体との対応関係は設定されている。
【0129】
図17Aでは、コントローラ100の表面がユーザに向いており、かつ、コントローラ100が縦向きに把持されている場合を説明する図である。コントローラ100の姿勢が
図17Aに示す姿勢であれば、制御部201は、仮想物体803を選択する。制御部201は、コントローラ100への入力操作に応じて、選択された仮想物体803を移動させる。このとき、予め定義された床平面に沿った2次元平面で仮想物体803が移動する。
【0130】
図17Bでは、コントローラ100の表面がユーザに向いており、かつ、コントローラ100が横向きに把持されている場合を説明する図である。コントローラ100の姿勢が
図17Bに示す姿勢であれば、制御部201は、仮想物体807を選択する。制御部201は、コントローラ100への入力操作に応じて、選択された仮想物体807を移動させる。このとき、予め定義しておいた床平面に沿った2次元平面で仮想物体807が移動する。
【0131】
図17Cは、コントローラ100の表面が天頂方向を向いており、かつ、コントローラ100が奥行き方向に延在するように把持されている場合を説明する図である。コントローラ100の姿勢が
図17Cに示す姿勢であれば、制御部201は、仮想物体805を選択する。制御部201は、コントローラ100への入力操作に応じて、選択された仮想物体805を移動させる。このとき、予め定義しておいた床平面に沿った2次元平面で仮想物体805が移動する。
【0132】
このように、表示装置200は、コントローラ100の姿勢に応じて、選択する仮想物体を切り替えている。このような切り替えは、特に選択対象の仮想物体の数が少ない場合に、より好適である。これによって、ユーザが選択する仮想物体の切り替えを素早く行うことができる。
【0133】
上記の各実施形態および各変形例では、制御部201は、コントローラ100の姿勢に応じて、「ユーザが行う操作」と「処理の内容または対象」との対応関係を切り替えている。そこで、対応関係の切り替えが行われた場合には、制御部201は、通知部(音声または表示による通知を行う機能部)を制御して、対応関係の切り替えが行われた旨をユーザに通知してもよい。
【0134】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【0135】
また、上記において、「AがB以上の場合にはステップS1に進み、AがBよりも小さい(低い)場合にはステップS2に進む」は、「AがBよりも大きい(高い)場合にはステップS1に進み、AがB以下の場合にはステップS2に進む」と読み替えてもよい。逆に、「AがBよりも大きい(高い)場合にはステップS1に進み、AがB以下の場合にはステップS2に進む」は、「AがB以上の場合にはステップS1に進み、AがBよりも小さい(低い)場合にはステップS2に進む」と読み替えてもよい。このため、矛盾が生じない限り、「A以上」は、「Aよりも大きい(高い;長い;多い)」と読み替えてよく、
「A以下」は、「Aよりも小さい(低い;短い;少ない)」と読み替えてもよい。そして、「Aよりも大きい(高い;長い;多い)」は、「A以上」と読み替えてもよく、「Aよりも小さい(低い;短い;少ない)」は「A以下」と読み替えてもよい。
【0136】
なお、上記の各実施形態(各変形例)の各機能部は、個別のハードウェアであってもよいし、そうでなくてもよい。2つ以上の機能部の機能が、共通のハードウェアによって実現されてもよい。1つの機能部の複数の機能のそれぞれが、個別のハードウェアによって実現されてもよい。1つの機能部の2つ以上の機能が、共通のハードウェアによって実現されてもよい。また、各機能部は、ASIC、FPGA、DSPなどのハードウェアによって実現されてもよいし、そうでなくてもよい。例えば、装置が、プロセッサと、制御プログラムが格納されたメモリ(記憶媒体)とを有していてもよい。そして、装置が有する少なくとも一部の機能部の機能が、プロセッサがメモリから制御プログラムを読み出して実行することにより実現されてもよい。
【0137】
(その他の実施形態)
本発明は、上記の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0138】
上記の実施形態の開示は、以下の構成、方法、およびプログラムを含む。
(構成1)
コントローラの姿勢を取得する取得手段と、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理手段と、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替手段と、
を有することを特徴とする情報処理装置。
(構成2)
前記処理手段は、前記空間に表示された表示アイテムを、前記第1の操作に応じて移動させる処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記表示アイテムを移動させる方向との対応関係を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成3)
前記表示アイテムは、前記空間における位置を示すポインタ、または、前記空間における仮想物体である、
ことを特徴とする構成2に記載の情報処理装置。
(構成4)
前記処理手段は、前記空間に表示された仮想物体を、前記第1の操作に応じて回転させる処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記仮想物体を回転させる方向との対応関係を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成5)
前記処理手段は、前記空間における仮想物体を伸縮する処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が示す方向と前記仮想物体の伸縮方向との対応関係を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成6)
前記処理手段は、前記第1の操作に応じて、複数の選択肢から1つを選択する処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記第1の操作が行われることによって選択される選択肢を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成7)
前記処理手段は、前記第1の操作に応じて、前記空間に表示された表示アイテムに処理を行い、
前記切替手段は、前記コントローラの姿勢に基づき、前記処理手段による処理が行われる前記表示アイテムを切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成8)
前記切替手段は、前記コントローラの姿勢に基づき、前記空間における仮想物体と、前記空間における位置を示すポインタとのうちから、前記処理手段による処理が行われる前記表示アイテムを切り替える
ことを特徴とする構成7に記載の情報処理装置。
(構成9)
前記切替手段は、基準面に対する前記コントローラの傾きが、所定の傾きよりも大きいか否かに応じて、前記第1の操作と前記処理の内容または対象との対応関係を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成10)
前記処理手段は、前記空間における仮想物体と、前記空間における位置を示すポインタとのいずれかを、前記第1の操作に応じて移動させる処理を行い、
前記切替手段は、
1)前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも小さい場合には、前記第1の操作に応じて前記仮想物体が移動するように制御し、
2)前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも大きい場合には、前記第1の操作に応じて前記ポインタが移動するように制御する、
ことを特徴とする構成9に記載の情報処理装置。
(構成11)
前記処理手段は、前記第1の操作に応じて、前記空間のうち第1の平面において前記処理を行い、
前記切替手段は、前記基準面に対する前記コントローラの傾きが、前記所定の傾きよりも大きいか否かに応じて、前記第1の平面として選択する平面を切り替える、
ことを特徴とする構成9に記載の情報処理装置。
(構成12)
前記所定の傾きは、45度の傾きである、
ことを特徴とする構成9から11のいずれかに記載の情報処理装置。
(構成13)
前記処理手段は、前記第1の操作に応じて、前記空間のうち第2の平面において前記処理を行い、
前記切替手段は、基準面に対する前記コントローラのピッチ、ヨー、およびロール方向の傾きに基づき、前記処理が行われる前記第2の平面を切り替える、
ことを特徴とする構成1に記載の情報処理装置。
(構成14)
前記基準面は、水平面である、
ことを特徴とする構成9から13のいずれかに記載の情報処理装置。
(構成15)
前記基準面は、前記ユーザの頭部の上下方向に垂直な面である、
ことを特徴とする構成9から13のいずれかに記載の情報処理装置。
(構成16)
前記ユーザの手の状態を検知する検知手段をさらに有し、
前記切替手段は、さらに前記手の状態に基づき、前記第1の操作の操作量に対する処理の強度である操作感度を変更する、
ことを特徴とする構成1から15のいずれかに記載の情報処理装置。
(構成17)
前記切替手段により前記対応関係が切り替えられた場合には、前記対応関係が切り替えられた旨を通知する通知手段をさらに有する、
ことを特徴とする構成1から16のいずれかに記載の情報処理装置。
(方法)
コントローラの姿勢を取得する取得ステップと、
ユーザによる前記コントローラへの第1の操作であって、方向を指示する第1の操作に応じて、表示手段に表示された空間における処理を行う処理ステップと、
前記コントローラの姿勢に基づき、前記第1の操作と前記処理の内容または対象との対応関係を切り替える切替ステップと、
を有することを特徴とする情報処理方法。
(プログラム)
コンピュータを、構成1から17のいずれかに記載の情報処理装置の各手段として機能させるためのプログラム。
【符号の説明】
【0139】
100:コントローラ、200:表示装置(情報処理装置)、
201:制御部