(57)【要約】      （修正有）【課題】ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供可能な情報処理方法を提供する。【解決手段】ヘッドマウントデバイスを備えたシステムにおいて実行される情報処理方法であって、操作オブジェクト（筆記具）と、それによって影響が与えられる対象オブジェクト（ノート）と、を含む仮想空間を定義する仮想空間データを生成するステップと、ヘッドマウントデバイスの動きおよび仮想空間データに基づいて、ヘッドマウントデバイスに表示される視野画像を示す視野画像データを生成するステップと、ヘッドマウントデバイスを装着したユーザの身体の一部の動きに応じて、操作オブジェクトを動かすステップと、操作オブジェクトの動きに応じて操作オブジェクトと対象オブジェクトとが干渉した場合には、操作オブジェクトと対象オブジェクトとの干渉量に基づいて、対象オブジェクトに与えられる影響を特定するステップと、を含む。【選択図】図１２
2018185567.tif 000002
【特許請求の範囲】
【請求項１】
情報処理方法であって、
前記情報処理方法は、ヘッドマウントデバイスを備えたシステムにおいて実行され、
（ａ）操作オブジェクトと、前記操作オブジェクトによって影響が与えられる対象オブジェクトと、を含む仮想空間を定義する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きおよび前記仮想空間データに基づいて、前記ヘッドマウントデバイスに表示される視野画像を示す視野画像データを生成するステップと、
（ｃ）前記ヘッドマウントデバイスを装着したユーザの身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
（ｄ）前記操作オブジェクトの動きに応じて前記操作オブジェクトと前記対象オブジェクトとが干渉した場合には、前記操作オブジェクトと前記対象オブジェクトとの干渉量に基づいて、前記対象オブジェクトに与えられる前記影響を特定するステップと、
を含む、情報処理方法。
【請求項２】
前記影響は、前記対象オブジェクトにおける視覚的な表示を含む、請求項１に記載の情報処理方法。
【請求項３】
前記操作オブジェクトと前記対象オブジェクトとが干渉している場合に、前記操作オブジェクトの位置が、前記対象オブジェクトの表面において接触する位置となるように調整されており、
前記操作オブジェクトと前記表面との接触点において前記視覚的な表示が、前記干渉量に基づいて異ならされている、請求項２に記載の情報処理方法。
【請求項４】
前記対象オブジェクトは、前記接触点を含む前記表面と、前記表面とは反対側の裏面と、を少なくとも含み、
前記視覚的な表示は、前記表面において前記接触点を含む第１部分の面積、前記第１部分の濃淡、および、前記裏面において前記第１部分に対応する部分である第２部分の面積、の少なくとも一つを含む、請求項３に記載の情報処理方法。
【請求項５】
前記影響は、前記対象オブジェクトの少なくとも一部が変形されるか否かが特定されることを含む、請求項１に記載の情報処理方法。
【請求項６】
前記影響は、前記対象オブジェクトに予め関連付けられたパラメータを変動させることを含む、請求項１に記載の情報処理方法。
【請求項７】
（ｆ）前記干渉量または前記影響に応じて触覚的なフィードバックを前記ユーザに与えるステップを、さらに含む、請求項１から６のいずれか一項に記載の情報処理方法。
【請求項８】
前記干渉量は、前記対象オブジェクトに干渉した前記操作オブジェクトの干渉部分の体積、前記干渉部分の最大深さ、前記対象オブジェクトの表面における前記干渉部分の面積、の少なくとも一つに基づいて規定される、請求項１から７のうちいずれか一項に記載の情報処理方法。
【請求項９】
請求項１から８のいずれか一項に記載の情報処理方法をコンピュータに実行させるための情報処理プログラム。
【請求項１０】
ヘッドマウントデバイスを用いた情報処理システムであって、請求項１から８のうちいずれか一項に記載の情報処理方法を実行するように構成された、情報処理システム。
【請求項１１】
プロセッサと、
コンピュータ可読命令を記憶するメモリと、を備えた情報処理装置であって、
前記コンピュータ可読命令が前記プロセッサにより実行されると、前記情報処理装置は請求項１から８のうちいずれか一項に記載の情報処理方法を実行する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置に関する。
【背景技術】
【０００２】
非特許文献１のように、仮想空間内で仮想手を使って遊ぶゲームが知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Toybox Demo for Oculus Touch”、[online]、平成２７年１０月１３日、Oculus、[平成２９年４月１１日検索]、インターネット＜https://www.youtube.com/watch?v=iFEMiyGMa58&feature=youtu.be＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の非特許文献１のような仮想手を用いたゲームにおいて、より直感的な仮想体験を提供するためには改善の余地がある。
【０００５】
本開示は、ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供可能な情報処理方法、情報処理プログラム、情報処理システム、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本開示が示す一態様によれば、情報処理方法であって、
前記情報処理方法は、ヘッドマウントデバイスを備えたシステムにおいて実行され、
（ａ）操作オブジェクトと、前記操作オブジェクトによって影響が与えられる対象オブジェクトと、を含む仮想空間を定義する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きおよび前記仮想空間データに基づいて、前記ヘッドマウントデバイスに表示される視野画像を示す視野画像データを生成するステップと、
（ｃ）前記ヘッドマウントデバイスを装着したユーザの身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
（ｄ）前記操作オブジェクトの動きに応じて前記操作オブジェクトと前記対象オブジェクトとが干渉した場合には、前記操作オブジェクトと前記対象オブジェクトとの干渉量に基づいて、前記対象オブジェクトに与えられる前記影響を特定するステップと、
を含む。
【０００７】
本開示によれば、ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態（以下、単に本実施形態という。）に係る仮想空間配信システムを示す概略図である。
【図２】ユーザ端末を示す概略図である。
【図３】ＨＭＤを装着したユーザの頭部を示す図である。
【図４】制御装置のハードウェア構成を示す図である。
【図５】外部コントローラの具体的な構成の一例を示す図である。
【図６】視野画像をＨＭＤに表示する処理を示すフローチャートである。
【図７】仮想空間の一例を示すｘｙｚ空間図である。
【図８】状態（ａ）は、図７に示す仮想空間のｙｘ平面図である。状態（ｂ）は、図７に示す仮想空間のｚｘ平面図である。
【図９】ＨＭＤに表示された視野画像の一例を示す図である。
【図１０】図１に示すサーバのハードウェア構成を示す図である。
【図１１】状態（ａ）は、ＨＭＤを装着したユーザが存在する現実空間を示す図であり、状態（ｂ）は、仮想カメラと、各種の仮想オブジェクトとを含む仮想空間を示す図である。
【図１２】本実施形態に係る情報処理方法を説明するためのフローチャートである。
【図１３】図１１の状態での視野画像を示す図である。
【図１４】操作オブジェクトと対象オブジェクトとが干渉している状態を示す図である。
【図１５】図１４の状態での視野画像を示す図である。
【図１６】対象オブジェクトのページをめくった状態での視野画像を示す図である。
【発明を実施するための形態】
【０００９】
［本開示が示す実施形態の説明］
本開示が示す実施形態の概要を説明する。
（１）情報処理方法であって、
前記情報処理方法は、ヘッドマウントデバイスを備えたシステムにおいて実行され、
（ａ）操作オブジェクトと、前記操作オブジェクトによって影響が与えられる対象オブジェクトと、を含む仮想空間を定義する仮想空間データを生成するステップと、
（ｂ）前記ヘッドマウントデバイスの動きおよび前記仮想空間データに基づいて、前記ヘッドマウントデバイスに表示される視野画像を示す視野画像データを生成するステップと、
（ｃ）前記ヘッドマウントデバイスを装着したユーザの身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
（ｄ）前記操作オブジェクトの動きに応じて前記操作オブジェクトと前記対象オブジェクトとが干渉した場合には、前記操作オブジェクトと前記対象オブジェクトとの干渉量に基づいて、前記対象オブジェクトに与えられる前記影響を特定するステップと、
を含む。
【００１０】
この方法によれば、操作オブジェクトの対象オブジェクトに対する干渉量に応じて対象オブジェクトに与えられる影響を異ならせることができ、ユーザに対して、より直感的な仮想体験を提供することができる。
【００１１】
（２）前記影響は、前記対象オブジェクトにおける視覚的な表示を含んでもよい。
【００１２】
この方法によれば、操作オブジェクトを対象オブジェクトに干渉させた場合には、対象オブジェクトの表示が視覚的に変化することで、ユーザは自らが操作する操作オブジェクトにより対象オブジェクトに与えられた影響を直感的に把握することができる。
【００１３】
（３）前記操作オブジェクトと前記対象オブジェクトとが干渉している場合に、前記操作オブジェクトの位置が、前記対象オブジェクトの表面において接触する位置となるように調整されており、
前記操作オブジェクトと前記表面との接触点において前記視覚的な表示が、前記干渉量に基づいて異ならされていてもよい。
【００１４】
この方法によれば、操作オブジェクトが対象オブジェクトと干渉する場合でも操作オブジェクトの対象オブジェクトに対する不自然な貫通が発生しないように操作オブジェクトの位置を調整しつつ干渉量に基づいて対象オブジェクトの視覚的な表示態様を変化させることにより、直感的で自然な仮想体験を容易に提供することができる。
【００１５】
（４）前記対象オブジェクトは、前記接触点を含む前記表面と、前記表面とは反対側の裏面と、を少なくとも含み、
前記視覚的な表示は、前記表面において前記接触点を含む第１部分の面積、前記第１部分の濃淡、および、前記裏面において前記第１部分に対応する部分である第２部分の面積、の少なくとも一つを含んでもよい。
【００１６】
視覚的な表示の変化パターンとして、これらの方法を用いることが好ましい。
【００１７】
（５）前記影響は、前記対象オブジェクトの少なくとも一部が変形されるか否かが特定されることを含んでもよい。
【００１８】
（６）前記影響は、前記対象オブジェクトに予め関連付けられたパラメータを変動させることを含んでもよい。
【００１９】
（７）（ｆ）前記干渉量または前記影響に応じた触覚的なフィードバックを前記ユーザに与えるステップを、さらに含んでもよい。
【００２０】
これらの方法によっても、より直感的な仮想体験を容易に提供することができる。
【００２１】
（８）前記干渉量は、前記対象オブジェクトに干渉した前記操作オブジェクトの干渉部分の体積、前記干渉部分の最大深さ、前記対象オブジェクトの表面における前記干渉部分の面積、の少なくとも一つに基づいて規定されてもよい。
【００２２】
（９）情報処理プログラムは、上記項目（１）から（８）のいずれかに記載の情報処理方法をコンピュータに実行させるための情報処理プログラムである。
【００２３】
上記によれば、ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供可能な情報処理プログラムを提供することができる。
【００２４】
（１０）ヘッドマウントデバイスを用いた情報処理システムであって、
当該情報処理システムは、項目（１）から（８）のうちいずれかに記載の情報処理方法を実行するように構成された、情報処理システムである。
【００２５】
上記によれば、ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供可能な情報処理システムを提供することができる。
【００２６】
（１１）プロセッサと、
コンピュータ可読命令を記憶するメモリと、を備えた情報処理装置であって、
前記コンピュータ可読命令が前記プロセッサにより実行されると、前記情報処理装置は項目（１）から（８）のうちいずれかに記載の情報処理方法を実行する、情報処理装置である。
【００２７】
上記によれば、ヘッドマウントデバイスのユーザに対して、より直感的な仮想体験を提供可能な情報処理装置を提供することができる。情報処理装置は、ユーザ端末またはサーバのいずれか一方である点に留意されたい。
【００２８】
［本開示が示す実施形態の詳細］
以下、本開示が示す実施形態について図面を参照しながら説明する。本実施形態の説明において既に説明された要素と同一の参照番号を有する要素については、説明の便宜上、その説明は繰り返さない。
【００２９】
最初に、仮想空間配信システム１００（情報処理システム）の構成の概略について図１を参照して説明する。図１は、仮想空間配信システム１００（以下、単に配信システム１００という。）の概略図である。図１に示すように、配信システム１００は、ヘッドマウントデバイス（ＨＭＤ）１１０（第一ＨＭＤ）を装着したユーザＡ（第一ユーザ）によって操作されるユーザ端末１Ａ（第一ユーザ端末）と、ＨＭＤ１１０（第二ＨＭＤ）を装着したユーザＢ（第二ユーザ）によって操作されるユーザ端末１Ｂ（第二ユーザ端末）と、サーバ２とを備える。ユーザ端末１Ａ，１Ｂは、インターネット等の通信ネットワーク３を介してサーバ２に通信可能に接続されている。以降では、説明の便宜上、各ユーザ端末１Ａ，１Ｂを単にユーザ端末１と総称する場合がある。各ユーザＡ，Ｂを単にユーザＵと総称する場合がある。本実施形態では、ユーザ端末１Ａ，１Ｂは、同一の構成を備えているものとする。仮想空間とは、ＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）空間と、ＡＲ（Ａｒｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）空間と、ＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）空間を含む。
【００３０】
次に、図２を参照してユーザ端末１の構成について説明する。図２は、ユーザ端末１を示す概略図である。図２に示すように、ユーザ端末１は、ユーザＵの頭部に装着されたヘッドマウントデバイス（ＨＭＤ）１１０と、ヘッドフォン１１６と、位置センサ１３０と、外部コントローラ３２０と、制御装置１２０とを備える。
【００３１】
ＨＭＤ１１０は、表示部１１２と、ＨＭＤセンサ１１４と、注視センサ１４０とを備える。表示部１１２は、ＨＭＤ１１０を装着したユーザＵの視界（視野）を完全に覆うように構成された非透過型の表示装置を備える。これにより、ユーザＵは、表示部１１２に表示された視野画像のみを見ることで仮想空間に没入することができる。表示部１１２は、ユーザＵの左目に画像を提供するように構成された左目用表示部と、ユーザＵの右目に画像を提供するように構成された右目用表示部とから構成されてもよい。ＨＭＤ１１０は、透過型の表示装置を備えてもよい。この場合、透過型の表示装置は、その透過率を調整することで、一時的に非透過型の表示装置として構成されてもよい。
【００３２】
ＨＭＤセンサ１１４は、ＨＭＤ１１０の表示部１１２の近傍に搭載される。ＨＭＤセンサ１１４は、地磁気センサ、加速度センサ、傾きセンサ（角速度センサやジャイロセンサ等）のうちの少なくとも１つを含み、ユーザＵの頭部に装着されたＨＭＤ１１０の各種動き（傾き等）を検出することができる。
【００３３】
注視センサ１４０は、ユーザＵの視線を検出するアイトラッキング機能を有する。注視センサ１４０は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザＵの右目に例えば赤外光を照射して、右目（特に、角膜や虹彩）から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザＵの左目に例えば赤外光を照射して、左目（特に、角膜や虹彩）から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
【００３４】
ヘッドフォン１１６（音声出力部）は、ユーザＵの左耳と右耳にそれぞれ装着されている。ヘッドフォン１１６は、制御装置１２０から音声データ（電気信号）を受信し、当該受信した音声データに基づいて音声を出力するように構成されている。
【００３５】
位置センサ１３０は、例えば、ポジション・トラッキング・カメラにより構成され、ＨＭＤ１１０と外部コントローラ３２０の位置を検出するように構成されている。位置センサ１３０は、制御装置１２０に無線または有線により通信可能に接続されており、ＨＭＤ１１０に設けられた図示しない複数の検知点の位置、傾きまたは発光強度に関する情報を検出するように構成されている。位置センサ１３０は、外部コントローラ３２０に設けられた図示しない複数の検知点の位置、傾きおよび／または発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。位置センサ１３０は、赤外線センサや複数の光学カメラを含んでもよい。
【００３６】
外部コントローラ３２０は、ユーザＵの手の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ３２０は、ユーザＵの右手によって操作される右手用外部コントローラ３２０Ｒ（以下、単にコントローラ３２０Ｒという。）と、ユーザＵの左手によって操作される左手用外部コントローラ３２０Ｌ（以下、単にコントローラ３２０Ｌという。）と、を有する。コントローラ３２０Ｒは、ユーザＵの右手の位置や右手の手指の動きを示す装置である。コントローラ３２０Ｌは、ユーザＵの左手の位置や左手の手指の動きを示す装置である。コントローラ３２０Ｒ，３２０Ｌの動きに応じて仮想空間内に存在する左手オブジェクトおよび右手オブジェクトがそれぞれ動く。
【００３７】
制御装置１２０は、ＨＭＤ１１０を制御するように構成されたコンピュータである。制御装置１２０は、位置センサ１３０から取得された情報に基づいて、ＨＭＤ１１０の位置情報を特定し、当該特定された位置情報に基づいて、仮想空間における仮想カメラの位置（仮想空間内でのユーザＵの位置）と、現実空間におけるＨＭＤ１１０を装着したユーザＵの位置を正確に対応付けることができる。制御装置１２０は、位置センサ１３０および／または外部コントローラ３２０に内蔵されたセンサから取得された情報に基づいて、外部コントローラ３２０の動作を特定し、当該特定された外部コントローラ３２０の動作に基づいて、仮想空間内に表示される手オブジェクトの動作と現実空間における外部コントローラ３２０の動作を正確に対応付けることができる。特に、制御装置１２０は、位置センサ１３０および／またはコントローラ３２０Ｌに内蔵されたセンサから取得された情報に基づいて、コントローラ３２０Ｌの動作を特定し、当該特定されたコントローラ３２０Ｌの動作に基づいて、仮想空間内に表示される左手オブジェクトの動作と現実空間におけるコントローラ３２０Ｌの動作（ユーザＵの左手の動作）を正確に対応付けることができる。同様に、制御装置１２０は、位置センサおよび／コントローラ３２０Ｒに内蔵されたセンサから取得された情報に基づいて、コントローラ３２０Ｒの動作を特定し、当該特定されたコントローラ３２０Ｒの動作に基づいて、仮想空間内に表示される右手オブジェクトの動作と現実空間におけるコントローラ３２０Ｒの動作（ユーザＵの右手の動作）を正確に対応付けることができる。
【００３８】
制御装置１２０は、ユーザＵの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。制御装置１２０は、特定された注視点に基づいて、ユーザＵの両目の視線（ユーザＵの視線）を特定することができる。ユーザＵの視線は、ユーザＵの両目の視線であって、ユーザＵの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。制御装置１２０は、注視センサ１４０（左目用注視センサと右目用注視センサ）から送信された検出データ（アイトラッキングデータ）に基づいて、ユーザＵの右目の黒目の中心位置とユーザＵの左目の黒目の中心位置とをそれぞれ特定することができる。
【００３９】
次に、図３を参照して、ＨＭＤ１１０の位置や傾きに関する情報を取得する方法について以下に説明する。図３は、ＨＭＤ１１０を装着したユーザＵの頭部を示す図である。ＨＭＤ１１０を装着したユーザＵの頭部の動きに連動したＨＭＤ１１０の位置や傾きに関する情報は、位置センサ１３０および／またはＨＭＤ１１０に搭載されたＨＭＤセンサ１１４により検出可能である。図２に示すように、ＨＭＤ１１０を装着したユーザＵの頭部を中心として、３次元座標（ｕｖｗ座標）が規定される。ユーザＵが直立する垂直方向をｖ軸として規定し、ｖ軸と直交しＨＭＤ１１０の中心を通る方向をｗ軸として規定し、ｖ軸およびｗ軸と直交する方向をｕ軸として規定する。位置センサ１３０および／またはＨＭＤセンサ１１４は、各ｕｖｗ軸回りの角度（すなわち、ｖ軸を中心とする回転を示すヨー角、ｕ軸を中心とした回転を示すピッチ角、ｗ軸を中心とした回転を示すロール角で決定される傾き）を検出する。制御装置１２０は、検出された各ｕｖｗ軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
【００４０】
次に、図４を参照することで、制御装置１２０のハードウェア構成について説明する。図４は、制御装置１２０のハードウェア構成を示す図である。図４に示すように、制御装置１２０は、制御部１２１と、記憶部１２３と、Ｉ／Ｏ（入出力）インターフェース１２４と、通信インターフェース１２５と、バス１２６とを備える。制御部１２１と、記憶部１２３と、Ｉ／Ｏインターフェース１２４と、通信インターフェース１２５は、バス１２６を介して互いに通信可能に接続されている。
【００４１】
制御装置１２０は、ＨＭＤ１１０とは別体に、パーソナルコンピュータ、スマートフォン、ファブレット、タブレットまたはウェアラブルデバイスとして構成されてもよいし、ＨＭＤ１１０に内蔵されていてもよい。また、制御装置１２０の一部の機能がＨＭＤ１１０に搭載されると共に、制御装置１２０の残りの機能がＨＭＤ１１０とは別体の他の装置に搭載されてもよい。
【００４２】
制御部１２１は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成される。プロセッサは、例えばＣＰＵ(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であって、ＲＯＭに組み込まれた各種プログラムから指定されたプログラムをＲＡＭ上に展開し、ＲＡＭとの協働で各種処理を実行するように構成されている。
【００４３】
特に、プロセッサが制御プログラムをＲＡＭ上に展開し、ＲＡＭとの協働で制御プログラムを実行することで、制御部１２１は、制御装置１２０の各種動作を制御してもよい。制御部１２１は、視野画像データに基づいてＨＭＤ１１０の表示部１１２に視野画像を表示する。これにより、ユーザＵは、仮想空間に没入することができる。
【００４４】
記憶部（ストレージ）１２３は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部１２３は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現するための制御プログラムを格納してもよい。記憶部１２３には、ユーザＵの認証プログラムや各種画像やオブジェクト（例えば、手オブジェクト等）に関するデータが格納されてもよい。記憶部１２３には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【００４５】
Ｉ／Ｏインターフェース１２４は、ＨＭＤ１１０と、位置センサ１３０と、外部コントローラ３２０と、ヘッドフォン１１６と、をそれぞれ制御装置１２０に通信可能に接続するように構成されており、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子、ＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ―Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子等により構成されている。制御装置１２０は、ＨＭＤ１１０と、位置センサ１３０と、外部コントローラ３２０と、ヘッドフォン１１６とのそれぞれと無線接続されていてもよい。
【００４６】
通信インターフェース１２５は、制御装置１２０をＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）またはインターネット等の通信ネットワーク３に接続させるように構成されている。通信インターフェース１２５は、通信ネットワーク３を介してサーバ２等の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク３を介して通信するための通信規格に適合するように構成されている。
【００４７】
次に、図５を参照して外部コントローラ３２０の具体的構成の一例について説明する。外部コントローラ３２０は、ユーザＵの身体の一部（頭部以外の部位であり、本実施形態においてはユーザＵの手）の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ３２０は、ユーザＵの右手によって操作される右手用外部コントローラ３２０Ｒ（以下、単にコントローラ３２０Ｒという。）と、ユーザＵの左手によって操作される左手用外部コントローラ３２０Ｌ（以下、単にコントローラ３２０Ｌという。）と、を有する。コントローラ３２０Ｒは、ユーザＵの右手の位置や右手の手指の動きを示す装置である。また、コントローラ３２０Ｒの動きに応じて仮想空間内に存在する右手オブジェクト４００Ｒ（図１１参照）が移動する。コントローラ３２０Ｌは、ユーザＵの左手の位置や左手の手指の動きを示す装置である。また、コントローラ３２０Ｌの動きに応じて仮想空間内に存在する左手オブジェクト４００Ｌ（図１１参照）が移動する。コントローラ３２０Ｒとコントローラ３２０Ｌは略同一の構成を有するので、以下では、図５を参照してコントローラ３２０Ｒの具体的構成についてのみ説明する。以降の説明では、便宜上、コントローラ３２０Ｌ，３２０Ｒを単にコントローラ３２０と総称する場合がある。
【００４８】
図５に示すように、コントローラ３２０Ｒは、操作ボタン３０２と、複数の検知点３０４と、図示しないセンサと、図示しないトランシーバとを備える。検知点３０４とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン３０２は、ユーザＵからの操作入力を受付けるように構成された複数のボタン群により構成されている。操作ボタン３０２は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面３２２上に２つのプッシュ式ボタン３０２ａ，３０２ｂが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ３２４の前面部分にトリガー式ボタン３０２ｅが設けられると共に、グリップ３２４の側面部分にトリガー式ボタン３０２ｆが設けられる。トリガー式ボタン３０２ｅ，３０２ｆは、人差し指と中指によってそれぞれ操作されることが想定されている。アナログスティックは、所定のニュートラル位置から３６０度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面３２２上にアナログスティック３２０ｉが設けられており、親指を用いて操作されることが想定されている。
【００４９】
コントローラ３２０Ｒは、グリップ３２４の両側面から天面３２２とは反対側の方向へ延びて半円状のリングを形成するフレーム３２６を備える。フレーム３２６の外側面には、複数の検知点３０４が埋め込まれている。複数の検知点３０４は、例えば、フレーム３２６の円周方向に沿って一列に並んだ複数の赤外線ＬＥＤである。位置センサ１３０は、複数の検知点３０４の位置、傾きまたは発光強度に関する情報を検出した後に、制御装置１２０は、位置センサ１３０によって検出された情報に基づいて、コントローラ３２０Ｒの位置や姿勢（傾き・向き）に関する情報を取得する。
【００５０】
コントローラ３２０Ｒのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザＵがコントローラ３２０Ｒを動かしたときに、コントローラ３２０Ｒの向きや動きに応じた信号（例えば、磁気、角速度、又は加速度に関する情報を示す信号）を出力する。制御装置１２０は、センサから出力された信号に基づいて、コントローラ３２０Ｒの位置や姿勢に関する情報を取得する。
【００５１】
コントローラ３２０Ｒのトランシーバは、コントローラ３２０Ｒと制御装置１２０との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザＵの操作入力に対応する操作信号を制御装置１２０に送信してもよい。また、トランシーバは、検知点３０４の発光をコントローラ３２０Ｒに指示する指示信号を制御装置１２０から受信してもよい。さらに、トランシーバは、センサによって検出された値を示す信号を制御装置１２０に送信してもよい。
【００５２】
次に、図６から図９を参照することで視野画像をＨＭＤ１１０に表示するための処理について説明する。図６は、視野画像をＨＭＤ１１０に表示する処理を示すフローチャートである。図７は、仮想空間２００の一例を示すｘｙｚ空間図である。図８の状態（ａ）は、図７に示す仮想空間２００のｙｘ平面図である。図８の状態（ｂ）は、図７に示す仮想空間２００のｚｘ平面図である。図９は、ＨＭＤ１１０に表示された視野画像Ｖの一例を示す図である。
【００５３】
図６に示すように、ステップＳ１において、制御部１２１（図４参照）は、仮想カメラ３００と、各種オブジェクトとを含む仮想空間２００を示す仮想空間データを生成する。図７に示すように、仮想空間２００は、中心位置２１０を中心とした全天球として規定される（図７では、上半分の天球のみが図示されている）。仮想空間２００では、中心位置２１０を原点とするｘｙｚ座標系が設定されている。仮想カメラ３００は、ＨＭＤ１１０に表示される視野画像Ｖ（図９参照）を特定するための視軸Ｌを規定している。仮想カメラ３００の視野を定義するｕｖｗ座標系は、現実空間におけるユーザＵの頭部を中心として規定されたｕｖｗ座標系に連動するように決定される。ＨＭＤ１１０を装着したユーザＵの現実空間における移動に連動して、制御部１２１は、仮想カメラ３００を仮想空間２００内で移動させてもよい。
【００５４】
次に、ステップＳ２において、制御部１２１は、仮想カメラ３００の視野ＣＶ（図８参照）を特定する。具体的には、制御部１２１は、位置センサ１３０および／またはＨＭＤセンサ１１４から送信されたＨＭＤ１１０の状態を示すデータに基づいて、ＨＭＤ１１０の位置や傾きに関する情報を取得する。次に、制御部１２１は、ＨＭＤ１１０の位置や傾きに関する情報に基づいて、仮想空間２００内における仮想カメラ３００の位置や向きを特定する。次に、制御部１２１は、仮想カメラ３００の位置や向きから仮想カメラ３００の視軸Ｌを決定し、決定された視軸Ｌから仮想カメラ３００の視野ＣＶを特定する。仮想カメラ３００の視野ＣＶは、ＨＭＤ１１０を装着したユーザＵが視認可能な仮想空間２００の一部の領域に相当する（換言すれば、ＨＭＤ１１０に表示される仮想空間２００の一部の領域に相当する）。視野ＣＶは、図８の状態（ａ）に示すｘｙ平面において、視軸Ｌを中心とした極角αの角度範囲として設定される第一領域ＣＶａと、図８の状態（ｂ）に示すｘｚ平面において、視軸Ｌを中心とした方位角βの角度範囲として設定される第二領域ＣＶｂとを有する。制御部１２１は、注視センサ１４０から送信されたユーザＵの視線を示すデータに基づいてユーザＵの視線を特定し、特定されたユーザＵの視線とＨＭＤ１１０の位置や傾きに関する情報に基づいて、仮想カメラ３００の向き（仮想カメラの視軸Ｌ）を決定してもよい。
【００５５】
このように、制御部１２１は、位置センサ１３０および／またはＨＭＤセンサ１１４からのデータに基づいて、仮想カメラ３００の視野ＣＶを特定することができる。ＨＭＤ１１０を装着したユーザＵが動くと、制御部１２１は、位置センサ１３０および／またはＨＭＤセンサ１１４から送信されたＨＭＤ１１０の動きを示すデータに基づいて、仮想カメラ３００の視野ＣＶを更新することができる。つまり、制御部１２１は、ＨＭＤ１１０の動きに応じて、視野ＣＶを更新することができる。同様に、ユーザＵの視線が変化すると、制御部１２１は、注視センサ１４０から送信されたユーザＵの視線を示すデータに基づいて、仮想カメラ３００の視野ＣＶを更新してもよい。つまり、制御部１２１は、ユーザＵの視線の変化に応じて、視野ＣＶを変化させてもよい。
【００５６】
次に、ステップＳ３において、制御部１２１は、ＨＭＤ１１０の表示部１１２に表示される視野画像Ｖを示す視野画像データを生成する。具体的には、制御部１２１は、仮想空間２００を規定する仮想空間データと、仮想カメラ３００の視野ＣＶとに基づいて、視野画像データを生成する。
【００５７】
次に、ステップＳ４において、制御部１２１は、視野画像データに基づいて、ＨＭＤ１１０の表示部１１２に視野画像Ｖを表示する（図９参照）。このように、ＨＭＤ１１０を装着しているユーザＵの動きに応じて、仮想カメラ３００の視野ＣＶが変化し、ＨＭＤ１１０の表示部１１２に表示される視野画像Ｖが変化するので、ユーザＵは仮想空間２００に没入することができる。
【００５８】
仮想カメラ３００は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部１２１は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部１２１は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部１２１は、左目用視野画像データに基づいて、左目用表示部に左目用の視野画像を表示すると共に、右目用視野画像データに基づいて、右目用表示部に右目用の視野画像を表示する。このようにして、ユーザＵは、左目用視野画像と右目用視野画像との間の視差により、視野画像を３次元的に視認することができる。
【００５９】
図６に示すステップＳ１〜Ｓ４の処理は１フレーム毎に実行されてもよい。例えば、動画のフレームレートが９０ｆｐｓである場合、ステップＳ１〜Ｓ４の処理はΔＴ＝１／９０（秒）間隔で繰り返し実行されてもよい。このように、ステップＳ１〜Ｓ４の処理が所定間隔ごとに繰り返し実行されるため、ＨＭＤ１１０の動作に応じて仮想カメラ３００の視野が更新されると共に、ＨＭＤ１１０の表示部１１２に表示される視野画像Ｖが更新される。
【００６０】
次に、図１に示すサーバ２のハードウェア構成について図１０を参照して説明する。図１０は、サーバ２のハードウェア構成を示す図である。図１０に示すように、サーバ２は、制御部２３と、記憶部２２と、通信インターフェース２１と、バス２４とを備える。制御部２３と、記憶部２２と、通信インターフェース２１は、バス２４を介して互いに通信可能に接続されている。制御部２３は、メモリとプロセッサを備えており、メモリは、例えば、ＲＯＭおよびＲＡＭ等から構成されると共に、プロセッサは、例えば、ＣＰＵ、ＭＰＵおよび／またはＧＰＵにより構成される。
【００６１】
記憶部（ストレージ）２２は、例えば、大容量のＨＤＤ等である。記憶部２２は、本実施形態に係る情報処理方法の少なくとも一部をコンピュータに実行させるための制御プログラムや、複数のユーザによる仮想空間の共有を実現させるための制御プログラムを格納してもよい。また、記憶部２２は、各ユーザを管理するためのユーザ管理情報や各種画像やオブジェクト（例えば、手オブジェクト等）に関するデータを格納してもよい。通信インターフェース２１は、サーバ２を通信ネットワーク３に接続させるように構成されている。
【００６２】
以下、本実施形態に係る仮想空間配信システム１００の処理の流れを図１１〜１４を参照して詳細に説明する。図１１の状態（ａ）は、ＨＭＤ１１０とコントローラ３２０Ｒ，３２０Ｌを装着したユーザＵが存在する現実空間を示す図である。図１１の状態（ｂ）は、仮想カメラ３００と、手オブジェクト４００と、筆記具オブジェクト５００と、ノートオブジェクト６００とを含む仮想空間２００を示す図である。図１２は、本実施形態に係る情報処理方法を説明するためのフローチャートである。図１３は、視野画像を示す図である。図１４は、筆記具オブジェクト５００とノートオブジェクト６００とが干渉している状態を示す図である。
【００６３】
本実施形態において、仮想空間２００は、仮想空間配信システム１００により提供されるゲーム空間として構成されている。図１１の状態（ｂ）に示すように、仮想空間２００は、仮想カメラ３００と、手オブジェクト４００と、筆記具オブジェクト５００（操作オブジェクトの一例）と、ノートオブジェクト６００（対象オブジェクトの一例）と、を含む。制御部１２１は、これらのオブジェクトを含む仮想空間２００を規定する仮想空間データを生成する。また、制御部１２１は、１フレーム毎に仮想空間データを更新してもよい。上記したように、仮想カメラ３００は、図１１の状態（ａ）に示すユーザＵが装着しているＨＭＤ１１０の動きに連動する。つまり、仮想カメラ３００の視野は、ＨＭＤ１１０の動きに応じて更新される。仮想カメラ３００は、ユーザＵの一人称視点に関連付けられた視点を有する。
【００６４】
左手オブジェクト４００Ｌは、ユーザＵの左手に装着されるコントローラ３２０Ｌの動きに連動する。同様に、右手オブジェクト４００Ｒは、ユーザＵの右手に装着されるコントローラ３２０Ｒの動きに連動する。
【００６５】
制御部１２１は、位置センサ１３０からコントローラ３２０の位置情報を取得した上で、当該取得された位置情報に基づいて、仮想空間２００内の手オブジェクト４００Ｌ，４００Ｒの位置と現実空間におけるコントローラ３２０の位置とを対応付ける。このように、制御部１２１は、ユーザＵの手の位置（コントローラ３２０の位置）に応じて、手オブジェクト４００Ｌ，４００Ｒの位置を制御する。
【００６６】
また、ユーザＵが操作ボタン３０２を操作することで、仮想空間２００内に配置された手オブジェクト４００Ｌ，４００Ｒの各指を操作することが可能となる。つまり、制御部１２１は、操作ボタン３０２に対する入力操作に対応する操作信号をコントローラ３２０から取得した上で、当該操作信号に基づいて、手オブジェクト４００Ｌ，４００Ｒの手指の動作を制御する。例えば、ユーザＵが操作ボタン３０２を操作することで右手オブジェクト４００Ｒは筆記具オブジェクト５００を掴むことができる（図１３参照）。さらに、右手オブジェクト４００Ｒが筆記具オブジェクト５００を掴んだ状態で、コントローラ３２０の移動に応じて、右手オブジェクト４００Ｒと筆記具オブジェクト５００を移動させることが可能となる。このように、制御部１２１は、ユーザＵの手指の動きに応じて、手オブジェクト４００Ｌ，４００Ｒの動作を制御するように構成されている。
【００６７】
筆記具オブジェクト５００は、ノートオブジェクト６００に対して影響を与えるオブジェクトである。筆記具オブジェクト５００はコリジョンエリアを有している。本実施形態では、筆記具オブジェクト５００のコリジョンエリアは、筆記具オブジェクト５００を構成する領域（筆記具オブジェクト５００の外形領域）に一致しているものとする。筆記具オブジェクト５００がノートオブジェクト６００に接触して、筆記具オブジェクト５００とノートオブジェクト６００とが干渉することで、ノートオブジェクト６００に後述の影響が与えられる。なお、図１１等に示す例では、筆記具オブジェクト５００として例えば万年筆を図示しているが、手オブジェクト４００の操作によって、筆記具オブジェクト５００の種類を変えることもできる。例えば、コントローラ３２０を握っているユーザＵの手の所定の動作に基づいて、万年筆に代えて、鉛筆や消しゴムなど別の筆記用具を手オブジェクト４００に持ち替えさせることができる。
【００６８】
ノートオブジェクト６００は、仮想空間２００内の所定の位置に配置されている。ユーザＵは、手オブジェクト４００Ｌ，４００Ｒを動かして、筆記具オブジェクト５００を掴み、筆記具オブジェクト５００をノートオブジェクト６００に接触させることで、ノートオブジェクト６００の表面に線（文字や絵など）を描くことができる。ノートオブジェクト６００には、各種情報が表示されていてもよい。ノートオブジェクト６００は、仮想空間２００内の所定の位置に固定的に配置されていてもよいが、ユーザＵが操作ボタン３０２を操作することでノートオブジェクト６００を掴んで移動させることができてもよい。なお、対象オブジェクトは、ノート（書籍）型のものに限られず、タブレットやモニタなど筆記具オブジェクト５００等の操作オブジェクトによって影響が与えられるものであればよい。
【００６９】
以下、本実施形態に係る仮想空間配信システム１００で提供される情報処理方法の流れを、図１２〜図１５を参照して詳細に説明する。
まず、図１２に示すステップＳ１０において、制御部１２１（図３参照）は、仮想空間２００を規定する仮想空間データと仮想カメラ３００の視野ＣＶとに基づいて視野画像データを生成し、視野画像データに基づいてＨＭＤ１１０の表示部１１２に視野画像を表示する。ステップＳ１０は、図６に示すステップＳ１と同じである。
【００７０】
次に、ステップＳ１２において、制御部１２１は、ユーザＵにより操作されるコントローラ３２０の動きに応じて手オブジェクト４００Ｌ，４００Ｒを動かす。そして、ステップＳ１４において、制御部１２１は、ユーザＵが操作するコントローラ３２０Ｌ，３２０Ｒの少なくとも一方に筆記具オブジェクト５００を掴むための所定の操作が入力された否か（具体的には、例えば右手オブジェクト４００Ｒが筆記具オブジェクト５００に近づいた状態でコントローラ３２０Ｒの操作ボタン３０２が操作された否か）を判定する。コントローラ３２０Ｒに所定の操作が入力されたと判定された場合には（ステップＳ１４のＹｅｓ）、ステップＳ１６において、制御部１２１は、右手オブジェクト４００Ｒに筆記具オブジェクト５００を掴ませるように制御する。
【００７１】
次に、ステップＳ１８において、制御部１２１は、右手オブジェクト４００Ｒが筆記具オブジェクト５００を掴んだ状態で右手オブジェクト４００Ｒが移動したかどうかを判定する。ステップＳ１８でＹｅｓの場合には、ステップＳ２０において、制御部１２１は、コントローラ３２０Ｒの移動に応じて、右手オブジェクト４００と筆記具オブジェクト５００とを一緒に移動させる。
【００７２】
次に、ステップＳ２２において、制御部１２１は、筆記具オブジェクト５００がノートオブジェクト６００に干渉したか否かを判定する。図１４に示すように筆記具オブジェクト５００がノートオブジェクト６００に干渉したと判定された場合には（ステップＳ２２のＹｅｓ）、ステップＳ２４において、制御部１２１は、筆記具オブジェクト５００の位置を調整する。仮想空間２００内における筆記具オブジェクト５００の位置を調整する際に、実空間でユーザＵが操作するコントローラ３２０Ｒの位置を直接用いると、筆記具オブジェクト５００がノートオブジェクト６００と干渉する位置に動かされた場合に、筆記具オブジェクト５００がノートオブジェクト６００の内部に侵入するかノートオブジェクト６００を貫通してしまい、不自然な視野画像が生成されユーザＵの没入感を阻害するおそれがある。そのため、本ステップでは、制御部１２１は、視野画像Ｖにレンダリングされるべき筆記具オブジェクト５００の位置（以下、レンダリング位置と称す。）を、実空間におけるコントローラ３２０Ｒの位置（入力値）から特定される仮想空間２００内での筆記具オブジェクト５００の目標位置（以下、ターゲット位置と称す。）と、ノートオブジェクト６００の位置とに基づいて、調整している。具体的には、図１４に示すように、１フレーム毎に筆記具オブジェクト５００のターゲット位置（図１４の破線で示された筆記具オブジェクト５００の位置）が特定されたうえで、この筆記具オブジェクト５００のターゲット位置がノートオブジェクト６００に干渉している場合には、ノートオブジェクト６００との衝突が検出された位置、すなわち、筆記具オブジェクト５００とノートオブジェクト６００との最初の接触点Ｐで筆記具オブジェクト５００が止まるように、筆記具オブジェクト５００のレンダリング位置（図１４の実線で示された筆記具オブジェクト５００の位置）を特定する。このように、筆記具オブジェクト５００のターゲット位置がノートオブジェクト６００と干渉している場合でも、筆記具オブジェクト５００のレンダリング位置がノートオブジェクト６００の表面６００ａにおいて接触する位置となるように調整することにより、視野画像Ｖにおいて筆記具オブジェクト５００のノートオブジェクト６００に対する不自然な侵入や貫通が発生することがないため、ユーザＵに対して自然な仮想体験を提供することができる。
【００７３】
次に、ステップＳ２６において、制御部１２１は、筆記具オブジェクト５００のターゲット位置とノートオブジェクト６００との干渉量を特定する。ステップＳ２６における干渉量の特定処理は、例えば、図１４に示すように、ターゲット位置における筆記具オブジェクト５００のノートオブジェクト６００に干渉した部分（干渉部分）５１０の最大深さにより規定することができる。なお、干渉部分５１０の最大深さは、干渉部分５１０の先端５２０と、ノートオブジェクト６００の表面６００ａにおいて干渉部分５１０の先端５２０から一番近い部分Ｐ´との間の距離Ｌ１として特定してもよい。また、干渉部分５１０の最大深さは、筆記具オブジェクト５００とノートオブジェクト６００の表面６００ａとの最初の接触点Ｐと、干渉部分５１０の先端５２０との間の距離Ｌ２として特定してもよい。干渉量を特定する別の方法として、筆記具オブジェクト５００の干渉部分５１０の体積や、ノートオブジェクト６００の表面６００ａにおける筆記具オブジェクト５００の干渉部分５１０の面積などに基づいて干渉量が規定されてもよい。
【００７４】
次に、ステップＳ２８において、制御部１２１は、ステップＳ２６で特定された筆記具オブジェクト５００とノートオブジェクト６００との干渉量に基づいて、ノートオブジェクト６００における視覚的な表示（ノートオブジェクト６００に与えられる影響の一例）を特定する。そして、ステップＳ３０において、ステップＳ２８で特定された視覚的な表示に基づいて、視野画像Ｖを更新して、処理を終了する。具体的には、図１５の更新された視野画像Ｖに示すように、例えば、筆記具オブジェクト５００とノートオブジェクト６００との干渉量に基づいて、ノートオブジェクト６００の表面６００ａにおいて筆記具オブジェクト５００との接触点を含む着色部分７１０（第一部分の一例）の面積が変更される。例えば、筆記具オブジェクト５００とノートオブジェクト６００との干渉量が大きくなるにつれて、着色部分７１０の面積を大きくする。これにより、筆記具オブジェクト５００とノートオブジェクト６００との干渉量が少ない場合には、筆記具オブジェクト５００によりノートオブジェクト６００上に描かれる着色部分７１０の線幅が狭くなり、干渉量が多ければ、着色部分７１０の線幅が太くなる。このように、実空間で万年筆等の筆記具を用いて筆記する場合と同様に、仮想空間２００内で筆記具オブジェクト５００を用いてノートオブジェクト６００に筆記する場合にも、筆記具オブジェクト５００とノートオブジェクト６００との干渉量に応じて着色部分７１０の線幅を変更することで、筆圧の違いやにじみを表現することができる。また、筆圧の違いをより直感的に表現するために、着色部分７１０の濃淡を干渉量に応じて変更してもよい。例えば、干渉量が少なければ、着色部分７１０の色を淡くし、干渉量が多ければ着色部分７１０の色を濃くすることができる。
【００７５】
さらに、図１６に示すように、ノートオブジェクト６００の各ページが手オブジェクト４００で捲れるような場合には、裏抜け（紙の上にインクで文字や図形などを記すとき、紙の裏側までインクが浸透してしまう状態）を表現するために、筆記具オブジェクト５００とノートオブジェクト６００との干渉量に基づいて、ノートオブジェクト６００の表面６００ａの着色部分７１０に対応する裏面６００ｂの着色部分７２０（第二部分の一例）の面積を異ならせてもよい。
【００７６】
以上説明したように、本実施形態によれば、制御部１２１は、ユーザＵの手の動きに応じて筆記具オブジェクト５００を動かし、筆記具オブジェクト５００の動きに応じて筆記具オブジェクト５００とノートオブジェクト６００とが干渉した場合には、筆記具オブジェクト５００とノートオブジェクト６００との干渉量に基づいて、ノートオブジェクト６００に与えられる影響（例えば、視覚的な表示）を特定する。筆記具オブジェクト５００とノートオブジェクト６００とが干渉した場合に、筆記具オブジェクト５００とノートオブジェクト６００との干渉量に基づいてノートオブジェクト６００に与えられる影響を異ならせることで、ユーザＵに対して、より直感的な仮想体験を提供することができる。
【００７７】
なお、筆記具オブジェクト５００とノートオブジェクト６００とが干渉した場合には、その干渉量に応じてノートオブジェクト６００の少なくとも一部が変形されたり、切断されたりするようにしてもよい。この場合、筆記具オブジェクト５００とノートオブジェクト６００との干渉量だけでなく、ノートオブジェクト６００と干渉している状態での筆記具オブジェクト５００の移動速度（フレーム毎の筆記具オブジェクト５００の移動量）に基づいて、ノートオブジェクト６００の変形パターンが決定されてもよい。例えば、筆記具オブジェクト５００の移動速度が一定値以下である場合には、ノートオブジェクト６００は少し凹むだけである一方で、筆記具オブジェクト５００の移動速度が一定値より大きい場合には、ノートオブジェクト６００が切断されるように、ノートオブジェクト６００の視覚的な表示が異ならされてもよい。
【００７８】
また、上記の実施形態では、筆記具オブジェクト５００によりノートオブジェクト６００に与えられる影響の一例として、ノートオブジェクト６００における視覚的な表示を異ならせる方法を採用しているが、この例に限られない。筆記具オブジェクト５００とノートオブジェクト６００との干渉量に応じて、ノートオブジェクト６００に予め関連付けられたパラメータ（例えば、耐久度）を変動させてもよい。例えば、干渉量に応じてノートオブジェクト６００の耐久度が減じられ、耐久度がある閾値を下回った場合に、筆記具オブジェクト５００によってノートオブジェクト６００に穴があけられるようにしても良い。パラメータの変動についても、干渉量だけではなく、筆記具オブジェクト５００の移動速度を加味してもよい。
【００７９】
さらに、筆記具オブジェクト５００とノートオブジェクト６００との干渉量や、ノートオブジェクト６００に与えられる影響に応じて、制御部１２１は、コントローラ３２０を振動させるための入力信号をコントローラ３２０へ送信してもよい。例えば、干渉量が一定量以上の場合にはコントローラ３２０を振動させるようにすることで、触覚的なフィードバックをユーザＵに与え、より直感的な仮想体験を提供することができる。
【００８０】
なお、上記実施形態では、操作オブジェクトの一例として筆記具オブジェクト５００を用いてノートオブジェクト６００に影響を与える方法を採用しているが、筆記具オブジェクト５００を用いずに、操作オブジェクトとしての手オブジェクト４００とノートオブジェクト６００との干渉量に基づいて、ノートオブジェクト６００に直接影響を与えることもできる。例えば、手オブジェクト４００とノートオブジェクト６００が干渉している場合に、手オブジェクト４００によってノートオブジェクト６００上に表示されている各種メニューを操作したり、ノートオブジェクト６００を変形させたり、ページを捲ったりすることも可能である。
【００８１】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲およびその均等の範囲に基づいて定められるべきである。
【００８２】
本実施形態の説明では、仮想空間２００を示す仮想空間データがユーザ端末１側で更新されていることを前提としているが、仮想空間データはサーバ２側で更新されてもよい。さらに、視野画像に対応する視野画像データがユーザ端末１側で更新されていることを前提としているが、視野画像データはサーバ２側で更新されてもよい。この場合、ユーザ端末１は、サーバ２から送信された視野画像データに基づいて、ＨＭＤ１１０に視野画像を表示する。
【００８３】
また、ユーザ端末１の制御部１２１によって実行される各種処理をソフトウェアによって実現するために、各種処理をコンピュータ（プロセッサ）に実行させるための制御プログラムが記憶部１２３またはメモリに予め組み込まれていてもよい。または、制御プログラムは、磁気ディスク（ＨＤＤ、フロッピーディスク）、光ディスク（ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ、Ｂｌｕ−ｒａｙディスク等）、光磁気ディスク（ＭＯ等）、フラッシュメモリ（ＳＤカード、ＵＳＢメモリ、ＳＳＤ等）等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置１２０に接続されることで、当該記憶媒体に格納された制御プログラムが、記憶部１２３に組み込まれる。そして、記憶部１２３に組み込まれた制御プログラムがＲＡＭ上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部１２１は各種処理を実行する。
【００８４】
また、制御プログラムは、通信ネットワーク３上のコンピュータから通信インターフェース１２５を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該制御プログラムが記憶部１２３に組み込まれる。
【００８５】
本実施形態において、仮想空間は、ユーザにＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）、ＡＲ（Ａｒｇｕｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）およびＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）といった、仮想体験を提供するために用いられる。仮想空間がＶＲを提供する場合、仮想空間の背景にはメモリに保存された背景データが使用される。仮想空間がＡＲまたはＭＲを提供する場合、背景には現実空間が使用される。この場合、ＨＭＤ１１０が透過型の表示装置（光学シースルーまたはビデオシースルー型の表示装置）を備えることにより、現実空間が背景として使用され得る。仮想空間がＭＲに適用される場合、オブジェクトは、現実空間によって影響を与えられてもよい。このように、仮想空間が背景や仮想オブジェクトといった仮想シーンを少なくとも一部に含むことにより、ユーザには当該仮想シーンとの相互作用が可能な仮想体験が提供され得る。また、仮想空間がＡＲやＭＲを提供する場合には、手オブジェクト４００（４００Ｌ，４００Ｒ）に代えて、ユーザＵの実際の手（および実際の手が持っている筆記具等）がノートオブジェクト６００に影響を与えられる操作オブジェクトとして適用される。
【符号の説明】
【００８６】
１，１Ａ，１Ｂ：ユーザ端末
２：サーバ
３：通信ネットワーク
２１：通信インターフェース
２２：記憶部
２３：制御部
２４：バス
１００：仮想空間配信システム
１１０：ヘッドマウントデバイス（ＨＭＤ）
１１２：表示部
１１４：ＨＭＤセンサ
１１６：ヘッドフォン
１１８：マイク
１２０：制御装置
１２１：制御部
１２３：記憶部
１２４：Ｉ／Ｏインターフェース
１２５：通信インターフェース
１２６：バス
１３０：位置センサ
１４０：注視センサ
２００，２００Ａ，２００Ｂ：仮想空間
２１０：中心位置
３００：仮想カメラ
３２０：外部コントローラ
３２０Ｌ：左手用外部コントローラ（コントローラ）
３２０Ｒ：右手用外部コントローラ（コントローラ）
４００：手オブジェクト
４００Ｌ：左手オブジェクト
４００Ｒ：右手オブジェクト
５００：筆記具オブジェクト（操作オブジェクトの一例）
５１０：干渉部分
６００：ノートオブジェクト（対象オブジェクトの一例）
６００ａ：表面
６００ｂ：裏面
７１０：表面の着色部分（第一部分の一例）
７２０：裏面の着色部分（第二部分の一例）
Ｖ：視野画像
【図１】
2018185567.tif 000003
【図２】
2018185567.tif 000004
【図３】
2018185567.tif 000005
【図４】
2018185567.tif 000006
【図５】
2018185567.tif 000007
【図６】
2018185567.tif 000008
【図７】
2018185567.tif 000009
【図８】
2018185567.tif 000010
【図９】
2018185567.tif 000011
【図１０】
2018185567.tif 000012
【図１１】
2018185567.tif 000013
【図１２】
2018185567.tif 000014
【図１３】
2018185567.tif 000015
【図１４】
2018185567.tif 000016
【図１５】
2018185567.tif 000017
【図１６】
2018185567.tif 000018