IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 筑波大学の特許一覧

特許7442783情報処理装置、情報処理方法、およびプログラム
<>
  • 特許-情報処理装置、情報処理方法、およびプログラム 図1
  • 特許-情報処理装置、情報処理方法、およびプログラム 図2
  • 特許-情報処理装置、情報処理方法、およびプログラム 図3
  • 特許-情報処理装置、情報処理方法、およびプログラム 図4
  • 特許-情報処理装置、情報処理方法、およびプログラム 図5
  • 特許-情報処理装置、情報処理方法、およびプログラム 図6
  • 特許-情報処理装置、情報処理方法、およびプログラム 図7
  • 特許-情報処理装置、情報処理方法、およびプログラム 図8
  • 特許-情報処理装置、情報処理方法、およびプログラム 図9
  • 特許-情報処理装置、情報処理方法、およびプログラム 図10
  • 特許-情報処理装置、情報処理方法、およびプログラム 図11
  • 特許-情報処理装置、情報処理方法、およびプログラム 図12
  • 特許-情報処理装置、情報処理方法、およびプログラム 図13
  • 特許-情報処理装置、情報処理方法、およびプログラム 図14
  • 特許-情報処理装置、情報処理方法、およびプログラム 図15
  • 特許-情報処理装置、情報処理方法、およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-26
(45)【発行日】2024-03-05
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 3/023 20060101AFI20240227BHJP
   G06F 3/0489 20220101ALI20240227BHJP
   G06F 3/04815 20220101ALI20240227BHJP
   G06F 3/04886 20220101ALI20240227BHJP
