本実施の形態では、メニュー画面など選択操作を受け付ける画面を、ユーザの視線の動きに応じて視野を変化させつつ表示する。その限りにおいて、画像を表示させる装置の種類は特に限定されず、ウェアラブルディスプレイ、平板型のディスプレイ、プロジェクタなどのいずれでもよいが、ここではウェアラブルディスプレイのうちヘッドマウントディスプレイを例に説明する。
ウェアラブルディスプレイの場合、ユーザの視線は内蔵するモーションセンサによりおよそ推定できる。その他の表示装置の場合、ユーザがモーションセンサを頭部に装着したり、注視点検出装置を用いて赤外線の反射を検出したりすることで視線を検出できる。あるいはユーザの頭部にマーカーを装着させ、その姿を撮影した画像を解析することにより視線を推定してもよいし、それらの技術のいずれかを組み合わせてもよい。
図1は、ヘッドマウントディスプレイ100の外観図である。ヘッドマウントディスプレイ100は、本体部110、前頭部接触部120、および側頭部接触部130を含む。ヘッドマウントディスプレイ100は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。ヘッドマウントディスプレイ100に内蔵または外付けされたモーションセンサにより、ヘッドマウントディスプレイ100を装着したユーザの頭部の回転角や傾きといった姿勢情報を計測することができる。
ヘッドマウントディスプレイ100は、「ウェアラブルディスプレイ装置」の一例である。ウェアラブルディスプレイ装置には、狭義のヘッドマウントディスプレイ100に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドホン、ヘッドセット(マイクつきヘッドホン)、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなど任意の装着可能なディスプレイ装置が含まれる。
図2は、ヘッドマウントディスプレイ100の機能構成図である。制御部10は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサである。入力インタフェース20は、ユーザからの操作信号や設定信号を受け付け、制御部10に供給する。出力インタフェース30は、制御部10から画像信号を受け取り、ディスプレイに表示させる。バックライト32は、液晶ディスプレイにバックライトを供給する。
通信制御部40は、ネットワークアダプタ42またはアンテナ44を介して、有線または無線通信により、制御部10から入力されるデータを外部に送信する。通信制御部40は、また、ネットワークアダプタ42またはアンテナ44を介して、有線または無線通信により、外部からデータを受信し、制御部10に出力する。記憶部50は、制御部10が処理するデータやパラメータ、操作信号などを一時的に記憶する。
モーションセンサ64は、ヘッドマウントディスプレイ100の本体部110の回転角や傾きなどの姿勢情報を検出する。モーションセンサ64は、ジャイロセンサ、加速度センサ、角加速度センサなどを適宜組み合わせて実現される。外部入出力端子インタフェース70は、USB(Universal Serial Bus)コントローラなどの周辺機器を接続するためのインタフェースである。外部メモリ72は、フラッシュメモリなどの外部メモリである。
時計部80は、制御部10からの設定信号によって時間情報を設定し、時間データを制御部10に供給する。制御部10は、画像やテキストデータを出力インタフェース30に供給してディスプレイに表示させたり、通信制御部40に供給して外部に送信させたりすることができる。
図3は、本実施の形態に係る情報処理システムの構成図である。ヘッドマウントディスプレイ100は、無線通信またはUSBなどの周辺機器を接続するインタフェース300で情報処理装置200に接続される。情報処理装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを情報処理装置200に提供してもよい。ヘッドマウントディスプレイ100は、情報処理装置200の代わりに、コンピュータや携帯端末に接続されてもよい。
ヘッドマウントディスプレイ100に表示される画像は、あらかじめ撮影された360度のパノラマ静止画またはパノラマ動画の他、ゲーム空間のような人工的なパノラマ画像であってもよい。また、ネットワーク経由で配信される遠隔地のライブ映像であってもよい。ただし本実施の形態をパノラマ画像に限定する主旨ではなく、表示装置の種類によって、パノラマ画像とするか否かを適宜決定してよい。
図4は情報処理装置200の内部回路構成を示している。情報処理装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続されている。バス230にはさらに入出力インタフェース228が接続されている。
入出力インタフェース228には、USBやIEEE1394などの周辺機器インタフェースや、有線又は無線LANのネットワークインタフェースからなる通信部232、ハードディスクドライブや不揮発性メモリなどの記憶部234、ヘッドマウントディスプレイ100などの表示装置へデータを出力する出力部236、ヘッドマウントディスプレイ100からデータを入力する入力部238、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部240が接続される。
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより情報処理装置200の全体を制御する。CPU222はまた、リムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラムを実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部236に出力する。メインメモリ226はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図5は、本実施の形態における情報処理装置200の機能ブロックを示している。本実施の形態における情報処理装置200は、上述のとおり視線の動きにより視野が変化するとともに、当該視線によって複数の選択肢から1つを選択する入力を受け付けるための画面(以後、「メニュー画面」と呼ぶ)を生成する。そして当該画面に対する選択入力を受け付け、それに対応する処理を実行する。選択に応じてなされる処理は特に限定されないが、ここでは一例として、ゲームや動画などの電子コンテンツの処理を想定する。そして各電子コンテンツを表象するアイコンをメニュー画面に表す。
なお図5で示した情報処理装置200の機能のうち少なくとも一部を、ヘッドマウントディスプレイ100の制御部10に実装してもよい。あるいは、情報処理装置200の少なくとも一部の機能を、ネットワークを介して情報処理装置200に接続されたサーバに実装してもよい。またメニュー画面を生成し選択入力を受け付ける機能をメニュー画面制御装置として、電子コンテンツを処理する装置と別に設けてもよい。
同図は情報処理装置200が有する機能のうち、主にメニュー画面の制御に係る機能に着目したブロック図を描いている。これらの機能ブロックは、ハードウェア的には、図4に示したCPU、GPU、各種メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
情報処理装置200は、ヘッドマウントディスプレイ100の位置や姿勢を取得する位置・姿勢取得部712、ユーザの視線に基づき表示画像の視野を制御する視野制御部714、表示対象のアイコンに係る情報を記憶するアイコン情報記憶部720、仮想空間におけるアイコンの配置を決定するアイコン配置部722、視線の変化により操作がなされたことを判定する操作判定部718、選択された電子コンテンツを処理するコンテンツ処理部728、表示画像のデータを生成する画像生成部716、選択対象のコンテンツに係る情報を記憶するコンテンツ情報記憶部724、および、生成されたデータを出力する出力部726を備える。
位置・姿勢取得部712は、ヘッドマウントディスプレイ100のモーションセンサ64の検出値に基づいて、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢を所定のレートで取得する。位置・姿勢取得部712はさらに、情報処理装置200に接続した図示しない撮像装置による撮影画像に基づき、頭部の位置や姿勢を取得したり、その結果をモーションセンサによる情報と統合したりしてもよい。
視野制御部714は、位置・姿勢取得部712により取得された頭部の位置や姿勢に基づいて、描画対象の3次元空間に対する視野面(スクリーン)を設定する。本実施の形態のメニュー画面では、表示対象の複数のアイコンを、仮想空間の中空に浮かんでいるように表現する。したがって視野制御部714は、当該アイコンを配置するための仮想的な3次元空間の情報を保持している。
当該仮想空間には、空中に浮かぶアイコンとユーザの頭部を包含するような大きさの全天球状の背景オブジェクトを、一般的なコンピュータグラフィクスと同様のグローバル座標系に定義する。これにより空間に奥行き感が生じ、アイコンが空中に浮いている状態をより印象づけられる。そして視野制御部714は、当該グローバル座標系に対するスクリーン座標を、ヘッドマウントディスプレイ100の姿勢に基づいて所定のレートで設定する。
ヘッドマウントディスプレイ100の姿勢、すなわちユーザ頭部のオイラー角によってユーザの顔面の向く方向が判明する。視野制御部714は少なくとも、当該顔面の向く方向に対応させてスクリーン座標を設定することにより、ユーザが向く方向に応じた視野で仮想空間がスクリーン平面に描画されるようにする。この場合、ユーザの顔面の法線ベクトルをおよそ視線の方向と推定していることになる。
なお赤外線の反射などにより注視点を検出する装置を用いればさらに詳細な視線情報を得ることができる。以後の説明では、導出手法によらず推定あるいは検出された、ユーザが見ている方向を総じて「視線」の方向と称する。視野制御部714は、ユーザ頭部の姿勢の変化が所定の値を超えるまでは検出された角度の変化を無視するようにして、意図せず画像がぶれるのを防いでもよい。また表示画像のズーム操作を受け付けるような場合は、ズーム倍率に基づいて頭部の角度検出の感度を調整してもよい。
アイコン配置部722は、各電子コンテンツを表象するアイコンの配置を決定する。上述のとおりアイコンは仮想空間に浮いているように表す。より具体的には仮想空間において、ユーザの周囲に、ユーザからの距離および方位を分散させて配置する。これにより、顔が向いた方向(視線の先)にあるアイコンを選択できるようにする。アイコンは各電子コンテンツのサムネイル画像を表す円板などのオブジェクトとする。
アイコン情報記憶部720には、アイコンの形状や、アイコンを表示すべき電子コンテンツに係る情報が格納されている。アイコン配置部722は、アイコン情報記憶部720に格納された情報に基づき、表示すべきアイコンの数、アイコンが属するカテゴリ、優先度などの情報を特定し、それに応じて配置を最適化する。例えばアイコンの増減に応じて全体的な分散のバランスを調整する。また同じカテゴリに属するアイコン群を近接させる。さらに、優先度の高いアイコンほどユーザからの距離を近くする。これらのことにより、多くのアイコンであっても適切な間隔を保ちつつ効率的な選択ができるようにする。
さらに、そのようなアイコンを見ているユーザの視線の動きに応じて、アイコンをユーザ側に移動させたり元に戻したりする。具体的には、ユーザが視線を合わせたアイコンを仮想空間においてユーザの近傍に移動させることにより見かけ上のサイズを大きくし、当該アイコンが選択状態となったことを表す。そして別のアイコンに視線が移ったら、元のアイコンの選択状態を解除して位置を元に戻す。アイコン配置部722は、コンテンツの識別情報と、当該コンテンツを表すアイコンの配置情報を対応づけて、画像生成部716に供給する。
操作判定部718は、ユーザの視線の動きにより、メニュー画面の視野変化以外の何らかの操作がなされたか否かを判定する。ここで判定される操作とは、アイコンの選択、選択されたアイコンに対応する電子コンテンツの再生、処理開始、ダウンロード、情報表示、対応するウェブサイトへの表示の移行、ヘルプ情報の表示などである。例えば上述のとおり、あるアイコンに視線が到達したとき、当該アイコンが選択されたと判定する。
これに応じて、対応するコンテンツへの具体的な操作内容を選択するための操作ボタンを追加で表示させ、それに視線が移されたら当該操作がなされたと判定する。操作判定部718は、そのような処理を実施するための判定基準とそれに応じてなすべき処理に係る設定情報を保持している。操作がなされたと判定され、それがアイコンの選択である場合は、操作判定部718はその旨をアイコン配置部722に通知することによりアイコンをユーザの近傍に移動させる。これに伴い操作ボタン等、追加のオブジェクトを表示させる場合は、操作判定部718はその旨の要求を画像生成部716に通知する。
メニュー画面用の仮想空間内で処理が完結するその他の場合、例えば選択状態のコンテンツに係る概説を表示する操作がなされた場合や、メニュー画面に対するヘルプ情報を表示する操作がなされた場合なども、操作判定部718はその旨の処理要求を画像生成部716に通知する。電子コンテンツの再生・処理開始や、ウェブサイトへの表示の移行など、メニュー画面用の仮想空間から表示を切り替える操作がなされた場合、操作判定部718はその旨の要求をコンテンツ処理部728に通知する。
画像生成部716は、アイコン配置部722が配置を決定した複数のアイコンを含む仮想空間を、視野制御部714が決定したスクリーンに投影することにより、メニュー画面として表示させる画像を所定のレートで描画する。画像生成部716はさらに、選択状態にある、すなわち視線が向いているアイコンのサムネイル画像が背景全体に表されるように、背景として配置されている全天球状のオブジェクトのテクスチャ画像を切り替える。さらにこの背景オブジェクトを、ユーザを中心に所定の微小速度で回転させることにより、奥行き方向の距離感をより与えられるように演出する。
画像生成部716は、ヘッドマウントディスプレイ100において立体視できるようにメニュー画面の画像を生成してもよい。すなわちヘッドマウントディスプレイ100の画面を左右に分割してなる領域にそれぞれ表示するための、左眼用、右眼用の視差画像を生成してもよい。画像生成部716はさらに、操作判定部718からの要求に応じて画像に変化を与える。例えば上述のとおり、選択状態のアイコンの近傍に、具体的な操作を受け付けるための操作ボタンを表示する。
あるいはコンテンツを概説する文字情報やメニュー画面に対するヘルプ情報などを表示する。各コンテンツについての文字情報や、アイコンや背景の描画に用いるサムネイル画像などのデータは、コンテンツの識別情報に対応づけてコンテンツ情報記憶部724に格納しておく。あるいはネットワークを介して接続されたサーバから直接取得してもよい。コンテンツ情報記憶部724には、全天球の背景オブジェクトにテクスチャマッピングするため、各電子コンテンツに対応して作成された、あるいはメニュー画面用に作成された、パノラマ画像のデータも格納しておく。
パノラマ画像は、定点を中心とする周囲の空間の画像の一例であり、全天球のパノラマ画像の場合、周囲の空間(パノラマ空間)は球で表される。なお背景の画像は、事前に作成された動画または静止画コンテンツであってもよく、レンダリングされたコンピュータグラフィックスであってもよい。
コンテンツ処理部728は、操作判定部718からの要求に応じて、選択されたアイコンに対応する電子コンテンツを処理する。すなわち動画や静止画を再生したり、ゲームを開始させたりする。そのためのデータやプログラムは、コンテンツの識別情報に対応づけてコンテンツ情報記憶部724に格納しておく。画像生成部716は、コンテンツ処理部728からの要求に従い、動画像やゲーム画面などコンテンツ表示のための画像も生成する。コンテンツの具体的な処理については一般的な技術を適用できるため、ここでは説明を省略する。
出力部726は、画像生成部716が生成した画像のデータを、ヘッドマウントディスプレイ100に所定のレートで送出する。出力部726はさらに、メニュー画面用の音楽や各種コンテンツに含まれる音声などの音響データも出力してよい。
図6は、ヘッドマウントディスプレイ100に表示されるメニュー画面を例示している。メニュー画面500は、ユーザの周囲に構築された仮想空間のうち、ユーザの視線に対応する視野内にある物を表現している。したがって、アイコン配置部722が配置した複数のアイコンのうち、当該視野内にある一部のアイコン502a〜502gが表示されている。各アイコン502a〜502gの上方には、アイコンが表すコンテンツのタイトル等を文字情報として表示する。ユーザは首を縦横斜めと自由に振ったり後ろを振り返ったりすることにより、視線、ひいては視野を移動させ、そのほかのアイコンも閲覧することができる。
アイコン502a〜502gの背後には、背景を表すオブジェクトも描画される。上述のように全天空を表す背景オブジェクトとしたり、当該オブジェクトを、ユーザを中心に微小速度で回転させたりすることにより、それに貼り付けられたテクスチャ画像が奥行き感を伴い表現される。これによりアイコン502a〜502gが、背景オブジェクトで包含された空間の様々な場所に浮いているように演出できる。図示する例では、アイコン502a〜502gは、各電子コンテンツのサムネイル画像をテクスチャマッピングした円板状のオブジェクトである。ただしアイコンの形状をこれに限定する主旨ではない。
メニュー画面500にはさらに、画像平面とユーザの視線が交差する点、すなわちメニュー画面におけるユーザの視点を表すカーソル504を表示する。上述のようにメニュー画面500の視野は、視線の動きに応じて変化する。結果として視点を表すカーソル504は、視線の動きによらず、メニュー画面500の略中央に据え置かれることになる。すなわちユーザの視線の方向が変化すると視野も同様に変化するため、画面上ではカーソル504は定位置にあり、相対的にアイコン配列および背景オブジェクトを含む仮想世界が逆方向に変位することになる。
カーソル504は、情報処理装置200が視点と認識している位置をユーザ自身に知らしめ、ユーザがそれを手がかりに首の振り幅を直感的に調整することにより、所望のアイコンや操作ボタンを正確に操作できるようにするものである。その限りにおいては、カーソル504は厳密にユーザの視点と一致していなくてもよい。また視線の動きの速さなどによって、画面の中心から外れることがあってもよい。なおメニュー画面500にはさらに、図示しないその他のオブジェクトを表示させてもよい。例えばヘルプ情報を表示させるための操作ボタンを仮想空間における下方に配置し、視線を下に向けることにより画面内に入るようにしてその操作を受け付けるようにしてもよい。
図7は、メニュー画像を生成する際に構築される仮想空間の例を模式的に示している。上述のとおり仮想空間には、ユーザ516の頭部を略中心とする、所定半径Zbの球形の背景オブジェクト510を設定する。そして当該背景オブジェクト510に包含される同心球であり、サイズが互いに異なる第1レイヤ512a、第2レイヤ512b、第3レイヤ512c、第4レイヤ512dを設定する。つまり第1レイヤ512a、第2レイヤ512b、第3レイヤ512c、第4レイヤ512dの半径Z1、Z2、Z3、Z4を、Z1<Z2<Z3<Z4<Zbとなるように設定する。
なおレイヤは位置を規定するための情報であり実体として表示されるものではない。このように設定した各レイヤ面に、アイコン(例えばアイコン514a、514b、514c)を分散させて配置する。そしてユーザの顔面の向く方向(顔面の法線ベクトル517)を視線として特定し、それを中心とする垂直面にスクリーン518を設定して仮想空間のオブジェクトを投影する。これにより、図6で示したようなメニュー画面500が描画される。
アイコンは基本的に、ユーザ516を囲む空間全体に不規則に分散させて配置する。ここで「不規則」とはアイコンが直線上や平面上に並んでいるなど、アイコンの位置座標が何らかの関数によって表されることがなく、例えば乱数によって決定されるような状態を指す。ユーザから見て異なる方位および距離の様々な位置に星のようにアイコンが浮かんでいるように表現することで、メニュー画面であっても高いデザイン性や娯楽性を与えることができる。ただし天頂および天底を含む所定範囲をアイコンの配置禁止領域とすることにより、無理なく顔を向けられる方向に限定してアイコンを配置することが望ましい。一般的に下方より頭上の方が顔を向けにくいことを考慮すると、配置禁止領域とする範囲を規定する天頂角θu、天底角θbを、θu>θbとすることが望ましい。
また、ユーザから離れたレイヤほど、そこに配置するアイコンのサイズを小さくしてもよい。このようにすることで、背景オブジェクトの内側、という限定のもとで実際にレイヤに与えた半径よりさらに奥にアイコンがあるように見え、空間の広がりを演出できる。また、選択状態になったアイコンをユーザの近傍に移動させる際、よりダイナミックな動きを表現できる。なお図7の例では4つのレイヤを示しているが、レイヤの数をこれに限定する主旨ではない。
背景としてパノラマ画像がテクスチャマッピングされた背景オブジェクト510は、矢印Aのように、ユーザの頭部を通る縦方向の軸を中心に所定速度で回転させる。図示する例は時計回りの回転であるが、逆方向でもよい。これにより、図6で示したようなメニュー画面500では、背景が右または左に移動していくことになる。回転の速度は好適には、背景を注視していなければ気づかれない程度の微小な値とする。アイコンを見ていても気づく程度の速さで背景が動いていると、ユーザは自分自身が動いているような感覚になり場合によっては酔いなどの体調不良を生じさせる。意識下レベルで関知する程度の速度で画像を動かすことにより、そのような不具合なく、背景がより奥にあるような視覚効果をもたらすことができる。
図8は、視線の動きに応じたメニュー画面の変遷を例示している。まず上段の(a)の画面では、これまで述べたようにして表示される複数のアイコン520と、ユーザの視点を表すカーソル522が表示されている。図7を参照して説明したように、アイコン520は仮想空間において、ユーザを中心とする同心球の複数のレイヤ上に分散して配置され、結果として見かけ上の大きさや向きが様々となる。同図では、メニュー画面のうちアイコンのみを示しているが、図6に示すように各アイコンの上方にはタイトルなどの文字列も、ユーザからの距離や角度に応じた大きさや形状で示される。
(a)の状態では、カーソル522がアイコン520と重なっていない。ここでユーザが、例えば首を微少量、右方に振る、すなわち右方に視線を移動させると、それに応じて画面の視野が右方に移動する。結果として中段の(b)に示すように、画面内でのカーソル522の位置は変化しないが、アイコン全体が相対的に左方へ移動する。当然、視線の移動方向は限定されず、いずれにしろ視線の移動に応じて逆方向にアイコン全体が移動する。このような動きにより、あるアイコン524にカーソル522が重なったら、当該アイコン524を仮想空間でユーザ側へ移動させることにより選択状態であることを表す。
すなわち図示するように、選択状態のアイコン524がユーザの眼前に移動することにより、見かけ上のサイズが大きくなる。なお(a)から(b)への遷移途上には当然、アイコンが近づいてくる様子が動画表示される。アイコン524がどの位置にあったとしても、また距離に応じてアイコンのサイズを小さくしていても、選択状態となったらユーザから同じ距離かつ同じサイズで表示する。これにより、様々な位置にあるアイコンが、視線を合わせることによりユーザに引き寄せられ、同じ位置で止まるような状態を表現できる。
アイコンが選択状態となったら、当該アイコン524の下方に操作ボタンを追加で表示する。操作ボタンはアイコンが表すコンテンツの種類によって様々でよいが、同図では動画コンテンツを想定し、情報表示ボタン526a、再生開始ボタン526b、対応ウェブサイト表示ボタン526c(以後、「操作ボタン526」と総称する場合がある)の3つを表示している。この状態で下段(c)の右側に示すように、ユーザがうなずくようにして視線を下方に動かすと、それに応じて画面の視野が下方に移動する。
結果として(c)の画面のように、画面内でのカーソル522の位置は変化しないが、アイコン全体が相対的に上方へ移動する。これによりカーソル522が操作ボタン526のいずれかと重なったら、当該操作ボタンに対応する操作を受け付ける。図示する例では再生開始ボタン526bと重なっているため、選択状態のアイコン524が表す動画コンテンツの再生開始操作を受け付け、再生処理を開始する。この場合、表示中のメニュー画面から動画へ表示が切り替わるため、その制御はコンテンツ処理部728が行う。
なおカーソル522が情報表示ボタン526aと重なった場合は、メニュー画面と同じ仮想空間内で動画を概説する文字情報へ表示を切り替える。カーソル522が対応ウェブサイト表示ボタン526cと重なった場合は、当該ウェブサイトを提供するサーバへ接続することによりウェブサイトの表示へ切り替える。操作ボタンとしてはこのほか、選択状態のアイコンが表す電子コンテンツをダウンロードするボタンなどを表示させてもよい。
図示するように操作ボタン526を選択状態のアイコン524の下方近傍に出現させることにより、より少ない労力で、かつアイコン選択との連続性を保ちながら各種操作が可能になる。結果として操作ボタン526が、選択状態にない他のアイコンと重なる可能性が生じるが、操作ボタンを表示している期間は他のアイコンの選択を無効とすることにより、操作ボタンに対する操作を優先させる。
操作ボタンに対する操作を有効とし、それに対応する処理を開始するために、何らかの条件を設定してもよい。例えばカーソル522が操作ボタンに重なってから所定時間が経過したことを条件に、操作を有効と判定してもよい。この場合、カーソル522が操作ボタンに重なった時点で、操作が有効とされるまでの残り時間を表すインジケータを別途、表示してもよい。このようにすることで、首の微妙な動きで偶然、操作ボタンにカーソルがかかってしまい、意図しない処理が頻繁に開始されてしまうといった不具合を解消できる。また意図してカーソル522を操作ボタンに移動させたとしても、処理が開始されるまでにキャンセルの余地を与えることができる。
図9は、選択状態となったアイコンに与える変化を説明するための図である。図7で説明したように、ユーザ516の視線に応じてスクリーン518が設定される。当該スクリーンの中心には、図8で示したようにユーザの視点を表すカーソル522が表示される。一方、ユーザ516の周囲には同心球の第1レイヤ512a、第2レイヤ512b、第3レイヤ512cが設定されるが、同図ではその一部のみを示している。
それらのレイヤ上に配置されたアイコンのうち、第3レイヤ512c上に配置されたアイコン524aに視線が到達し、カーソル522と重なったら、矢印Bで示すように当該アイコン524aをユーザ側に直線的に移動させる。そしてスクリーン518から所定距離ΔZの位置で停止させる(アイコン524b)。上述のように初期の配置において奥に位置するレイヤほどアイコンのサイズを小さくし奥行き感を演出している場合は、ユーザからの距離の短縮とともに徐々に拡大していくことにより、元々他と同じサイズであったアイコンがより遠くから移動してきたように見せることができる。
カーソル522と重なったアイコンは仮想空間において、視線の方向であるZ軸上を移動する。そのため好適には当該軸上に他のアイコンが存在しないように初期の配置を決定する。すなわち仮想空間において、ユーザ516の頭部からの方位を規定する複数の放射線において、1つの線上には2つ以上のアイコンが配置されないように、レイヤを1つ選んで配置する。当該放射線同士のなす角度は、アイコンがΔZの位置に移動するまでに隣の放射線上のアイコンと接しない範囲で、アイコンの数に応じて設定する。
このように配置することで、選択状態となったアイコンが他のアイコンを透過して移動するなどの不自然さをなくすことができる。このような拘束条件のもと、各放射線上のどのレイヤにアイコンを配置させるか、すなわち複数のアイコンをどのように分散させて配置するか、については様々なアプローチが考えられる。例えば、表示すべきアイコンの数に増減があったら、アイコン配置部722はその都度、不自然な偏りがないように配置を更新する。アイコンが増減するケースとしては、ユーザが新たな電子コンテンツをダウンロードしたり、元からあった電子コンテンツを削除したりした場合が考えられる。
またアイコンに与えられた優先度に基づきユーザからの距離を決定してもよい。例えば過去に選択された頻度をアイコンごとに記録していき、頻度が高いアイコンほどユーザに近いレイヤに配置する。選択履歴に応じてサーバなどからお勧めの電子コンテンツのアイコンを取得し、それをユーザから近いレイヤに配置してもよい。この場合、アイコン情報記憶部720には選択履歴を格納しておき、アイコン配置部722がそれを参照することにより配置するレイヤを決定したり、サーバにお勧めを問い合わせてデータを取得したりする。
さらに、アイコンが表す電子コンテンツの種類に応じて、アイコン同士の距離を調整してもよい。例えば同じカテゴリに属するコンテンツのアイコンを仮想空間において近接させまとめて配置することにより、ユーザから見てクラスタが形成されるようにする。このようにアイコンが表象するコンテンツがカテゴリに分類されている場合など、情報が階層構造を有する場合は、上層の情報を表すアイコンにカーソルが重なったときに、その位置の近傍に、それに属する下層の情報を表すアイコンが生まれるようにしてもよい。
次に、以上の構成により実現できる、メニュー画像生成装置の動作について説明する。図10は、情報処理装置200がメニュー画面を生成し選択操作を受け付ける処理手順を示すフローチャートである。このフローチャートは、例えばユーザがヘッドマウントディスプレイ100を装着し、情報処理装置200の電源を投入したときなどに開始される。まず情報処理装置200のアイコン配置部722は、アイコン情報記憶部720に格納されるアイコン情報に基づき、アイコンを表示すべきコンテンツの個数、優先度、カテゴリなどを特定し、それに応じて仮想空間におけるアイコンの配置を決定する(S10)。
一方、視野制御部714は、背景オブジェクトなどを含む仮想空間を定義したうえ、ユーザの頭部の位置や姿勢に基づき仮想空間に対する視野面(スクリーン)を決定する。画像生成部716は、当該スクリーンに、アイコン配列を含む仮想空間を投影することにより、メニュー画面を描画する(S12)。描画処理自体には、一般的なコンピュータグラフィックス技術を適用できる。画像生成部716はさらに、ユーザの視点を表すカーソルをメニュー画面上に重畳表示する。
以後、視野制御部714が頭部の姿勢の変化に応じてスクリーンを変化させ、画像生成部716が当該スクリーンに対し画像を描画する処理を所定のレートで繰り返すことを基本とする。このとき同時に、背景画像がマッピングされた背景オブジェクトを、ユーザを中心として水平方向に所定の微小速度で回転させ続ける。出力部726が、生成された画像のデータをヘッドマウントディスプレイ100に順次出力することにより、メニュー画面が視線の動きに応じて動的に表現される。
このような状態において、カーソルがアイコンに重なったことを操作判定部718が判定したら(S14のY)、アイコン情報記憶部720は、当該アイコンを仮想空間でユーザの方向に移動させることにより選択状態とする(S16)。このとき画像生成部716は、背景オブジェクトの画像を、選択状態にあるアイコンに対応するものに更新する。この背景画像は、次に別のアイコンが選択状態となるまで表示させる。また選択状態となったアイコンの下方に所定の操作ボタンを表示する(S18)。
その状態でユーザがうなずくことによりカーソルが操作ボタンに移動し(S20のY)、そのまま所定時間が経過するなど当該操作を有効と判定したら(S22のY)、操作判定部718は、操作対象のボタンの種類に応じて画像生成部716あるいはコンテンツ処理部728に処理を要求する。これにより対応する処理が実施される(S24)。
操作ボタンが表示されてもカーソルがそこに移動しなかった場合や(S18、S20のN)、カーソルが操作ボタン上に移動したものの有効とされずに外れた場合は(S20のY、S22のN)、S12の描画処理のみを継続する。この際、カーソルが操作ボタンやS14で重なっていたアイコンから外れても、別のアイコンにカーソルが重なるまでは、S16でユーザ近傍に移動させたアイコンはその位置に据え置き、操作ボタンも表示させたままとする。結果として当該アイコンは、選択状態のまま視野から外れていく場合もある。
カーソルがアイコンに重なる都度、当該アイコンに対しS16、S18の処理がセットでなされる。結果として、視線を自由に動かしていくと、その先にあるアイコンが手前に移動しては元に戻る、あるいはそのまま視野外に出るような変化が表される。カーソルがアイコンに重なっていない期間、画像生成部716は仮想空間を視野変化のみに応じて描画する(S14のN、S12)。
一方、S24で操作ボタンに対応する処理を実施したあと、メニュー画面へ戻る操作がなされた場合は、画像生成部716はメニュー画面の描画処理を再開する(S26のY、S12)。メニュー画面へ戻る操作がなされなければ、画像生成部716あるいはコンテンツ処理部728がそれまでの処理を継続する(S26のN、S28のN、S24)。ただしその過程で、ユーザ操作などにより処理を終了させる必要が生じた場合は、情報処理装置200は全体の処理を終了する(S28のY)。
以上述べた本実施の形態によれば、複数のアイコンからの選択入力を受け付けるメニュー画面を、ユーザの顔の向きや視線の変化に応じて視野が変化する仮想空間として表現する。このとき仮想空間に全天球状の背景オブジェクトを配置し、その内部にアイコンを分散させて配置する。そして首振りなどにより視線が到達したアイコンを、ユーザの眼前に引き寄せるように移動させ、当該アイコンに対する詳細な操作を受け付けるための操作ボタンを、当該アイコンの下方に表示する。
遠くに配置されたアイコンであっても眼前に移動させることにより、その上方に表示させたタイトルやアイコン自体の画像を十分、視認できるようになる。その結果、仮想空間で様々な距離にアイコンを配置することができ、一度に多くのアイコンを表示できるとともに、仮想空間の世界観を楽しみながらコンテンツを選択できる。また、天頂や天底を含む所定範囲を配置禁止領域とすることで、無理のない動きで選択操作が可能となる。さらに、背景オブジェクトをユーザが気づかない程度の速度で回転させたり、遠くのアイコンほどオブジェクトのサイズを小さくしたりすることにより、奥行き感をより演出することができ、独特の世界観を表現できる。
背景の画像を選択状態のアイコンに対応するものにしたり、アイコンが表象するコンテンツの属性などに応じて配置を調整したりすることで、アイコン選択の効率性と娯楽性を両立できる。以上のように、仮想空間に対する視線の動きで高度な選択操作が可能となるため、ヘッドマウンドディスプレイのように入力装置の操作がしづらい場合は特に有効である。また、そのようにして選択したコンテンツが没入感を伴うものである場合は、当該コンテンツの世界観に適合した表現で選択操作が可能となる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。