(57)【要約】      （修正有）【課題】ヘッドマウントディスプレイとコントローラとを連動させて画面操作するシステムを提供する。【解決手段】本体装置１２０は、実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定部３０２と、コントローラからの出力データから、求められるユーザ操作に対応する出力データを検出する入力検出部３０４と、検出された出力データに基づき表示オブジェクトの動作を判定する動作判定部３０６と、判定された表示オブジェクトの動作、検出された出力データに基づいて、表示オブジェクトの画像を生成する表示演算部３０８と、仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成してヘッドマウントディスプレイへ出力する画像生成出力部３１０と、を備える。コントローラがサーバから受信したインタフェースプログラムとシステム側インタフェースプログラムにより、コントローラとシステムが接続されている。【選択図】図３
2020061162.tif 000002
【特許請求の範囲】
【請求項１】
生成画像をヘッドマウントディスプレイへ出力するシステムであって、該システムは、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定部と、
コンピュータからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出部と、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定部と、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算部と、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力部と、
を備えており、
前記コンピュータの通信部がインターネットを介してサーバから受信したコンピュータ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムにより、前記コンピュータと前記システムが接続されていることを特徴とする、システム。
【請求項２】
前記コンピュータからの出力データは、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データである、請求項１記載のシステム。
【請求項３】
前記操作入力情報は、スワイプ操作、タップ操作、又はピンチイン・ピンチアウト操作である、請求項２に記載のシステム。
【請求項４】
前記コンピュータからの出力データは、前記コンピュータのマイクからのユーザによる音声入力情報に基づいて生成された出力データである、請求項１記載のシステム。
【請求項５】
前記仮想空間上に表示される表示オブジェクトの画像は、前記ユーザによる音声入力に基づいて変化する、請求項４記載のシステム。
【請求項６】
前記コンピュータからの出力データは、前記コンピュータの加速度センサ又はジャイロセンサからのユーザによる動作入力に基づいて生成された出力データである、請求項１記載のシステム。
【請求項７】
前記コンピュータからの出力データは、前記コンピュータのメモリに格納されている画像と、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、
前記動作判定部は前記画像により表示オブジェクトを決定して、検出された前記出力データに基づき前記表示オブジェクトの動作を判定することを特徴とする、請求項１記載のシステム。
【請求項８】
前記コンピュータからの出力データは、前記コンピュータのＧＰＳからのコンピュータの位置情報と、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、
前記表示演算部は、前記位置情報、及び判定された表示オブジェクトの前記動作に基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成することを特徴とする、請求項１記載のシステム。
【請求項９】
前記操作判定部は、実行中のアプリケーションの内容に応じて求められる複数のユーザ操作を判定し、
前記入力検出部は、コンピュータからの出力データから、前記求められる複数のユーザ操作に対応する出力データをそれぞれ検出し、
前記動作判定部は、検出された出力データのうち第１の出力データに基づき表示オブジェクトの動作を判定し、検出された出力データのうち第２の出力データに基づき表示オブジェクトの動作を変換することを特徴とする、請求項６記載のシステム。
【請求項１０】
生成画像をヘッドマウントディスプレイへ出力させる方法を、プロセッサに実行させるためのプログラムであって、該方法は、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定ステップと、
コンピュータからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出ステップと、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定ステップと、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算ステップと、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力ステップと、を備えており、
前記コンピュータの通信部によりインターネットを介してサーバから受信したコンピュータ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムとにより、前記コンピュータと前記システムが接続されていることを特徴とする、プログラム。
【請求項１１】
前記コンピュータからの出力データは、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データである、請求項１０記載のプログラム。
【請求項１２】
前記操作入力は、スワイプ操作、タップ操作、又はピンチイン・ピンチアウト操作である、請求項１１に記載のプログラム。
【請求項１３】
前記コンピュータからの出力データは、前記コンピュータのマイクからのユーザによる音声入力に基づいて生成された出力データである、請求項１０に記載のプログラム。
【請求項１４】
前記仮想空間上に表示される表示オブジェクトの画像は、前記ユーザによる音声入力に基づいて変化する、請求項１３に記載のプログラム。
【請求項１５】
前記コンピュータからの出力データは、前記コンピュータの加速度センサ又はジャイロセンサからのユーザによる動作入力に基づいて生成された出力データである、請求項１０記載のプログラム。
【請求項１６】
前記コンピュータからの出力データは、前記コンピュータのメモリに格納されている画像と、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、
前記動作判定ステップは前記画像により表示オブジェクトを決定して、検出された前記出力データに基づき前記表示オブジェクトの動作を判定することを特徴とする、請求項１０記載のプログラム。
【請求項１７】
前記コンピュータからの出力データは、前記コンピュータのＧＰＳからのコンピュータの位置情報と、前記コンピュータのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、
前記表示演算ステップは、前記位置情報、及び判定された表示オブジェクトの前記動作に基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成することを特徴とする、請求項１０記載のプログラム。
【請求項１８】
前記操作判定ステップは、実行中のアプリケーションの内容に応じて求められる複数のユーザ操作を判定し、
前記入力検出ステップは、コンピュータからの出力データから、前記求められる複数のユーザ操作に対応する出力データをそれぞれ検出し、
前記動作判定ステップは、検出された出力データのうち第１の出力データに基づき表示オブジェクトの動作を判定し、検出された出力データのうち第２の出力データに基づき表示オブジェクトの動作を変換することを特徴とする、請求項１５記載のプログラム。
【請求項１９】
生成画像をヘッドマウントディスプレイへ出力するシステムの制御方法であって、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定ステップと、
コンピュータからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出ステップと、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定ステップと、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算ステップと、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力ステップと、
を備えており、
前記コンピュータの通信部によりインターネットを介してサーバから受信したコンピュータ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムとにより、前記コンピュータと前記システムが接続されていることを特徴とする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヘッドマウントディスプレイとコントローラとを連動させてヘッドマウントディスプレイ上の表示を画面操作するシステム、方法、及びプログラムに関し、より詳細には、ヘッドマウントディスプレイと、外部ネットワークとの通信機能を有するコントローラとを連動させて画面操作するシステムに関する。
【背景技術】
【０００２】
ユーザの頭部に装着され、眼前に配置されたディスプレイ等によってユーザに画像を提示することが可能なヘッドマウントディスプレイ（ＨＭＤ）が知られている。従来のＨＭＤのコントローラは本体装置を介してインターネットなどの外部ネットワークと接続されるため、コントローラ自体が外部ネットワークと通信することはない。また、従来のコントローラは、ＨＭＤに接続するための専用のコントローラを必要とする。
【０００３】
さらに、従来、ＨＭＤにおける表示画像の各種操作に用いるコントローラは、ボタン、キーによる操作が主流であり、センサディスプレイは備えていない。そのようなコントローラは、最近では、動きを検出可能なセンサ（例えば加速度センサ）を内蔵し、コントローラの動きを検出する装置が開発されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記背景技術に係るシステムにおいては、コントローラ自体が外部ネットワークに接続する機能を備えていないため、コントローラ自体がインターネットに接続する際には必ず本体装置に接続していた。
【０００５】
また、従来のＨＭＤと接続されるコントローラはボタン、キー、動きを検出可能なセンサからの入力による操作が可能であるが、センサディスプレイを備えていないため、直感的なより細かい操作を行うことができなかった。特にボタン、キーによる操作の場合、ＨＭＤを装着して完全に仮想空間にユーザが没入していると、ユーザが操作しようとしている現在の状態（ユーザの指がどのキー、ボタンに置かれているか）を、ユーザは認識することができないため、ユーザの指が所望のキーやボタンから外れていると、ユーザが所望しない操作が行われていた。
【０００６】
また、１つの操作画面を同じ空間に位置する複数のユーザで共有して操作する場合に、従来のシステムでは複数のコントローラが１つの本体装置に接続されるため、本体装置への負荷が高かった。また従来のシステムでは、１つの操作画面を、別個の空間に位置する複数のユーザで共有して操作する場合に、複数のコントローラはそれぞれ空間毎に別々の本体装置に接続し、ネットワークを介して各本体装置をサーバに接続して通信していた。この場合、複数のコントローラに対し別個の本体装置が必要となる。
【０００７】
さらに、ＨＭＤの操作に専用のコントローラが必要となる場合、ユーザは、ＨＭＤ操作の都度専用のコントローラを持ち運ぶ必要があった。
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、ＨＭＤと外部との通信機能を備えたコントローラとを連動させるシステムを提供することにある。さらに、本発明は、そのコントローラは外部との通信機能を備えていることから、本体装置に接続する際に、外部サーバから接続に必要なソフトウェアをダウンロードすることができるため、本体装置に専用である必要はなく、一般に流通している端末、例えば携帯端末、スマートフォンを用いることができる。
【課題を解決するための手段】
【０００９】
（１）本発明は、
生成画像をヘッドマウントディスプレイへ出力するシステムであって、該システムは、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定部と、
コントローラからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出部と、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定部と、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算部と、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力部と、
を備えており、
前記コントローラの通信部がインターネットを介してサーバから受信したコントローラ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムにより、前記コントローラと前記システムが接続されていることを特徴とする、システムに関係する。
【００１０】
本発明によれば、外部ネットワークとの通信機能を備えたコントローラを利用することで、コントローラは本体装置に接続していなくとも、コントローラ自体が外部サーバから入手可能な様々な情報、動画、画像、音声、その他情報（例えば地図情報、気象情報、株価情報、アプリケーション）を入手し、ＨＭＤに提示される仮想空間に反映することができる。さらに、本発明は、そのコントローラは外部との通信機能を備えていることから、本体装置に接続する際に、外部サーバから本体装置との接続に必要なソフトウェアをダウンロードすることができるため、本体装置に専用である必要はない。従って、本発明によれば、近年、一般的に普及しているスマートフォンなどの携帯端末をＨＭＤのコントローラとして利用することができ、ユーザは専用のコントローラを必要とせずにＨＭＤを操作することができる。
【００１１】
（２）また、本発明は、コントローラからの出力データは、前記コントローラのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データであることができる。さらに、本発明は、操作入力は、スワイプ操作、タップ操作、又はピンチイン・ピンチアウト操作であることができる。
【００１２】
本発明によれば、センサディスプレイを備えたコントローラを利用することで、ユーザはＨＭＤに対し直感的で詳細なさまざまな操作（スワイプ操作、タップ操作、ピンチ操作）を行うことができる。ユーザは、ＨＭＤを装着して完全に仮想空間に没入していると、ユーザが操作しようとしている現在の状態（ユーザの指がどのキー、ボタンに置かれているか）を、ユーザは認識することができない。本発明によるコントローラはセンサディスプレイを備えており、ユーザは直感的な様々な操作を行うことができる。
【００１３】
（３）また、本発明は、コントローラからの出力データは、前記コントローラのマイクからのユーザによる音声入力に基づいて生成された出力データであることができる。さらに、本発明は、仮想空間上に表示される表示オブジェクトの画像は、ユーザによる音声入力に基づいて変化することができる。
【００１４】
本発明によれば、マイクを備えたコントローラを利用することで、ユーザはＨＭＤに対して直感的な操作（音声入力）を行うことにより、ＨＭＤに表示させる画像を変化させることができる。
【００１５】
（４）また、本発明は、コントローラからの出力データは、前記コントローラの加速度センサ又はジャイロセンサからのユーザによる動作入力に基づいて生成された出力データであることができる。
【００１６】
本発明によれば、加速度センサ又はジャイロセンサを備えたコントローラを利用することで、コントローラの振り幅や振る周期、速度、強さを検出することによりユーザによる直感的な様々な操作が可能となる。
【００１７】
（５）また、本発明は、コントローラからの出力データは、コントローラのメモリに格納されている画像と、前記コントローラのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、動作判定部は画像により表示オブジェクトを決定して、検出された前記出力データに基づき表示オブジェクトの動作を判定することを特徴とすることができる。さらに、本発明においてコントローラはスマートフォンであることができる。
【００１８】
本発明によれば、コントローラがスマートフォンなどのユーザが常に携帯している携帯端末の場合、ユーザが過去に撮った画像、動画、音声が格納されており、ユーザがスマートフォンに格納されたユーザ自身が過去に撮った画像、動画、音声を利用してＨＭＤに反映させることができる。さらに、コントローラがスマートフォンなどのユーザが常に携帯している携帯端末である場合に、ユーザは、ＨＭＤ操作の都度専用のコントローラを持ち運ぶことなく、ユーザが常に携帯しているスマートフォンをＨＭＤ操作のコントローラとして利用することができる。
【００１９】
（６）また、本発明は、コントローラからの出力データは、コントローラのＧＰＳからのコントローラの位置情報と、コントローラのセンサディスプレイからのユーザによる操作入力に基づいて生成された出力データを含み、表示演算部は、位置情報、及び判定された表示オブジェクトの動作に基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成することを特徴とすることができる。
【００２０】
本発明によれば、コントローラの現在置かれている位置情報に対応してＨＭＤに提示する仮想空間上に表示される表示オブジェクトの画像を変更することが可能となる。
【００２１】
（７）また、本発明は、前記操作判定部は、実行中のアプリケーションの内容に応じて求められる複数のユーザ操作を判定し、
入力検出部は、コントローラからの出力データから、前記求められる複数のユーザ操作に対応する出力データをそれぞれ検出し、
動作判定部は、検出された出力データのうち第１の出力データに基づき表示オブジェクトの動作を判定し、検出された出力データのうち第２の出力データに基づき表示オブジェクトの動作を変換することを特徴とする。
【００２２】
本発明によれば、加速度センサ、ジャイロセンサを備えることで、コントローラに対する１つの操作入力（例えばタップ操作）に対応する表示オブジェクトの動作（表示オブジェクトがジャンプ）を端末のシェイクといった簡単な切り換え操作で瞬時に別の表示オブジェクトの動作（表示オブジェクトがスライディング）へ変換することができる。ユーザはＨＭＤを装着し仮想空間に没入している場合に、操作中のコントローラを直接視認することができない。加速度センサ、ジャイロセンサにより、ユーザは端末のシェイクといった簡単で直感的な操作で確実に瞬時に表示オブジェクトの動作を変換することができる。
【００２３】
（８）  また、本発明は、生成画像をヘッドマウントディスプレイへ出力させる方法を、プロセッサに実行させるためのプログラムであって、該方法は、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定ステップと、
コントローラからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出ステップと、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定ステップと、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算ステップと、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力ステップと、を備えており、
前記コントローラの通信部によりインターネットを介してサーバから受信したコントローラ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムとにより、前記コントローラと前記システムが接続されていることを特徴とする、プログラムに関係する。
【００２４】
（９）また、本発明は、生成画像をヘッドマウントディスプレイへ出力するシステムの制御方法であって、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定ステップと、
コントローラからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出ステップと、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定ステップと、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算ステップと、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力ステップと、を備えており、
前記コントローラの通信部によりインターネットを介してサーバから受信したコントローラ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムとにより、前記コントローラと前記システムが接続されていることを特徴とする、方法に関係する。
【００２５】
この発明の上記の、及び他の特徴及び利点は、この発明の実施例の以下のより特定的な説明、添付の図面、及び請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施例に従った、システムのシステム構成図を示す。
【図２】本発明の一実施例に従った、コントローラ１００の機能的構成を示す。
【図３】本発明の一実施例に従った、本体装置１２０の機能的構成を示す。
【図４】本発明の一実施例に従った、ユーザのスワイプ操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図５Ａ】本発明の一実施例に従った、ユーザのタップ操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図５Ｂ】本発明の一実施例に従った、ユーザのタップ操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図６】本発明の一実施例に従った、ユーザのタップ操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図７Ａ】本発明の一実施例に従った、ユーザのピンチイン・ピンチアウト操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図７Ｂ】本発明の一実施例に従った、ユーザのピンチイン・ピンチアウト操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図７Ｃ】本発明の一実施例に従った、ユーザのピンチイン・ピンチアウト操作に基づいて生成されたＨＭＤに表示される画面を示す。
【図８Ａ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの動作入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図８Ｂ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの動作入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図８Ｃ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの音声入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図９Ａ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの動作入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図９Ｂ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの動作入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図９Ｃ】本発明の一実施例に従った、加速度センサ・ジャイロセンサからの動作入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図１０Ａ】本発明の一実施例に従った、マイクセンサからの音声入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図１０Ｂ】本発明の一実施例に従った、マイクセンサからの入力に基づいて生成されたＨＭＤに表示される画面を示す。
【図１１】本発明の一実施例に従った、コントローラの処理の流れを示すフローチャート図を示す。
【図１２】本発明の一実施例に従った、本体装置の処理の流れを示すフローチャート図を示す。
【図１３】本発明の一実施例に従った、コントローラと本体装置をアプリケーション上で接続する処理の流れを示すフローチャート図を示す。
【図１４】本発明の一実施例に従った、複数のコントローラにより構成されるシステムのシステム構成図を示す。
【図１５】本発明の一実施例に従った、複数のユーザ間で一つの操作画面に対し操作を行っている例示的なユーザ表示画面を示す。
【発明を実施するための形態】
【００２７】
以下、本実施形態について説明する。図１は、本発明の一実施例に従った、システムのシステム構成図を示す。
このシステムでは、コントローラ１００と本体装置１２０がＷｉ−Ｆｉ、又はＢｌｕｅｔｏｏｔｈ（登録商標）などの無線ネットワークを介して接続され、本体装置１２０とヘッドマウントディスプレイ１４０はＷｉ−Ｆｉ、又はＢｌｕｅｔｏｏｔｈ（登録商標）などの無線又は有線のネットワークを介して接続される。コントローラ１００は、さらに、アンテナ１１０を備えており、本体装置を介さずにインターネット等のネットワークに接続してサーバ１６０と通信することができる。サーバ１６０は、プロセッサ、各種記憶装置及びデータ通信装置を中心として構成された公知のサーバコンピュータによって実現されるものであり、コントローラ１００との間でデータの送受信を行う。また、サーバ１６０は、コントローラが複数ある場合は、コントローラ間で行う通信を管理するものである。
【００２８】
コントローラの構成
コントローラ１００は、少なくとも１つのプロセッサ１０２、少なくとも１つのインタフェース１０４、少なくとも１つのメモリ１０６、少なくとも１つのセンサディスプレイ１０８、及びアンテナ１１０を含むことができる。コントローラ１００は、例えば、公知のスマートフォン、携帯端末によって実現することができる。コントローラ１００は、ユーザ自らが保持、装着しており、ユーザの操作に応じた各種操作入力、及びユーザの動きに応じてユーザの動作入力、音声入力を検出することができる。
【００２９】
コントローラ側プロセッサ１０２は、コントローラ側インタフェースプログラム１０６Ａの実行、各機能部への命令の指示などの各種処理を行うように構成される。コントローラ側インタフェースプログラム１０６Ａは、後述するユーザコントローラの送信部、受信部（図２）を機能させるためのものである。
【００３０】
コントローラ側インタフェースプログラム１０６Ａは、後述する送信部２０４を機能させることにより、ネットワーク１８０を介してコントローラ１００から本体装置１２０への出力データの送信を行う。また、後述する受信部２０６を機能させることにより、本体装置１２０からコントローラ１００へユーザが仮想空間で経験する画像等の経験情報を含む各種データの受信を行うことができる。
【００３１】
コントローラ側インタフェース１０４は、ネットワーク１８０を介して本体装置１２０への出力データの送信、及び本体装置１２０からのデータの受信を行うインタフェースであり、コントローラ側インタフェースプログラム１０６Ａを実装することにより実現される。より詳細には、コントローラ側インタフェース１０４は、コントローラに内蔵された各種センサから得られたデータ、コントローラのメモリに格納された画像等の出力データを本体装置へ送信し、及び／又はユーザがヘッドマウント装置を装着して、仮想空間に没入している際に、ユーザが仮想空間で経験した画像、動画等の経験情報を本体装置から受信するインタフェースである。
【００３２】
コントローラ側メモリ１０６は、コントローラ側インタフェースプログラム１０６Ａを格納する。また、コントローラ側メモリ１０６は、ユーザにより過去に撮像された画像、動画、及び過去に格納されたメモ情報等の各種データ、及びユーザの操作、動作に応じて生じる各種センサから得られたデータを格納することができる。
【００３３】
センサディスプレイ１０８は、タッチセンサであり、ユーザからのスワイプ操作、ピンチイン・ピンチアウト操作、タップ操作を検出する。センサディスプレイを備えることにより、加速度センサ、ジャイロセンサ、キー、ボタンのみを備えたコントローラではできなかったユーザからのスワイプ操作、ピンチイン・ピンチアウト操作を検出することが可能になる。ユーザはスワイプ、ピンチイン・ピンチアウト操作により、直感的な細かい操作を行うことができる。さらに、ユーザは仮想空間に没入している場合に、操作中のコントローラのキー、ボタンから指が外れることがあり、このような場合一度ヘッドマウント装置を外して外界位置を確認しなければならなかった。センサディスプレイによるスワイプ操作、タップ操作、又はピンチ操作は、キー、ボタンの位置を確認しなくとも、直感的に操作することができる。
【００３４】
コントローラ１００はアンテナ１１０を備え、コントローラ１００自体がインターネットなどの外部ネットワークとの通信機能を有している。コントローラ１００は、外部ネットワークを介して入手可能な様々な情報、気象情報、地図情報、アプリケーション等をアプリケーション実行中に本体装置に負荷をかけることなくリアルタイムに取得して、本体装置で実行しているアプリケーション、ＨＭＤへの表示画面に反映することが可能となる。また、コントローラは、アンテナ１１０により、インターネット等のネットワークを介して、予めサーバ１６０からユーザコントローラへコントローラ側インタフェースプログラム１０６Ａをダウンロードし、ユーザコントローラへインストールすることができる。ユーザはコントローラ１００へコントローラ側インタフェースプログラム１０６Ａをインストールすることにより、ヘッドマウント装置に専用のコントローラを用いることなく任意のコントローラ、例えばスマートフォンを用いて、コントローラと、本体装置との接続が可能となり、コントローラからの出力データをヘッドマウント装置のディスプレイ表示へ反映させることができる。
【００３５】
コントローラ１００は、さらにユーザからの音声入力を検出するマイク、ユーザによる動作入力を検出する加速度センサ、ジャイロセンサ、及びボタン、キー、カメラ、ＧＰＳ、バイブレーション装置（図示せず）を備えることができる。
【００３６】
マイクはコントローラを保持・装着しているユーザによるユーザの発声等を検出する。マイクを備えることによって、ユーザの発声した言葉をＨＭＤへ表示される表示オブジェクトに反映させることができる。また、メモリに格納されている音声認識アプリケーションを用いて、ユーザの発声した言葉を音声認識して、例えば、本体装置において実行されているゲームアプリケーション上で、呪文を唱えると扉が開くなどの動作を表示オブジェクトに行わせることができる。
【００３７】
加速度センサ、ジャイロセンサは、コントローラを保持・装着しているユーザの動き、例えばユーザがコントローラを振り回す動作、物を投げる動作を検出することができる。さらに、加速度センサによりユーザの歩数を検出することができる。また、加速度センサ、ジャイロセンサ、及びセンサディスプレイを備えることで、コントローラに対する１つの操作入力（例えばタップ操作）に対応する表示オブジェクトの動作（表示オブジェクトがジャンプ）を端末のシェイクといった簡単な切り換え操作で瞬時に別の表示オブジェクトの動作（表示オブジェクトがスライディング）へ変換することができる。特にタップ操作は、ＨＭＤを装着しているユーザにとって簡単な操作であるので、アプリケーション上で様々な表示オブジェクトの動作、例えば撃つ、斬る、ジャンプする動作をタップ操作に対して割り当てる。ユーザはＨＭＤを装着し仮想空間に没入している場合に、操作中のコントローラを直接視認することができない。加速度センサ、ジャイロセンサにより、ユーザは端末のシェイクといった簡単で直感的な操作で確実に瞬時に表示オブジェクトの動作を変換することができる。
【００３８】
ボタン、キーはユーザコントローラを保持・装着しているユーザによる操作入力を受け付ける。
カメラにより、ユーザが写真や動画を撮ることができ、撮られた写真や動画はユーザコントローラのメモリに格納される。ユーザにより過去に撮像された画像や動画をヘッドマウントディスプレイに表示された仮想空間に反映することができる。
【００３９】
ＧＰＳは、コントローラを保持・装着しているユーザの位置を検出する。従って、例えば検出されたユーザの位置に応じて、ヘッドマウントディスプレイの画面表示を生成することができる。例えば、ユーザが北海道に位置する場合に、ユーザがＨＭＤに表示される仮想空間内で操作する表示オブジェクトのキャラクタを北海道のキャラクタとすることができる。
【００４０】
バイブレーション装置は、例えば、ヘッドマウント装置を装着して、ゲームをプレイしているユーザが、ヘッドマウントディスプレイに表示されている仮想空間内で攻撃などを受けた際に、ゲームに連動させてコントローラをバイブレーションすることができる。仮想空間内でアプリケーション実行中にユーザが経験した情報は、本体装置側インタフェースプログラム１２６Ａによりネットワーク１８０を介してインタフェースプログラム１０６Ａへ送信される。そして、コントローラ側インタフェースプログラム１０６Ａが受信したユーザが経験した情報に基づいて、バイブレーション装置がコントローラをバイブレーションさせる。コントローラがバイブレーションすることで、ユーザは一層仮想空間に没入することができる。
【００４１】
本体装置の構成
本体装置１２０は、ユーザコントローラ１００、ヘッドマウントディスプレイ１４０との間でデータの送受信を行うものであり、少なくとも１つのプロセッサ１２２、少なくとも１つのインタフェース１２４、少なくとも１つのメモリ１２６を含むことができる。
【００４２】
本体装置側プロセッサ１２２は、各機能部への命令の指示、ゲームなど各種アプリケーションの実行、本体装置側インタフェースプログラム１２６Ａの実行、画像生成出力処理を行うための画像生成プログラム１２６Ｂの実行、音生成処理などの各種処理を行うように構成される。
【００４３】
本体装置側インタフェース１２４は、コントローラ１００からネットワークを介して送信された出力データの受信、本体装置１２０からネットワークを介して所定のデータを送信、及びＨＭＤ１４０へ表示オブジェクトを配置した生成画像を出力する入出力インタフェースである。
【００４４】
本体装置側メモリ１２６は本体装置側インタフェースプログラム１２６Ａ、画像生成プログラム１２６Ｂ、及び本体装置のプロセッサにより実行される各種機能を実現するためのプログラム、データを格納する。
【００４５】
本体装置側インタフェースプログラム１２６Ａは後述する入力検出部３０４（図３）を機能させるためのものである。本体装置側インタフェースプログラム１２６Ａを実行することにより、本体装置１２０はコントローラ１００から送信された出力データを検出して受信、及び本体装置１２０からコントローラ１００へ各種データを送信する。本体装置側インタフェースプログラム１２６Ａは、予め本体装置にインストールされている。例えば、本体装置側インタフェースプログラム１２６Ａは、本体装置に接続されたインターネット、イントラネット等のネットワーク（図示せず）を介して、予め本体装置へダウンロードし、又は記録媒体を用いてインストールすることができる。本体装置側インタフェースプログラム１２６Ａをインストールし、コントローラに後述するコントローラ側インタフェースプログラム１０６Ａをインストールすることで、ユーザはヘッドマウント装置に専用のコントローラを用いることなく任意のコントローラ、例えば携帯端末、スマートフォンを用いて、ユーザコントローラ１００からのユーザ入力等をＨＭＤへ反映させたり、ＨＭＤ上の表示、及び操作中のアプリケーション情報をユーザコントローラへ送信したりすることができる。さらに、本体装置側インタフェースプログラム１２６Ａが複数のコントローラからの出力データをそれぞれ取得し、識別できる構成にすることにより複数のコントローラを１の本体装置１２０と接続することもできる。
【００４６】
画像生成プログラム１２６Ｂは、後述する操作判定部３０２、動作判定部３０６、表示演算部３０８、画像生成出力部３１０を機能させるためのものである。
ＨＭＤ１４０は、本体装置１２０に接続されており、本体装置１２０から出力された生成画像を表示する。ＨＭＤ１４０は、ユーザの保持するコントローラのセンサディスプレイ（図６の６０２）、ボタン、キー等を仮想的に表示するようにしても良い。
【００４７】
コントローラの機能的構成
図２は、コントローラ１００の機能的構成を示す図である。同図に示すように、コントローラ１００は、操作部２０２、送信部２０４、受信部２０６、通信部２０８、撮像部２１０、又はこれらの機能の一部を備えることができる。これらの機能は、ユーザコントローラ１００のメモリ１０６に格納された所定のプログラムがプロセッサ１０２によって実行されることにより実現される。ユーザコントローラの送信部、受信部はコントローラ側プロセッサによりコントローラ側インタフェースプログラム１０６Ａを実行することにより実現できる。該インタフェースプログラム１０６Ａはコントローラのアンテナ１３０を用いてインターネットを介してサーバ１６０より予めダウンロードされ、コントローラ１００にインストールされている。
【００４８】
操作部２０２は、コントローラに設けられている各種のセンサから、ユーザによりコントローラに対して行われた所定の動作・操作に関する入力を取得する。各種のセンサとは、ディスプレイセンサ、加速度センサ、ジャイロセンサ、マイクセンサ、ＧＰＳセンサである。また各種のセンサには、ボタン、キー等の他の操作部からの入力を組み合わせる（例えばコントローラのボタンを押しながらコントローラを振る動作を行う操作入力等）ことができる。ユーザがコントローラを動かすと、操作部は、加速度センサ、ジャイロセンサから該動作に対する加速度、角速度を取得する。ユーザがコントローラのセンサディスプレイに対してスワイプ操作、ピンチイン・ピンチアウト操作、タップ操作を行うと、操作部はセンサディスプレイから、それら操作の種類及び／又はそれら操作に関する各種データ、例えばディスプレイへの接触（タップ）、接触時間（長押し／タップ）、所定時間内の接触回数（連打、１回押し）、ディスプレイへの連続した接触の変位量（スワイプ距離、ピンチ距離）、接触変位方向（スワイプ方向、ピンチ方向）、接触変位速度（スワイプ速度、ピンチ速度）を取得する。ユーザがコントローラのマイクに対して発声すると、操作部２０２はマイクからユーザ音声入力を取得する。次に、操作部２０２はこれらの情報（加速度・角速度、操作入力情報、音声入力情報、位置情報）を逐次メモリへ格納する。
【００４９】
ここで、本実施例においては加速度センサ、ジャイロセンサから得られた加速度、角速度を動作入力情報と称し、ユーザがセンサディスプレイ上でスワイプ操作、タップ操作、ピンチ操作を行った際にセンサディスプレイから得られるセンサディスプレイへの接触、ディスプレイへの連続した接触の変位量、接触変位方向、接触変位速度を操作入力情報と称する。
【００５０】
送信部２０４は、メモリに格納されたこれらの情報を、本体装置からのリクエストに応じてネットワーク１８０を介して入力検出部３０４へ出力データとして送信する。出力データは、操作部２０２からのコントローラ１００に対して行われた所定の動作・操作に関する動作入力情報、操作入力情報、音声入力情報、位置情報、コントローラ１００のメモリ１０６に格納されている画像や動画、又はこれらの組み合わせに対応する。
【００５１】
コントローラ１００は本体装置１２０から送信される情報を受信する受信部２０６を備えることができる。受信部２０６は、ユーザがＨＭＤを装着して仮想空間に没入している際に、ユーザが仮想空間内で経験した情報を受信する。例えば、ゲームをプレイしているユーザが、ＨＭＤ１４０に表示されている仮想空間内で攻撃などを受けた際に、その攻撃された情報を受信する。そしてコントローラ側プロセッサは、受信した攻撃された情報に基づいてバイブレーション機能を実行し、コントローラをバイブレーションすることができる。また、受信部２０６はゲームのプレイ中の映像を本体装置より受信することができる。コントローラ側プロセッサ１０２は、受信した映像をコントローラのメモリへ格納したり、コントローラ側ディスプレイ１０８へ表示したりすることができる。
【００５２】
通信部２０８は、様々なデータ、例えば、プログラムをサーバ１６０からダウンロードしたり、ユーザの操作中映像をサーバ１６０にアップロードしたり、コントローラが複数ある場合に他のコントローラと直接通信するためのものであり、通常、インターネットを通じて通信を行う。通信部２０８を備えることにより、コントローラ１００は本体装置と接続されていなくとも、外部サーバ１６０に接続することが可能である。従って、コントローラは本体装置１２０に接続されていなくとも、インターネットに接続可能な環境があれば、任意の場所でコントローラ側インタフェースプログラム１０６Ａをインストール、アップデートすることができる。また、コントローラ１００は、インターネットから取得可能な様々な情報（気象情報、株価情報、地図情報）を取得して、ユーザの操作中画面や、ユーザ操作中のゲーム内容に反映することができる。また、コントローラは、コントローラが複数ある場合に、本体装置を介さずに通信部を介して他のコントローラと通信することができる。
【００５３】
撮像部２１０は、実空間における画像や動画を撮ることができる。撮像部を備えることにより、ユーザにより予め撮像された画像や動画を、ユーザの操作中画面や、プレイ中のゲーム画面に反映することができる。
【００５４】
ユーザコントローラ１００は更にＧＰＳ（図示せず）を備えることができる。ＧＰＳを備えることにより、ＧＰＳにより取得されたコントローラの位置情報をユーザ操作中の画面に反映することができる。例えば、コントローラが北海道に位置する場合に、ＨＭＤに表示される仮想空間内でユーザが操作する表示オブジェクトのキャラクタを北海道のキャラクタとしたり、ＨＭＤに表示される仮想空間のユーザ操作画面を北海道の背景としたりすることができる。
【００５５】
本体装置の機能的構成
図３は、本体装置１２０の機能的構成を示す図である。同図に示すように、本体装置１２０は、操作判定部３０２、入力検出部３０４、動作判定部３０６、表示演算部３０８、画像生成出力部３１０を備える。これらの機能は、本体装置におけるメモリに格納された所定のプログラムがプロセッサによって実行されることにより実現される。
【００５６】
操作判定部３０２は、まず、本体装置で実行中のアプリケーションの内容に基づいて、アプリケーションにより入力が求められるユーザ操作が何かを決定する。求められるユーザ操作とは、実行中のアプリケーションの内容、実行中のアプリケーションにおいてユーザが現在操作している状況等に基づいて定められ、実行中のアプリケーションが入力を許可する、コントローラに対するユーザ操作のことである。例えば、ユーザが仮想空間内で戦闘ゲームを行い、敵と戦闘中の操作状態では、その操作状態に対応する求められるユーザ操作は例えば、「殴る」、「撃つ」、「攻撃をかわす」である。
【００５７】
次に、入力検出部３０４は、ネットワーク１８０を介してコントローラ１００のメモリに格納された出力データのうち、求められるユーザ操作に対応する出力データを取得する。例えば、求められるユーザ操作が「殴る」である場合に、該求められるユーザ操作に対応する出力データは、操作入力情報（タップ操作によるディスプレイへの接触）である。出力データは所定時間内における接触回数を含むこともできる。そして、入力検出部３０４は検出した出力データを動作判定部３０６へ出力する。このように、入力検出部３０４は、実行中のアプリケーションにおいて求められるユーザ操作が「殴る」である場合に、出力データの操作入力情報のうち、タップ操作に対応する、ディスプレイへの接触のみを検出して取得する。動作判定部３０６は、求められるユーザ操作に対応しない出力データ、例えば、求められるユーザ操作が「殴る」である場合に、音声入力を無視することができる。
【００５８】
このように、入力検出部３０４は、ネットワーク１８０を介してコントローラの送信部２０４から送信された様々な情報、ユーザによる動作入力情報（加速度センサ、ジャイロセンサから得られた加速度、角速度）、操作入力情報（スワイプ操作、ピンチイン・ピンチアウト操作の種類、及び／又はセンサディスプレイへの接触、ディスプレイへの連続した接触の変位量、接触変位方向、接触変位速度）、音声入力情報（マイクセンサから得られる音声、音量）、画像、動画、位置情報又はこれらの組み合わせである情報のうち、操作判定部３０２により決定された求められるユーザ操作に対応するデータをコントローラからの出力データとして検出する。
【００５９】
また、入力検出部３０４は、所定のタイミングで所定時間の間、出力データを検出するようにしてもよい。さらに入力検出部３０４は、出力データを受信するタイミング間隔を変更することができる。例えば、表示オブジェクトに仮想空間内で扉のノブを回すといった粗い操作を行わせる場合は、検出するタイミング間隔を長くして１秒間に１５回の入力検出を行い、仮想空間内で表示オブジェクトに自動車を運転させるなどのハンドルの細かい動きを逐次画面に反映させることの必要な動作を行わせる場合は、検出するタイミング間隔を短くして１秒間に６０回の入力検出を行うことができる。
【００６０】
実行中のアプリケーションの内容、実行中のアプリケーションの内容に対応する求められるユーザ操作と、求められるユーザ操作に対応する出力データとの関係は表１に例示的に示される。表１に示されるアプリケーションの内容、求められるユーザ操作、出力データは単なる例示に過ぎず、当業者であれば他のユーザ操作状態、他のユーザ操作が存在することは容易に理解できるであろう。
【００６１】
【表１】
2020061162.tif 000003
【００６２】
次に動作判定部３０６は、求められるユーザ操作に応じて、入力検出部３０４により検出された出力データに基づき、ヘッドマウントディスプレイに表示される表示オブジェクトに行わせる動作を判定する。例えば、求められるユーザ操作が「殴る」である場合に、出力データに含まれるディスプレイへの接触感知、接触回数に応じて、仮想空間内で表示オブジェクトに行わせる動作（殴る、殴る頻度）を判定する。表示オブジェクトとは、ユーザによる仮想空間上で操作対象となるオブジェクトであり、例えばユーザがゲームを行っている場合はゲームキャラクタやゲームアイテムであり、ユーザが撮像した画像、動画を表示している場合は、それらの画像、動画である。
【００６３】
例えば、動作判定部３０６は、求められるユーザ操作が「画像のスライド」である場合に、出力データの操作入力情報のうち、スワイプ操作の方向、変位量、変位速度を取得する。そして、動作判定部は、ディスプレイへのスワイプ操作の方向、変位量、変位速度に応じて、表示オブジェクトに行わせる動作（画像のスライド）を判定する。
【００６４】
例えば、動作判定部３０６は、求められるユーザ操作が「２つの表示オブジェクトをくっつける」である場合に、出力データの操作入力情報のうち、ディスプレイへのピンチイン操作（又はスワイプ操作）の方向、変位量、変位速度を取得する。そして、動作判定部は、ディスプレイへのピンチイン操作の方向、変位量、変位速度に応じて、表示オブジェクトに行わせる動作（２つの表示オブジェクトを１つに結合させる）を判定する。動作判定部はユーザによるディスプレイへのピンチイン操作の方向、変位量、変位速度に応じて、表示オブジェクトを移動させる方向、移動させる速度を決定することができる。
【００６５】
例えば、動作判定部３０６は、求められるユーザ操作が「ハンドル操作」である場合に、出力データの動作入力情報のうち、加速度、角速度を取得する。なお、「ハンドル操作」は細かい操作が必要となることから、動作判定部は一定時間に加速度、角速度を取得する回数を多くすることができる。そして、動作判定部は、加速度、加速度に応じて、表示オブジェクトに行わせる動作（表示オブジェクトの方向を変える）を判定する。
【００６６】
例えば、動作判定部３０６は、求められるユーザ操作が「振り回す」である場合に、出力データの動作入力情報のうち、加速度、角速度を取得する。なお、「振り回す」操作は粗い検知で十分な場合、動作判定部は一定時間に加速度、角速度を取得する回数を少なくすることができる。そして、動作判定部は、加速度、加速度に応じて、表示オブジェクトに行わせる動作（表示オブジェクトを動かす・振り回す）を判定する。動作判定部は加速度、角速度に応じて、表示オブジェクトを振り回す強さ、方向を決定することができる。
【００６７】
例えば、動作判定部３０６は、求められるユーザ操作が「投げる」である場合に、出力データの動作入力情報のうち、加速度、角速度を取得する。そして、動作判定部は、加速度、角速度に応じて、表示オブジェクトに行わせる動作（表示オブジェクトを投げる）を判定する。さらに、動作半値部は加速度、角速度に応じて、表示オブジェクトを投げる強さ、方向を決定したりすることができる。
【００６８】
例えば、動作判定部３０６は、求められるユーザ操作が「大声を出す」である場合に、出力データのうち、音声入力情報を取得する。そして、動作判定部は、音量に応じて、表示オブジェクトに行わせる動作（表示オブジェクトを拡大）を判定する。さらに、動作判定部は音量に応じて、表示オブジェクトを拡大する大きさを決定したりすることができる。
【００６９】
次に、表示演算部３０８は、動作判定部３０６が判定した動作、及び該動作に対応付けられた表示オブジェクトに対する操作データに基づいて、表示オブジェクトの表示演算を行い、これにより表示オブジェクトの画像を生成する。操作データとは、表示オブジェクトを動かす際の、加速度、角速度、変位量、変位速度、方向等を含む。いわゆる３次元の画像を生成する場合には、表示オブジェクトの各頂点のデータ（頂点のワールド座標系での位置座標、色データ）を含む表示パラメータを演算し、演算された表示パラメータに基づいて、表示オブジェクトの画像をフレーム毎に順次生成する。
【００７０】
画像生成出力部３１０は、起動しているヘッドマウント装置のディスプレイに表示されている画面に、演算された表示オブジェクトを配置した画像をフレーム毎に生成し、その画面へ出力する。ＨＭＤは画像生成出力部より出力された画像を表示する。
【００７１】
図４は、ユーザのスワイプ操作に基づいて生成された本実施例に従ったＨＭＤに表示される画面４００の一例である。入力検出部より取得した出力データがスワイプ操作である場合に、スワイプした方向へ、操作対象である表示オブジェクト（図５Ａでは６つの画像）をスライドする。図４に示すように、ユーザの操作するセンサディスプレイに対応する表示（４０２、４０４）を仮想的にＨＭＤ上へ表示することで、ＨＭＤを装着しているユーザが完全に仮想空間に没入している場合でも、ユーザは、ユーザが行っている、又は行おうとしている操作を確実に把握することができる。
【００７２】
図５Ａ、Ｂは、ユーザのタップ操作に基づいて生成された本実施例に従ったＨＭＤに表示される画面（５００Ａ、５００Ｂ）の一例である。入力検出部より受け取った出力データがタップ操作に対応する場合に、操作対象である表示オブジェクト（図５Ａでは手５０２、図５Ｂでは銃５０４）は撃つ・殴る動作を行う。例えば、ユーザがコントローラ１００のセンサディスプレイをタップするたびに、表示オブジェクトは撃つ・殴る動作を行う。さらに出力データに一定時間内にタップされた回数が含まれる場合に、そのタップ回数に応じてオブジェクトが撃つ・殴る動作の速さを変更することができる。
【００７３】
図６は、ユーザのタップ操作に基づいて生成された本実施例に従ったＨＭＤに表示される画面６００の一例である。図６の表示画面６００は仮想空間上に仮想的に表示されたセンサディスプレイ６０２を含む。仮想的に表示されたセンサディスプレイ６０２は、仮想的にユーザの指６０４（操作指）を表示することができる。仮想空間に没入しているユーザは、ＨＭＤを装着しており外界情報を遮断されるため、実空間にあるコントローラを詳細に認識することができない。実空間にあるコントローラのセンサディスプレイを仮想的に仮想空間上に表示することで、ユーザはヘッドマウントディスプレイを外すことなく、コントローラへの各種操作を把握することができる。
【００７４】
図７Ａ、Ｂ、Ｃは、ユーザのピンチイン・ピンチアウト操作に基づいて生成された本実施例に従ったＨＭＤに表示される画面の一例である。入力検出部より受け取った出力データがピンチアウト操作に対応する場合に、操作対象である表示オブジェクト（図７Ａでは黒い円内の画像）に対して、該操作入力に対応付けられた表示オブジェクトのズームイン動作を行う。さらに入力検出部より受け取った出力データに操作の変位量が含まれる場合には、その変位量に基づき、ズームイン動作の画面操作量を決定することができる。さらに、入力検出部より受け取った出力データの種類がピンチアウト操作である場合に、ユーザにより選択された操作対象である表示オブジェクト（図７Ｂでは４と描かれた中心の○）に対してピンチアウト操作が行われると、該表示オブジェクトは２つのオブジェクト（図７Ｂでは水滴）に分離される（オブジェクトが２つにちぎられる）。オブジェクトの分離は、スワイプ操作により実現することもできる。入力検出部より受け取った出力データがピンチイン操作である場合に、操作対象である表示オブジェクト（図７Ｃでは２と描かれた２つの丸）を結合して、大きな４と描かれた１つの丸にすることができる（２つのオブジェクトがくっつけられる）。
【００７５】
図８Ａ、Ｂ、Ｃは、本実施例に従ったＨＭＤに表示される画面の一例である。入力検出部より受け取った出力データが加速度センサ・ジャイロセンサからのユーザの動作入力情報に対応する場合に、操作対象である表示オブジェクト（図８Ａでは剣、図８Ｂでは釣り竿、図８Ｃではダーツ）に対して、該表示オブジェクトに、図８Ａでは剣を振り回す動作、又は図８Ｂ及びＣでは釣り竿、ダーツを投げる動作を行わせる。さらに入力検出部より受け取った出力データに含まれる加速度に基づき、表示オブジェクトを所定の速度、加速度で移動させ、又は表示オブジェクトを所定の強さで振る・投げることができる。動作判定部はさらに入力検出部より受け取った出力データが角速度を含む場合には、表示オブジェクトを所定の方向へ移動させることができる。
【００７６】
図９Ａ、Ｂ、Ｃは、本実施例に従った加速度センサ・ジャイロセンサからの入力に基づいてＨＭＤに表示される画面の一例である。入力検出部より受け取った出力データが加速度センサ・ジャイロセンサからのユーザの動作入力情報に対応する場合に、操作対象である表示オブジェクト（図９Ａではレース画面背景全体、図９Ｂでは人、又は画面全体、図９Ｃではドアノブ）に対して、該動作入力情報に対応付けられた表示オブジェクトを回転させる動作を行わせる。さらに入力検出部より受け取った出力データに含まれる角速度に基づき、表示オブジェクトを所定の角速度で回転させることができる。
【００７７】
図１０Ａ、Ｂは、本実施例に従ったマイクセンサからの入力に基づいてＨＭＤに表示される画面の一例である。入力検出部より受け取った出力データの種類がマイクからのユーザの音声入力である場合に、音声入力に対応付けられた表示オブジェクト（図１０Ａでは猫、図１０Ｂでは「ワー」という文字）に対して、所定の動作（図１０Ａでは猫が驚く動作、図１０Ｂでは「ワー」という文字が拡大される動作）を行わせる。さらに、マイクセンサからの音量、方向に基づいて、拡大表示される表示オブジェクトの大きさや速度を変化させることができる。
【００７８】
図１１はコントローラ１００の処理の流れを示すフローチャート図である。
まず、インターネットを介してコントローラ１００に備えられたアンテナによりインタフェースプログラム１０６Ａをコントローラ１００へダウンロードし、インストールする（ステップ１１００）。コントローラは、インタフェースプログラム１０６Ａをインストールすることにより、本体装置に専用のコントローラでなくとも、例えば公知の携帯端末（スマートフォン）によりＨＭＤ１４０の画面操作を行うことができる。
【００７９】
次に、操作部２０２は、ユーザによりコントローラに対して行われた所定の動作・操作に関する入力情報を取得しメモリへ格納する（ステップ１１０２）。
次に、送信部２０４は、所定の動作に関する各種入力、所定の操作に関する各種入力情報、及び／又はコントローラのメモリに格納されている画像、動画、位置情報、又はこれらの組み合わせを出力データとして、本体装置１２０へ送信する（ステップ１１０４）。送信部２０４は、本体装置の入力検出部３０４からの要求に従って、出力データのうち実行中のアプリケーションの内容に応じて、求められるユーザ操作に対応する出力データを送信することができる。
【００８０】
図１２は本体装置１２０の処理の流れを示すフローチャート図である。
本体装置には本体装置側インタフェースプログラム１２６Ａがインストールされている。本体装置は、外部ネットワークに接続してインタフェースプログラム１２６Ａを取得してもよいし、記憶媒体を用いてインタフェースプログラム１２６Ａを取得してもよい（ステップ１２００）。
【００８１】
操作判定部３０２は、本体装置において実行中のアプリケーションの内容等に応じてアプリケーションが操作中のユーザに対して入力を許可する、求められるユーザ操作を判定する（ステップ１２０２）。
【００８２】
次に、入力検出部３０４は、コントローラ１００の送信部２０４から送信された出力データのうち、実行中のアプリケーションにより求められるユーザ操作に対応する出力データを、コントローラ１００の送信部２０４よりネットワーク１８０を介して受信して検出する。（ステップ１２０４）。
【００８３】
次に、動作判定部３０６は、求められるユーザ操作に対応する出力データに応じて、実行中のアプリケーションの仮想空間内で表示オブジェクトに行わせる動作を判定する（ステップ１２０６）。
【００８４】
次に、表示演算部３０８は、動作判定部３０６が判定した動作、及び該動作に対応付けられた表示オブジェクトに対する操作データに基づいて、表示オブジェクトの表示演算を行い、これにより表示オブジェクトの画像を生成する（ステップ１２０８）。
【００８５】
次に、画像生成出力部３１０は、起動しているヘッドマウント装置のディスプレイに表示されている画面に、生成された表示オブジェクトを配置した画像をフレーム毎に生成し、ＨＭＤへ出力する（ステップ１２１０）。
【００８６】
図１３は、コントローラ１００と本体装置１２０をアプリケーション上で接続する処理の流れを示すフローチャート図である。コントローラ１００と本体装置１２０とはネットワーク１８０を介して互いに通信可能に接続されている。
【００８７】
まず、本体装置１２０において、ＨＭＤと接続してＨＭＤを操作するためのアプリケーションを起動する（ステップ１３００）。
次に、コントローラ１００側でインタフェースプログラム１０６Ａを実行して、コントローラ１００は本体装置内にインタフェースプログラム１２６Ａを含むアプリケーションが格納されているかを検索する（ステップ１３０２）。
【００８８】
次に、コントローラ１００は、本体装置１２０内にインタフェースプログラム１２６Ａを含むアプリケーションが検索された場合に、その検索に対する認識情報を本体装置１００のインタフェースプログラム１２６Ａに送信する（ステップ１３０４）。
【００８９】
次に、コントローラ１００は、認識したインタフェースプログラム１２６Ａを含むアプリケーションを、ディスプレイ１０８へ表示する。そして、コントローラ１００は、表示された認識したアプリケーションがユーザによりタップされると、ペアリングリクエストを本体装置側インタフェースプログラム１２６Ａへ送信する（ステップ１３０６）。
【００９０】
次に、本体装置側インタフェースプログラム１２６Ａはコントローラから送信されたペアリングリクエストに応答してペアリングレスポンスをコントローラ１００のインタフェースプログラム１０６Ａへ送信する（ステップ１３０８）。
【００９１】
次に、コントローラ１００のインタフェースプログラム１０６Ａは、コントローラ１００と本体装置１２０とがペアリングしたことを示す情報を、本体装置側インタフェースプログラム１２６Ａへ送信する（ステップ１３１０）。これにより、コントローラ１００と本体装置１２０とのアプリケーション上の接続が完了する。
【００９２】
図１４は、本発明の第２の実施例に従った、複数のコントローラにより構成されるシステムのシステム構成図を示す。複数のコントローラ１００同士はそれぞれ本体装置１２０ではなく、インターネットを介して接続されている。以下、第１のコントローラ１００Ａ、第２のコントローラ１００Ｂはそれぞれ図１に記載のようにプロセッサ、メモリ、インタフェース、センサディスプレイを備えることができる。また、第１のコントローラ、第２のコントローラはそれぞれ図２に記載の機能的構成、又は図２に記載の機能的構成の一部を備えることができる。また、コントローラ１００Ａ、１００Ｂは３台以上で構成することもできる。
【００９３】
従来のシステムにおいては、１つの操作画面を同じ空間に位置する複数のユーザで共有して操作する場合に、複数のコントローラはそれぞれ１つの本体装置に接続されていたため、本体装置への負荷が高かった。また従来のシステムにおいては、１つの操作画面を、別個の空間に位置する複数のユーザで共有して操作する場合には、複数のコントローラは別個の空間にそれぞれ存在する本体装置に接続する。そして本体装置は、それぞれネットワークを介してサーバに接続する。この場合、複数のコントローラに対し外部ネットワークと接続可能な本体装置がそれぞれ必要となる。
【００９４】
本実施例においては、１つのコントローラのみが１つの本体装置へ接続されており、コントローラ同士はインターネットを介してサーバに接続されている。これにより、一つの本体装置の負荷を高めることなく、複数のユーザ間で、一つの操作画面に対し様々な操作を行うことができる。また、複数のユーザは同じ空間に位置する必要は無く、別の空間に位置することができる。
【００９５】
図１５は、複数のユーザ間で一つの操作画面に対し操作を行っている例示的なユーザ表示画面である。図１５に係る実施例おいては、ユーザＡはヘッドマウント装置を装着しており、ユーザＢはヘッドマウント装置を装着していない。ヘッドマウント装置を装着していないユーザＢも、第２のコントローラのディスプレイを介してユーザＡの操作画面を見ることや、ユーザＡの操作中画面に対して、第２のコントローラのセンサディスプレイによるスワイプ、タップ、又はピンチ操作入力、第２のコントローラの加速度センサ、角速度センサによる動作入力を行うことができる。例えば、図に示されるように、ユーザＡがレーシングゲームをしている最中に、他のユーザＢがユーザＢのコントローラのセンサディスプレイを用いて、ユーザＡの操作中画面に障害物（図ではバナナ）を配置することができる。
【００９６】
以上、本発明の一実施形態に付き説明したが、本発明は上記実施形態に限定されるものではない。前述の請求項に記載されるこの発明の精神及び範囲から逸脱することなく、様々な実施態様の変更がなされうることを当業者は理解するであろう。
【図１】
2020061162.tif 000004
【図２】
2020061162.tif 000005
【図３】
2020061162.tif 000006
【図４】
2020061162.tif 000007
【図５Ａ】
2020061162.tif 000008
【図５Ｂ】
2020061162.tif 000009
【図６】
2020061162.tif 000010
【図７Ａ】
2020061162.tif 000011
【図７Ｂ】
2020061162.tif 000012
【図７Ｃ】
2020061162.tif 000013
【図８Ａ】
2020061162.tif 000014
【図８Ｂ】
2020061162.tif 000015
【図８Ｃ】
2020061162.tif 000016
【図９Ａ】
2020061162.tif 000017
【図９Ｂ】
2020061162.tif 000018
【図９Ｃ】
2020061162.tif 000019
【図１０Ａ】
2020061162.tif 000020
【図１０Ｂ】
2020061162.tif 000021
【図１１】
2020061162.tif 000022
【図１２】
2020061162.tif 000023
【図１３】
2020061162.tif 000024
【図１４】
2020061162.tif 000025
【図１５】
2020061162.tif 000026
【手続補正書】
【提出日】令和1年12月6日(2019.12.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
生成画像をヘッドマウントディスプレイへ出力するシステムであって、該システムは、
実行中のアプリケーションの内容に応じて求められるユーザ操作を判定する操作判定部と、
コンピュータからの出力データから、前記求められるユーザ操作に対応する出力データを検出する入力検出部と、
検出された前記出力データに基づき表示オブジェクトの動作を判定する動作判定部と、
判定された表示オブジェクトの前記動作、及び前記検出された出力データに基づいて、表示オブジェクトの表示パラメータを演算して、仮想空間上に表示される表示オブジェクトの画像を生成する表示演算部と、
仮想空間上の画像に生成された表示オブジェクトの画像を配置した画像を生成して前記システムに接続されたヘッドマウントディスプレイへ出力する画像生成出力部と、
を備えており、
前記コンピュータの通信部がインターネットを介してサーバから受信したコンピュータ側インタフェースプログラムと、前記システムのシステム側インタフェースプログラムにより、前記コンピュータと前記システムが接続されていることを特徴とする、システム。