【FI】
G06F3/023 460
G06F3/0489
G06F3/04815
G06F3/023 470
G06F3/04886
【請求項の数】 7
(21)【出願番号】P 2019203287
(22)【出願日】2019-11-08
(65)【公開番号】P2021077097
(43)【公開日】2021-05-20
【審査請求日】2022-10-17
(73)【特許権者】
【識別番号】504171134
【氏名又は名称】国立大学法人 筑波大学
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】志築 文太郎
(72)【発明者】
【氏名】▲柳▼原 直貴
【審査官】石川 亮
(56)【参考文献】
【文献】中国特許出願公開第109683667(CN,A)
【文献】中国特許出願公開第109542239(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/023
G06F 3/048-3/04895
(57)【特許請求の範囲】
【請求項1】
仮想空間を示す画像を表示装置に表示する仮想空間表示部と、
前記仮想空間に、曲面に沿って配列された複数の仮想キーを含む仮想キーボードを配置する仮想キーボード配置部と、
入力装置を介して指示される前記仮想空間内の指示位置を検出する指示位置検出部と、
前記仮想キーボードを含む領域における前記指示位置の軌跡に基づいて、1または複数の単語を前記仮想空間に提示する単語提示部と、
を備えた情報処理装置。
【請求項2】
前記曲面は、前記仮想空間における操作の起点位置から奥行方向に向かって凹んだ凹面である、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記指示位置検出部は、ユーザが保持する前記入力装置の現実空間における動きに基づいて、前記指示位置を検出する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記情報処理装置は、前記仮想キーボードの配置位置を変更可能な第1モード、および、前記仮想キーボードを用いて単語を入力可能な第2モードのそれぞれにおいて動作可能であり、
前記仮想キーボード配置部は、前記第1モードにおいて、前記指示位置の変化に伴い前記仮想キーボードの配置位置を前記指示位置の近傍に移動させ、前記第1モードから前記第2モードに移行後、前記仮想キーボードの配置位置を、前記第2モードに移行する直前の配置位置に固定し、
前記単語提示部は、前記第2モードにおいて検出された指示位置の軌跡に基づいて、前記1または複数の単語を提示する、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記単語提示部は、複数の単語を提示する場合、各単語に対応する選択領域を含むガイドオブジェクトを前記仮想空間に提示し、
前記ガイドオブジェクトに含まれる複数の選択領域のうち、前記入力装置を介して指示された選択領域に対応する単語を選択する単語選択部をさらに備える、
ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
仮想空間を示す画像を表示装置に表示するステップと、
前記仮想空間に、曲面に沿って配列された複数の仮想キーを含む仮想キーボードを配置するステップと、
入力装置を介して指示される前記仮想空間内の指示位置を検出するステップと、
前記仮想キーボードを含む領域における前記指示位置の軌跡に基づいて、1または複数の単語を前記仮想空間に提示するステップと、
を情報処理装置が実行する情報処理方法。
【請求項7】
請求項1~のいずれか1項に記載の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、xR環境において文字を入力する技術に関する。
【背景技術】
【0002】
xR(X Reality または Extended Reality)と称される技術が近年、普及している。xRとは、仮想現実(VR:Virtual Reality)、拡張現実(AR:Augmented Reality)、複合現実(MR:Mixed Reality)、代替現実(Substitutional Reality)等といった技術の総称である。例えば、VRを用いたゲームや、会議等のアプリケーションでは、文字の入力が必要となる場合がある。そのため、xRにより提供される環境(以下においてxR環境と称する)において文字を入力する技術が知られている。
【0003】
非特許文献1には、xR環境に配置された平面状の仮想キーボードに含まれる仮想キーを、位置トラッキングされるコントローラまたは指先を用いてタイピングさせる技術が記載されている。非特許文献2には、入力したい単語を構成する各文字の仮想キーを通るような軌跡を平面状の仮想キーボード上に描くことによって、当該単語を入力する技術が記載されている。非特許文献3には、xR環境に配置された平面状の仮想キーボード上に上述の軌跡を描くために、指に装着するリング型のデバイスを用いる技術が記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】Marco Speicher, Anna Maria Feit, Pascal Ziegler, and Antonio Kruger, "Selection-based Text Entry in Virtual Reality", In Proc of CHI'18. ACM, New York, NY, USA, Article 647, pp1-13.
【文献】Per-Ola Kristensson and Shumin Zhai, "SHARK2 : A Large Vocabulary Shorthand Writing System for Pen-based Computers", In Proc of UIST'04 ACM, New York, NY, USQ, pp43-52.
【文献】Aakar Gupta, Cheng Ji, Hui-Shyong Yeo, Aaron Quigley, and Daniel Vogel, "RotoSwype: Word-Gesture Typing using a Ring", In Proc of CHI'19 ACM, New York, NY, USA, Article 14, pp1-12.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1、3に記載された技術では、仮想キーが平面に沿って配置されているため、仮想空間において操作の起点となる起点位置からの距離が最も近い仮想キーと、最も遠い仮想キーとの間では、当該距離の差が大きい。なお、仮想空間における操作の起点位置とは、仮想空間の視点であってもよいし、現実空間におけるコントローラまたは指の位置に対応する仮想空間の位置であってもよい。このため、ユーザは、これらの仮想キーを操作するために、現実空間において手の動きを微調整する必要があり、疲労を感じやすい。
【0006】
本発明の一態様は、xR環境における文字入力操作においてユーザの疲労を軽減することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明の一態様に係る情報処理装置は、仮想空間を示す画像を表示装置に表示する仮想空間表示部と、前記仮想空間に、曲面に沿って配列された複数の仮想キーを含む仮想キーボードを配置する仮想キーボード配置部と、を備える。
【0008】
上記の構成によれば、複数の仮想キーを配列する曲面の形状を適宜設定することにより、仮想空間における操作の起点となる起点位置からの距離が最も近い仮想キーと、最も遠い仮想キーとの間の距離の差を、平面に沿って配列されている場合に比べて縮めることができる。このため、ユーザがこれらの仮想キーを操作するために現実空間において手の動きを調整する程度が低減される。その結果、xR環境における文字入力操作においてユーザの疲労を軽減することができる。
【0009】
本発明の一態様に係る情報処理装置において、前記曲面は、前記仮想空間における操作の起点となる起点位置から奥行方向に向かって凹んだ凹面である、ことが好ましい。
【0010】
上記構成によれば、複数の仮想キーを凹面に沿って配列することにより、起点位置から各仮想キーまでの距離をより均等に近づけることができる。起点位置から各仮想キーまでの距離が均等に近づくほど、複数の仮想キーを操作する際にユーザが腕、肩、手首等を曲げる角度を変化させる程度を小さくすることができる。その結果、ユーザの疲労がさらに軽減される。
【0011】
本発明の一態様に係る情報処理装置は、入力装置を介して指示される前記仮想空間内の指示位置を検出する指示位置検出部と、前記仮想キーボードを含む領域における前記指示位置の軌跡に基づいて、1または複数の単語を前記仮想空間に提示する単語提示部と、をさらに備える、ことが好ましい。
【0012】
上記の構成によれば、平面に沿って配置された複数の仮想キーを含む仮想キーボードを用いる場合に比べて、同一平面に含まれる仮想キーの数を減らすことができる。その結果、同一の軌跡に基づいて予測される単語の数を低減することができ、文字入力の予測精度が向上する。
【0013】
本発明の一態様に係る情報処理装置において、前記指示位置検出部は、ユーザが保持する前記入力装置の現実空間における動きに基づいて、前記指示位置を検出する、ことが好ましい。
【0014】
上記の構成によれば、目的の各仮想キーを順次通るよう指示位置の軌跡を描くために入力装置を動かすユーザの疲労を軽減する。
【0015】
本発明の一態様に係る情報処理装置において、前記情報処理装置は、前記仮想キーボードの配置位置を変更可能な第1モード、および、前記仮想キーボードを用いて単語を入力可能な第2モードのそれぞれにおいて動作可能であり、前記仮想キーボード配置部は、前記第1モードにおいて、前記指示位置の変化に伴い前記仮想キーボードの配置位置を前記指示位置の近傍に移動させ、前記第1モードから前記第2モードに移行後、前記仮想キーボードの配置位置を、前記第2モードに移行する直前の配置位置に固定し、前記単語提示部は、前記第2モードにおいて検出された指示位置の軌跡に基づいて、前記1または複数の単語を提示する、ことが好ましい。
【0016】
上記の構成において、第1モードは、仮想空間における仮想キーボードの配置位置を変更可能なモードである。また、第2モードは、仮想キーボードを用いて単語を入力可能なモードである。上記構成によれば、ユーザは、第1モードで仮想空間において好みの位置に仮想キーボードを配置してから第2モードで軌跡を描く操作を行うことができる。また、仮想空間に、仮想キーボード以外に、ユーザが行っている他の作業に関わるオブジェクトが配置されている場合、ユーザは、当該他の作業を邪魔しない位置に仮想キーボードを配置することができる。このような第1モードおよび第2モードを有することにより、操作性が向上するとともにユーザの疲労が軽減される。
【0017】
本発明の一態様に係る情報処理装置において、前記単語提示部は、複数の単語を提示する場合、各単語に対応する選択領域を含むガイドオブジェクトを前記仮想空間に提示し、前記ガイドオブジェクトに含まれる複数の選択領域のうち、前記入力装置を介して指示された選択領域に対応する単語を選択する単語選択部をさらに備える、ことが好ましい。
【0018】
上記の構成によれば、複数の単語が予測された場合のユーザの選択操作をより容易にする。
【0019】
また、上記の課題を解決するために、本発明の一態様に係る情報処理方法は、仮想空間を示す画像を表示装置に表示するステップと、前記仮想空間に、曲面に沿って配列された複数の仮想キーを含む仮想キーボードを配置するステップと、入力装置を介して指示される前記仮想空間内の指示位置を検出するステップと、前記仮想キーボードを含む領域における前記指示位置の軌跡に基づいて、1または複数の単語を前記仮想空間に提示するステップと、を情報処理装置が実行する。
【0020】
上記の構成によれば、上述した情報処理装置と同様の効果を奏する。
【0021】
また、上記の課題を解決するために、本発明の一態様に係るプログラムは、上述した情報処理装置としてコンピュータを機能させるためのプログラムであって、前記各部としてコンピュータを機能させる。
【0022】
上記の構成によれば、上述した情報処理装置と同様の効果を奏する。
【0023】
なお、上述したプログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0024】
本発明の一態様によれば、xR環境における文字入力操作においてユーザの疲労を軽減することができる。
【図面の簡単な説明】
【0025】
図1】本発明の特徴的な構成である仮想キーボードの一例を示す図である。
図2図1に示す仮想キーボードを構成する仮想キーを示す図である。
図3図1に示す仮想キーボードの断面図である。
図4図1に示す仮想キーボードの他の断面図である。
図5】本発明の一実施形態に係る情報処理装置の機能的な構成を示すブロック図である。
図6】本発明の一実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
図7】本発明の一実施形態において用いられる入力装置の一例の外観を示す図である。
図8】本発明の一実施形態に係る情報処理装置の動作を説明するフローチャートである。
図9】本発明の一実施形態における文字入力の具体例を示す模式図である。
図10】本発明の一実施形態における文字入力の他の具体例を示す模式図である。
図11図10に示す具体例において複数の候補から1つを選択する選択操作を説明する模式図である。
図12】本発明の一実施形態に係る仮想キーボードの外観を示す六面図である。
図13】本発明の一実施形態に係る仮想キーボードの変形例の外観を示す六面図である。
図14】本発明の一実施形態に係る仮想キーボードの他の変形例の外観を示す六面図である。
図15】本発明の一実施形態に係る仮想キーの変形例を示す図である。
図16】平面状の仮想キーボードを用いた文字入力について説明する模式図である。
【発明を実施するための形態】
【0026】
〔本発明の特徴〕
本発明の特徴は、xR環境においてユーザに提供される仮想空間に、仮想キーボードを構成する複数の仮想キーを曲面に沿って配列することにある。本願発明者らは、複数の仮想キーを曲面に沿って配列することにより、ユーザの疲労を軽減することを見出した。また、xR環境における文字入力の手法として、単語を構成する各文字のキーを通るような軌跡を仮想キーボード上に描く手法を採用する場合、曲面に沿って配列された仮想キーを用いることにより、単語の予測精度を向上させることを見出した。本発明の特徴について図1図4を参照して説明する。
【0027】
図1は、本発明の特徴的な構成である仮想キーボードKB10の一例を示す図である。なお、以降の図面において、Z軸は、仮想空間に設置された仮想カメラが向く方向(すなわち、仮想空間の視点から見た奥行方向)を示し、Y軸は、Z軸方向を向くユーザから見た上下方向を示し、X軸は、Z軸方向を向くユーザから見た左右方向を示す。図1において、仮想キーボードKB10を構成する各仮想キーは、曲面に沿ってQWERTY配列で配列されている。ここで、各仮想キーが配列される曲面は、仮想空間における操作の起点となる起点位置から奥行方向に向かって凹む凹面であることが好ましい。なお、起点位置とは、仮想空間の視点であってもよい。また、起点位置とは、現実空間における後述のコントローラ30の位置に対応する仮想空間の位置であってもよい。以降、凹面である曲面を、凹曲面とも記載する。図1の例では、仮想キーが沿う曲面は、球面の一部である。ただし、仮想キーが配列される凹曲面は、球面の一部に限らず、楕円面の一部であってもよいし、双極面の一部であってもよいし、その他の凹曲面であってもよい。
【0028】
図2は、仮想キーボードKB10を構成する複数の仮想キーK1の1つを示す図である。図2に示すように、仮想キーK1は、直方体状である。また、仮想キーK1の内部には、当該仮想キーK1に割り当てられた文字を示す文字オブジェクトC1が配置される。仮想キーK1の表面は半透明であり、内部に配置された文字オブジェクトC1が外部から視認できる。なお、仮想キーK1に割り当てられた文字の表示態様は、図2の例に限られない。例えば、仮想キーK1のZ軸負方向側の表面に、当該仮想キーK1に割り当てられた文字が表示される態様であってもよい。
【0029】
図3は、図1に示す仮想キーボードKB10のA-A’線の断面をY軸正方向から見た断面図である。なお、図3において、各仮想キーK1に割り当てられた文字を示す文字オブジェクトをY軸正方向から見た態様で示す代わりに、分かり易さのため、当該文字を、文字として認識可能な態様で当該仮想キーK1を示す矩形内に記載している。図3に示すように、各仮想キーK1は、曲面の一例である球面sphの一部に沿って配列されている。
【0030】
図4は、図1に示す仮想キーボードKB10のB-B’線の断面をX軸負方向から見た断面図である。なお、図4でも、分かり易さのため、各仮想キーK1に割り当てられた文字を、文字として認識可能な態様で記載している。図4に示すように、各仮想キーK1は、球面sphの一部に沿って配列されている。
【0031】
(予測精度の向上)
ここで、図3に示すように、仮想キーボードKB10において、単語「tip」を構成する各文字のキーを通る軌跡R11と、単語「top」を構成する各文字のキーを通る軌跡R12とは異なっており、類似度が低い。したがって、軌跡R11(または軌跡R12)に基づいて1つの単語「tip」(または「top」)が予測される。つまり、軌跡R11(または軌跡R12)から予測される単語の候補数は1つである。
【0032】
ここで、仮想キーボードKB10と比較するため、従来の仮想キーボードKB90を図16に示す。図16では、仮想キーボードKB90を構成する複数の仮想キーは、平面に沿って配列されている。図16に示すように、単語「tip」を構成する各文字のキーを通る軌跡R91と、単語「top」を構成する各文字のキーを通る軌跡R92とは、ほぼ同一である。したがって、軌跡R91(または軌跡R92)に基づいて2つの単語「tip」および「top」が予測される。つまり、軌跡R91(または軌跡R92)から予測される単語の候補数は2つである。
【0033】
このように、曲面に沿って配列された仮想キーK1を用いることで、軌跡から予測される単語の候補数が低減し、予測精度が向上する。
【0034】
(入力操作の疲労軽減)
ここで、複数の仮想キーが平面に沿って配置された従来の仮想キーボードKB90では、端に近い仮想キーほど、仮想空間における操作の起点位置からの距離が遠くなる。そのため、ユーザは、端に近い仮想キーを通過するよう軌跡を描くために手を遠くまで伸ばす必要があり、疲労の原因となる。
【0035】
これに対して、本実施形態に係る仮想キーボードKB10では、仮想キーK1を配置する曲面を凹曲面としているので、仮想キーK1が平面に沿って配置される場合に比べて、仮想空間における操作の起点位置から仮想キーK1各々までの距離の差が小さくなる。したがって、ユーザは、手を遠くまで伸ばすことなく、所望の仮想キーK1を通る軌跡を描くことができる。特に、図1図3図4に示したように、仮想キーK1を配置する曲面を球面sphの一部とする場合、仮想空間における操作の起点位置から各仮想キーK1までの距離は、ほぼ同一となる。したがって、ユーザは、腕を曲げる角度を大きく変えることなく肩、肘、または手首等を中心に手を動かすことにより、所望の仮想キーK1を通る軌跡を描くことができる。
【0036】
このように、凹曲面(特に球面)に沿って配列された仮想キーK1を用いることで、入力操作におけるユーザの疲労を軽減することができる。
【0037】
〔実施形態〕
以下、本発明の一実施形態に係る情報処理システム1について、図面を参照して詳細に説明する。
【0038】
<情報処理システム1の構成>
図5は、情報処理システム1の構成を示すブロック図である。情報処理システム1は、情報処理装置10と、ヘッドマウントディスプレイ(HMD:head-mounted display)20と、コントローラ30とを含む。HMD20は、本発明における表示装置の一実施形態である。コントローラ30は、本発明における入力装置の一実施形態である。
【0039】
情報処理装置10は、ユーザに仮想空間を提供するとともに、仮想空間において文字入力を受け付ける装置である。情報処理装置10は、機能的な構成として、制御部11と、記憶部12とを含む。制御部11は、仮想空間表示部111と、仮想キーボード配置部112と、指示位置検出部113と、単語提示部114と、単語選択部115とを含む。記憶部12は、基準軌跡情報D121を記憶する。各機能ブロックおよび基準軌跡情報D121の詳細については後述する。また、情報処理装置10は、HMD20およびコントローラ30と、それぞれ通信可能に接続されている。
【0040】
HMD20は、情報処理装置10から出力される仮想空間を示す画像を表示するデバイスである。HMD20は、頭部に装着可能となっている。また、HMD20は、自装置の動き(移動、傾き、速度等)を検出して情報処理装置10に出力する。当該動きの情報は、情報処理装置10において、仮想空間における仮想カメラの位置および向きを計算するために用いられる。なお、HMD20としては、公知のヘッドマウントディスプレイを採用可能である。
【0041】
コントローラ30は、情報処理装置10に対する仮想空間での入力操作を受け付けるデバイスである。コントローラ30は、ユーザの片手によって保持可能となっている。また、コントローラ30は、自装置の動き(移動、傾き、速度等)を検出して情報処理装置10に出力する。当該動きの情報は、情報処理装置10において、ユーザが指示する仮想空間内の位置(以降、指示位置と記載する)を算出するために用いられる。また、コントローラ30は、ボタン型、レバー型等の操作部品を含み、操作部品に対するユーザの操作を検出して情報処理装置10に出力する。また、コントローラ30は、情報処理装置10による制御の基に、自装置を振動させる。コントローラ30の振動により、ユーザに対して操作のフィードバックが与えられる。なお、コントローラ30としては、公知のコントローラを採用可能である。
【0042】
<情報処理システム1のハードウェア構成>
図6は、情報処理システム1を構成する各装置のハードウェア構成の一例を示すブロック図である。
【0043】
(情報処理装置10のハードウェア構成)
情報処理装置10は、プロセッサ101と、メモリ102と、入出力インタフェース103とを含むコンピュータ装置によって構成される。これらの要素は、バスにより互いに接続される。入出力インタフェース103には、HMD20およびコントローラ30が接続される。
【0044】
プロセッサ101は、メモリ102に記憶されたプログラムに含まれる命令を実行することによって、入出力インタフェース103を制御しながら、情報処理装置10に含まれる制御部11(特に、仮想空間表示部111、仮想キーボード配置部112、指示位置検出部113、単語提示部114、および単語選択部115)として機能する。
【0045】
プロセッサ101は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)等によって構成可能である。ただし、プロセッサ101は、メモリ102に記憶されたプログラムを読み込んで実行する演算装置であればよく、これらに限られない。
【0046】
メモリ102には、コンピュータ装置を情報処理装置10として動作させるためのプログラム、および、基準軌跡情報D121を含む各種データが格納される。メモリ102は、情報処理装置10に含まれる記憶部12を構成する。メモリ102は、例えば、主記憶装置、補助記憶装置、または、これらの任意の組み合わせ等により構成可能である。主記憶装置としては、DRAM(Dynamic Random Access Memory)等の揮発性メモリが挙げられるが、これに限られない。また、補助記憶装置としては、HDD(hard disk drive)、SSD(solid state drive)等の不揮発性メモリが挙げられるが、これらに限られない。
【0047】
入出力インタフェース103には、HMD20およびコントローラ30が接続される。入出力インタフェース103は、無線および有線のいずれであってもよく、例えば、USB(Universal Serial Bus)インタフェース、赤外線、Bluetooth(登録商標)等の近距離通信インタフェース、またはこれらの組み合わせが用いられる。
【0048】
(HMD20のハードウェア構成)
HMD20は、制御装置201と、入出力インタフェース202と、センサ203と、表示パネル204とを含む。
【0049】
制御装置201は、マイクロコントローラによって構成され、HMD20の各部の動作を制御する。
【0050】
入出力インタフェース202は、情報処理装置10の入出力インタフェース103に接続される。
【0051】
センサ203は、磁気センサ、加速度センサ、ジャイロセンサ、またはこれらの組み合わせ等によって構成され、自装置の動きを検出する。あるいは、センサ203は、HMD20の外部に設けられたカメラによって構成され、HMD20に内蔵された光源(図示せず)からの光を検出することにより自装置の動きを検出する。検出された自装置の動きを示す情報は、制御装置201によって情報処理装置10に送信される。
【0052】
表示パネル204は、情報処理装置10から受信される仮想空間を示す画像を表示する。表示パネル204は、HMD20がユーザの頭部に装着された状態でユーザの左右の眼の前に配置されるよう構成される。仮想空間を示す画像は、左画像と右画像とを含む。左画像および右画像がユーザの左目および右目によって分離して視認されることで、視差を利用した立体感のある仮想空間がユーザに視認される。表示パネル204は、光を透過する透過型であってもよいし非透過型であってもよい。
【0053】
なお、HMD20は、さらに、カメラ、スピーカ、マイク等を備えていてもよい。また、HMD20は、仮想空間を示す画像を表示可能なデバイスであれば、上述したハードウェア構成に限らず、その他のハードウェア構成を有するデバイスであってもよい。
【0054】
(コントローラ30のハードウェア構成)
コントローラ30は、制御装置301と、入出力インタフェース302と、センサ303と、操作ボタン304と、操作スティック305と、振動デバイス306とを含む。
【0055】
図7は、コントローラ30の外観の一例を示す図である。図7に示すように、コントローラ30は、片手で保持可能であり、人差し指で操作可能な操作ボタン304と、親指で操作可能な操作スティック305とを有している。
【0056】
制御装置301は、マイクロコントローラによって構成され、コントローラ30の各部の動作を制御する。
【0057】
入出力インタフェース302は、情報処理装置10の入出力インタフェース103に接続される。
【0058】
センサ303は、磁気センサ、加速度センサ、ジャイロセンサ、またはこれらの組み合わせ等によって構成され、自装置の動きを検出する。あるいは、センサ303は、コントローラ30の外部に設けられたカメラによって構成され、コントローラ30に内蔵された光源(図示せず)からの光を検出することにより自装置の動きを検出する。検出された自装置の動きを示す情報は、制御装置301によって情報処理装置10に送信される。
【0059】
操作ボタン304は、押下および解放の操作が可能なボタン型の操作部品であり、例えば、プッシュボタンによって構成される。操作ボタン304は、例えば、図7に示したように、トリガーを引くような操作によって押下が可能なトリガーボタンと呼ばれるプッシュボタンであってもよい。操作ボタン304の押下、解放が制御装置301によって検出されると、当該検出を示す情報が情報処理装置10に送信される。
【0060】
操作スティック305は、基準位置を中心に任意の方向に任意の角度で傾ける操作が可能なレバー型の操作部品であり、例えば、図7に示したようなジョイスティックによって構成される。操作スティック305の傾きの方向および傾きの角度が制御装置301によって検出されると、当該検出を示す情報が情報処理装置10に送信される。
【0061】
振動デバイス306は、コントローラ30を振動させるためのデバイスである。振動デバイス306は、駆動回路(図示せず)からの駆動信号の供給に応じて振動する。駆動回路は、制御装置301から入力される振動時間、振動周波数、振動振幅等のデータに基づいて、駆動信号を振動デバイス306に供給する。
【0062】
なお、コントローラ30は、さらに、カメラ、スピーカ、マイク等を備えていてもよい。また、また、コントローラ30は、仮想空間での入力操作を受け付け可能なデバイスであれば、上述したハードウェア構成に限らず、その他のハードウェア構成を有するデバイスであってもよい。
【0063】
(情報処理装置10の機能的な構成の詳細)
図3を参照しながら、情報処理装置10の機能的な構成の詳細について説明する。
【0064】
仮想空間表示部111は、仮想空間を示す画像をHMD20に表示する。具体的には、仮想空間表示部111は、仮想空間を規定する情報を生成する。仮想空間を規定する情報は、例えば、仮想空間に配置される仮想オブジェクトの外観、その配置位置および向き等をそれぞれ示す情報を含む。仮想オブジェクトの配置位置および向きは、仮想空間における絶対的な座標であるワールド座標系、任意の仮想オブジェクトを基準としたローカル座標系、またはこれらの組み合わせによって表される。また、仮想空間表示部111は、仮想空間内に仮想カメラを配置してその向きを設定し、仮想カメラの視点から仮想空間を見た画像を、仮想空間を示す画像として生成する。また、仮想空間表示部111は、生成した仮想空間を示す画像を、HMD20に送信して表示させる。また、仮想空間表示部111は、仮想空間における仮想オブジェクトの変化(例えば、配置済みの仮想オブジェクトの動き、外観の変化、新たな仮想オブジェクトの配置等)に応じて、仮想空間を示す画像を更新する。また、仮想空間表示部111は、HMD20から受信する当該装置の動きを示す情報に基づいて、仮想カメラの位置および向きを変更し、当該変更に応じて仮想空間を示す画像を更新する。また、仮想空間表示部111は、更新した仮想空間を示す画像をHMD20に送信して表示を更新させる。これにより、ユーザは、自身の動きに応じて仮想空間における視野が変更されるので、仮想空間に存在するような仮想現実感を享受する。
【0065】
仮想キーボード配置部112は、仮想空間に、曲面に沿って配列された複数の仮想キーK1を含む仮想キーボードKB10を配置する。また、複数の仮想キーK1は、凹曲面に沿って配置されてもよい。本実施形態では、凹曲面の一例である球面の一部に沿って、複数の仮想キーK1が配置されている。
【0066】
指示位置検出部113は、コントローラ30を介して指示される仮想空間内の指示位置を検出する。例えば、指示位置は、仮想空間におけるワールド座標系で表される。この場合、指示位置は、仮想キーボードKB10を基準とするローカル座標系の座標に適宜変換されてもよい。また、指示位置検出部113は、ユーザによって保持されるコントローラ30の現実空間における動きに基づいて、仮想空間における指示位置を検出する。なお、コントローラ30の現実空間における動きを示す情報は、コントローラ30から受信する。
【0067】
単語提示部114は、仮想キーボードKB10を含む領域における指示位置の軌跡に基づいて、1または複数の単語を仮想空間に提示する。
【0068】
ここで、仮想キーボードKB10を含む領域は、仮想キーボードKB10が配置された領域であってもよいし、仮想キーボードKB10が配置された領域からその周辺までを含む領域であってもよい。
【0069】
具体的には、単語提示部114は、記憶部12に記憶された基準軌跡情報D121が示す基準軌跡のうち、指示位置の軌跡に類似する基準軌跡を特定し、特定した基準軌跡に関連付けられた単語を仮想空間に提示する。
【0070】
ここで、基準軌跡情報D121について説明する。基準軌跡情報D121は、各単語と、当該単語を入力するための基準となる基準軌跡を示す情報とを関連付けた情報である。ある単語の基準軌跡は、当該単語を構成する各文字に対応する仮想キーK1の配置位置を、当該単語の綴り順に結ぶ三次元的なパターンとして表される。また、基準軌跡は、仮想キーボードKB10を基準としたローカル座標系で表される。基準軌跡において、単語を構成する各文字に対応する仮想キーK1間は、直線、曲線、またはこれらの組み合わせによって結ばれる。基準軌跡は、計算によって算出されてもよいし、ユーザによって入力された軌跡に基づいて決定されてもよい。
【0071】
具体的には、単語提示部114は、仮想キーボードKB10を含む領域において、指示位置検出部113によって検出される指示位置を少なくとも一時的に記憶部12に記憶する。また、単語提示部114は、指示位置の履歴が示す各位置を結ぶ三次元的なパターンを、指示位置の軌跡として取得する。なお、指示位置の軌跡は、仮想キーボードKB10を基準としたローカル座標系で表される。また、単語提示部114は、指示位置の軌跡に類似する基準軌跡として、類似度が閾値以上の基準軌跡を特定してもよいし、類似度が高い順に所定数の基準軌跡を特定してもよい。なお、軌跡の類似度を算出する手法としては、公知の手法を適用可能である。例えば、非特許文献1に記載された「Proportional Shape Matching」の手法を用いてもよいが、これに限られない。
【0072】
このようにして、単語提示部114は、指定位置の軌跡に類似する1または複数の基準軌跡の各々に関連付けられた単語を、軌跡から予測される単語として特定する。複数の単語が予測された場合、単語提示部は、複数の単語とともに、ガイドオブジェクトを仮想空間に提示する。ガイドオブジェクトには、複数の選択領域が含まれる。各選択領域は、予測された複数の単語の1つに対応する。ガイドオブジェクトの例については後述する。
【0073】
単語選択部115は、ガイドオブジェクトに含まれる複数の選択領域のうち、コントローラ30を介して指示された選択領域に対応する単語を選択する。
【0074】
(仮想キーボードの配置位置を変更する機能)
制御部11が有する機能の他の1つとして、仮想キーボードの配置位置を変更する機能がある。情報処理装置10は、仮想キーボードKB10の配置位置を変更可能な第1モード、および、仮想キーボードKB10を用いて単語を入力可能な第2モードのそれぞれにおいて動作可能である。本実施形態では、第1モードは、コントローラ30において操作ボタン304が押下されていない状態において提供される。また、第2モードは、コントローラ30において操作ボタン304が押下されている状態において提供される。換言すると、情報処理装置10は、第1モードで動作中に、コントローラ30から操作ボタン304が押下されたことを示す情報を受信すると第2モードに移行する。また、情報処理装置10は、第2モードで動作中に、コントローラ30から操作ボタン304の押下が解除されたことを示す情報を受信すると第1モードに移行する。また、本実施形態では、第1モードにおいて、単語選択部115による単語の選択処理が行われる。
【0075】
仮想キーボード配置部112は、第1モードにおいて、指示位置の変化に伴い、仮想キーボードKB10の配置位置を指示位置の近傍に移動させる。また、仮想キーボード配置部112は、第1モードから第2モードに移行後、仮想キーボードKB10の配置位置を、第2モードに移行する直前の配置位置に固定する。また、単語提示部114は、第2モードにおいて検出された指示位置の軌跡に基づいて、1または複数の単語を仮想空間に提示する。例えば、単語提示部114は、第2モードにおいて所定のタイミング毎に、その時点までに検出された指示位置の軌跡を参照して1または複数の単語を提示してもよい。所定のタイミングとは、例えば、指示位置がいずれかの仮想キーを通過したことが検出されたタイミングであってもよいし、所定間隔であってもよい。この場合、第2モードにおいてユーザが仮想キーボードKB10上に軌跡を描いている間、軌跡から予測される単語が順次更新されて表示される。また、単語提示部114は、第2モードから第1モードに移行後、直近の第2モードにおいて検出された指示位置の軌跡を参照して、1または複数の単語を提示してもよい。この場合、ユーザが仮想キーボードKB10上に軌跡を描き終わると、軌跡から予測される単語が表示される。
【0076】
これにより、ユーザは、例えば、仮想キーボードKB10の配置位置を好みの位置に変更した上で、操作ボタン304を押下して仮想キーボードKB10の配置位置を当該位置に固定し、操作ボタン304を押下したまま文字入力を行うことができる。
【0077】
(ユーザ操作のフィードバック機能)
制御部11が有する機能のさらに他の1つとして、ユーザ操作をフィードバックする機能がある。制御部11は、仮想空間における指示位置に、ポインタオブジェクトを配置する。また、制御部11は、指示位置が仮想キーK1の領域に入ったことを検出すると、ユーザに対するフィードバック処理を実行する。ユーザに対するフィードバック処理の一例として、該当する仮想キーK1の色を通常色から選択色に変更する処理がある。また、他の例として、コントローラ30を所定期間振動させる処理がある。所定期間の一例としては、例えば、5ミリ秒間等が挙げられるが、これに限られない。仮想キーボード配置部112は、指示位置が仮想キーK1の領域から出たことを検出すると、当該仮想キーK1に係るフィードバックを解除する処理を実行する。解除する処理の一例としては、該当する仮想キーK1の色を選択色から通常色に変更する処理がある。
【0078】
<情報処理装置10の動作>
以上のように構成された情報処理装置10の動作S1について説明する。情報処理装置10は、記憶部12に記憶されたプログラムを実行することによって、以下の動作S1を実行する。なお、動作S1の開始時において、情報処理装置10上では、文字入力の対象となる入力対象アプリケーションが動作しているものとする。また、入力対象アプリケーションは、仮想空間に、文字入力領域を含む入力領域オブジェクトを配置しているものとする。また、以下の説明において、仮想空間表示部111が仮想空間を示す画像を更新する処理については説明を省略している。
【0079】
ステップS101において、仮想空間表示部111は、HMD20に仮想空間を示す画像を表示させる。
【0080】
ステップS102において、仮想キーボード配置部112は、仮想空間に、曲面に沿って配列された複数の仮想キーK1を含む仮想キーボードKB10を配置する。
【0081】
ステップS103において、制御部11は、第1モードを開始する。
【0082】
ステップS104において、制御部11は、第2モードが開始したか否かを判断する。前述したように、制御部11は、コントローラ30から操作ボタン304が押下されたことを示す情報を受信した場合、第2モードが開始したと判断すればよい。
【0083】
ステップS104においてNoと判断した場合、制御部11は、情報処理装置10を第1モードで動作させ、ステップS105の処理を実行する。
【0084】
ステップS105において、指示位置検出部113は、仮想空間における指示位置を検出する。
【0085】
ステップS106において、仮想キーボード配置部112は、仮想キーボードKB10の配置位置を指示位置の近傍に移動する。
【0086】
一方、ステップS104においてYesと判断した場合、制御部11は、情報処理装置10を第2モードで動作させ、ステップS107の処理を実行する。
【0087】
ステップS107において、指示位置検出部113は、仮想空間における指示位置を検出する。
【0088】
ステップS108において、単語提示部114は、指示位置の軌跡に基づいて予測した単語を提示する。具体的には、単語提示部114は、この時点までに得られた指示位置の軌跡に類似する基準軌跡を特定し、特定した基準軌跡に関連付けられた単語を、予測した単語として提示する。なお、第2モードにおいては、指示位置の検出後に本ステップの処理が実行され、ステップS106の処理が実行されないことにより、仮想キーボードKB10の配置位置は、第1モードから第2モードに移行する直前の位置に固定される。
【0089】
ステップS109において、単語提示部114は、仮想空間にガイドオブジェクトを表示する。ただし、本ステップの処理は、ステップS108において複数の単語が予測された場合に実行され、1つだけの単語が予測された場合には省略される。
【0090】
ステップS110において、制御部11は、第2モードが終了したか否かを判断する。前述したように、制御部11は、コントローラ30から操作ボタン304の押下が解除されたことを示す情報を受信した場合、第2モードが終了したと判断すればよい。
【0091】
ステップS110においてNoと判断された場合、情報処理装置10は、ステップS107からの処理を繰り返す。次のステップS108では、前回のステップS108で参照した指示位置の軌跡よりも延長された軌跡が参照される。したがって、予測される単語は、前回のステップS108で予測された単語とは少なくとも一部が異なる可能性がある。つまり、ユーザが操作ボタン304を押しながら仮想キーボードKB10上に軌跡を描いている間、軌跡から予測される単語が順次更新されて表示される。
【0092】
ステップS110においてYesと判断された場合、制御部11は、第2モードを終了し、ステップS111の処理を実行する。
【0093】
ステップS111において、単語選択部115は、ガイドオブジェクトに含まれる複数の選択領域のうち、コントローラ30を介して指示された選択領域に対応する単語を選択する。ただし、本ステップの処理は、ステップS109の処理が省略されてガイドオブジェクトが表示されていない場合には、省略される。
【0094】
ステップS112において、制御部11は、選択された単語を、入力対象アプリケーションに入力する。なお、ステップS108で1つの単語が提示され、ステップS109、S111の各処理が省略された場合には、当該単語が入力される。入力対象アプリケーションオブジェクトは、入力領域オブジェクトの入力領域に、入力された単語を表示する。
【0095】
以上で、情報処理装置10は動作S1を終了する。
【0096】
<具体例>
情報処理装置10を用いて文字入力を行う動作の具体例について、図面を参照して説明する。
【0097】
(具体例1)
図9は、情報処理装置10によって第2モードにおいて提供される仮想空間の一例を示す図である。図9において、仮想空間には、仮想キーボードKB10と、入力領域オブジェクトF801と、コントローラオブジェクトC802と、ポインタオブジェクトP805とが配置されている。なお、図9には、5つのポインタオブジェクトP805を示しているが、これらのポインタオブジェクトP805は、1つのポインタオブジェクトP805が順次通過した位置を示すために記載しており、同時に複数のポインタオブジェクトP805が配置されることを意味するものではない。なお、以下の具体例の説明において、文字「A」等に関連付けられた仮想キーK1を、仮想キー「A」等と記載する。
【0098】
入力領域オブジェクトF801は、入力対象アプリケーションによって仮想空間に配置されたオブジェクトであり、文字を入力する入力領域を有する。
【0099】
コントローラオブジェクトC802は、ユーザによって保持されるコントローラ30の現実空間における動きに応答して仮想空間において動く仮想オブジェクトである。仮想オブジェクトは、指示位置検出部113によって仮想空間に配置される。ユーザは、コントローラオブジェクトC802を視認することにより、コントローラ30を容易に操作することができる。
【0100】
ポインタオブジェクトP805は、ユーザに保持されるコントローラ30の現実空間における動きに基づいて検出される指示位置に配置される。ポインタオブジェクトP805の配置位置は、指示位置の変化に伴い移動する。
【0101】
図9は、ポインタオブジェクトP805が、仮想キー「W」、「A」、「T」、「C」、「H」の配置位置を順に通過し、指示位置の軌跡R13が描かれたことを示している。ユーザは、コントローラ30を保持した片手を現実空間で動かすことにより、ポインタオブジェクトP805を移動させて軌跡R13を描く。このとき、ポインタオブジェクトP805が各仮想キーK1の配置位置を通過する際には、該当する仮想キーK1が通常色から選択色に変化し、コントローラ30が振動する。これにより、ユーザは、ポインタオブジェクトP805が意図した仮想キーK1を通過したことを確認することができ、目的の軌跡をより確実に描くことができる。
【0102】
ここでは、単語提示部114は、軌跡R13に基づいて1つの単語「watch」を予測したとする。具体的には、単語提示部114は、基準軌跡情報D121のうち、軌跡R13に類似する基準軌跡として1つの基準軌跡を特定し、特定した基準軌跡に関連付けられた単語「watch」を特定する。
【0103】
予測された単語が1つであるため、単語提示部114は、単語を選択するためのガイドオブジェクトの配置を省略し、入力対象アプリケーションに対して単語「watch」を入力する。これにより、入力領域オブジェクトF802の入力領域に「watch」が表示される。
【0104】
本具体例に示すように、単語「watch」を構成する各文字の仮想キーK1は、仮想キーボードKB10の中央から左端までの範囲に渡っている。これらの仮想キーK1は球面に沿って配置されているため、仮想空間における操作の起点位置からこれらの各仮想キーK1までの距離は、ほぼ同一である。したがって、ユーザは、コントローラ30を保持した腕を曲げた角度を大きく変化させることなく、現実空間において肩、肘、または手首等を中心に手を動かすだけで、ポインタオブジェクトP805に目的の仮想キーK1を通過させることができる。その結果、文字入力操作におけるユーザの疲労が軽減される。
【0105】
(具体例2)
図10は、情報処理装置10によって第2モードにおいて提供される仮想空間の他の一例を示す図である。図10において、仮想空間には、具体例1と同様の仮想オブジェクトに加えて、候補オブジェクトW803_1~W803_3と、ガイドオブジェクトG804とが配置されている。
【0106】
図10では、仮想キー「T」、「E」、「X」、「T」の配置位置を順に通過した指示位置の軌跡R14が描かれている。軌跡R14を描く際のユーザの操作およびフィードバックについては、具体例1で説明した通りである。
【0107】
ここで、単語提示部114は、軌跡R14に基づいて3つの単語「text」、「test」、「rest」を予測したとする。具体的には、単語提示部114は、基準軌跡情報D121のうち、軌跡R14に類似する基準軌跡として、類似度の高いものから順に3つの基準軌跡を特定し、特定した基準軌跡にそれぞれ関連付けられた単語「text」、「test」、「rest」を特定する。単語提示部114は、これらの各単語を、候補オブジェクトW803_1~W803_3内に提示する。
【0108】
候補オブジェクトW803_1~W803_3は、単語提示部114によって予測された複数の単語をそれぞれ提示するためのオブジェクトである。以降、候補オブジェクトW803_1~W803_3を区別して説明する必要がない場合には、それぞれを単に候補オブジェクトW803とも記載する。この例では、3つの単語が予測されたため、3つの候補オブジェクトW803が配置されている。
【0109】
3つの候補オブジェクトW803は、軌跡の類似度が高い順に、所定の配置順序で表示されてもよい。例えば、この例では、候補オブジェクトW803_1、W803_2、W803_3は、類似度が高い順に上、左、右の配置順序で表示される。
【0110】
また、3つの候補オブジェクトW803は、表示する単語が互いに異なる点以外で、表示態様が互いに異なる。この例では、3つの候補オブジェクトW803は、単語を表示する領域のテクスチャが互いに異なっている。なお、これらの表示態様の違いは、テクスチャの違いに限られない。例えば、3つの候補オブジェクトW803は、単語を表示する領域の枠の色が異なっていてもよい。
【0111】
また、複数の単語が単語予測されたため、単語提示部114は、単語を選択するためのガイドオブジェクトG804を配置する。ガイドオブジェクトG804は、予測された各単語に対応する選択領域を含む。この例では、ガイドオブジェクトG804は、円形であり、予測された単語の個数分の扇形の選択領域G804_1~G804_3に分割される。以降、選択領域G804_1~G804_3を区別して説明する必要がない場合には、それぞれを単に選択領域G804_xとも記載する。各選択領域G804_xは、対応する単語を表示する候補オブジェクトW803と同じ表示態様で表示される。この例では、各選択領域G804_xには、対応する単語を表示する候補オブジェクトW803と同じテクスチャが適用される。
【0112】
単語選択部115は、コントローラ30を介して指示された選択領域G804_xに対応する単語を選択する。本具体例では、コントローラ30の操作スティック305の操作によって、選択領域G804_xが指示される。図11は、操作スティック305の操作による選択領域G804_xの指示を説明する模式図である。前述したように、操作スティック305は、基準位置を中心に任意の方向に任意の角度で傾けることが可能である。図11におけるxy座標の原点は、操作スティックの基準位置を示す。また、原点を始点とし点P806を終点とするベクトルの方向は、操作スティック305の傾きの方向を示し、当該ベクトルの大きさは、操作スティック305の傾きの角度を示す。また、原点を中心とする単位円は、選択領域G804_1~G804_3からなるガイドオブジェクトG804に対応する。単語選択部115は、点P806が含まれる選択領域G804_xを、コントローラ30によって指示された選択領域G804_xとして特定し、特定した選択領域G804_xに対応する単語を選択する。
【0113】
なお、本具体例では、提示する単語の候補数を3つとしているが、提示する候補数の数は限定されない。例えば、類似度が高い順に2または4以上の単語を候補として提示する場合、ガイドオブジェクトG804は、候補の個数分に分割された選択領域G804_xを含む。
【0114】
また、本具体例では、ガイドオブジェクトG804の分割数を3つとしているが、ガイドオブジェクトG804の分割数は限定されない。例えば、提示する単語の候補数が4つである場合、ガイドオブジェクトG804の分割数を4つとしてもよい。
【0115】
また、本具体例では、ガイドオブジェクトG804の分割数が単語の候補数と同一である例について説明したが、これに限定されない。例えば、単語の候補数が10個の場合に、同時に表示する候補オブジェクトW803およびガイドオブジェクトG804の分割数を3つとしてもよい。この場合、単語提示部114は、類似度が高いものから順に3つの単語の候補を、3つの候補オブジェクトW803内に表示する。ユーザは、候補オブジェクトW803の中に目的の単語が無い場合は、他の候補となる単語の表示を指示する所定の操作を行う。所定の操作は、例えば、操作ボタン304に対する操作であってもよい。単語提示部114は、3つの候補オブジェクトW803を提示中に操作ボタン304に対する操作を受け付けると、3つの候補オブジェクトW803内に、現在表示中の3つの候補となる単語に替えて、次に類似度が高い3つの候補となる単語を表示する。
【0116】
本具体例に示すように、ユーザは、予測された複数の単語のうち1つを選択するために、選択したい単語の候補オブジェクトW803と同じ表示態様の選択領域G804_xの方向に、操作スティック305を傾ければよい。このように、ガイドオブジェクトG804を表示することにより、予測された複数の単語のうち1つを選択するユーザの操作が容易になる。
【0117】
また、本具体例に示すように、軌跡R14は、仮想キー「T」を通過してから仮想キー「E」を通過するまでに仮想キー「R」を通過していない。また、軌跡R14は、仮想キーK1「E」を通過してから仮想キー「X」を通過するまでの間に仮想キー「S」を通過していない。これは、複数の仮想キーK1が球面に沿って配置されていることにより、単語を構成する各文字の仮想キーK1間の軌跡が、当該単語を構成しない文字の仮想キーK1を通過する可能性が低減されるためである。したがって、軌跡R14と、単語「text」に関連付けられた軌跡との類似度は、単語「rest」および単語「test」にそれぞれ関連付けられた軌跡との類似度よりも高い。
【0118】
これに対して、複数の仮想キーK1が平面に沿って配置されている場合、仮想キー「T」、「E」、「X」、「T」を順に通過する軌跡は、仮想キー「R」および仮想キー「S」を通過する可能性が高いと考えられる。したがって、当該軌跡から予測される3つの単語の類似度は、同等となる。
【0119】
このように、複数の候補を提示する場合であっても、情報処理装置10は、平面に沿って複数の仮想キーK1が配置された仮想キーボードを用いる場合と比べて、軌跡が類似する順に複数の単語を提示することができ、予測精度を向上させる。
【0120】
なお、ユーザが単語「text」を入力したい場合であっても、軌跡R14が、仮想キー「T」を通過してから仮想キー「E」を通過するまでに仮想キー「R」を通過するケースが考えられる。また、軌跡R14が、仮想キー「E」を通過してから仮想キー「X」を通過するまでに仮想キー「S」を通過するケースが考えられる。しかしながら、ユーザが、ポインタオブジェクトP805に仮想キー「R」(または「S」)を意図的に通過させる場合は、軌跡R14は仮想キー「R」(または「S」)の体心またはその近傍を通過すると考えられる。一方、ユーザの意図によらずに、ポインタオブジェクトP805が仮想キー「R」(または「S」)を通過する場合は、軌跡R14は、意図した場合よりも仮想キー「R」(または「S」)の表面に近い領域を通過すると考えられる。したがって、ユーザが単語「text」を入力したい場合に意図せず仮想キー「R」(または「S」)を通過する軌跡R14と、単語「text」に関連付けられた軌跡との類似度は、単語「rest」に関連付けられた軌跡との類似度よりも高いことが期待できる。
【0121】
<仮想キーボードKB10の外観>
次に、本実施形態に係る仮想キーボードKB10の外観について図面を参照して説明する。図12は、仮想キーボードKB10の外観を示す六面図であり、紙面の上側に平面図、下側に底面図、平面図および底面図の間に正面図を示している。また、正面図の左側に左側面図、正面図の右側に右側面図、右側面図の右側に背面図を示している。なお、正面図は、仮想空間の視点から奥行方向に向かって仮想キーボードKB10を見た図である。図12に示すように、仮想キーボードKB10は、アルファベット「A」~「Z」までの各々に関連付けられた26個の仮想キーK1を有している。また、平面図および底面図等から分かるように、各仮想キーK1は、仮想空間おける操作の起点位置(ここでは、仮想空間の視点)から奥行方向に向かって凹んだ凹曲面に沿って配列されている。
【0122】
〔変形例〕
(仮想キーボードおよび仮想キーの外観の他のバリエーション)
図13は、仮想キーボードKB10Aの外観を示す六面図である。図13に示すように、仮想キーボードKB10Aの外観は、仮想キーボードKB10とは異なる。六面図を構成する各図の配置については、図12を参照して説明した通りであるため、説明を繰り返さない。仮想キーボードKB10Aは、アルファベット「A」~「Z」、および数字「0」~「9」までの各々に関連付けられた36個の仮想キーを有している。また、平面図および底面図等から分かるように、各仮想キーは、仮想空間おける操作の起点位置(ここでは、仮想空間の視点)から奥行方向に向かって凹んだ凹曲面に沿って配列されている。
【0123】
図14は、仮想キーボードKB10Bの外観を示す六面図である。図14に示すように、仮想キーボードKB10の外観は、仮想キーボードKB10およびKB10Aとは異なる。六面図を構成する各図の配置については、図12を参照して説明した通りであるため、説明を繰り返さない。仮想キーボードKB10Bは、かな「あ」~「ん」、濁点、句読点の各々に関連付けられた48個の仮想キーを有している。また、平面図および底面図等から分かるように、各仮想キーは、仮想空間おける操作の起点位置(ここでは、仮想空間の視点)から奥行方向に向かって凹んだ凹曲面に沿って配列されている。
【0124】
図15は、仮想キーK1の外観の変形例を示す図である。図15において、仮想キーK2は、球体状である。仮想キーK2の内部には、仮想キーK2に割り当てられた文字を示す文字オブジェクトC2が配置されている。仮想キーK2の表面は半透明であり、内部に配置された文字オブジェクトC2が外部から視認可能となっている。
【0125】
なお、上述した実施形態において、仮想キーボードKB10および仮想キーK1の外観は、仮想キーボードKB10A、KB10B、仮想キーK2に限らず、様々な態様に変形可能である。例えば、仮想キーボードKB10を構成する仮想キーに割り当てられる文字、仮想キーの個数、仮想キーが配列される曲面の形状、仮想キーの配列順序、仮想キーの形状等は、上述したものに限定されない。また、複数の仮想キーが配列される曲面の形状は、凹曲面に限らず、その他の曲面に配置されてもよい。
【0126】
(複数のコントローラ30)
上述した実施形態では、情報処理システム1が、片手で保持可能な1つのコントローラ30を有する例を中心に説明した。ただし、情報処理システム1は、片手で保持可能な複数のコントローラ30を有してもよい。例えば、ユーザは、両手にそれぞれコントローラ30を保持して操作を行ってもよい。
【0127】
例えば、指示位置検出部113は、同時に複数の指示位置を検出し、単語提示部114は、第1の指示位置の軌跡と、当該軌跡の入力期間の少なくとも一部において検出された第2の指示位置との組み合わせに基づいて、単語を提示してもよい。例えば、ユーザは、左手に保持した第2のコントローラ30を用いて特定の仮想キーの領域を第2の指示位置として指示することにより文字セットの変更を指示してもよい。これにより、ユーザは、左手に保持した第2のコントローラ30を用いて文字セットの変更を指示しながら、右手に保持した第1のコントローラ30を用いて第1の指示位置の軌跡を描くことができる。そのような特定の仮想キーとしては、例えば、仮想キー「シフト」(図示せず)等が挙げられるが、これに限られない。この場合、仮想キーボード配置部112は、文字セットの変更が指示されている期間中、仮想キーボードKB10の一部または全部を構成する各仮想キーの代わりに、当該仮想キーとは異なる文字に割り当てられた仮想キーを配置する。
【0128】
また、例えば、各コントローラ30による指示位置の指示は、仮想キーボードKB10を含む領域を分割した分割領域において有効となっていてもよい。例えば、指示位置検出部113は、仮想キーボードKB10を含む領域の右半分では第1のコントローラ30を介して指示される指示位置を取得し、左半分では第2のコントローラ30を介して指示される指示位置を取得してもよい。これにより、ユーザは、仮想キーボードKB10を含む領域に軌跡を描くために、右半分の領域では右手に保持した第1のコントローラ30を用い、左半分の領域では左手に保持した第2のコントローラ30を用いることができる。
【0129】
また、例えば、各コントローラ30による指示位置の指示は、仮想空間に配置された複数の仮想キーボードの各々に対して有効となっていてもよい。複数の仮想キーボードは、同一の構成であってもよいし、少なくとも1つが異なる構成であってもよい。例えば、仮想空間に、2つの仮想キーボードKB10が配置されていてもよい。また、例えば、仮想空間に、仮想キーボードKB10Aおよび仮想キーボードKB10Bが配置されていてもよい。例えば、仮想空間に、第1および第2の仮想キーボードが配置されているとする。この場合、指示位置検出部113は、第1のコントローラ30を介して、第1の仮想キーボードに対する指示位置を取得し、第2のコントローラ30を介して、第2の仮想キーボードに対する指示位置を取得する。これにより、ユーザは、仮想空間に配置された複数の仮想キーボードを用いて、効率的に入力操作を行うことができる。
【0130】
(コントローラオブジェクトの配置)
上述した実施形態では、仮想空間において、仮想キーボードKB10の近傍にコントローラオブジェクトC802が配置される例を中心に説明した。ただし、コントローラオブジェクトC802が配置される位置は、仮想キーボードKB10の近傍に限定されない。具体的には、ユーザがコントローラ30を現実空間で動かすことによって、ポインタオブジェクトP805が仮想キーボードKB10を含む領域を通るように、ポインタオブジェクトP805およびコントローラオブジェクトC802間の位置関係が規定される。また、当該位置関係は、ユーザにより設定可能であってもよい。これにより、ユーザは、例えば、コントローラ30を保持した手を下に降ろしたまま手首を動かすだけで、仮想キーボードKB10を含む領域にポインタオブジェクトP805の軌跡を描くことができる。これにより、ユーザの疲労感がさらに軽減される。
【0131】
(入力装置の他のバリエーション)
上述した実施形態では、情報処理システム1が、片手で保持可能なコントローラ30を有する例を中心に説明した。ただし、情報処理システム1は、コントローラ30に替えて、仮想空間における位置を指示可能なその他の入力装置を有していてもよい。例えば、情報処理装置10は、両手で保持して現実空間で動かすことにより仮想空間における位置を指示するパッド型の入力装置を有していてもよい。
【0132】
(表示装置のバリエーション)
上述した実施形態では、情報処理システム1が、HMD20を有する例を中心に説明した。ただし、情報処理システム1は、HMD20に替えて、ユーザに仮想空間を提示可能なその他の表示装置を有していてもよい。例えば、情報処理システム1は、仮想空間を示す左画像および右画像を表示するディスプレイと、当該左画像および右画像を立体視するためのメガネとからなる表示装置を有していてもよい。また、例えば、情報処理システム1は、HMD20に替えて、仮想空間を体感可能な部屋を実現する技術(例えば、CAVE:Cave automatic virtual environment)において用いられる表示装置を有していてもよい。また、例えば、情報処理システム1は、HMD20に替えて、三次元的に配置された画素を用いて立体映像を表示する立体表示装置を用いてもよい。
【0133】
(単語選択部のバリエーション)
また、上述した実施形態では、単語選択部115は、操作スティック305の操作によって選択される選択領域G804_xに基づいて単語を選択するものとして説明した。ただし、単語選択部115は、その他の入力操作に基づいて単語を選択してもよい。例えば、単語選択部115は、コントローラオブジェクトC802またはポインタオブジェクトP805が接触した選択領域G804_xを特定し、特定した選択領域G804_xに対応する単語を選択してもよい。また、例えば、単語選択部115は、HMD20の傾きに基づいてユーザの視線の方向に存在する選択領域G804_xを特定し、特定した選択領域G804_xに対応する単語を選択してもよい。また、単語選択部115は、コントローラ30を介して指示される、仮想空間における指示方向が示す単語を選択してもよい。また、例えば、単語選択部115は、マイク(図示せず)を用いてユーザの音声情報を取得し、当該音声情報が示す単語を選択してもよい。
【0134】
(その他の変形例)
上述した実施形態では、単語提示部114は、指示位置の軌跡に基づいて単語を提示するために、基準軌跡情報D121を用いる例について説明した。これに限らず、単語提示部114は、例えば、軌跡を示す情報から単語を予測するよう学習された機械学習モデルを用いてもよい。この場合、単語提示部114は、指示位置の軌跡を示す情報を機械学習モデルに入力し、機械学習モデルから出力される単語を提示すればよい。そのような機械学習モデルは、記憶部12に記憶されていてもよいし、情報処理装置10の外部の周辺装置、ネットワーク上の装置等に記憶されていてもよい。
【0135】
〔ソフトウェアまたはハードウェアによる実現例〕
上述した実施形態および各変形例では、情報処理装置10の制御部11が、ソフトウェアによって構成される例について説明した。すなわち、コンピュータ装置を情報処理装置10として動作させるためにコンピュータ装置によって実行されるプログラムが、図6に示したメモリ102に記憶され、プロセッサ101が当該プログラムを読み取って実行することにより、制御部11の各機能が実現される。
【0136】
なお、この場合、コンピュータ装置を情報処理装置10として動作させるためのプログラムは、必ずしもコンピュータ装置内部のメモリ102に記憶されていなくてもよい。コンピュータ装置を情報処理装置10として動作させるためのプログラムは、例えば、外部記録媒体に記録されてもよい。外部記録媒体の具体例としては、テープ、ディスク、カード、半導体メモリ、プログラマブル論理回路などが挙げられるが、これらに限られない。この場合、外部記録媒体に記録されたプログラムは、プロセッサ101によって読み込まれて実行される。また、本発明は、外部記録媒体に記録されたプログラム、または、当該外部記録媒体としても実現され得る。
【0137】
また、コンピュータ装置を情報処理装置10として動作させるためのプログラムは、通信ネットワークを介してコンピュータ装置に供給されてもよい。この場合、通信ネットワークは、プログラムを伝送可能なネットワークであればよく、特に限定されない。また、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0138】
なお、情報処理装置10の制御部11は、ソフトウェアによる実現に限らず、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現されてもよい。
【0139】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0140】
1 情報処理システム
10、10A、10B 情報処理装置
11 制御部
12 記憶部
111 仮想空間表示部
112 仮想キーボード配置部
113 指示位置検出部
114 単語提示部
115 単語選択部
20 ヘッドマウントディスプレイ(HMD)
30 コントローラ
101 プロセッサ
102 メモリ
103、202、302 入出力インタフェース
201、301 制御装置
203、303 センサ
204 表示パネル
304 操作ボタン
305 操作スティック
306 振動デバイス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16