(57)【要約】【課題】ＨＭＤを装着したユーザによる仮想現実空間における楽器の演奏を容易にする。【解決手段】仮想現実空間における楽器演奏を可能にするためのプロセッサが実行する処理は、楽器の選択を受け付ける画面をＨＭＤに表示させるステップ（Ｓ１２１５）と、選択された楽器をＨＭＤに表示させるステップ（Ｓ１２２５）と、楽曲の再生に合わせて、楽器オブジェクトおよびガイドオブジェクトを表示するデータをＨＭＤに送信するステップ（Ｓ１２４５）と、ユーザの動作に応じて動く演奏オブジェクトの動きを示す信号をコントローラから受信するステップ（Ｓ１２５０）と、楽器オブジェクトの所定の範囲内に演奏オブジェクトが入ったことに基づいて、楽曲に応じた音をＨＭＤに出力するステップ（Ｓ１２５５）とを含む。【選択図】図１２
2019101413.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドマウントデバイスによって提供される仮想空間において楽器の演奏を支援するためのプログラムであって、前記プログラムはプロセッサに、
仮想空間を定義するステップと、
前記仮想空間に楽器オブジェクトを配置するステップと、
楽器を演奏するために使用される一つ以上の演奏オブジェクトを前記仮想空間に配置するステップと、
前記仮想空間に対応する視界画像を前記ヘッドマウントデバイスに提示するステップと、
前記仮想空間において楽曲を再生するステップと、
前記楽曲の進行に応じて前記楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、前記楽器オブジェクトの近傍に提示するステップと、
前記ヘッドマウントデバイスのユーザの四肢のいずれかの動きを検知するステップと、
前記動きに応じて、前記演奏オブジェクトを前記楽器オブジェクトに対して動かすステップと、
前記演奏オブジェクトが前記楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、前記楽曲に応じた音を出力するステップとを実行させる、プログラム。
【請求項２】
前記ガイドオブジェクトを前記楽器オブジェクトの近傍に提示するステップは、前記楽器オブジェクトを演奏すべきタイミングで、前記ガイドオブジェクトが前記演奏オブジェクトに到来することを含み、
前記プログラムは前記プロセッサに、前記ガイドオブジェクトが前記演奏オブジェクトに到来したことに応答して、前記楽器オブジェクトをタイミングよく演奏できたか否かを判断するステップをさらに実行させる、請求項１に記載のプログラム。
【請求項３】
前記楽器オブジェクトを配置するステップは、ドラムに対応するドラムオブジェクトを配置するステップを含み、
前記演奏オブジェクトを配置するステップは、ドラムを演奏するためのスティックに対応するスティックオブジェクトを配置するステップを含み、
前記演奏オブジェクトが前記予め定められた範囲に入ることは、前記スティックオブジェクトが前記ドラムオブジェクトの外から当該ドラムオブジェクトの打面に入ることを含む、請求項１または２に記載のプログラム。
【請求項４】
前記音を出力するステップは、前記スティックオブジェクトの移動速度に応じた音量を出力するステップを含む、請求項３に記載のプログラム。
【請求項５】
前記ドラムオブジェクトは、前記ドラムを構成する複数の要素オブジェクトを含み、
前記ガイドオブジェクトを提示するステップは、各前記要素オブジェクトの演奏タイミングに応じたガイドオブジェクトをそれぞれ提示するステップを含む、請求項４に記載のプログラム。
【請求項６】
前記楽器オブジェクトを配置するステップは、ギターに対応するギターオブジェクトを配置するステップを含み、
前記ガイドオブジェクトを配置するステップは、ギターを演奏するためのコードが適用される位置に向けてガイドオブジェクトを遷移させるステップを含み、
前記音を出力するステップは、前記ガイドオブジェクトが前記位置に到達するタイミングで、前記演奏オブジェクトのうちの一つの演奏オブジェクトが前記位置に配置されて、他の演奏オブジェクトが前記ギターオブジェクトの弦を弾く動作が行なわれることに基づいて、音を出力するステップを含む、請求項１または２に記載のプログラム。
【請求項７】
前記ガイドオブジェクトを遷移させるステップは、複数のコードの各々に対応する前記ガイドオブジェクトを連続して並べるステップを含む、請求項６に記載のプログラム。
【請求項８】
前記楽器オブジェクトを配置するステップは、鍵盤楽器に対応する鍵盤楽器オブジェクトを配置するステップを含み、
前記演奏オブジェクトを配置するステップは、手を表わす手オブジェクトを配置するステップを含み、
前記ガイドオブジェクトを配置するステップは、演奏対象となる鍵盤に対応する鍵盤オブジェクトの近傍に前記ガイドオブジェクトを配置するステップを含み、
前記音を出力するステップは、前記手オブジェクトが前記鍵盤オブジェクトに接したことに基づいて音を出力するステップを含む、請求項１または２に記載のプログラム。
【請求項９】
前記鍵盤楽器オブジェクトを配置するステップは、現実空間において前記ユーザの手が平面に置かれていることに基づいて、前記仮想空間に前記鍵盤楽器オブジェクトを配置するステップを含む、請求項８に記載のプログラム。
【請求項１０】
前記プログラムは前記プロセッサに、前記手オブジェクトが前記鍵盤オブジェクトに接したことに基づいて、他の鍵盤オブジェクトとは異なった態様で当該鍵盤オブジェクトを提示するステップをさらに実行させる、請求項８または９に記載のプログラム。
【請求項１１】
前記プログラムは前記プロセッサに、複数の楽器のいずれかの選択を受け付けるインターフェイスを前記仮想空間に提示するステップをさらに実行させる、請求項１〜１０のいずれかに記載のプログラム。
【請求項１２】
前記プログラムは、前記プロセッサに、前記仮想空間を共有する他のヘッドマウントデバイスのユーザによって使用される他の楽器オブジェクトを前記仮想空間に提示するステップをさらに実行させる、請求項１〜１１のいずれかに記載のプログラム。
【請求項１３】
楽器の選択を支援するためにコンピュータで実行される方法であって、
ヘッドマウントデバイスによって提供される仮想空間を定義するステップと、
前記仮想空間に楽器オブジェクトを配置するステップと、
楽器を演奏するために使用される一つ以上の演奏オブジェクトを前記仮想空間に配置するステップと、
前記仮想空間に対応する視界画像を前記ヘッドマウントデバイスに提示するステップと、
前記仮想空間において楽曲を再生するステップと、
前記楽曲の進行に応じて前記楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、前記楽器オブジェクトの近傍に提示するステップと、
前記ヘッドマウントデバイスのユーザの四肢のいずれかの動きを検知するステップと、
前記動きに応じて、前記演奏オブジェクトを前記楽器オブジェクトに対して動かすステップと、
前記演奏オブジェクトが前記楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、前記楽曲に応じた音を出力するステップとを含む、方法。
【請求項１４】
複数の楽器のいずれかの選択を受け付けるインターフェイスを前記仮想空間に提示するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ガイドオブジェクトを前記楽器オブジェクトの近傍に提示するステップは、前記楽器オブジェクトを演奏すべきタイミングで、前記ガイドオブジェクトが前記演奏オブジェクトに到来することを含み、
前記方法は、前記ガイドオブジェクトが前記演奏オブジェクトに到来したことに応答して、前記楽器オブジェクトをタイミングよく演奏できたか否かを判断するステップをさらに含む、請求項１３または１４に記載の方法。
【請求項１６】
前記楽器オブジェクトをタイミングよく演奏できたか否かの判定結果に応じて、課金のためのインターフェイスオブジェクトを前記仮想空間に提示するステップをさらに含む、請求項１５に記載の方法。
【請求項１７】
選択された楽器の購入の要求を受け付けるインターフェイスオブジェクトを前記仮想空間に提示するステップをさらに含む、請求項１３〜１６のいずれかに記載の方法。
【請求項１８】
請求項１３〜１６のいずれかに記載の方法をコンピュータに実行させる、プログラム。
【請求項１９】
請求項１〜１２または１８のいずれかに記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は仮想体験の提供に関し、より特定的には、ＨＭＤ（Head-Mounted  Device）を装着したユーザに対して、仮想空間における楽器演奏の体験を提供する技術に関する。
【背景技術】
【０００２】
ＨＭＤを用いて仮想現実空間（以下「仮想空間」ともいう。）を通じて仮想体験を提供する技術が知られている。例えば、特許文献１は、「ＶＲコンテンツを再生できるネットワークカラオケシステム」を開示している。また、非特許文献１は、仮想空間においてドラムを演奏できる技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１４６５７８号公報
【非特許文献】
【０００４】
【非特許文献１】「１人でバンドもできる？！  ＶＲ空間で楽器の演奏体験。ＶＲ演奏が可能なデバイス＆アプリ」、２０１７年４月２０日、http://www.eys-musicschool.com/media/vr_musicapp/
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ドラムその他の楽器の演奏の希望者は、経験者に限られない。したがって、楽器を演奏した経験がない人が楽器演奏を容易に体験できる技術が必要とされている。
【０００６】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、仮想空間において楽器を容易に演奏できる技術を提供することである。
【課題を解決するための手段】
【０００７】
ある実施の形態に従うと、ヘッドマウントデバイスによって提供される仮想空間において楽器の演奏を支援するプログラムをプロセッサに実行させるプログラムが提供される。このプログラムはプロセッサに、仮想空間を定義するステップと、仮想空間に楽器オブジェクトを配置するステップと、楽器を演奏するために使用される一つ以上の演奏オブジェクトを仮想空間に配置するステップと、仮想空間に対応する視界画像をヘッドマウントデバイスに提示するステップと、仮想空間において楽曲を再生するステップと、楽曲の進行に応じて楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、楽器オブジェクトの近傍に提示するステップと、ヘッドマウントデバイスのユーザの四肢のいずれかの動きを検知するステップと、動きに応じて、演奏オブジェクトを楽器オブジェクトに対して動かすステップと、演奏オブジェクトが楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、楽曲に応じた音を出力するステップとを実行させる。
【発明の効果】
【０００８】
ある局面において、ユーザは、仮想空間において提示されるガイドオブジェクトを参照して楽器を演奏できるので、楽器演奏の経験がない素人も楽器を演奏できる。
【０００９】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１０】
【図１】ある実施の形態に従うＨＭＤシステム１００の構成の概略を表す図である。
【図２】一局面に従うコンピュータ２００のハードウェア構成の一例を表すブロック図である。
【図３】ある実施の形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す図である。
【図４】ある実施の形態に従う仮想空間２を表現する一態様を概念的に表す図である。
【図５】ある実施の形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から表した図である。
【図６】仮想空間２において視界領域２３をＸ方向から見たＹＺ断面を表す図である。
【図７】仮想空間２において視界領域２３をＹ方向から見たＸＺ断面を表す図である。
【図８】ある実施の形態に従うコントローラ１６０の概略構成を表す図である。
【図９】ある実施の形態に従うコンピュータ２００をモジュール構成として表すブロック図である。
【図１０】ある実施の形態に従うＨＭＤシステム１００において実行される処理の一部を表すシーケンスチャートである。
【図１１】ユーザ１９０が仮想空間で楽器を演奏するために行われる手順を表わすフローチャートである。
【図１２】サーバ１５０が実行する処理の一部を表わすフローチャートである。
【図１３】仮想空間において楽器を選択するために１１２に表示される画像の一態様を表わす図である。
【図１４】仮想空間においてドラムを演奏するために表示される画像の一態様を表わす図である。
【図１５】所謂一人称視点としてＨＭＤを装着したユーザ１９０に視認される画面を表わす図である。
【図１６】ギターオブジェクト１６００が選択された状態を表わす図である。
【図１７】ギターオブジェクト１６００を演奏する場面（その１）を表わす図である。
【図１８】ギターオブジェクト１６００を演奏する場面（その２）を表わす図である。
【図１９】ギターオブジェクト１６００を演奏する場面（その３）を表わす図である。
【図２０】ユーザ１９０が仮想空間でピアノを演奏する場面を説明するための図である。
【図２１】ストレージ１５４におけるデータの格納の一態様を概念的に表す図である。
【図２２】ユーザ１９０が仮想空間において楽器を演奏した後にモニタ１１２に表示される画面の一例を表わす図である。
【図２３】仮想空間２におけるスティックオブジェクト１５４０と打面２３００との位置関係を水平方向から表す図である。
【図２４】演奏対象としてドラムが選択された場合に音を出力するために実行される処理の一部を表わすフローチャートである。
【図２５】演奏対象としてピアノが選択された場合に実行される処理の一部を表わすフローチャートである。
【図２６】複数のユーザがそれぞれＨＭＤを装着している状態を表わす図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１２】
［ＨＭＤシステムの構成］
図１を参照して、ＨＭＤ（Head-Mounted  Device）システム１００の構成について説明する。図１は、ある実施の形態に従うＨＭＤシステム１００の構成の概略を表す図である。ある局面において、ＨＭＤシステム１００は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
【００１３】
ＨＭＤシステム１００は、ＨＭＤ１１０と、ＨＭＤセンサ１２０と、コントローラ１６０と、コンピュータ２００とを備える。ＨＭＤ１１０は、モニタ１１２と、注視センサ１４０と、スピーカ１１５と、マイク１１９とを含む。コントローラ１６０は、モーションセンサ１３０を含み得る。
【００１４】
ある局面において、コンピュータ２００は、インターネットその他のネットワーク１９に接続可能であり、ネットワーク１９に接続されているサーバ１５０その他のコンピュータと通信可能である。他の局面において、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりに、センサ１１４を含み得る。
【００１５】
サーバ１５０は、プロセッサ１５１と、メモリ１５２と、通信インターフェイス１５３とを含む。サーバ１５０は、周知の構成を有するコンピュータによって実現される。プロセッサ１５１は、命令を実行する。メモリ１５２は、ＲＡＭ（Random  Access  Memory）その他の揮発性メモリである。通信インターフェイス１５３は、コンピュータ２００、ユーザ端末２０１Ａ，２０１Ｎ等と通信する。ストレージ１５４は、サーバ１５０がコンピュータ２００その他の外部の装置から受信したデータまたはプロセッサ１５１によって生成されたデータを保持する。ストレージ１５４は、例えば、ハードディスク、ＳＳＤ（Solid  State  Disc）その他の不揮発性の記憶装置によって実現され得る。
【００１６】
ＨＭＤ１１０は、ユーザ１９０の頭部に装着され、動作中に仮想空間２をユーザ１９０に提供し得る。より具体的には、ＨＭＤ１１０は、右目用の画像および左目用の画像をモニタ１１２にそれぞれ表示する。ユーザ１９０の各目がそれぞれの画像を視認すると、ユーザ１９０は、両目の視差に基づき当該画像を３次元の画像として認識し得る。
【００１７】
モニタ１１２は、たとえば、非透過型の表示装置として実現される。ある局面において、モニタ１１２は、ユーザ１９０の両目の前方に位置するようにＨＭＤ１１０の本体に配置されている。したがって、ユーザ１９０は、モニタ１１２に表示される３次元画像を視認すると、仮想空間２に没入することができる。ある実施の形態において、仮想空間２は、たとえば、背景、ユーザ１９０が操作可能なオブジェクト、ユーザ１９０が選択可能なメニューの画像を含む。複数のコンピュータ２００が各ユーザの動作に基づく信号を受け渡しすることで、複数のユーザが一の仮想空間２で仮想体験できる構成であれば、各ユーザに対応するアバターオブジェクトが、仮想空間２に提示される。
【００１８】
なお、オブジェクトとは、仮想空間２に存在する仮想の物体である。ある局面において、オブジェクトは、ユーザに対応するアバターオブジェクト、アバターオブジェクトが身に着ける仮想アクセサリおよび仮想衣服、ユーザに関する情報が示されたパネルを模した仮想パネル、手紙を模した仮想手紙、およびポストを模した仮想ポストなどを含む。さらに、アバターオブジェクトは、仮想空間２においてユーザ１９０を象徴するキャラクタであり、たとえば人型、動物型、ロボット型などを含む。オブジェクトの形は様々である。ユーザ１９０は、予め決められたオブジェクトの中から好みのオブジェクトを仮想空間２に提示するようにしてもよいし、自分が作成したオブジェクトを仮想空間２に提示するようにしてもよい。
【００１９】
ある実施の形態において、モニタ１１２は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機ＥＬ（Electro  Luminescence）モニタとして実現され得る。
【００２０】
ある局面において、モニタ１１２は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。他の局面において、モニタ１１２は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ１１２は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
【００２１】
注視センサ１４０は、ユーザ１９０の右目および左目の視線が向けられる方向（視線方向）を検出する。当該方向の検出は、たとえば、公知のアイトラッキング機能によって実現される。注視センサ１４０は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ１４０は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ１４０は、たとえば、ユーザ１９０の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ１４０は、検出した各回転角に基づいて、ユーザ１９０の視線方向を検知することができる。
【００２２】
スピーカ１１５は、コンピュータ２００から受信した音声データに対応する音声（発話）を外部に出力する。マイク１１９は、ユーザ１９０の発話に対応する音声データをコンピュータ２００に出力する。ユーザ１９０は、マイク１１９を用いて他のユーザに向けて発話する一方で、スピーカ１１５を用いて他のユーザの音声（発話）を聞くことができる。
【００２３】
より具体的には、ユーザ１９０がマイク１１９に向かって発話すると、当該ユーザ１９０の発話に対応する音声データがコンピュータ２００に入力される。コンピュータ２００は、その音声データを、ネットワーク１９を介してサーバ１５０に出力する。サーバ１５０は、コンピュータ２００から受信した音声データを、ネットワーク１９を介して他のコンピュータ２００に出力する。他のコンピュータ２００は、サーバ１５０から受信した音声データを、他のユーザが装着するＨＭＤ１１０のスピーカ１１５に出力する。これにより、他のユーザは、ＨＭＤ１１０のスピーカ１１５を介してユーザ１９０の音声を聞くことができる。同様に、他のユーザからの発話は、ユーザ１９０が装着するＨＭＤ１１０のスピーカ１１５から出力される。
【００２４】
コンピュータ２００は、他のユーザのコンピュータ２００から受信した音声データに応じて、当該他のユーザに対応する他アバターオブジェクトを動かすような画像をモニタ１１２に表示する。たとえば、ある局面において、コンピュータ２００は、他アバターオブジェクトの口を動かすような画像をモニタ１１２に表示することで、あたかも仮想空間２内でアバターオブジェクト同士が会話しているかのように仮想空間２を表現する。このように、複数のコンピュータ２００間で音声データの送受信が行なわれることで、一の仮想空間２内で複数のユーザ間での会話（チャット）が実現される。
【００２５】
ＨＭＤセンサ１２０は、複数の光源（図示しない）を含む。各光源は、たとえば、赤外線を発するＬＥＤ（Light  Emitting  Diode）により実現される。ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きを検出するためのポジショントラッキング機能を有する。ＨＭＤセンサ１２０は、この機能を用いて、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。
【００２６】
なお、他の局面において、ＨＭＤセンサ１２０は、カメラにより実現されてもよい。この場合、ＨＭＤセンサ１２０は、カメラから出力されるＨＭＤ１１０の画像情報を用いて、画像解析処理を実行することにより、ＨＭＤ１１０の位置および傾きを検出することができる。
【００２７】
他の局面において、ＨＭＤ１１０は、位置検出器として、ＨＭＤセンサ１２０の代わりに、センサ１１４を備えてもよい。ＨＭＤ１１０は、センサ１１４を用いて、ＨＭＤ１１０自身の位置および傾きを検出し得る。たとえば、センサ１１４が、角速度センサ、地磁気センサ、加速度センサ、あるいはジャイロセンサなどである場合、ＨＭＤ１１０は、ＨＭＤセンサ１２０の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ１１４が角速度センサである場合、角速度センサは、現実空間におけるＨＭＤ１１０の３軸周りの角速度を経時的に検出する。ＨＭＤ１１０は、各角速度に基づいて、ＨＭＤ１１０の３軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、ＨＭＤ１１０の傾きを算出する。
【００２８】
また、ＨＭＤ１１０は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視野画像は仮想空間２を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。たとえば、ＨＭＤ１１０に搭載されたカメラで撮影した画像を視野画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視野画像の一部から現実空間を視認可能にしてもよい。
【００２９】
サーバ１５０は、コンピュータ２００にプログラムを送信し得る。他の局面において、サーバ１５０は、他のユーザによって使用されるＨＭＤ１１０に仮想現実を提供するための他のコンピュータ２００と通信し得る。たとえば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ２００は、各ユーザの動作に基づく信号を他のコンピュータ２００と通信して、同じ仮想空間２において複数のユーザが共通のゲームを楽しむことを可能にする。また、上述したように、複数のコンピュータ２００が各ユーザの動作に基づく信号を送受信することで、一の仮想空間２内で複数のユーザが会話を楽しむことができる。
【００３０】
コントローラ１６０は、ユーザ１９０からコンピュータ２００への命令の入力を受け付ける。ある局面において、コントローラ１６０は、ユーザ１９０によって把持可能に構成される。他の局面において、コントローラ１６０は、ユーザ１９０の身体あるいは衣類の一部に装着可能に構成される。他の局面において、コントローラ１６０は、コンピュータ２００から送られる信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。他の局面において、コントローラ１６０は、仮想現実を提供する空間に配置されるオブジェクトの位置や動きを制御するためにユーザ１９０によって与えられる操作を受け付ける。
【００３１】
モーションセンサ１３０は、ある局面において、ユーザ１９０の手に取り付けられて、ユーザ１９０の手の動きを検出する。たとえば、モーションセンサ１３０は、手の回転速度、回転数などを検出する。モーションセンサ１３０によって得られたユーザ１９０の手の動きの検出結果を表すデータ（以下、検出データともいう）は、コンピュータ２００に送られる。モーションセンサ１３０は、たとえば、手袋型のコントローラ１６０に設けられている。ある実施の形態において、現実空間における安全のため、コントローラ１６０は、手袋型のようにユーザ１９０の手に装着されることにより容易に飛んで行かないものに装着されるのが望ましい。他の局面において、ユーザ１９０に装着されないセンサがユーザ１９０の手の動きを検出してもよい。たとえば、ユーザ１９０を撮影するカメラの信号が、ユーザ１９０の動作を表す信号として、コンピュータ２００に入力されてもよい。モーションセンサ１３０とコンピュータ２００とは、有線により、または無線により互いに接続される。無線の場合、通信形態は特に限られず、たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）その他の公知の通信手法が用いられる。
【００３２】
他の局面において、ＨＭＤシステム１００は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、ＨＭＤシステム１００は、仮想空間２においてテレビ番組を表示することができる。
【００３３】
さらに他の局面において、ＨＭＤシステム１００は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
【００３４】
［コンピュータのハードウェア構成］
図２を参照して、本実施の形態に係るコンピュータ２００について説明する。図２は、一局面に従うコンピュータ２００のハードウェア構成の一例を表すブロック図である。コンピュータ２００は、主たる構成要素として、プロセッサ１０と、メモリ１１と、ストレージ１２と、入出力インターフェース１３と、通信インターフェース１４とを備える。各構成要素は、それぞれ、バス１５に接続されている。
【００３５】
プロセッサ１０は、コンピュータ２００に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ１１またはストレージ１２に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ１０は、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processor  Unit）、ＦＰＧＡ（Field-Programmable  Gate  Array）その他のデバイスとして実現される。
【００３６】
メモリ１１は、プログラムおよびデータを一時的に保存する。プログラムは、たとえば、ストレージ１２からロードされる。データは、コンピュータ２００に入力されたデータと、プロセッサ１０によって生成されたデータとを含む。ある局面において、メモリ１１は、ＲＡＭ（Random  Access  Memory）その他の揮発メモリとして実現される。
【００３７】
ストレージ１２は、プログラムおよびデータを永続的に保持する。ストレージ１２は、たとえば、ＲＯＭ（Read-Only  Memory）、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ１２に格納されるプログラムは、ＨＭＤシステム１００において仮想空間２を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ２００との通信を実現するためのプログラムを含む。ストレージ１２に格納されるデータは、仮想空間２を規定するためのデータおよびオブジェクトなどを含む。
【００３８】
なお、他の局面において、ストレージ１２は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに他の局面において、コンピュータ２００に内蔵されたストレージ１２の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、たとえば、アミューズメント施設のように複数のＨＭＤシステム１００が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
【００３９】
ある実施の形態において、入出力インターフェース１３は、ＨＭＤ１１０、ＨＭＤセンサ１２０またはモーションセンサ１３０との間で信号を通信する。ある局面において、入出力インターフェース１３は、ＵＳＢ（Universal  Serial  Bus）インターフェース、ＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High-Definition  Multimedia  Interface）その他の端子を用いて実現される。なお、入出力インターフェース１３は上述のものに限られない。
【００４０】
ある実施の形態において、入出力インターフェース１３は、さらに、コントローラ１６０と通信し得る。たとえば、入出力インターフェース１３は、モーションセンサ１３０から出力された信号の入力を受ける。他の局面において、入出力インターフェース１３は、プロセッサ１０から出力された命令を、コントローラ１６０に送る。当該命令は、振動、音声出力、発光などをコントローラ１６０に指示する。コントローラ１６０は、当該命令を受信すると、その命令に応じて、振動、音声出力または発光のいずれかを実行する。
【００４１】
通信インターフェース１４は、ネットワーク１９に接続されて、ネットワーク１９に接続されている他のコンピュータ（たとえば、サーバ１５０、他のユーザのコンピュータ２００など）と通信する。ある局面において、通信インターフェース１４は、たとえば、ＬＡＮ（Local  Area  Network）その他の有線通信インターフェース、あるいは、ＷｉＦｉ（Wireless  Fidelity）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ（Near  Field  Communication）その他の無線通信インターフェースとして実現される。なお、通信インターフェース１４は上述のものに限られない。
【００４２】
ある局面において、プロセッサ１０は、ストレージ１２にアクセスし、ストレージ１２に格納されている１つ以上のプログラムをメモリ１１にロードし、当該プログラムに含まれる一連の命令を実行する。当該１つ以上のプログラムは、コンピュータ２００のオペレーティングシステム、仮想空間２を提供するためのアプリケーションプログラム、コントローラ１６０を用いて仮想空間２で実行可能なゲームソフトウェアなどを含み得る。プロセッサ１０は、入出力インターフェース１３を介して、仮想空間２を提供するための信号をＨＭＤ１１０に送る。ＨＭＤ１１０は、その信号に基づいてモニタ１１２に映像を表示する。
【００４３】
なお、図２に示される例では、コンピュータ２００は、ＨＭＤ１１０の外部に設けられる構成が示されているが、他の局面において、コンピュータ２００は、ＨＭＤ１１０に内蔵されてもよい。一例として、モニタ１１２を含む携帯型の情報通信端末（たとえば、スマートフォン）がコンピュータ２００として機能してもよい。
【００４４】
また、コンピュータ２００は、複数のＨＭＤ１１０に共通して用いられる構成であってもよい。このような構成によれば、たとえば、複数のユーザに同一の仮想空間２を提供することもできるので、各ユーザは同一の仮想空間２で他のユーザと同一のアプリケーションを楽しむことができる。
【００４５】
ある実施の形態において、ＨＭＤシステム１００では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、３つの基準方向（軸）を有する。本実施の形態では、グローバル座標系は視点座標系の一つである。そこで、グローバル座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれ、ｘ軸、ｙ軸、ｚ軸と規定される。より具体的には、グローバル座標系において、ｘ軸は現実空間の水平方向に平行である。ｙ軸は、現実空間の鉛直方向に平行である。ｚ軸は現実空間の前後方向に平行である。
【００４６】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサを含む。赤外線センサが、ＨＭＤ１１０の各光源から発せられた赤外線をそれぞれ検出すると、ＨＭＤ１１０の存在を検出する。ＨＭＤセンサ１２０は、さらに、各点の値（グローバル座標系における各座標値）に基づいて、ＨＭＤ１１０を装着したユーザ１９０の動きに応じた、現実空間内におけるＨＭＤ１１０の位置および傾きを検出する。より詳しくは、ＨＭＤセンサ１２０は、経時的に検出された各値を用いて、ＨＭＤ１１０の位置および傾きの時間的変化を検出できる。
【００４７】
グローバル座標系は現実空間の座標系と平行である。したがって、ＨＭＤセンサ１２０によって検出されたＨＭＤ１１０の各傾きは、グローバル座標系におけるＨＭＤ１１０の３軸周りの各傾きに相当する。ＨＭＤセンサ１２０は、グローバル座標系におけるＨＭＤ１１０の傾きに基づき、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。ＨＭＤ１１０に設定されるｕｖｗ視野座標系は、ＨＭＤ１１０を装着したユーザ１９０が仮想空間２において物体を見る際の視点座標系に対応する。
【００４８】
［ｕｖｗ視野座標系］
図３を参照して、ｕｖｗ視野座標系について説明する。図３は、ある実施の形態に従うＨＭＤ１１０に設定されるｕｖｗ視野座標系を概念的に表す図である。ＨＭＤセンサ１２０は、ＨＭＤ１１０の起動時に、グローバル座標系におけるＨＭＤ１１０の位置および傾きを検出する。プロセッサ１０は、検出された値に基づいて、ｕｖｗ視野座標系をＨＭＤ１１０に設定する。
【００４９】
図３に示されるように、ＨＭＤ１１０は、ＨＭＤ１１０を装着したユーザ１９０の頭部を中心（原点）とした３次元のｕｖｗ視野座標系を設定する。より具体的には、ＨＭＤ１１０は、グローバル座標系を規定する水平方向、鉛直方向、および前後方向（ｘ軸、ｙ軸、ｚ軸）を、グローバル座標系内においてＨＭＤ１１０の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる３つの方向を、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）として設定する。
【００５０】
ある局面において、ＨＭＤ１１０を装着したユーザ１９０が直立し、かつ、正面を視認している場合、プロセッサ１０は、グローバル座標系に平行なｕｖｗ視野座標系をＨＭＤ１１０に設定する。この場合、グローバル座標系における水平方向（ｘ軸）、鉛直方向（ｙ軸）、および前後方向（ｚ軸）は、ＨＭＤ１１０におけるｕｖｗ視野座標系のピッチ方向（ｕ軸）、ヨー方向（ｖ軸）、およびロール方向（ｗ軸）に一致する。
【００５１】
ｕｖｗ視野座標系がＨＭＤ１１０に設定された後、ＨＭＤセンサ１２０は、ＨＭＤ１１０の動きに基づいて、設定されたｕｖｗ視野座標系におけるＨＭＤ１１０の傾き（傾きの変化量）を検出できる。この場合、ＨＭＤセンサ１２０は、ＨＭＤ１１０の傾きとして、ｕｖｗ視野座標系におけるＨＭＤ１１０のピッチ角（θｕ）、ヨー角（θｖ）、およびロール角（θｗ）をそれぞれ検出する。ピッチ角（θｕ）は、ｕｖｗ視野座標系におけるピッチ方向周りのＨＭＤ１１０の傾き角度を表す。ヨー角（θｖ）は、ｕｖｗ視野座標系におけるヨー方向周りのＨＭＤ１１０の傾き角度を表す。ロール角（θｗ）は、ｕｖｗ視野座標系におけるロール方向周りのＨＭＤ１１０の傾き角度を表す。
【００５２】
ＨＭＤセンサ１２０は、検出されたＨＭＤ１１０の傾き角度に基づいて、ＨＭＤ１１０が動いた後のＨＭＤ１１０におけるｕｖｗ視野座標系を、ＨＭＤ１１０に設定する。ＨＭＤ１１０と、ＨＭＤ１１０のｕｖｗ視野座標系との関係は、ＨＭＤ１１０の位置および傾きに関わらず、常に一定である。ＨＭＤ１１０の位置および傾きが変わると、当該位置および傾きの変化に連動して、グローバル座標系におけるＨＭＤ１１０のｕｖｗ視野座標系の位置および傾きが変化する。
【００５３】
ある局面において、ＨＭＤセンサ１２０は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係（たとえば、各点間の距離など）に基づいて、ＨＭＤ１１０の現実空間内における位置を、ＨＭＤセンサ１２０に対する相対位置として特定してもよい。また、プロセッサ１０は、特定された相対位置に基づいて、現実空間内（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系の原点を決定してもよい。
【００５４】
［仮想空間］
図４を参照して、仮想空間２についてさらに説明する。図４は、ある実施の形態に従う仮想空間２を表現する一態様を概念的に表す図である。仮想空間２は、中心２１の３６０度方向の全体を覆う全天球状の構造を有する。図４では、説明を複雑にしないために、仮想空間２のうちの上半分の天球が例示されている。仮想空間２では各メッシュが規定される。各メッシュの位置は、仮想空間２に規定されるＸＹＺ座標系における座標値として予め規定されている。コンピュータ２００は、仮想空間２に展開可能なコンテンツ（静止画、動画など）を構成する各部分画像を、仮想空間２において対応する各メッシュにそれぞれ対応付けて、ユーザ１９０によって視認可能な仮想空間画像２２が展開される仮想空間２をユーザ１９０に提供する。
【００５５】
ある局面において、仮想空間２では、中心２１を原点とするＸＹＺ座標系が規定される。ＸＹＺ座標系は、たとえば、グローバル座標系に平行である。ＸＹＺ座標系は視点座標系の一種であるため、ＸＹＺ座標系における水平方向、鉛直方向（上下方向）、および前後方向は、それぞれＸ軸、Ｙ軸、Ｚ軸として規定される。したがって、ＸＹＺ座標系のＸ軸（水平方向）がグローバル座標系のｘ軸と平行であり、ＸＹＺ座標系のＹ軸（鉛直方向）がグローバル座標系のｙ軸と平行であり、ＸＹＺ座標系のＺ軸（前後方向）がグローバル座標系のｚ軸と平行である。
【００５６】
ＨＭＤ１１０の起動時、すなわちＨＭＤ１１０の初期状態において、仮想カメラ１が、仮想空間２の中心２１に配置される。仮想カメラ１は、現実空間におけるＨＭＤ１１０の動きに連動して、仮想空間２を同様に移動する。これにより、現実空間におけるＨＭＤ１１０の位置および向きの変化が、仮想空間２において同様に再現される。
【００５７】
仮想カメラ１には、ＨＭＤ１１０の場合と同様に、ｕｖｗ視野座標系が規定される。仮想空間２における仮想カメラのｕｖｗ視野座標系は、現実空間（グローバル座標系）におけるＨＭＤ１１０のｕｖｗ視野座標系に連動するように規定されている。したがって、ＨＭＤ１１０の傾きが変化すると、それに応じて、仮想カメラ１の傾きも変化する。また、仮想カメラ１は、ＨＭＤ１１０を装着したユーザ１９０の現実空間における移動に連動して、仮想空間２において移動することもできる。
【００５８】
仮想カメラ１の向きは、仮想カメラ１の位置および傾きに応じて決まるので、ユーザ１９０が仮想空間画像２２を視認する際に基準となる視線（基準視線５）は、仮想カメラ１の向きに応じて決まる。コンピュータ２００のプロセッサ１０は、基準視線５に基づいて、仮想空間２における視界領域２３を規定する。視界領域２３は、仮想空間２のうち、ＨＭＤ１１０を装着したユーザ１９０の視界に対応する。
【００５９】
注視センサ１４０によって検出されるユーザ１９０の視線方向は、ユーザ１９０が物体を視認する際の視点座標系における方向である。ＨＭＤ１１０のｕｖｗ視野座標系は、ユーザ１９０がモニタ１１２を視認する際の視点座標系に等しい。また、仮想カメラ１のｕｖｗ視野座標系は、ＨＭＤ１１０のｕｖｗ視野座標系に連動している。したがって、ある局面に従うＨＭＤシステム１００は、注視センサ１４０によって検出されたユーザ１９０の視線方向を、仮想カメラ１のｕｖｗ視野座標系におけるユーザ１９０の視線方向とみなすことができる。
【００６０】
［ユーザの視線］
図５を参照して、ユーザ１９０の視線方向の決定について説明する。図５は、ある実施の形態に従うＨＭＤ１１０を装着するユーザ１９０の頭部を上から表した図である。
【００６１】
ある局面において、注視センサ１４０は、ユーザ１９０の右目および左目の各視線を検出する。ある局面において、ユーザ１９０が近くを見ている場合、注視センサ１４０は、視線Ｒ１およびＬ１を検出する。他の局面において、ユーザ１９０が遠くを見ている場合、注視センサ１４０は、視線Ｒ２およびＬ２を検出する。この場合、ロール方向ｗに対して視線Ｒ２およびＬ２がなす角度は、ロール方向ｗに対して視線Ｒ１およびＬ１がなす角度よりも小さい。注視センサ１４０は、検出結果をコンピュータ２００に送信する。
【００６２】
コンピュータ２００が、視線の検出結果として、視線Ｒ１およびＬ１の検出値を注視センサ１４０から受信した場合には、その検出値に基づいて、視線Ｒ１およびＬ１の交点である注視点Ｎ１を特定する。一方、コンピュータ２００は、視線Ｒ２およびＬ２の検出値を注視センサ１４０から受信した場合には、視線Ｒ２およびＬ２の交点を注視点として特定する。コンピュータ２００は、特定した注視点Ｎ１の位置に基づき、ユーザ１９０の視線方向Ｎ０を特定する。コンピュータ２００は、たとえば、ユーザ１９０の右目Ｒと左目Ｌとを結ぶ直線の中点と、注視点Ｎ１とを通る直線の延びる方向を、視線方向Ｎ０として検出する。視線方向Ｎ０は、ユーザ１９０が両目により実際に視線を向けている方向である。また、視線方向Ｎ０は、視界領域２３に対してユーザ１９０が実際に視線を向けている方向に相当する。
【００６３】
［視界領域］
図６および図７を参照して、視界領域２３について説明する。図６は、仮想空間２において視界領域２３をＸ方向から見たＹＺ断面を表す図である。図７は、仮想空間２において視界領域２３をＹ方向から見たＸＺ断面を表す図である。
【００６４】
図６に示されるように、ＹＺ断面における視界領域２３は、領域２４を含む。領域２４は、仮想カメラ１の基準視線５と仮想空間２のＹＺ断面とによって定義される。プロセッサ１０は、仮想空間２おける基準視線５を中心として極角αを含む範囲を、領域２４として規定する。
【００６５】
図７に示されるように、ＸＺ断面における視界領域２３は、領域２５を含む。領域２５は、基準視線５と仮想空間２のＸＺ断面とによって定義される。プロセッサ１０は、仮想空間２における基準視線５を中心とした方位角βを含む範囲を、領域２５として規定する。
【００６６】
ある局面において、ＨＭＤシステム１００は、コンピュータ２００からの信号に基づいて、視界画像をモニタ１１２に表示させることにより、ユーザ１９０に仮想空間２を提供する。視界画像は、仮想空間画像２２のうちの視界領域２３に重畳する部分に相当する。ユーザ１９０が、頭に装着したＨＭＤ１１０を動かすと、その動きに連動して仮想カメラ１も動く。その結果、仮想空間２における視界領域２３の位置が変化する。これにより、モニタ１１２に表示される視界画像は、仮想空間画像２２のうち、仮想空間２においてユーザ１９０が向いた方向の視界領域２３に重畳する画像に更新される。ユーザ１９０は、仮想空間２における所望の方向を視認することができる。
【００６７】
ユーザ１９０は、ＨＭＤ１１０を装着している間、現実世界を視認することなく、仮想空間２に展開される仮想空間画像２２のみを視認できる。そのため、ＨＭＤシステム１００は、仮想空間２への高い没入感覚をユーザ１９０に与えることができる。
【００６８】
ある局面において、プロセッサ１０は、ＨＭＤ１１０を装着したユーザ１９０の現実空間における移動に連動して、仮想空間２において仮想カメラ１を移動し得る。この場合、プロセッサ１０は、仮想空間２における仮想カメラ１の位置および向きに基づいて、ＨＭＤ１１０のモニタ１１２に投影される画像領域（すなわち、仮想空間２における視界領域２３）を特定する。
【００６９】
ある実施の形態に従うと、仮想カメラ１は、二つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含むことが望ましい。また、ユーザ１９０が３次元の仮想空間２を認識できるように、適切な視差が、二つの仮想カメラに設定されていることが好ましい。本実施の形態においては、仮想カメラ１が二つの仮想カメラを含み、二つの仮想カメラのロール方向が合成されることによって生成されるロール方向（ｗ）がＨＭＤ１１０のロール方向（ｗ）に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
【００７０】
［コントローラ］
図８を参照して、コントローラ１６０の一例について説明する。図８は、ある実施の形態に従うコントローラ１６０の概略構成を表す図である。
【００７１】
図８の分図（Ａ）に示されるように、ある局面において、コントローラ１６０は、右コントローラ８００と左コントローラ（図示しない）とを含み得る。右コントローラ８００は、ユーザ１９０の右手で操作される。左コントローラは、ユーザ１９０の左手で操作される。ある局面において、右コントローラ８００と左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ１９０は、右コントローラ８００を把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。他の局面において、コントローラ１６０は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ８００について説明する。
【００７２】
右コントローラ８００は、グリップ３０と、フレーム３１と、天面３２とを備える。グリップ３０は、ユーザ１９０の右手によって把持されるように構成されている。たとえば、グリップ３０は、ユーザ１９０の右手の掌と３本の指（中指、薬指、小指）とによって保持され得る。
【００７３】
グリップ３０は、ボタン３３，３４と、モーションセンサ１３０とを含む。ボタン３３は、グリップ３０の側面に配置され、右手の中指による操作を受け付ける。ボタン３４は、グリップ３０の前面に配置され、右手の人差し指による操作を受け付ける。ある局面において、ボタン３３，３４は、トリガー式のボタンとして構成される。モーションセンサ１３０は、グリップ３０の筐体に内蔵されている。なお、ユーザ１９０の動作がカメラその他の装置によってユーザ１９０の周りから検出可能である場合には、グリップ３０は、モーションセンサ１３０を備えなくてもよい。
【００７４】
フレーム３１は、その円周方向に沿って配置された複数の赤外線ＬＥＤ３５を含む。赤外線ＬＥＤ３５は、コントローラ１６０を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線ＬＥＤ３５から発せられた赤外線は、右コントローラ８００と左コントローラとの各位置や姿勢（傾き、向き）を検出するために使用され得る。図８に示される例では、二列に配置された赤外線ＬＥＤ３５が示されているが、配列の数は図８に示されるものに限られない。一列あるいは３列以上の配列が使用されてもよい。
【００７５】
天面３２は、ボタン３６，３７と、アナログスティック３８とを備える。ボタン３６，３７は、プッシュ式ボタンとして構成される。ボタン３６，３７は、ユーザ１９０の右手の親指による操作を受け付ける。アナログスティック３８は、ある局面において、初期位置（ニュートラルの位置）から３６０度任意の方向への操作を受け付ける。当該操作は、たとえば、仮想空間２に配置されるオブジェクトを移動するための操作を含む。
【００７６】
ある局面において、右コントローラ８００および左コントローラは、赤外線ＬＥＤ３５その他の部材を駆動するための電池を含む。電池は、充電式、ボタン型、乾電池型などを含むが、これらに限定されない。他の局面において、右コントローラ８００と左コントローラは、たとえば、コンピュータ２００のＵＳＢインターフェースに接続され得る。この場合、右コントローラ８００および左コントローラは、電池を必要としない。
【００７７】
図８の分図（Ｂ）は、右コントローラ８００を把持するユーザ１９０の右手に対応して仮想空間２に配置されるハンドオブジェクト８１０の一例を示す。たとえば、ユーザ１９０の右手に対応するハンドオブジェクト８１０に対して、ヨー、ロール、ピッチの各方向が規定される。たとえば、入力操作が、右コントローラ８００のボタン３４に対して行なわれると、ハンドオブジェクト８１０の人差し指を握りこんだ状態とし、入力操作がボタン３４に対して行なわれていない場合には、分図（Ｂ）に示すように、ハンドオブジェクト８１０の人差し指を伸ばした状態とすることもできる。たとえば、ハンドオブジェクト８１０において親指と人差し指とが伸びている場合に、親指の伸びる方向がヨー方向、人差し指の伸びる方向がロール方向、ヨー方向の軸およびロール方向の軸によって規定される平面に垂直な方向がピッチ方向としてハンドオブジェクト８１０に規定される。
【００７８】
［ＨＭＤの制御装置］
図９を参照して、ＨＭＤ１１０の制御装置について説明する。ある実施の形態において、制御装置は周知の構成を有するコンピュータ２００によって実現される。図９は、ある実施の形態に従うコンピュータ２００をモジュール構成として表すブロック図である。
【００７９】
図９に示されるように、コンピュータ２００は、表示制御モジュール２２０と、仮想空間制御モジュール２３０と、音声制御モジュール２２５と、メモリモジュール２４０と、通信制御モジュール２５０と、再生制御モジュール２６０と、撮影制御モジュール２７０とを備える。
【００８０】
表示制御モジュール２２０は、サブモジュールとして、仮想カメラ制御モジュール２２１と、視界領域決定モジュール２２２と、視界画像生成モジュール２２３と、基準視線特定モジュール２２４とを含む。
【００８１】
仮想空間制御モジュール２３０は、サブモジュールとして、仮想空間定義モジュール２３１と、仮想オブジェクト生成モジュール２３２と、手オブジェクト制御モジュール２３３とを含む。
【００８２】
ある実施の形態において、表示制御モジュール２２０、仮想空間制御モジュール２３０、および音声制御モジュール２２５は、プロセッサ１０によって実現される。他の実施の形態において、複数のプロセッサ１０が表示制御モジュール２２０、仮想空間制御モジュール２３０、および音声制御モジュール２２５として作動してもよい。メモリモジュール２４０は、メモリ１１またはストレージ１２によって実現される。通信制御モジュール２５０は、通信インターフェース１４によって実現される。
【００８３】
ある局面において、表示制御モジュール２２０は、ＨＭＤ１１０のモニタ１１２における画像表示を制御する。仮想カメラ制御モジュール２２１は、仮想空間２に仮想カメラ１を配置し、仮想カメラ１の挙動、向きなどを制御する。視界領域決定モジュール２２２は、ＨＭＤ１１０を装着したユーザ１９０の頭の向きに応じて、視界領域２３を規定する。視界画像生成モジュール２２３は、決定された視界領域２３に基づいて、モニタ１１２に表示される視界画像のデータ（視界画像データともいう）を生成する。さらに、視界画像生成モジュール２２３は、仮想空間制御モジュール２３０から受信したデータに基づいて、視界画像データを生成する。視界画像生成モジュール２２３によって生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。基準視線特定モジュール２２４は、注視センサ１４０からの信号に基づいて、ユーザ１９０の視線を特定する。
【００８４】
仮想空間制御モジュール２３０は、ユーザ１９０に提供される仮想空間２を制御する。仮想空間定義モジュール２３１は、仮想空間２を表す仮想空間データを生成することにより、ＨＭＤシステム１００における仮想空間２を規定する。
【００８５】
仮想オブジェクト生成モジュール２３２は、仮想空間２に配置されるオブジェクトのデータを生成する。オブジェクトは、たとえば、他アバターオブジェクト、仮想パネル、仮想手紙、および仮想ポストなどを含み得る。仮想オブジェクト生成モジュール２３２によって生成されたデータは、視界画像生成モジュール２２３に出力される。
【００８６】
手オブジェクト制御モジュール２３３は、手オブジェクトを仮想空間２に配置する。手オブジェクトは、たとえば、コントローラ１６０を保持したユーザ１９０の右手あるいは左手に対応する。ある局面において、手オブジェクト制御モジュール２３３は、右手あるいは左手に対応する手オブジェクトを仮想空間２に配置するためのデータを生成する。また、手オブジェクト制御モジュール２３３は、ユーザ１９０によるコントローラ１６０の操作に応じて、手オブジェクトを動かすためのデータを生成する。手オブジェクト制御モジュール２３３によって生成されたデータは、視界画像生成モジュール２２３に出力される。
【００８７】
他の局面において、ユーザ１９０の体の一部の動き（たとえば、左手、右手、左足、右足、頭などの動き）がコントローラ１６０に関連付けられている場合、仮想空間制御モジュール２３０は、ユーザ１９０の体の一部に対応する部分オブジェクトを仮想空間２に配置するためのデータを生成する。仮想空間制御モジュール２３０は、ユーザ１９０が体の一部を用いてコントローラ１６０を操作すると、部分オブジェクトを動かすためのデータを生成する。これらのデータは、視界画像生成モジュール２２３に出力される。
【００８８】
音声制御モジュール２２５は、ＨＭＤ１１０から、ユーザ１９０のマイク１１９を用いた発話を検出すると、当該発話に対応する音声データの送信対象のコンピュータ２００を特定する。音声データは、音声制御モジュール２２５によって特定されたコンピュータ２００に送信される。音声制御モジュール２２５は、ネットワーク１９を介して他のユーザのコンピュータ２００から音声データを受信すると、当該音声データに対応する音声（発話）をスピーカ１１５から出力する。
【００８９】
メモリモジュール２４０は、コンピュータ２００が仮想空間２をユーザ１９０に提供するために使用されるデータを保持している。ある局面において、メモリモジュール２４０は、空間情報２４１と、オブジェクト情報２４２と、ユーザ情報２４３と、コンテンツデータ２４４と、履歴データ２４５とを保持している。
【００９０】
空間情報２４１は、仮想空間２を提供するために規定された１つ以上のテンプレートを保持している。
【００９１】
オブジェクト情報２４２は、仮想空間２において再生されるコンテンツ、当該コンテンツで使用されるオブジェクトを配置するための情報を保持している。当該コンテンツは、たとえば、ゲーム、現実社会と同様の風景を表したコンテンツなどを含み得る。さらに、オブジェクト情報２４２は、コントローラ１６０を操作するユーザ１９０の手に相当する手オブジェクトを仮想空間２に配置するためのデータと、各ユーザのアバターオブジェクトを仮想空間２に配置するためのデータと、仮想パネルなどのその他のオブジェクトを仮想空間２に配置するためのデータとを含む。
【００９２】
ユーザ情報２４３は、ＨＭＤシステム１００の制御装置としてコンピュータ２００を機能させるためのプログラム、オブジェクト情報２４２に保持される各コンテンツを使用するアプリケーションプログラムなどを保持している。メモリモジュール２４０に格納されているデータおよびプログラムは、ＨＭＤ１１０のユーザ１９０によって入力される。あるいは、プロセッサ１０が、当該コンテンツを提供する事業者が運営するコンピュータ（たとえば、サーバ１５０）からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール２４０に格納する。
【００９３】
コンテンツデータ２４４は、仮想空間２にコンテンツを展開するためのデータである。このデータは、コンテンツの提供事業者によって作成される。別の局面において、コンテンツデータ２４４は、コンテンツを提供するコミュニティに予め登録している一般ユーザによって提供されるものであってもよい。この場合、一般ユーザは、自らが投稿したコンテンツの視聴に基づき、予め定められた基準に基づき、ポイントその他の報酬を受けられてもよい。
【００９４】
履歴データ２４５は、仮想空間２において再生、撮影その他の動作が行なわれた履歴を含む。
【００９５】
通信制御モジュール２５０は、ネットワーク１９を介して、サーバ１５０その他の情報通信装置と通信し得る。
【００９６】
再生制御モジュール２６０は、コンテンツデータ２４４を用いた仮想空間２における再生を制御する。撮影制御モジュール２７０は、仮想空間２におけるユーザ１９０による撮影を制御する。
【００９７】
ある局面において、撮影制御モジュール２７０は、仮想空間２において撮影が行なわれることを検知し、その検知に応答して、画像の再生を停止する。ある局面において、撮影制御モジュール２７０は、仮想空間２において撮影が行なわれることを検知し、その検知に応答して、画像の再生を制御するためのユーザインターフェイスオブジェクトを仮想空間２に提示する。
【００９８】
ある局面において、撮影制御モジュール２７０は、カメラオブジェクトが仮想空間２に提示されたことに基づいて、撮影が行なわれることを検知する。ある局面において、再生制御モジュール２６０は、仮想空間２のうち、カメラオブジェクトにより撮影される方向において再生されている画像の再生を停止する。別の局面において、再生制御モジュール２６０は、カメラオブジェクトの撮影範囲に含まれる画像の再生を停止し得る。
【００９９】
ある局面において、撮影制御モジュール２７０は、ユーザ１９０による自撮りが可能な態様でカメラオブジェクトを提示する。例えば、撮影制御モジュール２７０は、インカメラがユーザ１９０の方を向くように、カメラオブジェクトを提示する。
【０１００】
ある局面において、撮影制御モジュール２７０は、ユーザ１９０に対応するアバターオブジェクトと、当該アバターオブジェクトの背景にある画像とを、カメラオブジェクトのプレビュー画面に提示する。再生制御モジュール２６０は、プレビュー画面に表示される画像の再生を停止する。
【０１０１】
ある局面において、撮影制御モジュール２７０は、ユーザ１９０の動作を検出する。例えば、撮影制御モジュール２７０は、検出された動作が撮影を示唆する動作として予め定められた動作であることに基づいて、撮影が行なわれることを検知する。
【０１０２】
ある局面において、撮影制御モジュール２７０は、プレビュー画面を有するカメラオブジェクトを仮想空間２に提示し、ユーザ１９０に対応するアバターオブジェクトを仮想空間２に提示する。撮影制御モジュール２７０は、アバターオブジェクトの視線がプレビュー画面を向いていることに基づいて、撮影が行なわれることを検知する。
【０１０３】
ある局面において、撮影制御モジュール２７０は、カメラオブジェクトを仮想空間２に提示する。仮想オブジェクト生成モジュール２３２は、ユーザの四肢のいずれかに対応する四肢オブジェクトを仮想空間２に提示するためのデータを生成する。視界画像生成モジュール２２３は、そのデータに基づいて四肢オブジェクトを仮想空間２に提示する。四肢オブジェクトは、例えば、右手オブジェクト、左手オブジェクト、右足オブジェクト、左足オブジェクトである。プロセッサ１０は、ユーザ１９０の動きに基づいて、四肢オブジェクトを移動する。撮影制御モジュール２７０は、四肢オブジェクトがカメラオブジェクトの近傍にあることに基づいて、撮影が行なわれることを検知する。
【０１０４】
ある局面において、再生制御モジュール２６０は、予め定められた時間遡ることにより再生済みの画像を提示する。ある局面において、再生制御モジュール２６０は、仮想空間２において再生が停止された場所を記録する。
【０１０５】
ある局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、たとえば、ユニティテクノロジーズ社によって提供されるＵｎｉｔｙ（登録商標）を用いて実現され得る。他の局面において、表示制御モジュール２２０および仮想空間制御モジュール２３０は、各処理を実現する回路素子の組み合わせとしても実現され得る。
【０１０６】
コンピュータ２００における処理は、ハードウェアと、プロセッサ１０により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール２４０に予め格納されている場合がある。また、ソフトウェアは、ＣＤ−ＲＯＭその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール２５０を介してサーバ１５０その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ１０によって記憶モジュールから読み出され、実行可能なプログラムの形式でＲＡＭに格納される。プロセッサ１０は、そのプログラムを実行する。
【０１０７】
コンピュータ２００を構成するハードウェアは、一般的なものである。したがって、本実施の形態に係る最も本質的な部分は、コンピュータ２００に格納されたプログラムであるともいえる。なお、コンピュータ２００のハードウェアの動作は周知であるので、詳細な説明は繰り返さない。
【０１０８】
なお、データ記録媒体としては、ＣＤ−ＲＯＭ、ＦＤ（Flexible  Disk）、ハードディスクに限られず、磁気テープ、カセットテープ、光ディスク（ＭＯ（Magnetic  Optical  Disc）／ＭＤ（Mini  Disc）／ＤＶＤ（Digital  Versatile  Disc））、ＩＣ（Integrated  Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically  Programmable  Read-Only  Memory）、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）、フラッシュＲＯＭなどの半導体メモリなどの固定的にプログラムを担持する不揮発性のデータ記録媒体でもよい。
【０１０９】
ここでいうプログラムとは、プロセッサ１０により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラムなどを含み得る。
【０１１０】
以下、仮想空間２における楽器演奏の処理がコンピュータ２００によって実現される場合について説明する。この場合の形態は、ＨＭＤ１１０がコンピュータ２００に接続される形態、および、ＨＭＤ１１０がプロセッサを内蔵している形態のいずれであってもよい。
【０１１１】
（１）  ある局面において、プロセッサ１０は、仮想空間２を定義し、仮想空間２に楽器オブジェクトを配置し、楽器を演奏するために使用される一つ以上の演奏オブジェクトを仮想空間２に配置する。さらに、プロセッサ１０は、仮想空間２に対応する視界画像をＨＭＤ１１０に提示し、仮想空間２において楽曲を再生し、楽曲の進行に応じて楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、楽器オブジェクトの近傍に提示する。プロセッサ１０は、ＨＭＤ１１０のユーザの四肢のいずれかの動きを検知し、その動きに応じて、演奏オブジェクトを楽器オブジェクトに対して動かし、演奏オブジェクトが楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、楽曲に応じた音を出力する。
【０１１２】
（２）  ある局面において、プロセッサ１０は、楽器オブジェクトを演奏すべきタイミングで、ガイドオブジェクトを演奏オブジェクトに到達させ、ガイドオブジェクトが演奏オブジェクトに到達したことに応答して、楽器オブジェクトをタイミングよく演奏できたか否かを判断する。
【０１１３】
（３）  ある局面において、プロセッサ１０は、ドラムに対応するドラムオブジェクトを配置し、ドラムを演奏するためのスティックに対応するスティックオブジェクトを配置する。演奏オブジェクトが予め定められた範囲に入ることは、スティックオブジェクトがドラムオブジェクトの外から当該ドラムオブジェクトの打面に入ることを含む。
【０１１４】
（４）  ある局面において、音を出力するステップは、スティックオブジェクトの移動速度に応じた音量を出力するステップを含む。
【０１１５】
（５）  ある局面において、ドラムオブジェクトは、ドラムを構成する複数の要素オブジェクトを含む。ガイドオブジェクトを提示するステップは、各要素オブジェクトの演奏タイミングに応じたガイドオブジェクトをそれぞれ提示するステップを含む。
【０１１６】
（６）  ある局面において、プロセッサ１０は、ギターに対応するギターオブジェクトを配置し、ギターを演奏するためのコードが適用される位置に向けてガイドオブジェクトを遷移させ、ガイドオブジェクトが当該位置に到達するタイミングで、演奏オブジェクトのうちの一つの演奏オブジェクトが位置に配置され、他の演奏オブジェクトがギターオブジェクトの弦を弾く動作が行なわれることに基づいて、音を出力する。
【０１１７】
（７）  ある局面において、プロセッサ１０は、複数のコードの各々に対応するガイドオブジェクトを連続して並べる。
【０１１８】
（８）  ある局面において、プロセッサ１０は、鍵盤楽器に対応する鍵盤楽器オブジェクトを配置し、手を表わす手オブジェクトを配置し、演奏対象となる鍵盤に対応する鍵盤オブジェクトの近傍にガイドオブジェクトを配置し、手オブジェクトが鍵盤オブジェクトに接したことに基づいて音を出力する。
【０１１９】
（９）  ある局面において、プロセッサ１０は、現実空間においてユーザの手が平面に置かれていることに基づいて、仮想空間２に鍵盤楽器オブジェクトを配置する。
【０１２０】
（１０）  ある局面において、プロセッサ１０は、手オブジェクトが鍵盤オブジェクトに接したことに基づいて、他の鍵盤オブジェクトとは異なった態様で当該鍵盤オブジェクトを提示する。
【０１２１】
（１１）  ある局面において、プロセッサ１０は、複数の楽器のいずれかの選択を受け付けるインターフェイスを仮想空間２に提示する。
【０１２２】
（１２）  ある局面において、プロセッサ１０は、仮想空間２を共有する他のＨＭＤ１１０のユーザによって使用される他の楽器オブジェクトを仮想空間２に提示する。
【０１２３】
（１３）  ある局面に従うと、楽器の選択を支援するためにコンピュータで実行される方法が提供される。この方法は、ＨＭＤ１１０によって提供される仮想空間２を定義するステップと、仮想空間２に楽器オブジェクトを配置するステップと、楽器を演奏するために使用される一つ以上の演奏オブジェクトを仮想空間２に配置するステップと、仮想空間２に対応する視界画像をＨＭＤ１１０に提示するステップと、仮想空間２において楽曲を再生するステップと、楽曲の進行に応じて楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、楽器オブジェクトの近傍に提示するステップと、ＨＭＤ１１０のユーザの四肢のいずれかの動きを検知するステップと、動きに応じて、演奏オブジェクトを楽器オブジェクトに対して動かすステップと、演奏オブジェクトが楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、楽曲に応じた音を出力するステップとを含む。
【０１２４】
（１４）  ある局面において、上記方法は、複数の楽器のいずれかの選択を受け付けるインターフェイスを仮想空間２に提示するステップをさらに含む。
【０１２５】
（１５）  ある局面において、ガイドオブジェクトを楽器オブジェクトの近傍に提示するステップは、楽器オブジェクトを演奏すべきタイミングで、ガイドオブジェクトが演奏オブジェクトに到来することを含む。当該方法は、ガイドオブジェクトが演奏オブジェクトに到来したことに応答して、楽器オブジェクトをタイミングよく演奏できたか否かを判断するステップをさらに含む。
【０１２６】
（１６）  ある局面において、当該方法は、楽器オブジェクトをタイミングよく演奏できたか否かの判定結果に応じて、課金のためのインターフェイスオブジェクトを仮想空間２に提示するステップをさらに含む。
【０１２７】
（１７）  ある局面において、当該方法は、選択された楽器の購入の要求を受け付けるインターフェイスオブジェクトを仮想空間２に提示するステップをさらに含む。
【０１２８】
［ＨＭＤシステムの制御構造］
図１０を参照して、ＨＭＤシステム１００の制御構造について説明する。図１０は、ある実施の形態に従うＨＭＤシステム１００において実行される処理の一部を表すシーケンスチャートである。
【０１２９】
図１０に示されるように、ステップＳ１０１０にて、コンピュータ２００のプロセッサ１０は、仮想空間定義モジュール２３１として、仮想空間画像データを特定し、仮想空間２を定義する。
【０１３０】
ステップＳ１０２０にて、プロセッサ１０は、仮想カメラ１を初期化する。たとえば、プロセッサ１０は、メモリのワーク領域において、仮想カメラ１を仮想空間２において予め規定された中心点に配置し、仮想カメラ１の視線をユーザ１９０が向いている方向に向ける。
【０１３１】
ステップＳ１０３０にて、プロセッサ１０は、視界画像生成モジュール２２３として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１３２】
ステップＳ１０３２にて、ＨＭＤ１１０のモニタ１１２は、コンピュータ２００から受信した視界画像データに基づいて、視界画像を表示する。ＨＭＤ１１０を装着したユーザ１９０は、視界画像を視認すると仮想空間２を認識し得る。
【０１３３】
ステップＳ１０３４にて、ＨＭＤセンサ１２０は、ＨＭＤ１１０から発信される複数の赤外線光に基づいて、ＨＭＤ１１０の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ２００に出力される。
【０１３４】
ステップＳ１０４０にて、プロセッサ１０は、ＨＭＤ１１０の動き検知データに含まれる位置と傾きとに基づいて、ＨＭＤ１１０を装着したユーザ１９０の視界方向を特定する。
【０１３５】
ステップＳ１０５０にて、プロセッサ１０は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間２にオブジェクトを提示する。このとき提示されるオブジェクトは、他アバターオブジェクトを含む。
【０１３６】
ステップＳ１０６０にて、コントローラ１６０は、モーションセンサ１３０から出力される信号に基づいて、ユーザ１９０の操作を検出し、その検出された操作を表す検出データをコンピュータ２００に出力する。なお、他の局面において、ユーザ１９０によるコントローラ１６０の操作は、ユーザ１９０の周囲に配置されたカメラからの画像に基づいて検出されてもよい。
【０１３７】
ステップＳ１０６５にて、プロセッサ１０は、コントローラ１６０から取得した検出データに基づいて、ユーザ１９０によるコントローラ１６０の操作を検出する。
【０１３８】
ステップＳ１０７０にて、プロセッサ１０は、手オブジェクトを仮想空間２に提示するための視界画像データを生成する。
【０１３９】
ステップＳ１０８０にて、プロセッサ１０は、ユーザ１９０によるコントローラ１６０の操作に基づく視界画像データを生成する。生成された視界画像データは、通信制御モジュール２５０によってＨＭＤ１１０に出力される。
【０１４０】
ステップＳ１０９２にて、ＨＭＤ１１０は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ１１２に表示する。
【０１４１】
［技術思想］
図１１を参照して、本開示に係る技術思想について説明する。図１１は、ユーザ１９０が仮想空間で楽器を演奏するために行われる手順を表わすフローチャートである。技術思想は、仮想空間において音楽を演奏するタイミングがユーザに通知されるというものである。当該タイミングは、例えば、ドラムを叩くタイミング、キーボードのキーを押すタイミング等を含む。タイミングの通知方法としては、例えば、演奏箇所（すなわち、ドラム面、キー等）に向けて何らかのインジケータが表示される方法がある。当該技術思想は、個人で使用するＨＭＤは勿論、複数人のグループが集まる商業施設、例えばカラオケ店等や楽器店においても適用可能である。カラオケ店で実施される場合、ユーザはカラオケ音源の演奏に参加でき、他の顧客（歌っている人、聞いている人、他の楽器を演奏している人等）との一体感を高めることもできる。
【０１４２】
より詳しくは、カラオケ店にＨＭＤシステム１００が設置される。顧客は、気軽に楽器演奏を体験できる。顧客が左右の手にコントローラを装着し、左手でトラックを選択し、右手でタイミングを入力する。別の局面において、演奏の動画が配信されてもよい。楽器を他のユーザと共有することもできる。
【０１４３】
［ギターの演奏］
仮想空間でギターを演奏する場合において、ユーザ１９０の指をトラッキングしないときは、ＨＭＤシステム１００は、ギターの演奏にかかるコードを判別できないので、ユーザ１９０の手に装着されたコントローラー１６０の位置を区別することで、指のトラッキングおよびコードの指定を検出する。例えば、ギターの弦のところに、当たり判定領域が関連付けられた複数のオブジェクトが設置される。コントローラー１６０が接触している弦に応じて演奏時に出力される音が変わる。
【０１４４】
［ドラムの演奏］
別の局面において、仮想空間２でドラムを演奏することが考えられる。この場合、現実空間でのドラム演奏では有り得ない操作が仮想空間では起こりえる。当該操作は、例えば、スティックオブジェクトが下のドラム面を叩くこと、あるいは、ドラムの横から叩くこと、等である。そこで、有り得ない操作が行われた場合に音が出力されることを防止するために、例えば、正方形型の当たり判定領域が規定され、１フレーム前のスティックの場所と現在のスティックの場所とを比較し、縦軸の座標値（ｚ座標値）が増加、もしくは縦軸の座標値の移動距離よりも横軸の座標値の移動距離（水平方向の移動）が長い場合、当たり判定と判断されないように構成される。それ以外の場合には、当たり判定と判断され、移動距離が取得される。当たり判定であると判断された場合のみ、ＨＭＤ１１０は音を再生する。この場合、音量は、移動距離に応じて調整される。
【０１４５】
［ピアノの演奏］
仮想空間２でピアノを演奏する場合、現実空間にある平らな台（例えば、ガラステーブル、膝の上に置かれた板等）の上が検出されるようにＨＭＤシステム１００が設置され、仮想空間上に鍵盤が設置される。ユーザは、例えば、手袋型のコントローラー１６０やLeapMotionその他の手の動きをトラッキングできる機器を装着し、現実空間における机その他の平面上に手を開いて数秒間静止する。ＨＭＤ１１０のモニタ１１２は、静止していた位置に応じて、仮想空間２にピアノの鍵盤を表示する。ユーザ１９０が仮想空間２のピアノの演奏に合わせて音を再生する。
【０１４６】
仮想空間２で楽器を試奏した後、ユーザに購入を促してもよい。例えば、ＨＭＤ１１０を装着したユーザが仮想空間内で実在する楽器に相当する楽器オブジェクトを選択し、仮想空間２において演奏し、その楽器を気に入ったら購入できるように構成されてもよい。より詳しくは、ユーザ１９０は、演奏開始前に、楽器のモデル、スティックまたはピック等を実在するモデルから選択し得る。仮想空間２での音色やサステイン等は、選択した楽器に依存する。ユーザは仮想空間２で演奏し、その楽器、スティックまたはピック等を気に入ったら購入できるように構成されてもよい。
【０１４７】
なお、ここに開示される技術思想が適用される楽器は、上記のドラムセット、ギター、ピアノに限られず、例えば、シンバル、電子ピアノ、鍵盤打楽器、ヘッド等に対しても適用できる。
【０１４８】
ステップＳ１１１０にて、ユーザ１９０は、カラオケ店を訪れ、カラオケルームに入室する。なお、仮想現実が体験される場所はカラオケルームに限られない。当該場所は、例えば、楽器店やアミューズメント施設その他の商業施設に設けられた区画であってもよいし、ユーザの自宅、学校その他商業施設以外の場所であってもよい。少なくとも、ＨＭＤ１１０を用いた仮想現実を体験できる場所であればよい。
【０１４９】
ステップＳ１１１５にて、ユーザ１９０は、ＨＭＤ１１０とコントローラ１６０とを装着する。
【０１５０】
ステップＳ１１２０にて、ユーザ１９０は、楽器演奏アプリを実行する。例えば、ユーザ１９０はＨＭＤ１１０のモニタに表示されるメニュー画面から楽器演奏アプリを選択し得る。なお、楽器演奏アプリの選択はＨＭＤ１１０を装着する前に行われてもよい。
【０１５１】
ステップＳ１１２５にて、ＨＭＤ１１０は、サーバ１５０から楽器演奏を開始するデータを受信する。
【０１５２】
ステップＳ１１３０にて、ＨＭＤ１１０は、モニタに楽器演奏アプリの動画を表示する。
【０１５３】
ステップＳ１１３５にて、サーバ１５０は、コントローラ１６０からの信号または視線検出信号に基づいて、ユーザ１９０に選択された楽器を検知する。
【０１５４】
ステップＳ１１４０にて、ＨＭＤ１１０は、サーバ１５０から受信するデータに基づいて、選択された楽器に対応する楽器オブジェクトを仮想空間に表示する。
【０１５５】
ステップＳ１１４５にて、ユーザ１９０による音楽再生の指示に基づいて、サーバ１５０は楽器によって演奏される音楽の再生を開始する。
【０１５６】
ステップＳ１１５０にて、ＨＭＤ１１０のモニタは、サーバ１５０からの信号に基づいて、楽器オブジェクトのうち、ユーザ１９０による演奏の対象となる部分を他の部分の態様と異なる態様で表示する。
【０１５７】
ステップＳ１１５５にて、ＨＭＤ１１０のモニタは、音楽の進行に合わせて、演奏のタ
イミングを表わすインジケータを楽器オブジェクトの近傍に表示する。
【０１５８】
ステップＳ１１６０にて、サーバ１５０は、ユーザ１９０の両手に取り付けられた各コントローラ１６０から送られる信号に基づいてユーザ１９０の手の動きを検知する。
【０１５９】
ステップＳ１１６５にて、ＨＭＤ１１０は、サーバ１５０からの信号に基づいて、インジケータと手の動きとが対応していることに基づいて音が出ていることを表わす音符オブジェクトを楽器オブジェクトの近傍に表示する。
【０１６０】
［制御構造］
図１２を参照して、サーバ１５０の制御構造について説明する。図１２は、サーバ１５０が実行する処理の一部を表わすフローチャートである。
【０１６１】
Ｓ１２１０にて、プロセッサ１５１は、ユーザ１９０の指示に基づいて、楽器演奏アプリを実行する。ユーザ１９０が予め会員として登録されている場合には、楽器演奏アプリを実行する前に、ログインが求められてもよい。この場合、ユーザ１９０の楽器演奏の履歴は当該ユーザの識別情報に関連付けらて記録されてもよい。ユーザ１９０が登録されていない場合には、一般ユーザとして以下の処理が実行される。この場合、ユーザ１９０による楽器演奏の履歴は、一般ユーザの履歴として保存される。
【０１６２】
Ｓ１２１５にて、プロセッサ１５１は、楽器の選択を受け付ける画面をＨＭＤ１１０に表示させる。
【０１６３】
Ｓ１２２０にて、プロセッサ１５１は、選択された楽器の識別番号をＨＭＤ１１０から受信する。ユーザ１９０が登録されている場合には、プロセッサ１５１は、ユーザ１９０の識別番号と楽器の識別番号とを関連付けてストレージ１５４に格納する。
【０１６４】
Ｓ１２２５にて、プロセッサ１５１は、選択された楽器をＨＭＤ１１０に表示させる。  Ｓ１２３０にて、プロセッサ１５１は、楽曲の選択を受け付ける画面をＨＭＤ１１０に表示させる。
【０１６５】
Ｓ１２３５にて、プロセッサ１５１は、選択された楽曲の識別番号をＨＭＤ１１０から受信する。
【０１６６】
Ｓ１２４０にて、プロセッサ１５１は、選択された楽曲の再生を指示する信号をＨＭＤ１１０から受信する。
【０１６７】
Ｓ１２４５にて、プロセッサ１５１は、楽曲の再生に合わせて、楽器オブジェクトおよびガイドオブジェクトを表示するデータをＨＭＤ１１０に送信する。
【０１６８】
Ｓ１２５０にて、プロセッサ１５１は、ユーザ１９０の動作に応じて動く演奏オブジェクトの動きを示す信号をコントローラ１６０から受信する。
【０１６９】
Ｓ１２５５にて、プロセッサ１５１は、楽器オブジェクトの所定の範囲内に演奏オブジェクトが入ったことに基づいて、楽曲に応じた音をＨＭＤ１１０に出力する。
【０１７０】
なお、上記の処理はサーバ１５０以外に例えばコンピュータ２００によっても実行され得る。したがって、ＨＭＤ１１０がコンピュータ２００の演算機能を有している場合には、ＨＭＤ１１０は、所定のデータをダウンロードした後に、スタンドアローンの状態で上記の処理を実行してもよい。
【０１７１】
図１３を参照して、仮想現実としてユーザ１９０に提示される画像について説明する。図１３は、仮想空間において楽器を選択するために１１２に表示される画像の一態様を表わす図である。
【０１７２】
モニタ１１２は、ドラムオブジェクト１３１０と、ギターオブジェクト１３２０と、ピアノオブジェクト１３３０と、サックスオブジェクト１３４０とを表示する。ドラムオブジェクト１３１０と、ギターオブジェクト１３２０と、ピアノオブジェクト１３３０と、サックスオブジェクト１３４０とは、ユーザ１９０により選択可能である。例えば、ユーザ１９０がコントローラ１６０を操作していずれかのオブジェクトを選択すると、選択されたオブジェクトで示される楽器を仮想空間２で演奏可能となる。なお、モニタ１１２に表示される画像は図１２に示されるものに限られず、その他の楽器オブジェクトがさらに表示されてもよい。例えば、ユーザ１９０は、コントローラ１６０を操作することにより、画面を切り換えて別の画像をモニタ１１２に提示させることもできる。
【０１７３】
図１４を参照して、仮想現実としてユーザ１９０に提示される画像についてさらに説明する。図１４は、仮想空間においてドラムを演奏するために表示される画像の一態様を表わす図である。
【０１７４】
モニタ１１２は、ドラムオブジェクト１３１０と、オブジェクト１４１０，１４２０，１４３０とを表示する。ドラムオブジェクト１３１０は、ユーザ１９０によって選択された楽器である。
【０１７５】
オブジェクト１４１０は、現在の画像のモードを、当該楽器の位置を微調整するためのモードに切り替える命令を受け付ける。ユーザ１９０は、コントローラ１６０あるいは視線を向けることによりオブジェクト１４１０を選択する操作を行なうと、ドラムオブジェクト１３１０を構成する各要素がアクティブな状態となる。ユーザ１９０は、位置を調整したい要素をコントローラ１６０で選択して、コントローラ１６０を操作することにより、選択された要素の位置を移動できる。
【０１７６】
オブジェクト１４２０は、仮想空間に提示される楽器を変更するための操作を受け付ける。例えば、ユーザ１９０がコントローラ１６０あるいは視線を向けることにより、モニタ１１２は、図１３に示される画像を提示する。ユーザ１９０は、楽器を再度選択できる。
【０１７７】
オブジェクト１４３０は、仮想空間において音楽を再生する指示を受け付ける。ユーザ１９０は、コントローラ１６０あるいは視線を向けることによりオブジェクト１４３０を選択する操作を行なうと、モニタ１１２に表示される画像は、予め定められた音楽が再生される場面に切り換わる。なお、仮想空間において再生される音楽は予め定められた音楽に限られず、ユーザ１９０がモニタ１１２において選択可能であってもよい。あるいは、ユーザ１９０が当該サービスを受けるためのアカウントを保有している場合には、ユーザ１９０は当該アカウントに好みの音楽を予め登録し、登録された音楽が仮想空間で選択されてもよい。
【０１７８】
図１４に示される画像は、楽器を演奏する場所を俯瞰した状態を表わしている。ユーザ１９０がオブジェクト１４３０を押下すると、モニタ１１２は、ユーザ１９０が楽器の前に座った状態の画像に切り替わる。
【０１７９】
そこで、図１５を参照して、仮想空間においてユーザ１９０が楽器を演奏する局面について説明する。図１５は、所謂一人称視点としてＨＭＤを装着したユーザ１９０に視認される画面を表わす図である。
【０１８０】
状態Ａに示されるように、モニタ１１２は、ユーザ１９０による音楽再生の指示に基づいて、楽器オブジェクト１５１０，１５１１，１５１２，１５１３，１５１４，１５１５を表示する。さらに、モニタ１１２は、仮想空間において、各楽器オブジェクトに至る線オブジェクト１５２０，１５２１，１５２２，１５２３，１５２４，１５２５を表示する。音楽が再生されると、モニタ１１２は、ガイドオブジェクト１５３０，１５３１，１５３２を表示する。ガイドオブジェクト１５３０，１５３１，１５３２は、音楽の再生の進行に合わせて、線オブジェクト１５２２，１５２３，１５２４に沿って楽器オブジェクト１５１３，１５１４，１５１５に向かって移動する。ガイドオブジェクト１５３０，１５３１，１５３２は、それぞれ、仮想空間２において各楽器オブジェクトに対してユーザ１９０が働きかけるタイミングを表わす。演奏対象としてドラムが選択された場合、不慣れなユーザ１９０は、音楽に合わせてどのドラムオブジェクトをたたくべきか分からない。そこで、各ガイドオブジェクトは、関連付けられているドラムオブジェクトに順次移動し、ガイドオブジェクトがドラムオブジェクトに到達したタイミングを、ユーザ１９０が当該ドラムオブジェクトをたたくべきタイミングとして通知する。
【０１８１】
具体的には、状態Ｂに示されるように、モニタ１１２は、スティックオブジェクト１５４０，１５４１をさらに表示する。スティックオブジェクト１５４０，１５４１は、ユーザ１９０の手に装着されたコントローラ１６０の動きに応じて移動する。ある局面において、ガイドオブジェクト１５３０がドラムオブジェクト１５１３に到達してドラムオブジェクト１５１３の打面に表示される。そのタイミングで、ユーザ１９０が手を動かしてスティックオブジェクト１５４０をドラムオブジェクト１５１３に打ち付けると、モニタ１１２は、音符オブジェクト１５５０を表示する。音符オブジェクト１５５０は、ドラムオブジェクト１５１３から音が出ていることを表わす。このとき、ＨＭＤ１１０は、スピーカ１１５から音を出力するので、ユーザ１９０は、音楽に合わせてドラムを演奏できていることを実感できる。
【０１８２】
なお、ユーザ１９０に演奏を促すタイミングを示す態様は、ガイドオブジェクト１５３０のような態様に限られない。例えば、ユーザ１９０がスティックオブジェクト１５４０，１５４１でたたくべきドラム面に向かって線オブジェクトが徐々に伸びていき、線オブジェクトがドラム面に到達した時に当該ドラム面の所定の領域（例えば当たり判定領域として規定された領域）の色が変わる態様であってもよい。
【０１８３】
モニタ１１２は、音楽の進行に合わせてガイドオブジェクト１５３１，１５３２がドラムオブジェクト１５１５，１５１１に向けて移動する態様で、ガイドオブジェクト１５３１，１５３２を順次表示する。ガイドオブジェクト１５３１，１５３２がドラムオブジェクト１５１４，１５１１の打面に到達したタイミングで、ユーザ１９０がドラムオブジェクト１５１４，１５１１を順次スティックオブジェクト１５４０または１５４１でたたく動作を行なうと、音符オブジェクト１５５０と同様の音符オブジェクトが表示され、押下されるタイミングで音がスピーカ１１５から出力される。
【０１８４】
ガイドオブジェクトは、再生される音楽を構成するドラムの操作タイミングに合わせて、いずれかの線オブジェクトに適宜表示される。ユーザ１９０は、ガイドオブジェクトがドラムオブジェクトの打面に到達したタイミングでスティックオブジェクト１５４０，１５４１を操作することにより、仮想空間２における演奏を続けることができる。その後、音楽の再生が終了すると、モニタ１１２は図１４に示される画像を表示する。ユーザ１９０が、オブジェクト１４２０を操作すると、楽器を変更することができる。
【０１８５】
［ギター］
図１６を参照して、ユーザ１９０が仮想空間において他の楽器を演奏する局面について説明する。図１６は、ギターオブジェクト１６００が選択された状態を表わす図である。ユーザ１９０がオブジェクト１４２０を操作すると、図１３に示される画像がモニタ１１２に表示される。ユーザ１９０がギターオブジェクト１３２０を選択すると、図１６に示されるように、モニタ１１２は、所謂一人称視点から見た画像として、ギターオブジェクト１６００が選択された画像を表示する。ユーザ１９０がオブジェクト１４３０を選択すると、ギターオブジェクト１６００に予め関連付けられている音楽データがＨＭＤにロードされ、モニタ１１２は、ギターオブジェクト１６００を表示する。
【０１８６】
図１７〜図１９を参照して、ギターオブジェクト１６００を用いた演奏について説明する。図１７〜図１９は、ギターオブジェクト１６００を演奏する場面を表わす。
【０１８７】
図１７に示されるように、音楽の再生が開始される前に、モニタ１１２は、ギターオブジェクト１６００に加えて、線オブジェクト１７１０，１７１１，１７１２，１７１３，１７１４，１７１５，１７１６を表示する。線オブジェクト１７１０，１７１１，１７１２，１７１３，１７１４，１７１５，１７１６は、ガイドオブジェクトが進む経路を表わす。線オブジェクト１７１０，１７１１，１７１２，１７１３，１７１４，１７１５，１７１６の始点は予め設定されており、線オブジェクト１７１０，１７１１，１７１２，１７１３，１７１４，１７１５，１７１６の間隔は、始点とギターオブジェクト１６００との間隔に応じて変更され得る。
【０１８８】
例えば、ユーザ１９０が上級者の場合には、当該始点は、ギターオブジェクト１６００の近傍に設置される。他方、ユーザ１９０が初心者の場合には、始点はギターオブジェクト１６００から離れた場所に設置されてもよい。このようにすると、音楽の再生速度に応じてガイドオブジェクトが楽器オブジェクトに到達する時間を調整できるので、ユーザのレベルに応じた演奏環境を提供することができる。
【０１８９】
より具体的には、図１８に示されるように、モニタ１１２は、音楽の進行に応じて、ガイドオブジェクト１８１０，１８２０，１８３０を順次表示する。ユーザ１９０は、ガイドオブジェクト１８１０，１８２０，１８３０がギターオブジェクト１７００のネックに向かってたどる線オブジェクトが到達するフィンガーボードに向けて、コントローラ１６０が装着された左手を左右に動かし、フィンガーボードの位置を特定する。このとき、線オブジェクト１７１３は、他の線オブジェクト１７１０，１７１１，１７１２，１７１４，１７１５と異なる態様で表示されてもよい。このようにすると、ＨＭＤ１１０を装着したユーザ１９０は、どのフィンガーボードを押下すればよいか容易に理解することができる。
【０１９０】
図１９を参照して、ガイドオブジェクト１８１０がフィンガーボード１８４０に到達するタイミングに合わせて、ユーザ１９０がコントローラ１６０が装着された右手を動かすと、ＨＭＤ１１０のスピーカは、フィンガーボード１８４０で特定される音を出力する。さらに、モニタ１１２は、音符オブジェクト１９００を表示する。その後も、ユーザ１９０が、ガイドオブジェクト１８２０，１８３０が順次フィンガーボード１８４０に到達するタイミングに合わせて右手を振る動作を行なうと、その振動がコンピュータ２００に入力される。その入力に基づいて予め規定された音がスピーカから出力される。このとき、音が正しく出ていることを表わす音符オブジェクトが表示され得る。なお、出力される音の正確さに応じて音符オブジェクトの姿勢が変わってもよい。また、音量に応じて音符オブジェクトの大きさが変更されてもよい。このようにすると、演奏の正確さがＨＭＤ１１０のユーザあるいは演奏されている仮想空間２を共有する他のユーザにも理解され得る。
【０１９１】
ギターを演奏する場合、左手の位置は、例えば、ユーザ１９０の正面に配置される１２０その他のセンサによって検出される。また、ギターの演奏においてフィンガーボードが押されたことと同様のことを仮想空間において検出するために、例えば、コントローラ１６０を装着した左手の親指とその他の指とを閉じて開く動作によるコントローラ１６０の振動、あるいは、左手をグーにする動作およびパーにする動作によるコントローラ１６０の振動が、フィンガーボード１８４０の押下として検出され得る。右手の動作は、右手に装着されるコントローラ１６０に内蔵された振動センサが右手の振動を検知することにより、検出され得る。
【０１９２】
［ピアノ］
図２０を参照して、ユーザ１９０が仮想空間において他の楽器を演奏する局面について説明する。図２０（Ａ）は、ユーザ１９０が較正のために左手２０１０および右手２０１１を平面上においた状態を表わす図である。ギターオブジェクト１６００が選択された状態を表わす図である。平面は、例えば、テーブル、机、ユーザ１９０の両膝の上に置かれた板等であるが、これらに限られない。
【０１９３】
ピアノを演奏する場合、指の上下の動きを検出する必要がある。そこで、ある局面において、動きセンサの正面に着座したユーザ１９０の両手が置かれる平面が予め検出され、基準面として規定される。その後、音楽の再生が開始すると、ユーザ１９０が平面上で指を上下することにより、その上下の運動が鍵盤のキーを押下する動作として検出される。
【０１９４】
図２０（Ｂ）は、ユーザ１９０が装着したＨＭＤ１１０のモニタ１１２が表示する画像の一例を表わす図である。モニタ１１２は、鍵盤２０００と、左手オブジェクト２０２０と、右手オブジェクト２０２１とを表示する。ユーザ１９０が音楽の再生を指示すると（オブジェクト１４３０）、前述のドラム（図１５）あるいはギター（図１７）の演奏と同様に、線オブジェクト（図示しない）が各キーに向かって表示され、ガイドオブジェクト（図示しない）が押下されるべきキーに到達したタイミングでユーザ１９０が当該キーに対応する指を押す動作を行なうと、キーの押下として検出される。
【０１９５】
［データ構造］
図２１を参照して、サーバ１５０のデータ構造について説明する。図２１は、ストレージ１５４におけるデータの格納の一態様を概念的に表す図である。ストレージ１５４は、テーブル２１１０，２１２０を含む。テーブル２１１０は、ユーザ２１１１と、時間２１１２と、楽器２１１３と、楽曲２１１４と、位置２１１５とを含む。
【０１９６】
ユーザ２１１１は、ＨＭＤ１１０を用いた楽器演奏を体験したユーザを特定する。ユーザ「ＮＡ」はサーバ１５０に登録されていないユーザを表わし、例えば、お試しで楽器演奏を体験したユーザを表わす。ユーザ１００，１０１，２１０等は、サーバ１５０に登録されているユーザを表わす。サーバ１５０に登録されているとは、例えば、ＨＭＤ１１０を用いた楽器演奏を体験できる会員として予め登録されていることを表わす。
【０１９７】
時間２１１２は、当該ユーザがＨＭＤ１１０を用いた楽器演奏を体験した日時を表わす。時間２１１２は、例えば、ＨＭＤ１１０を用いた楽器演奏のためのアプリが最初に起動された日時、あるいは、会員として予め登録されていたユーザがそのアカウントにログインした日時である。
【０１９８】
楽器２１１３は、当該ユーザが選択した楽器を識別する。同一のユーザが異なる楽器を選択した場合、その選択の都度、新たなレコードがデータベースに作成され得る。
【０１９９】
楽曲２１１４は、当該ユーザが演奏した音楽を識別する。当該音楽は、楽器演奏のためのアプリによって予め指定されている音楽、予め準備された演奏候補から選択された音楽のいずれであってもよい。
【０２００】
位置２１１５は、演奏タイミングとのずれが生じた楽曲の位置を表わす。当該位置は、例えば、楽曲データの先頭（０分０秒）から経過した時間として示される。位置２１１５は、音楽の進行に応じてユーザ１９０が演奏する間に検出される。位置２１１５が検出された回数に応じて、当該ユーザ１９０の演奏のレベルが推定され得る。
【０２０１】
テーブル２１２０は、登録ユーザ２１２１と、楽器２１２２と、習熟度２１２３と、プロモーション２１２４とを含む。登録ユーザ２１２１は、ＨＭＤ１１０を用いた楽器演奏を行なうメンバーとして予めサーバ１５０に登録されている。ユーザの登録は、例えば、楽器演奏を希望する人が集まりやすい施設（楽器ショップ、カラオケハウス、ゲームセンターその他のアミューズメント施設、テーマパーク）において実現され得る。
【０２０２】
楽器２１２２は、登録ユーザ２１２１によって演奏対象として登録されている楽器を識別する。一人のユーザが複数の楽器を登録してもよい。
【０２０３】
習熟度２１２３は、登録ユーザ２１２１による当該楽器の演奏レベルを表わす。習熟度２１２３は、例えば、位置２１１５として検出された演奏タイミングのずれの頻度に基づく区分として示される。
【０２０４】
プロモーション２１２４は、当該ユーザに対して適切と考えられる販売促進活動の種類を表わす。例えば、上級者（ユーザ番号２１０）の場合、楽器（ギター）の購入を推奨するための広告が当該ユーザに提供される。例えば、広告は、当該ユーザが装着しているＨＭＤ１１０において、楽器演奏の終了後に表示される。あるいは、広告は、当該ユーザのアカウントに登録されているメールアドレスに割引クーポンその他のプロモーションコードと共に送付されてもよい。
【０２０５】
［表示態様］
図２２を参照して、モニタ１１２における画面の表示態様について説明する。図２２は、ユーザ１９０が仮想空間において楽器を演奏した後にモニタ１１２に表示される画面の一例を表わす図である。
【０２０６】
画面Ａに示されるように、モニタ１１２は、音楽の再生が終了すると、「また使ってね！」といったメッセージを表示する。その後、画面Ｂに示されるように、モニタ１１２は、当該ユーザ１９０による演奏の結果から推定される習熟度２１２３に基づき、「なかなかイイネ！  こちらのドラムも試してね！  スティックもあるよ！」といったメッセージを表示する。さらに、モニタ１１２は、適宜、購入を受け付けるアイコンも表示する。
【０２０７】
あるいは、別の局面において、ユーザ１９０の習熟度２１２３が上級と判定されると、画面Ｃに示されるように、モニタ１１２は、「セミプロ級ですね！  あなたにお薦めのギターはコチラ！  ピックもあるよ！」といった購入を促すメッセージが表示され得る。
【０２０８】
［ドラム演奏の検出］
図２３を参照して、仮想空間２で演奏されるドラムに関し、スティック動作の検出について説明する。図２３は、仮想空間２におけるスティックオブジェクト１５４０と打面２３００との位置関係を水平方向から表す図である。
【０２０９】
現実空間において、コントローラ１６０が装着された手が振り下ろされると、状態Ａに示されるように、仮想空間において、対応するスティックオブジェクト１５４０は、打面２３００に向かって移動する。スティックオブジェクト１５４０の先頭が打面２３００に到達すると、そのタイミングで打音がスピーカから発せられる。
【０２１０】
ところで、仮想空間では、スティックオブジェクトは、ドラムオブジェクトの打面２３００を突き抜けることができる。そのため、スティックオブジェクトが打面２３００に接触した時を演奏が行なわれた時とすると、振り下ろした手を引き上げる際の動作もスティック動作として検出される場合がある。例えば、状態Ｂに示されるように、仮想空間において打面２３００を突き抜けたスティックオブジェクト１５４０の先端が、手の引き上げ動作に応じて上昇する場合がある。この場合、打面２３００の裏面にスティックオブジェクト１５４０の先端が接触することは、本来の演奏ではあり得ないので、スティック動作として検出されないことが望ましい。そこで、ある実施の形態において、ユーザ１９０の手に装着された加速度センサが検出する方向が下方向に向かう場合のみが、正規な演奏として判定され得る。
【０２１１】
図２４を参照して、ドラムオブジェクトを演奏する場合における制御構造について説明する。図２４は、演奏対象としてドラムが選択された場合に音を出力するために実行される処理の一部を表わすフローチャートである。
【０２１２】
ステップＳ２４１０にて、プロセッサ１５１は、ドラムオブジェクトの打面２３００に当たり判定領域を関連付ける。当たり判定領域は、打面２３００の領域のうち、スティックオブジェクト１５４０による接触が検知可能な領域である。
【０２１３】
ステップＳ２４２０にて、プロセッサ１５１は、スティックオブジェクト１５４０とドラムオブジェクトとの接触を検知する。
【０２１４】
ステップＳ２４３０にて、プロセッサ１５１は、スティックオブジェクト１５４０がドラムオブジェクトに正しく当たっているか否かを判断する。プロセッサ１５１は、スティックオブジェクト１５４０がドラムオブジェクトに正しく当たっていると判断すると（ステップＳ２４３０にてＹＥＳ）、制御をステップＳ２４４０に切り替える。そうでない場合には（ステップＳ２４３０にてＮＯ）、プロセッサ１５１は、制御をステップＳ２４２０に戻す。
【０２１５】
ステップＳ２４４０にて、プロセッサ１５１は、スティックオブジェクト１５４０の移動距離および移動速度に応じた音を出力する。例えば、プロセッサ１５１は、音の大きさとして、スティックオブジェクト１５４０が打面２３００の接触領域に接触した時の速度と、各速度について予め定められた音量レベルとに基づいて決定する。
【０２１６】
図２５を参照して、他の局面における制御構造について説明する。図２５は、演奏対象としてピアノが選択された場合に実行される処理の一部を表わすフローチャートである。この処理は、ＨＭＤ１１０を装着したユーザ１９０がピアノを選択した場合に、プロセッサによって実行される。以下では、サーバ１５０のプロセッサ１５１が当該処理を実行する場合について説明する。
【０２１７】
ステップＳ２５１０にて、プロセッサ１５１は、コンピュータ２００からの信号に基づいて、楽器としてピアノが選択されたことを検知する。
【０２１８】
ステップＳ２５２０にて、プロセッサ１５１は、コントローラ１６０が装着された両手を平面上で一定時間静止することを促すメッセージをモニタ１１２に表示する。
【０２１９】
ステップＳ２５３０にて、プロセッサ１５１は、コントローラ１６０からの信号に基づいて、ユーザ１９０の両手が一定時間静止していることを検知する。その後、その時点の位置が平面として認識される。
【０２２０】
ステップＳ２５４０にて、プロセッサ１５１は、仮想空間２において予め定められた場所に鍵盤オブジェクトを提示する。
【０２２１】
ステップＳ２５５０にて、プロセッサ１５１は、鍵盤オブジェクトの近傍の初期の場所に両手オブジェクトを配置する。
【０２２２】
ステップＳ２５６０にて、プロセッサ１５１は、選択された楽曲の再生指示を検知する。
【０２２３】
ステップＳ２５７０にて、プロセッサ１５１は、楽曲の再生に応じてガイドオブジェクトを表示する。
【０２２４】
ステップＳ２５８０にて、プロセッサ１５１は、楽曲の再生の終了を検知したか否かを判断する。プロセッサ１５１は再生の終了を検知したと判断すると（ステップＳ２５８０にてＹＥＳ）、処理を終了する。そうでない場合には（ステップＳ２５８０にてＮＯ）、制御をステップＳ２５７０に切り替える。
【０２２５】
なお、仮想空間における楽器の演奏は一人で行なうものに限られない。そこで、図２６を参照して、複数のユーザがＨＭＤ１１０をそれぞれ装着して演奏を行なう場合について説明する。図２６は、複数のユーザがそれぞれＨＭＤ１１０を装着している状態を表わす図である。
【０２２６】
ＨＭＤシステム１００は、ネットワーク１９を介して、他のＨＭＤシステム１００Ｎ，１００Ｘと通信することができる。ＨＭＤシステム１００Ｎは、ユーザ１９０Ｎによって使用され得る。ＨＭＤ１００Ｘは、ユーザ１９０Ｘによって使用され得る。ＨＭＤシステム１００Ｎ，１００Ｘの構成は、ＨＭＤシステム１００の構成と同様である。ＨＭＤシステム１００の構成要素と同様の構成要素には、符号Ｎ，Ｘが付されている。したがって、ＨＭＤシステム１００Ｎ，１００Ｘの構成の説明は繰り返さない。
【０２２７】
図２６に示される構成によれば、複数のユーザが同時に同じ音楽に合わせて楽器を演奏することができるため、例えば、バンドやオーケストラの練習が容易に実現され得る。
【０２２８】
以上のようにして、本実施の形態によれば、ＨＭＤ１１０を装着したユーザ１９０は仮想空間２において楽器を演奏することができる。これにより、実際に楽器を所有しないユーザ１９０も、楽器の演奏を楽しむことができる。例えば、楽器の購入を迷っているユーザ１９０は、仮想空間で演奏することで、楽器を購入するかどうかを判断することもできる。
【０２２９】
別の局面において、ユーザの近くにある楽器店をお勧めし、楽器本体を指定するとともに来店予約できるような処理をしてもよい。このようにすると、お店に顧客を紹介したことになり、紹介料や販売代理手数料といった名目での課金になり得る。課金を促すタイミングとしては、例えば、買いたくなるタイミングで課金ポップを出してもよい。当該タイミングは、例えば、ユーザ１９０が演奏に熱中してそうな時である。この時を、例えば、演奏時間やハンドコントローラの動きの程度や表情トラッキング等によって検知してもよい。
【０２３０】
開示された技術的特徴は、例えば、以下のように要約され得る。
（構成１）  ある実施の形態に従うと、ＨＭＤ１１０によって提供される仮想空間２において楽器の演奏を支援するプログラムをプロセッサに実行させるプログラムが提供される。プログラムはプロセッサ（プロセッサ１０またはプロセッサ１５１）に、仮想空間２を定義するステップと、仮想空間２に楽器オブジェクトを配置するステップと、楽器を演奏するために使用される一つ以上の演奏オブジェクトを仮想空間２に配置するステップと、仮想空間２に対応する視界画像をＨＭＤ１１０に提示するステップと、仮想空間２において楽曲を再生するステップと、楽曲の進行に応じて楽器オブジェクトに対する動作を指示するガイドオブジェクト（１５３０，１５３１，１５３２，１８１０，１８２０，１８３０）を、順次、楽器オブジェクトの近傍に提示するステップと、ＨＭＤ１１０のユーザの四肢のいずれかの動きを検知するステップと、動きに応じて、演奏オブジェクトを楽器オブジェクトに対して動かすステップと、演奏オブジェクトが楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、楽曲に応じた音を出力するステップとを実行させる。
【０２３１】
（構成２）  ある実施の形態に従うと、ガイドオブジェクトを楽器オブジェクトの近傍に提示するステップは、楽器オブジェクトを演奏すべきタイミングで、ガイドオブジェクトが演奏オブジェクトに到来することを含む。プログラムはプロセッサに、ガイドオブジェクトが演奏オブジェクトに到来したことに応答して、楽器オブジェクトをタイミングよく演奏できたか否かを判断するステップをさらに実行させる。
【０２３２】
（構成３）  ある実施の形態に従うと、楽器オブジェクトを配置するステップは、ドラムに対応するドラムオブジェクトを配置するステップを含む。演奏オブジェクトを配置するステップは、ドラムを演奏するためのスティックに対応するスティックオブジェクトを配置するステップを含む。演奏オブジェクトが予め定められた範囲に入ることは、スティックオブジェクトがドラムオブジェクトの外から当該ドラムオブジェクトの打面に入ることを含む。
【０２３３】
（構成４）  ある実施の形態に従うと、音を出力するステップは、スティックオブジェクトの移動速度に応じた音量を出力するステップを含む。
【０２３４】
（構成５）  ある実施の形態に従うと、ドラムオブジェクトは、ドラムを構成する複数の要素オブジェクトを含む。ガイドオブジェクトを提示するステップは、各要素オブジェクトの演奏タイミングに応じたガイドオブジェクトをそれぞれ提示するステップを含む。
【０２３５】
（構成６）  ある実施の形態に従うと、楽器オブジェクトを配置するステップは、ギターに対応するギターオブジェクトを配置するステップを含む。ガイドオブジェクトを配置するステップは、ギターを演奏するためのコードが適用される位置に向けてガイドオブジェクトを遷移させるステップを含む。音を出力するステップは、ガイドオブジェクトが位置に到達するタイミングで、演奏オブジェクトのうちの一つの演奏オブジェクトが位置に配置されて、他の演奏オブジェクトがギターオブジェクトの弦を弾く動作が行なわれることに基づいて、音を出力するステップを含む。
【０２３６】
（構成７）  ある実施の形態に従うと、ガイドオブジェクトを遷移させるステップは、複数のコードの各々に対応するガイドオブジェクトを連続して並べるステップを含む。
【０２３７】
（構成８）  ある実施の形態に従うと、楽器オブジェクトを配置するステップは、鍵盤楽器に対応する鍵盤楽器オブジェクトを配置するステップを含む。演奏オブジェクトを配置するステップは、手を表わす手オブジェクトを配置するステップを含む。ガイドオブジェクトを配置するステップは、演奏対象となる鍵盤に対応する鍵盤オブジェクトの近傍にガイドオブジェクトを配置するステップを含む。音を出力するステップは、手オブジェクトが鍵盤オブジェクトに接したことに基づいて音を出力するステップを含む。
【０２３８】
（構成９）  ある実施の形態に従うと、鍵盤楽器オブジェクトを配置するステップは、現実空間においてユーザの手が平面に置かれていることに基づいて、仮想空間２に鍵盤楽器オブジェクトを配置するステップを含む。
【０２３９】
（構成１０）  ある実施の形態に従うと、プログラムはプロセッサに、手オブジェクトが鍵盤オブジェクトに接したことに基づいて、他の鍵盤オブジェクトとは異なった態様で当該鍵盤オブジェクトを提示するステップをさらに実行させる。
【０２４０】
（構成１１）  ある実施の形態に従うと、プログラムはプロセッサに、複数の楽器のいずれかの選択を受け付けるインターフェイスを仮想空間２に提示するステップをさらに実行させる。
【０２４１】
（構成１２）  ある実施の形態に従うと、プログラムは、プロセッサに、仮想空間２を共有する他のＨＭＤ１１０のユーザによって使用される他の楽器オブジェクトを仮想空間２に提示するステップをさらに実行させる。
【０２４２】
（構成１３）  他の実施の形態に従うと、楽器の選択を支援するためにコンピュータで実行される方法が提供される。この方法は、ＨＭＤ１１０によって提供される仮想空間２を定義するステップと、仮想空間２に楽器オブジェクトを配置するステップと、楽器を演奏するために使用される一つ以上の演奏オブジェクトを仮想空間２に配置するステップと、仮想空間２に対応する視界画像をＨＭＤ１１０に提示するステップと、仮想空間２において楽曲を再生するステップと、楽曲の進行に応じて楽器オブジェクトに対する動作を指示するガイドオブジェクトを、順次、楽器オブジェクトの近傍に提示するステップと、ＨＭＤ１１０のユーザの四肢のいずれかの動きを検知するステップと、動きに応じて、演奏オブジェクトを楽器オブジェクトに対して動かすステップと、演奏オブジェクトが楽器オブジェクトによって予め定められた範囲に入ったことに基づいて、楽曲に応じた音を出力するステップとを含む。
【０２４３】
（構成１４）  ある実施の形態に従うと、上記方法は、複数の楽器のいずれかの選択を受け付けるインターフェイスを仮想空間２に提示するステップをさらに含む。
【０２４４】
（構成１５）  ある実施の形態に従うと、ガイドオブジェクトを楽器オブジェクトの近傍に提示するステップは、楽器オブジェクトを演奏すべきタイミングで、ガイドオブジェクトが演奏オブジェクトに到来することを含む。当該方法は、ガイドオブジェクトが演奏オブジェクトに到来したことに応答して、楽器オブジェクトをタイミングよく演奏できたか否かを判断するステップをさらに含む。
【０２４５】
（構成１６）  ある実施の形態に従うと、当該方法は、楽器オブジェクトをタイミングよく演奏できたか否かの判定結果に応じて、課金のためのインターフェイスオブジェクトを仮想空間２に提示するステップをさらに含む。
【０２４６】
（構成１７）  ある実施の形態に従うと、当該方法は、選択された楽器の購入の要求を受け付けるインターフェイスオブジェクトを仮想空間２に提示するステップをさらに含む。
【０２４７】
（構成１８）  他の実施の形態に従うと、上記のいずれかに記載の方法をコンピュータに実行させるプログラムが提供される。
【０２４８】
（構成１９）  他の実施の形態に従うと、上記のプログラムを格納したメモリと、プログラムを実行するためのプロセッサとを備える情報処理装置が提供される。
【０２４９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。全ての変更は、開示された技術的特徴を適宜組み合わせることを含む。
【符号の説明】
【０２５０】
１  仮想カメラ、２  仮想空間、５  基準視線、１０，１５１  プロセッサ、１１，１５２  メモリ、１２，１５４  ストレージ、１３  入出力インターフェース、１４  通信インターフェース、１５  バス、１９  ネットワーク、２１  中心、２２  仮想空間画像、２３  視界領域、２４，２５  領域、３０  グリップ、３１  フレーム、３２  天面、３３，３４，３６，３７  ボタン、３８  アナログスティック、１００，１００Ｎ，１００Ｘ  システム、１１２  モニタ、１１４，１２０  センサ、１１５  スピーカ、１１９  マイク、１３０  モーションセンサ、１４０  注視センサ、１５０  サーバ、１５３  通信インターフェイス、１６０  コントローラ。
【図１】
2019101413.tif 000003
【図２】
2019101413.tif 000004
【図３】
2019101413.tif 000005
【図４】
2019101413.tif 000006
【図５】
2019101413.tif 000007
【図６】
2019101413.tif 000008
【図７】
2019101413.tif 000009
【図８】
2019101413.tif 000010
【図９】
2019101413.tif 000011
【図１０】
2019101413.tif 000012
【図１１】
2019101413.tif 000013
【図１２】
2019101413.tif 000014
【図１３】
2019101413.tif 000015
【図１４】
2019101413.tif 000016
【図１５】
2019101413.tif 000017
【図１６】
2019101413.tif 000018
【図１７】
2019101413.tif 000019
【図１８】
2019101413.tif 000020
【図１９】
2019101413.tif 000021
【図２０】
2019101413.tif 000022
【図２１】
2019101413.tif 000023
【図２２】
2019101413.tif 000024
【図２３】
2019101413.tif 000025
【図２４】
2019101413.tif 000026
【図２５】
2019101413.tif 000027
【図２６】
2019101413.tif 000028