(57)【特許請求の範囲】
【請求項１】
少なくとも１つの表示装置に複数の画像を表示する情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
パノラマ動画を記憶したパノラマ動画記憶手段から、前記表示装置に再生する所定時間毎に当該パノラマ動画の各フレームとなるパノラマ画像を読み出して逐次取得するパノラマ画像取得手段と、
前記取得されたパノラマ画像において、第１の表示領域に表示する範囲を設定する第１表示範囲設定手段と、
前記第１表示範囲設定手段が範囲を設定した同じパノラマ画像において、第２の表示領域に表示する範囲を設定する第２表示範囲設定手段と、
前記取得されたパノラマ画像のうち、前記第１表示範囲設定手段によって設定された範囲を前記第１の表示領域に逐次表示する第１表示制御手段と、
前記第１表示制御手段が前記第１の表示領域に表示している同じパノラマ画像のうち、前記第２表示範囲設定手段によって設定された範囲を前記第２の表示領域に逐次表示する第２表示制御手段として機能させる、情報処理プログラム。
【請求項２】
前記第１の表示領域は、第１の表示装置に設けられ、
前記第２の表示領域は、前記第１の表示装置とは異なる第２の表示装置に設けられ、
前記第１表示範囲設定手段は、ユーザ操作に応じて、前記取得されたパノラマ画像における前記第１の表示装置に表示する範囲を設定する、請求項１に記載の情報処理プログラム。
【請求項３】
前記第１表示範囲設定手段と前記第２表示範囲設定手段とは、前記第１の表示装置と前記第２の表示装置との実空間における位置関係に応じて、前記第１の表示装置に表示する範囲と前記第２の表示装置に表示する範囲とをそれぞれ設定する、請求項２に記載の情報処理プログラム。
【請求項４】
前記第１の表示装置と前記第２の表示装置とが、実空間において所定の位置関係となったか否かを判定する位置関係判定手段として、さらに前記コンピュータを機能させ、
前記第１表示範囲設定手段と前記第２表示範囲設定手段とは、前記位置関係判定手段が肯定判定した時点の前記第１の表示装置の姿勢および／または前記第２の表示装置の姿勢を基準として、当該姿勢の変化に応じて、前記第１の表示装置に表示する範囲と前記第２の表示装置に表示する範囲とをそれぞれ設定する、請求項３に記載の情報処理プログラム。
【請求項５】
前記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であり、
前記第１表示範囲設定手段は、前記第１の表示装置から出力されるデータに基づいて、前記第１の表示装置に表示する範囲を設定する、請求項２乃至４の何れか１つに記載の情報処理プログラム。
【請求項６】
前記第２の表示装置は、据置型の表示装置である、請求項５に記載の情報処理プログラム。
【請求項７】
前記第１の表示装置は、当該第１の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサを備え、
前記第１表示範囲設定手段は、前記センサから出力されるデータに基づいて算出された前記第１の表示装置の姿勢に応じて、前記第１の表示装置に表示する範囲を設定する、請求項５または６に記載の情報処理プログラム。
【請求項８】
前記センサは、前記第１の表示装置本体の動きまたは姿勢に応じたデータを出力するジャイロセンサおよび加速度センサの少なくとも一方であり、
前記第１表示範囲設定手段は、前記ジャイロセンサおよび前記加速度センサの少なくとも一方から出力されるデータに基づいて算出された前記第１の表示装置の姿勢に応じて、前記第１の表示装置に表示する範囲を設定する、請求項７に記載の情報処理プログラム。
【請求項９】
前記第２表示範囲設定手段は、前記パノラマ画像に対する所定の範囲を、前記第２の表示装置に表示する範囲として設定する、請求項２乃至８の何れか１つに記載の情報処理プログラム。
【請求項１０】
前記パノラマ動画記憶手段は、現実世界または仮想世界を移動しながら撮像したパノラマ動画を記憶しており、
前記所定の範囲は、前記パノラマ画像を移動しながら撮像した際の移動方向を見たパノラマ画像における範囲である、請求項９に記載の情報処理プログラム。
【請求項１１】
前記第２表示範囲設定手段は、前記第１の表示装置に表示されるパノラマ画像の範囲より広い範囲を、前記第２の表示装置に表示する範囲として設定する、請求項２乃至１０の何れか１つに記載の情報処理プログラム。
【請求項１２】
前記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であり、
前記第２の表示装置は、据置型の表示装置であり、
前記第１表示範囲設定手段は、前記第１の表示装置から出力されるデータに基づいて、前記第１の表示装置に表示する範囲を設定し、
前記第２表示範囲設定手段は、前記第１表示範囲設定手段によって設定された範囲を、前記第２の表示装置に表示する範囲に設定する、請求項２に記載の情報処理プログラム。
【請求項１３】
前記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であり、
前記第２の表示装置は、据置型の表示装置であり、
前記第１表示範囲設定手段は、前記第１の表示装置から出力されるデータに基づいて、前記第１の表示装置に表示する範囲を設定し、
前記第２表示範囲設定手段は、前記第１表示範囲設定手段によって設定される前記第１の表示装置に表示する範囲に基づいて前記第２の表示装置に表示する範囲を設定するとともに、前記第１の表示装置に表示する範囲がユーザ操作に応じて変化する変化量を抑制した範囲を前記第２の表示装置に表示する範囲に設定する、請求項２に記載の情報処理プログラム。
【請求項１４】
前記パノラマ画像取得手段は、前記パノラマ動画記憶手段に記憶されたパノラマ動画をデコードして読み出したパノラマ画像を逐次取得し、
前記第１の表示範囲設定手段は、前記デコードされて取得されたパノラマ画像から前記第１の表示装置に表示する範囲を設定し、
前記第２の表示範囲設定手段は、前記デコードされて取得されたパノラマ画像から前記第２の表示装置に表示する範囲を設定し、
前記第１表示制御手段は、前記デコードされて取得されたパノラマ画像のうち、前記第１表示範囲設定手段によって設定された範囲を前記第１の表示装置に逐次表示し、
前記第２表示制御手段は、前記デコードされて取得されたパノラマ画像のうち、前記第２表示範囲設定手段によって設定された範囲を前記第２の表示装置に逐次表示する、請求項２乃至１３の何れか１つに記載の情報処理プログラム。
【請求項１５】
前記第１表示制御手段は、前記第１の表示装置に表示するための画像を示すデータを当該第１の表示装置へ出力し、
前記第１の表示装置は、前記第１表示制御手段によって出力されたデータを取得する画像データ取得手段を備え、
前記第１の表示装置の表示画面は、前記画像データ取得手段が取得した画像データが示す画像を表示する、請求項１４に記載の情報処理プログラム。
【請求項１６】
前記第２の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であり、
前記第２表示範囲設定手段は、前記第２の表示装置から出力されるデータに基づいて、前記第２の表示装置に表示する範囲を設定する、請求項５に記載の情報処理プログラム。
【請求項１７】
前記第２の表示装置は、当該第２の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサを備え、
前記第２表示範囲設定手段は、前記センサから出力されるデータに基づいて算出された前記第２の表示装置の姿勢に応じて、前記第２の表示装置に表示する範囲を設定する、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記複数の表示装置それぞれに対応付けられた各入力装置からの入力を受け付ける入力受付手段として、さらに前記コンピュータを機能させ、
前記第１表示範囲設定手段は、前記第１の表示装置に対応付けられた第１の入力装置から受け付けられた入力に基づいて、前記取得されたパノラマ画像から当該第１の表示装置に表示する範囲を設定し、
前記第２表示範囲設定手段は、前記第２の表示装置に対応付けられた第２の入力装置から受け付けられた入力に基づいて、前記取得されたパノラマ画像から当該第２の表示装置に表示する範囲を設定する、請求項２乃至８の何れか１つまたは請求項１４乃至１７の何れか１つに記載の情報処理プログラム。
【請求項１９】
少なくとも１つの表示装置に複数の画像を表示する情報処理装置であって、
パノラマ動画を記憶するパノラマ動画記憶手段と、
前記パノラマ動画記憶手段に記憶されたパノラマ動画から、前記表示装置に再生する所定時間毎に当該パノラマ動画の各フレームとなるパノラマ画像を読み出して逐次取得するパノラマ画像取得手段と、
前記取得されたパノラマ画像において、第１の表示領域に表示する範囲を設定する第１表示範囲設定手段と、
前記第１表示範囲設定手段が範囲を設定した同じパノラマ画像において、第２の表示領域に表示する範囲を設定する第２表示範囲設定手段と、
前記取得されたパノラマ画像のうち、前記第１表示範囲設定手段によって設定された範囲を前記第１の表示領域に逐次表示する第１表示制御手段と、
前記第１表示制御手段が前記第１の表示領域に表示している同じパノラマ画像のうち、前記第２表示範囲設定手段によって設定された範囲を前記第２の表示領域に逐次表示する第２表示制御手段とを備える、情報処理装置。
【請求項２０】
複数の装置が通信可能に構成され、少なくとも１つの表示装置に複数の画像を表示する情報処理システムであって、
パノラマ動画を記憶するパノラマ動画記憶手段と、
前記パノラマ動画記憶手段に記憶されたパノラマ動画から、前記表示装置に再生する所定時間毎に当該パノラマ動画の各フレームとなるパノラマ画像を読み出して逐次取得するパノラマ画像取得手段と、
前記取得されたパノラマ画像において、第１の表示領域に表示する範囲を設定する第１表示範囲設定手段と、
前記第１表示範囲設定手段が範囲を設定した同じパノラマ画像において、第２の表示領域に表示する範囲を設定する第２表示範囲設定手段と、
前記取得されたパノラマ画像のうち、前記第１表示範囲設定手段によって設定された範囲を前記第１の表示領域に逐次表示する第１表示制御手段と、
前記第１表示制御手段が前記第１の表示領域に表示している同じパノラマ画像のうち、前記第２表示範囲設定手段によって設定された範囲を前記第２の表示領域に逐次表示する第２表示制御手段とを備える、情報処理システム。
【請求項２１】
少なくとも１つの表示装置に複数の画像を表示する少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
パノラマ動画を記憶するパノラマ動画記憶手段から、前記表示装置に再生する所定時間毎に当該パノラマ動画の各フレームとなるパノラマ画像を読み出して逐次取得するパノラマ画像取得ステップと、
前記取得されたパノラマ画像において、第１の表示領域に表示する範囲を設定する第１表示範囲設定ステップと、
前記第１表示範囲設定ステップにおいて範囲が設定された同じパノラマ画像において、第２の表示領域に表示する範囲を設定する第２表示範囲設定ステップと、
前記取得されたパノラマ画像のうち、前記第１表示範囲設定ステップにおいて設定された範囲を前記第１の表示領域に逐次表示する第１表示制御ステップと、
前記第１表示制御ステップにおいて前記第１の表示領域に表示されている同じパノラマ画像のうち、前記第２表示範囲設定ステップにおいて設定された範囲を前記第２の表示領域に逐次表示する第２表示制御ステップとを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関し、特に例えば、パノラマ動画を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【０００２】
可搬型ディスプレイにその動きや姿勢に応じて仮想空間を表示する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３０５７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術は、１つの仮想空間を単一のディスプレイに表示するものであるため、表示できる範囲が限定されてしまう。
【０００５】
それ故に、本発明の目的は、より自由度の高い画像を表示することができる情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の情報処理プログラムの一構成例は、少なくとも１つの表示装置に複数の画像を表示する情報処理装置に含まれるコンピュータで実行される。情報処理プログラムは、パノラマ画像取得手段、第１表示範囲設定手段、第２表示範囲設定手段、第１表示制御手段、および第２表示制御手段として、コンピュータを機能させる。パノラマ画像取得手段は、パノラマ動画を記憶したパノラマ動画記憶手段から、表示装置に再生する所定時間毎に当該パノラマ動画の各フレームとなるパノラマ画像を読み出して逐次取得する。第１表示範囲設定手段は、取得されたパノラマ画像において、第１の表示領域に表示する範囲を設定する。第２表示範囲設定手段は、取得されたパノラマ画像において、第２の表示領域に表示する範囲を設定する。第１表示制御手段は、取得されたパノラマ画像のうち、第１表示範囲設定手段によって設定された範囲を第１の表示領域に逐次表示する。第２表示制御手段は、取得されたパノラマ画像のうち、第２表示範囲設定手段によって設定された範囲を第２の表示領域に逐次表示する。
【０００８】
上記「情報処理装置」は、表示装置とは別の装置によって構成されてもよいし、表示装置が情報処理機能を有する場合には表示装置によって構成されてもよい。また、前者の場合、「別の装置」によって本発明の各処理を実行し、表示装置は「別の装置」によって生成された画像を表示処理するのみでもよいし、表示装置が情報処理機能を有する場合には、表示装置の情報処理機能と「別の装置」の情報処理機能との協同により実現してもよい。また、「別の装置」は複数の情報処理装置によって分散処理するものであってもよい。「情報処理装置」は、後述する実施形態におけるゲーム装置の他、一般的なパーソナルコンピュータのような多用途の情報処理装置であってもよい。
【０００９】
上記第１の表示領域および上記第２の表示領域は、上記表示装置が１つの装置で構成される場合は、当該表示装置の表示画面内の別の領域にそれぞれ設けられてもよい。また、上記第１の表示領域および上記第２の表示領域は、上記表示装置が２つ以上の装置で構成される場合は、それぞれ別の表示装置に設けられてもよい。この場合、上記第１の表示領域および上記第２の表示領域は、２つの可搬型表示装置にそれぞれ設けられてもいいし、可搬型表示装置と据置型表示装置とにそれぞれ設けられてもよい。
【００１０】
上記「パノラマ画像」は、上下方向と左右方向のうち一方方向について画角が１８０度以上のパノラマ画像であることが好ましい。さらに好ましくは、一方方向について３６０度のパノラマ画像であることが好ましい。また、他方方向については、第１の表示装置および／または第２の表示装置に表示する画像の画角以上であることが好ましく、さらに言うと、当該画像の画角の２倍以上、１２０度以上、１５０度以上、または、１８０度であることが好ましい。
【００１１】
上記「パノラマ動画記憶手段」には、当該情報処理装置が有する当該パノラマ動画の撮像機能により撮像された動画を記憶してもよいし、当該動画の撮像機能を有する他の装置により撮像された動画を所定の記憶媒体やネットワークを介して取り込んで記憶してもよい。
【００１２】
上記によれば、パノラマ動画を構成するパノラマ画像の少なくとも一部が複数の表示領域それぞれに表示されるため、自由度の高いパノラマ画像を表示することができる。また、ユーザは、２つの表示領域に表示される画像を状況や好みに応じて使い分けることが可能となり、パノラマ動画の視聴に好適な画像を見ることも可能となる。
【００１３】
また、上記第１の表示領域は、第１の表示装置に設けられてもよい。上記第２の表示領域は、第１の表示装置とは異なる第２の表示装置に設けられてもよい。上記第１表示範囲設定手段は、ユーザ操作に応じて、取得されたパノラマ画像における第１の表示装置に表示する範囲を設定してもよい。
【００１４】
上記第１の表示装置および第２の表示装置は、一例として、それぞれ可搬型表示装置である。また、上記第１の表示装置および第２の表示装置は、他の例として、一方が可搬型表示装置で他方が据置型表示装置である。この場合、据置型表示装置は、後述する実施形態におけるモニタ２のように情報処理装置に接続された表示装置であり、可搬型表示装置と別体であればよく、情報処理装置によって生成された表示画像を表示することが可能なものであればどのようなものであってもよい。例えば、上記据置型表示装置は、情報処理装置と一体に（１つの筐体内に）構成されるものであってもよい。
【００１５】
上記によれば、パノラマ動画を構成するパノラマ画像の少なくとも一部が複数の表示装置それぞれに表示され、少なくとも１つの表示装置に表示されるパノラマ画像の範囲がユーザ操作に応じて設定されるため、より自由度の高いパノラマ画像を表示することができ
る。例えば、ユーザは、２つの装置に表示される画像を操作状況や好みに応じて使い分けることが可能となり、ユーザ操作に好適な画像を見ることも可能となる。第２の表示装置に表示する画像を、ユーザとは異なる他の人が見るための画像として用いることもでき、複数の人が当該ユーザとコミュニケーションを取りながらパノラマ画像を見る場合にも好適な視聴環境となり得る。
【００１６】
また、上記第１表示制御手段と上記第２表示制御手段とは、パノラマ動画において実質的に時間軸が同じとなるパノラマ画像の少なくとも一部を第１の表示装置と第２の表示装置とにそれぞれ表示してもよい。
【００１７】
また、上記第２表示範囲設定手段は、第１表示範囲設定手段が範囲を設定した同じパノラマ画像において、第２の表示領域に表示する範囲を設定してもよい。上記第２表示制御手段は、第１表示制御手段が第１の表示領域に表示している同じパノラマ画像に対して第２表示範囲設定手段によって設定された範囲を第２の表示領域に逐次表示してもよい。
【００１８】
上記によれば、パノラマ動画において実質的に時間軸が同じパノラマ画像の少なくとも一部が複数の表示装置に表示されるため、複数の表示装置を介して再生されている同じパノラマ動画の少なくとも一部をそれぞれ見た画像を表示することができる。
【００１９】
また、上記第１表示範囲設定手段と上記第２表示範囲設定手段とは、第１の表示装置と第２の表示装置との実空間における位置関係に応じて、第１の表示装置に表示する範囲と第２の表示装置に表示する範囲とをそれぞれ設定してもよい。
【００２０】
また、上記情報処理プログラムは、位置関係判定手段として、さらにコンピュータを機能させてもよい。位置関係判定手段は、第１の表示装置と第２の表示装置とが、実空間において所定の位置関係となったか否かを判定する。この場合、上記第１表示範囲設定手段と上記第２表示範囲設定手段とは、位置関係判定手段が肯定判定した時点の第１の表示装置の姿勢および／または第２の表示装置の姿勢を基準として、当該姿勢の変化に応じて、第１の表示装置に表示する範囲と第２の表示装置に表示する範囲とをそれぞれ設定してもよい。
【００２１】
上記によれば、パノラマ動画によって形成されている空間を、複数の表示装置を介して覗いているかのような画像を表示することができる。
【００２２】
また、上記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であってもよい。この場合、上記第１表示範囲設定手段は、第１の表示装置から出力されるデータに基づいて、第１の表示装置に表示する範囲を設定してもよい。
【００２３】
また、上記第２の表示装置は、据置型の表示装置でもよい。
【００２４】
上記「可搬型の表示装置」は、ユーザが手に持って動かしたり、任意の位置に配置を変更したりすることができる程度の大きさの表示装置である。また、「可搬型の表示装置」は本発明の各処理を実行する機能を有してもよいし、他の情報処理装置によって生成された画像を受信して表示処理するのみでもよい。
【００２５】
上記によれば、パノラマ画像の表示範囲を変化させるためのデータを出力手段と当該表示範囲のパノラマ画像を表示する表示装置とが一体となって構成されているために、ユーザが表示装置を把持して所望する表示範囲を表示させるために優れた操作環境となる。
【００２６】
また、上記第１の表示装置は、当該第１の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサを備えてもよい。この場合、上記第１表示範囲設定手段は、センサから出力されるデータに基づいて算出された第１の表示装置の姿勢に応じて、第１の表示装置に表示する範囲を設定してもよい。
【００２７】
上記「センサ」は、ジャイロセンサ、加速度センサ、地磁気センサなど、第１の表示装置本体の姿勢の算出のためのデータを出力するセンサであればなんでもかまわない。
【００２８】
上記「第１表示範囲設定手段」は、典型的には、第１の表示装置の姿勢変化に応じて、少なくとも同じ方向に第１の表示装置に表示する範囲を移動させる。また、好ましくは、「第１表示範囲設定手段」は、第１の表示装置の姿勢の変化量が大きいほど上記範囲の移動量を大きくする。さらに好ましくは、「第１表示範囲設定手段」は、第１の表示装置の姿勢の変化量と上記範囲の画像を生成するための仮想カメラの姿勢変化量とを同じにする。「第１表示範囲設定手段」は、第１の表示装置の現在の姿勢の基準姿勢からの変化にあわせて、上記仮想カメラの現在の姿勢の基準姿勢からの変化を制御してもよいし、第１の表示装置の現在の姿勢の直前の姿勢からの変化にあわせて、上記仮想カメラの現在の姿勢の直前の姿勢からの変化を制御してもよい。なお、上記「姿勢」は、２次元で設定されてもよいし、３次元で設定されてもよい。
【００２９】
上記によれば、把持する表示装置の姿勢を変化させることによって、当該姿勢変化に応じた表示範囲のパノラマ画像が表示されるため、あたかもパノラマ動画によって形成されている空間を、第１の表示装置を介して覗いているかのような画像を第１の表示装置に表示することができる。
【００３０】
また、上記センサは、第１の表示装置本体の動きまたは姿勢に応じたデータを出力するジャイロセンサおよび加速度センサの少なくとも一方であってもよい。この場合、上記第１表示範囲設定手段は、ジャイロセンサおよび加速度センサの少なくとも一方から出力されるデータに基づいて算出された第１の表示装置の姿勢に応じて、第１の表示装置に表示する範囲を設定してもよい。
【００３１】
上記によれば、ジャイロセンサから得られる角速度データや加速度センサから得られる加速度データを用いることによって、容易に表示装置本体の姿勢を算出することができる。
【００３２】
また、上記第２表示範囲設定手段は、パノラマ画像に対する所定の範囲を、第２の表示装置に表示する範囲として設定してもよい。
【００３３】
上記によれば、第２の表示装置にパノラマ動画によって形成する空間における所定の範囲が常に表示されるため、ユーザが当該所定の範囲のパノラマ動画を常に見ることができる。
【００３４】
また、上記パノラマ動画記憶手段は、現実世界または仮想世界を移動しながら撮像したパノラマ動画を記憶してもよい。この場合、上記所定の範囲は、パノラマ画像を移動しながら撮像した際の移動方向を見たパノラマ画像における範囲であってもよい。
【００３５】
上記によれば、第２の表示装置が配置されている方向へ移動していくパノラマ動画の空間を形成することができ、ユーザが当該移動方向を認識しながらパノラマ動画を見ることができる。
【００３６】
また、上記第２表示範囲設定手段は、第１の表示装置に表示されるパノラマ画像の範囲より広い範囲を、第２の表示装置に表示する範囲として設定してもよい。
【００３７】
上記によれば、広い範囲を見たい場合に第２の表示装置を見るなど、所望する表示範囲の大きさに応じて、複数の表示装置を使い分けることができる。
【００３８】
また、上記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であってもよい。上記第２の表示装置は、据置型の表示装置でもよい。上記第１表示範囲設定手段は、第１の表示装置から出力されるデータに基づいて、第１の表示装置に表示する範囲を設定してもよい。上記第２表示範囲設定手段は、第１表示範囲設定手段によって設定された範囲を、第２の表示装置に表示する範囲に設定してもよい。
【００３９】
上記によれば、第１の表示装置に表示されるパノラマ動画と同じ範囲が第２の表示装置にも表示されるため、可搬型の第１の表示装置を用いて操作しているユーザが見ているパノラマ動画を、据置型の第２の表示装置を介して他のユーザが見ることが可能となる。
【００４０】
また、上記第１の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であってもよい。上記第２の表示装置は、据置型の表示装置でもよい。上記第１表示範囲設定手段は、第１の表示装置から出力されるデータに基づいて、第１の表示装置に表示する範囲を設定してもよい。上記第２表示範囲設定手段は、第１表示範囲設定手段によって設定される第１の表示装置に表示する範囲に基づいて第２の表示装置に表示する範囲を設定するとともに、第１の表示装置に表示する範囲がユーザ操作に応じて変化する変化量を抑制した範囲を第２の表示装置に表示する範囲に設定してもよい。
【００４１】
上記によれば、可搬型の第１の表示装置に表示されるパノラマ動画と同様の範囲を据置型の第２の表示装置に表示する場合、第１の表示装置に表示されるパノラマ動画の範囲がユーザ操作に応じて変化する変化量を抑制した状態で据置型の第２の表示装置に表示されるため、当該第２の表示装置を見る他のユーザの映像酔いを防止することが可能となる。
【００４２】
また、上記パノラマ画像取得手段は、パノラマ動画記憶手段に記憶されたパノラマ動画をデコードして読み出したパノラマ画像を逐次取得してもよい。上記第１の表示範囲設定手段は、デコードされて取得されたパノラマ画像から第１の表示装置に表示する範囲を設定してもよい。上記第２の表示範囲設定手段は、デコードされて取得されたパノラマ画像から第２の表示装置に表示する範囲を設定してもよい。上記第１表示制御手段は、デコードされて取得されたパノラマ画像のうち、第１表示範囲設定手段によって設定された範囲を第１の表示装置に逐次表示してもよい。上記第２表示制御手段は、デコードされて取得されたパノラマ画像のうち、第２表示範囲設定手段によって設定された範囲を第２の表示装置に逐次表示してもよい。
【００４３】
上記によれば、デコードされて取得されたパノラマ画像がそれぞれ複数の表示装置に表示されるため、当該表示のための処理負荷を軽減することができる。
【００４４】
また、上記第１表示制御手段は、第１の表示装置に表示するための画像を示すデータを当該第１の表示装置へ出力してもよい。上記第１の表示装置は、画像データ取得手段を備えてもよい。画像データ取得手段は、第１表示制御手段によって出力されたデータを取得する。この場合、上記第１の表示装置の表示画面は、画像データ取得手段が取得した画像データが示す画像を表示してもよい。
【００４５】
上記によれば、第１の表示装置がゲーム処理等の情報処理を実行しない、いわゆるシンクライアント端末として機能することができる。
【００４６】
また、上記第２の表示装置は、可搬型の表示装置であるとともに、ユーザ操作に応じたデータを出力することが可能であってもよい。上記第２表示範囲設定手段は、第２の表示装置から出力されるデータに基づいて、第２の表示装置に表示する範囲を設定してもよい。
【００４７】
上記によれば、複数の可搬型表示装置に、それぞれパノラマ画像の少なくとも一部を表示することができる。
【００４８】
また、上記第２の表示装置は、当該第２の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサを備えてもよい。この場合、上記第２表示範囲設定手段は、センサから出力されるデータに基づいて算出された第２の表示装置の姿勢に応じて、第２の表示装置に表示する範囲を設定してもよい。
【００４９】
上記によれば、複数のユーザがそれぞれ把持する表示装置の姿勢を変化させることによって、当該姿勢変化に応じた表示範囲のパノラマ画像が表示されるため、あたかもパノラマ動画によって形成されている空間を、複数のユーザが複数の表示装置を介して覗いているかのような画像をそれぞれの表示装置に表示することができる。
【００５０】
また、上記情報処理プログラムは、入力受付手段として、さらにコンピュータを機能させてもよい。入力受付手段は、複数の表示装置それぞれに対応付けられた各入力装置からの入力を受け付ける。この場合、上記第１表示範囲設定手段は、第１の表示装置に対応付けられた第１の入力装置から受け付けられた入力に基づいて、取得されたパノラマ画像から当該第１の表示装置に表示する範囲を設定してもよい。上記第２表示範囲設定手段は、第２の表示装置に対応付けられた第２の入力装置から受け付けられた入力に基づいて、取得されたパノラマ画像から当該第２の表示装置に表示する範囲を設定してもよい。
【００５１】
上記によれば、表示装置それぞれに対応する入力装置を操作することによって、自由に表示範囲を変化させることができる。
【００５２】
また、本発明は、上記各手段を備える情報処理装置および情報処理システムや上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【００５３】
本発明によれば、より自由度の高い画像を表示することができる。
【図面の簡単な説明】
【００５４】
【図１】ゲームシステム１の外観図
【図２】ゲーム装置３の内部構成を示すブロック図
【図３】コントローラ５の外観構成を示す斜視図
【図４】コントローラ５の外観構成を示す斜視図
【図５】コントローラ５の内部構造を示す図
【図６】コントローラ５の内部構造を示す図
【図７】コントローラ５の構成を示すブロック図
【図８】端末装置７の外観構成を示す図
【図９】ユーザが端末装置７を把持した様子を示す図
【図１０】端末装置７の内部構成を示すブロック図
【図１１】完全球パノラマの場合の模式図
【図１２】非完全球パノラマ（下方死角有り）の場合の模式図
【図１３】非完全全球パノラマ（下方死角有り）の場合の変形例
【図１４】非完全全球パノラマ（上方死角有り）の場合の模式図
【図１５】非完全全球パノラマ（上方死角有り）の場合の変形例
【図１６】左右のみ全周パノラマの場合の模式図
【図１７】３６０度より小さいパノラマの場合の模式図
【図１８Ａ】端末装置７の姿勢に応じた仮想カメラ１０１の制御を示す図
【図１８Ｂ】端末装置７の姿勢に応じた仮想カメラ１０１の制御を示す図
【図１８Ｃ】端末装置７の姿勢に応じた仮想カメラ１０１の制御を示す図
【図１９】ファイルのデータフォーマット
【図２０】ゲーム装置３によって実行される本発明の第１の実施形態に係る処理のフローチャート
【図２１】ゲーム装置３によって実行される本発明の第１の実施形態に係る処理のフローチャート
【図２２】ゲーム装置３によって実行される本発明の第１の実施形態に係る処理のフローチャート
【図２３】フレーム毎のパノラマ画像を構成するパノラマ動画を撮像し、当該パノラマ動画をエンコードして記録するまでの処理の流れの一例を示す図
【図２４】エンコードされたパノラマ動画データをデコードして表示するまでの処理の流れの一例を示す図
【図２５】ゲーム装置３のメインメモリに記憶される本発明の第２の実施形態に係る主なデータおよびプログラムの一例を示す図
【図２６】ゲーム装置３において実行される本発明の第２の実施形態に係る処理の前半の一例を示すフローチャート
【図２７】ゲーム装置３において実行される本発明の第２の実施形態に係る処理の後半の一例を示すフローチャート
【発明を実施するための形態】
【００５５】
［１．ゲームシステムの全体構成］
以下、図面を参照して、本発明の一実施形態に係るゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。図１において、ゲームシステム１は、テレビジョン受像器等に代表される据置型のディスプレイ装置（以下、「モニタ」と記載する）２、据置型のゲーム装置３、光ディスク４、コントローラ５、マーカ装置６、および、端末装置７を含む。ゲームシステム１は、コントローラ５および／または端末装置７を用いたゲーム操作に基づいてゲーム装置３においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をモニタ２および／または端末装置７に表示するものである。
【００５６】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるための情報処理プログラム（典型的にはゲームプログラム）が記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【００５７】
ゲーム装置３には、モニタ２が接続コードを介して接続される。モニタ２は、ゲーム装置３において実行されるゲーム処理によって得られるゲーム画像を表示する。モニタ２はスピーカ２ａ（図２）を有しており、スピーカ２ａは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置３と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置３とモニタ２との通信は無線通信であってもよい。
【００５８】
モニタ２の画面の周辺（図１では画面の上側）には、マーカ装置６が設置される。詳細は後述するが、ユーザ（プレイヤ）はコントローラ５を動かすゲーム操作を行うことができ、マーカ装置６は、コントローラ５の動きや位置や姿勢等をゲーム装置３が算出するために用いられる。マーカ装置６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）であり、モニタ２の前方に向かって赤外光を出力する。マーカ装置６はゲーム装置３に接続されており、ゲーム装置３はマーカ装置６が備える各赤外ＬＥＤの点灯を制御することが可能である。なお、マーカ装置６は可搬型であり、ユーザはマーカ装置６を自由な位置に設置することができる。図１ではマーカ装置６がモニタ２の上に設置された態様を表しているが、マーカ装置６を設置する位置および向きは任意である。
【００５９】
コントローラ５は、自機に対して行われた操作の内容を表す操作データをゲーム装置３に与えるものである。コントローラ５とゲーム装置３とは無線通信によって通信可能である。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。また、本実施形態では、ゲームシステム１に含まれるコントローラ５は１つとするが、ゲーム装置３は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ５の詳細な構成については後述する。
【００６０】
端末装置７は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置７を手に持って動かしたり、あるいは、端末装置７を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置７は、表示手段であるＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）５１、および、入力手段（後述するタッチパネル５２やジャイロセンサ６４等）を備える。端末装置７とゲーム装置３とは無線（有線であってもよい）によって通信可能である。端末装置７は、ゲーム装置３で生成された画像（例えばゲーム画像）のデータをゲーム装置３から受信し、画像をＬＣＤ５１に表示する。なお、本実施形態では表示装置としてＬＣＤを用いているが、端末装置７は、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置７は、自機に対して行われた操作の内容を表す操作データをゲーム装置３に送信する。
【００６１】
［２．ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の内部構成を示すブロック図である。ゲーム装置３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００６２】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００６３】
システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００６４】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。なお、ゲーム装置３は、モニタ２に表示する画像と、端末装置７に表示する画像との両方を生成する。以下では、モニタ２に表示される画像を「モニタ用画像」と呼び、端末装置７に表示される画像を「端末用画像」と呼ぶことがある。
【００６５】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、モニタ２のスピーカから出力するゲーム音声と、端末装置７のスピーカから出力するゲーム音声との両方が生成される。以下では、モニタ２から出力される音声を「モニタ用音声」と呼び、端末装置７から出力される音声を「端末用音声」と呼ぶことがある。
【００６６】
上記のようにゲーム装置３において生成される画像および音声のうちで、モニタ２において出力される画像および音声のデータは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してモニタ２に出力するとともに、読み出した音声データを、モニタ２に内蔵されるスピーカ２ａに出力する。これによって、モニタ２に画像が表示されるとともにスピーカ２ａから音が出力される。なお、ゲーム装置３とモニタ２との接続は、どのような方式で行われてもよいが、ゲーム装置３は、モニタ２を制御する制御指令を有線または無線でモニタ２へ送信するようにしてもよい。例えばＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）規格に則ったＨＤＭＩケーブルが用いられてもよい。ＨＤＭＩ規格では、ＣＥＣ（Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｎｔｒｏｌ）と呼ばれる機能によって、接続相手の機器を制御することが可能である。したがって、ＨＤＭＩケーブルが用いられる場合のように、ゲーム装置３がモニタ２に対する制御が可能である場合には、ゲーム装置３は、適宜のタイミングでモニタ２の電源をオンにしたり、モニタ２の入力を切り替えたりすることができる。
【００６７】
また、ゲーム装置３において生成される画像および音声のうちで、端末装置７において出力される画像および音声のデータは、入出力プロセッサ１１ａ等によって端末装置７へ送信される。入出力プロセッサ１１ａ等による端末装置７へのデータの送信については後述する。
【００６８】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、ネットワーク通信モジュール１８、コントローラ通信モジュール１９、拡張コネクタ２０、メモリカード用コネクタ２１、コーデックＬＳＩ２７に接続される。また、ネットワーク通信モジュール１８にはアンテナ２２が接続される。コントローラ通信モジュール１９にはアンテナ２３が接続される。コーデックＬＳＩ２７は端末通信モジュール２８に接続され、端末通信モジュール２８にはアンテナ２９が接続される。
【００６９】
ゲーム装置３は、インターネット等のネットワークに接続して外部の情報処理装置（例えば他のゲーム装置や、各種サーバ、コンピュータ等）と通信を行うことが可能である。すなわち、入出力プロセッサ１１ａは、ネットワーク通信モジュール１８およびアンテナ２２を介してインターネット等のネットワークに接続可能であり、ネットワークに接続される他の装置と通信を行うことができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２およびネットワーク通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と外部情報処理装置との間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。また、フラッシュメモリ１７にはゲームプログラムが記憶されてもよい。
【００７０】
また、ゲーム装置３は、コントローラ５からの操作データを受信することが可能である。すなわち、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３およびコントローラ通信モジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００７１】
また、ゲーム装置３は、端末装置７との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ１１ａは、端末装置７へゲーム画像（端末用ゲーム画像）を送信する場合、ＧＰＵ１１ｂが生成したゲーム画像のデータをコーデックＬＳＩ２７へ出力する。コーデックＬＳＩ２７は、入出力プロセッサ１１ａからの画像データに対して所定の圧縮処理を行う。端末通信モジュール２８は、端末装置７との間で無線通信を行う。したがって、コーデックＬＳＩ２７によって圧縮された画像データは、端末通信モジュール２８によってアンテナ２９を介して端末装置７へ送信される。なお、本実施形態では、ゲーム装置３から端末装置７へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置３から端末装置７への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックＬＳＩ２７は、例えばＨ．２６４規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール２８は、例えばＷｉ−Ｆｉの認証を受けた通信モジュールであり、例えばＩＥＥＥ８０２．１１ｎ規格で採用されるＭＩＭＯ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｍｕｌｔｉｐｌｅ  Ｏｕｔｐｕｔ）の技術を用いて端末装置７との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【００７２】
また、ゲーム装置３は、画像データの他、音声データを端末装置７へ送信する。すなわち、入出力プロセッサ１１ａは、ＤＳＰ１１ｃが生成した音声データを、コーデックＬＳＩ２７を介して端末通信モジュール２８へ出力する。コーデックＬＳＩ２７は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール２８は、圧縮された画像データおよび音声データを、アンテナ２９を介して端末装置７へ送信する。
【００７３】
さらに、ゲーム装置３は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置７へ送信する。制御データは、端末装置７が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部（図１０に示すマーカ部５５）の点灯を制御する指示や、カメラ（図１０に示すカメラ５６）の撮像を制御する指示等を表す。入出力プロセッサ１１ａは、ＣＰＵ１０の指示に応じて制御データを端末装置７へ送信する。なお、この制御データに関して、本実施形態ではコーデックＬＳＩ２７はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置３から端末装置７へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。
【００７４】
また、ゲーム装置３は、端末装置７から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置７は、操作データ、画像データ、および音声データを送信する。端末装置７から送信される各データはアンテナ２９を介して端末通信モジュール２８によって受信される。ここで、端末装置７からの画像データおよび音声データは、ゲーム装置３から端末装置７への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール２８からコーデックＬＳＩ２７に送られ、コーデックＬＳＩ２７によって伸張処理が施されて入出力プロセッサ１１ａに出力される。一方、端末装置７からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール２８で受信された後、コーデックＬＳＩ２７を介して入出力プロセッサ１１ａに出力される。入出力プロセッサ１１ａは、端末装置７から受信したデータを、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００７５】
また、ゲーム装置３は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタである。拡張コネクタ２０に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００７６】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、図示しないＡＣアダプタによって外部の電源からゲーム装置３の各構成要素に対して電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００７７】
なお、他の実施形態においては、ゲーム装置３が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置３とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ２０を介してゲーム装置３と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックＬＳＩ２７、端末通信モジュール２８およびアンテナ２９の各構成要素を備えており、拡張コネクタ２０に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置７と通信可能な構成とすることができる。
【００７８】
［３．コントローラ５の構成］
次に、図３〜図７を参照して、コントローラ５について説明する。図３は、コントローラ５の外観構成を示す斜視図である。図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００７９】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、コントローラ５に設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢（傾き）を変えることによってゲーム操作を行うことができる。
【００８０】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。本明細書では、これらのボタン３２ａ〜３２ｈが設けられるハウジング３１の上面を「ボタン面」と呼ぶことがある。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆおよび電源ボタン３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、ユーザがホームボタン３２ｆまたは電源ボタン３２ｈを誤って押下することを防止することができる。
【００８１】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、他のセンサユニットやコントローラ）を接続するために利用される。また、ハウジング３１の後面におけるコネクタ３３の両側には、上記他の機器が容易に離脱することを防止するために係止穴３３ａが設けられている。
【００８２】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ５の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００８３】
また、コントローラ５は撮像情報演算部３５（図６）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００８４】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４７（図５）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００８５】
次に、図５および図６を参照して、コントローラ５の内部構造について説明する。図５および図６は、コントローラ５の内部構造を示す図である。なお、図５は、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６は、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６に示す斜視図は、図５に示す基板３０を裏面から見た斜視図となっている。
【００８６】
図５において、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、およびスピーカ４７等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図６）およびアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００８７】
一方、図６において、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００８８】
さらに、基板３０の下主面上には、上記マイコン４２およびバイブレータ４６が設けられている。バイブレータ４６は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４６が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４６は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４６がコントローラ５の中心よりも端側に配置することによって、バイブレータ４６の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５および図６に示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４７に音声信号を出力するアンプ等を備えている。
【００８９】
なお、図３〜図６に示したコントローラ５の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はＺ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ５における撮像情報演算部３５の位置（撮像情報演算部３５の光入射面３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【００９０】
図７は、コントローラ５の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、撮像情報演算部３５、通信部３６、加速度センサ３７、およびジャイロセンサ４８を備えている。コントローラ５は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置３へ送信するものである。なお、以下では、コントローラ５が送信する操作データを「コントローラ操作データ」と呼び、端末装置７が送信する操作データを「端末操作データ」と呼ぶことがある。
【００９１】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を表す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００９２】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００９３】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置７のマーカ部５５およびマーカ装置６は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、撮像対象（マーカ部５５および／またはマーカ装置６）の画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（傾斜角度）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００９４】
なお、他の実施形態においては、コントローラ５は画像処理回路４１を備えていない構成であってもよく、撮像画像自体がコントローラ５からゲーム装置３へ送信されてもよい。このとき、ゲーム装置３は、画像処理回路４１と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【００９５】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ３７は、例えば静電容量式のＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００９６】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ５を基準に設定されるＸＹＺ座標系（コントローラ座標系）における３次元のベクトルとして表される。
【００９７】
加速度センサ３７が検出した加速度を表すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（傾斜角度）や動きに対応して変化するので、ゲーム装置３は取得された加速度データを用いてコントローラ５の向きや動きを算出することができる。本実施形態では、ゲーム装置３は、取得された加速度データに基づいてコントローラ５の姿勢や傾斜角度等を算出する。
【００９８】
なお、加速度センサ３７（後述する加速度センサ６３についても同様）から出力される加速度の信号に基づいて、ゲーム装置３のプロセッサ（例えばＣＰＵ１０）またはコントローラ５のプロセッサ（例えばマイコン４２）等のコンピュータが処理を行うことによって、コントローラ５に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ３７を搭載するコントローラ５が静止状態であることを前提としてコンピュータ側の処理が実行される場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合）、コントローラ５が現実に静止状態であれば、検出された加速度に基づいてコントローラ５の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ３７の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かによって、コントローラ５が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ３７の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ５がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ３７からの出力に基づいてコントローラ５の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ５の傾斜方向を算出するようにしてもよい。このように、加速度センサ３７をプロセッサと組み合わせて用いることによって、コントローラ５の傾斜角度または姿勢を判定することができる。
【００９９】
一方、コントローラ５が動的な状態（コントローラ５が動かされている状態）であることを前提とする場合には、加速度センサ３７は重力加速度に加えてコントローラ５の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ５の動き方向を知ることができる。また、コントローラ５が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ５の傾きを知ることが可能である。なお、他の実施例では、加速度センサ３７は、内蔵の加速度検出手段で検出された加速度信号をマイコン４２に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ３７が静的な加速度（例えば、重力加速度）を検出するために用いられる場合、加速度信号を傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【０１００】
ジャイロセンサ４８は、３軸（本実施形態では、ＸＹＺ軸）回りの角速度を検出する。本明細書では、コントローラ５の撮像方向（Ｚ軸正方向）を基準として、Ｘ軸回りの回転方向をピッチ方向、Ｙ軸回りの回転方向をヨー方向、Ｚ軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ４８は、３軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ４８は、３軸ジャイロセンサであってもよいし、２軸ジャイロセンサと１軸ジャイロセンサとを組み合わせて３軸周りの角速度を検出するものであってもよい。ジャイロセンサ４８で検出された角速度を表すデータは、通信部３６へ出力される。また、ジャイロセンサ４８は１軸または２軸回りの角速度を検出するものであってもよい。
【０１０１】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。
【０１０２】
操作部３２、撮像情報演算部３５、加速度センサ３７、およびジャイロセンサ４８からマイコン４２へ出力されたデータは、一時的にメモリ４３に格納される。これらのデータは、操作データ（コントローラ操作データ）としてゲーム装置３へ送信される。すなわち、マイコン４２は、ゲーム装置３のコントローラ通信モジュール１９への送信タイミングが到来すると、メモリ４３に格納されている操作データを無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変調されてコントローラ５から送信される。微弱電波信号はゲーム装置３側のコントローラ通信モジュール１９で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、コントローラ５から取得した操作データを用いてゲーム処理を行う。なお、通信部３６からコントローラ通信モジュール１９への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ５の通信部３６は、例えば１／２００秒に１回の割合で操作データをゲーム装置３のコントローラ通信モジュール１９へ出力する。
【０１０３】
以上のように、コントローラ５は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。また、ゲーム装置３は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ５を用いることによって、ユーザは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ５自体を動かすゲーム操作を行うことができる。例えば、コントローラ５を任意の姿勢に傾ける操作、コントローラ５によって画面上の任意の位置を指示する操作、および、コントローラ５自体を動かす操作等を行うことが可能となる。
【０１０４】
また、本実施形態において、コントローラ５は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【０１０５】
［４．端末装置７の構成］
次に、図８〜図１０を参照して、端末装置７の構成について説明する。図８は、端末装置７の外観構成を示す図である。図８における（ａ）図は端末装置７の正面図であり、（ｂ）図は上面図であり、（ｃ）図は右側面図であり、（ｄ）図は下面図である。また、図９は、ユーザが端末装置７を把持した様子を示す図である。
【０１０６】
図８に示されるように、端末装置７は、大略的には横長の長方形の板状形状であるハウジング５０を備える。ハウジング５０は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置７を持って動かしたり、端末装置７の配置位置を変更したりすることができる。
【０１０７】
端末装置７は、ハウジング５０の表面にＬＣＤ５１を有する。ＬＣＤ５１は、ハウジング５０の表面の中央付近に設けられる。したがって、ユーザは、図９に示すようにＬＣＤ５１の両側部分のハウジング５０を持つことによって、ＬＣＤ５１の画面を見ながら端末装置を持って動かすことができる。なお、図９ではユーザがＬＣＤ５１の左右両側の部分のハウジング５０を持つことで端末装置７を横持ちで（横に長い向きにして）持つ例を示しているが、端末装置７を縦持ちで（縦に長い向きにして）持つことも可能である。
【０１０８】
図８の（ａ）図に示すように、端末装置７は、操作手段として、ＬＣＤ５１の画面上にタッチパネル５２を有する。本実施形態では、タッチパネル５２は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル５２はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル５２として、ＬＣＤ５１の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル５２の解像度とＬＣＤ５１の解像度が一致している必要はない。タッチパネル５２に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル５２に対する入力をすることも可能である。なお、ハウジング５０には、タッチパネル５２に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置７はタッチパネル５２を備えるので、ユーザは、端末装置７を動かしながらタッチパネル５２を操作することができる。つまりユーザは、ＬＣＤ５１の画面を動かしつつ、その画面に対して直接（タッチパネル５２によって）入力を行うことができる。
【０１０９】
図８に示すように、端末装置７は、操作手段として、２つのアナログスティック５３Ａおよび５３Ｂと、複数のボタン５４Ａ〜５４Ｌとを備えている。各アナログスティック５３Ａおよび５３Ｂは、方向を指示するデバイスである。各アナログスティック５３Ａおよび５３Ｂは、ユーザの指で操作されるスティック部がハウジング５０の表面に対して任意の方向（上下左右および斜め方向の任意の角度）にスライド（または傾倒）することができるように構成されている。また、左アナログスティック５３ＡはＬＣＤ５１の画面の左側に、右アナログスティック５３ＢはＬＣＤ５１の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図９に示すように、各アナログスティック５３Ａおよび５３Ｂは、ユーザが端末装置７の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置７を持って動かす場合においても各アナログスティック５３Ａおよび５３Ｂを容易に操作することができる。
【０１１０】
各ボタン５４Ａ〜５４Ｌは、所定の入力を行うための操作手段である。以下に示すように、各ボタン５４Ａ〜５４Ｌは、ユーザが端末装置７の左右部分を把持した状態で操作可能な位置に設けられる（図９参照）。したがって、ユーザは、端末装置７を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
【０１１１】
図８の（ａ）図に示すように、ハウジング５０の表面には、各操作ボタン５４Ａ〜５４Ｌのうち、十字ボタン（方向入力ボタン）５４Ａと、ボタン５４Ｂ〜５４Ｈとが設けられる。つまり、これらのボタン５４Ａ〜５４Ｇは、ユーザの親指で操作可能な位置に配置されている（図９参照）。
【０１１２】
十字ボタン５４Ａは、ＬＣＤ５１の左側であって、左アナログスティック５３Ａの下側に設けられる。つまり、十字ボタン５４Ａはユーザの左手で操作可能な位置に配置されている。十字ボタン５４Ａは、十字の形状を有しており、上下左右の方向を指示することが可能なボタンである。また、ボタン５４Ｂ〜５４Ｄは、ＬＣＤ５１の下側に設けられる。これら３つのボタン５４Ｂ〜５４Ｄは、左右両方の手で操作可能な位置に配置されている。また、４つのボタン５４Ｅ〜５４Ｈは、ＬＣＤ５１の右側であって、右アナログスティック５３Ｂの下側に設けられる。つまり、４つのボタン５４Ｅ〜５４Ｈはユーザの右手で操作可能な位置に配置されている。さらに、４つのボタン５４Ｅ〜５４Ｈは、（４つのボタン５４Ｅ〜５４Ｈの中心位置に対して）上下左右の位置関係となるように配置されている。したがって、端末装置７は、ユーザに上下左右の方向を指示させるためのボタンとして４つのボタン５４Ｅ〜５４Ｈを機能させることも可能である。
【０１１３】
また、図８の（ａ）図、（ｂ）図、および（ｃ）図に示すように、第１Ｌボタン５４Ｉおよび第１Ｒボタン５４Ｊは、ハウジング５０の斜め上部分（左上部分および右上部分）に設けられる。具体的には、第１Ｌボタン５４Ｉは、板状のハウジング５０における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第１Ｒボタン５４Ｊは、ハウジング５０における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第１Ｌボタン５４Ｉは、ユーザの左手人差し指で操作可能な位置に配置され、第１Ｒボタン５４Ｊは、ユーザの右手人差し指で操作可能な位置に配置される（図９参照）。
【０１１４】
また、図８の（ｂ）図および（ｃ）図に示すように、第２Ｌボタン５４Ｋおよび第２Ｒボタン５４Ｌは、板状のハウジング５０の裏面（すなわちＬＣＤ５１が設けられる表面の反対側の面）に突起して設けられる足部５９Ａおよび５９Ｂに配置される。具体的には、第２Ｌボタン５４Ｋは、ハウジング５０の裏面の左側（表面側から見たときの左側）のやや上方に設けられ、第２Ｒボタン５４Ｌは、ハウジング５０の裏面の右側（表面側から見たときの右側）のやや上方に設けられる。換言すれば、第２Ｌボタン５４Ｋは、表面に設けられる左アナログスティック５３Ａの概ね反対側の位置に設けられ、第２Ｒボタン５４Ｌは、表面に設けられる右アナログスティック５３Ｂの概ね反対側の位置に設けられる。このように、第２Ｌボタン５４Ｋは、ユーザの左手中指で操作可能な位置に配置され、第２Ｒボタン５４Ｌは、ユーザの右手中指で操作可能な位置に配置される（図９参照）。また、第２Ｌボタン５４Ｋおよび第２Ｒボタン５４Ｌは、図８の（ｃ）図に示すように、上記足部５９Ａおよび５９Ｂの斜め上方を向く面に設けられ、斜め上方を向くボタン面を有する。ユーザが端末装置７を把持した場合には中指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第２Ｌボタン５４Ｋおよび第２Ｒボタン５４Ｌを押下しやすくなる。また、ハウジング５０の裏面に足部が設けられることにより、ユーザはハウジング５０を把持しやすくなり、かつ、足部にボタンが設けられることで、ハウジング５０を把持したまま操作しやすくなる。
【０１１５】
なお、図８に示す端末装置７に関しては、第２Ｌボタン５４Ｋおよび第２Ｒボタン５４Ｌが裏面に設けられるので、ＬＣＤ５１の画面（ハウジング５０の表面）が上を向いた状態で端末装置７を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング５０の裏面に３つ以上の足部が形成されてもよい。これによれば、ＬＣＤ５１の画面が上を向いた状態では足部が床面に接することで床面に載置できるので、画面が水平になるように端末装置７を載置することができる。また、着脱可能な足部を追加することで端末装置７を水平に載置するようにしてもよい。
【０１１６】
各ボタン５４Ａ〜５４Ｌには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン５４Ａおよびボタン５４Ｅ〜５４Ｈは方向指示操作や選択操作等に用いられてもよいし、各ボタン５４Ｂ〜５４Ｅは決定操作やキャンセル操作等に用いられてもよい。
【０１１７】
なお、図示しないが、端末装置７は、端末装置７の電源をオン／オフするための電源ボタンを有している。また、端末装置７は、ＬＣＤ５１の画面表示をオン／オフするためのボタンや、ゲーム装置３との接続設定（ペアリング）を行うためのボタンや、スピーカ（図１０に示すスピーカ６７）の音量を調節するためのボタンを有していてもよい。
【０１１８】
図８の（ａ）図に示すように、端末装置７は、マーカ５５Ａおよびマーカ５５Ｂからなるマーカ部（図１０に示すマーカ部５５）をハウジング５０の表面に備えている。マーカ部５５は、ＬＣＤ５１の上側に設けられる。各マーカ５５Ａおよびマーカ５５Ｂは、マーカ装置６の各マーカ６Ｒおよび６Ｌと同様、１以上の赤外ＬＥＤで構成される。マーカ部５５は、上述のマーカ装置６と同様、コントローラ５の動き等をゲーム装置３が算出するために用いられる。また、ゲーム装置３はマーカ部５５が備える各赤外ＬＥＤの点灯を制御することが可能である。
【０１１９】
端末装置７は、撮像手段であるカメラ５６を備えている。カメラ５６は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。図８に示すように、本実施形態では、カメラ５６はハウジング５０の表面に設けられる。したがって、カメラ５６は、端末装置７を持っているユーザの顔を撮像することができ、例えばＬＣＤ５１を見ながらゲームを行っている時のユーザを撮像することができる。
【０１２０】
なお、端末装置７は、音声入力手段であるマイク（図１０に示すマイク６９）を備えている。ハウジング５０の表面には、マイクロフォン用孔６０が設けられる。マイク６９はこのマイクロフォン用孔６０の奥のハウジング５０内部に設けられる。マイクは、ユーザの音声等、端末装置７の周囲の音を検出する。
【０１２１】
端末装置７は、音声出力手段であるスピーカ（図１０に示すスピーカ６７）を備えている。図８の（ｄ）図に示すように、ハウジング５０の下側側面にはスピーカ孔５７が設けられる。スピーカ６７の出力音はこのスピーカ孔５７から出力される。本実施形態では、端末装置７は２つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔５７が設けられる。
【０１２２】
また、端末装置７は、他の装置を端末装置７に接続するための拡張コネクタ５８を備えている。本実施形態においては、図８の（ｄ）図に示すように、拡張コネクタ５８は、ハウジング５０の下側側面に設けられる。なお、拡張コネクタ５８に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ（銃型のコントローラ等）やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ５８は設けられていなくともよい。
【０１２３】
なお、図８に示した端末装置７に関して、各操作ボタンやハウジング５０の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【０１２４】
次に、図１０を参照して、端末装置７の内部構成について説明する。図１０は、端末装置７の内部構成を示すブロック図である。図１０に示すように、端末装置７は、図８に示した構成の他、タッチパネルコントローラ６１、磁気センサ６２、加速度センサ６３、ジャイロセンサ６４、ユーザインタフェースコントローラ（ＵＩコントローラ）６５、コーデックＬＳＩ６６、スピーカ６７、サウンドＩＣ６８、マイク６９、無線モジュール７０、アンテナ７１、赤外線通信モジュール７２、フラッシュメモリ７３、電源ＩＣ７４、電池７５、および、バイブレータ７９を備える。これらの電子部品は、電子回路基板上に実装されてハウジング５０内に収納される。
【０１２５】
ＵＩコントローラ６５は、各種の入出力部に対するデータの入出力を制御するための回路である。ＵＩコントローラ６５は、タッチパネルコントローラ６１、アナログスティック５３（アナログスティック５３Ａおよび５３Ｂ）、操作ボタン５４（各操作ボタン５４Ａ〜５４Ｌ）、マーカ部５５、磁気センサ６２、加速度センサ６３、ジャイロセンサ６４、およびバイブレータ７９に接続される。また、ＵＩコントローラ６５は、コーデックＬＳＩ６６と拡張コネクタ５８に接続される。また、ＵＩコントローラ６５には電源ＩＣ７４が接続され、ＵＩコントローラ６５を介して各部に電力が供給される。電源ＩＣ７４には内蔵の電池７５が接続され、電力が供給される。また、電源ＩＣ７４には、コネクタ等を介して外部電源から電力を取得可能な充電器７６またはケーブルを接続することが可能であり、端末装置７は、当該充電器７６またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置７は、図示しない充電機能を有するクレイドルに端末装置７を装着することで充電を行うようにしてもよい。
【０１２６】
タッチパネルコントローラ６１は、タッチパネル５２に接続され、タッチパネル５２の制御を行う回路である。タッチパネルコントローラ６１は、タッチパネル５２からの信号に基づいて所定の形式のタッチ位置データを生成してＵＩコントローラ６５へ出力する。タッチ位置データは、タッチパネル５２の入力面において入力が行われた位置の座標を表す。なお、タッチパネルコントローラ６１は、タッチパネル５２からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。また、ＵＩコントローラ６５からタッチパネルコントローラ６１へは、タッチパネル５２に対する各種の制御指示が出力される。
【０１２７】
アナログスティック５３は、ユーザの指で操作されるスティック部がスライドした（または傾倒した）方向および量を表すスティックデータをＵＩコントローラ６５へ出力する。また、操作ボタン５４は、各操作ボタン５４Ａ〜５４Ｌに対する入力状況（押下されたか否か）を表す操作ボタンデータをＵＩコントローラ６５へ出力する。
【０１２８】
磁気センサ６２は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、ＵＩコントローラ６５へ出力される。また、ＵＩコントローラ６５から磁気センサ６２へは、磁気センサ６２に対する制御指示が出力される。磁気センサ６２に関しては、ＭＩ（磁気インピーダンス）素子、フラックスゲートセンサ、ホール素子、ＧＭＲ（巨大磁気抵抗）素子、ＴＭＲ（トンネル磁気抵抗）素子、あるいはＡＭＲ（異方性磁気抵抗）素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置７が動いた場合には方位データが変化するため、端末装置７の姿勢の変化を算出することができる。
【０１２９】
加速度センサ６３は、ハウジング５０の内部に設けられ、３軸（図８の（ａ）図に示すｘｙｚ軸）方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ６３は、ハウジング５０の長辺方向をｘ軸、ハウジング５０の短辺方向をｙ軸、ハウジング５０の表面に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはＵＩコントローラ６５へ出力される。また、ＵＩコントローラ６５から加速度センサ６３へは、加速度センサ６３に対する制御指示が出力される。加速度センサ６３は、本実施形態では例えば静電容量式のＭＥＭＳ型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ６３は１軸または２軸方向を検出する加速度センサであってもよい。
【０１３０】
ジャイロセンサ６４は、ハウジング５０の内部に設けられ、上記ｘ軸、ｙ軸およびｚ軸の３軸周りの角速度を検出する。検出された角速度を表す角速度データは、ＵＩコントローラ６５へ出力される。また、ＵＩコントローラ６５からジャイロセンサ６４へは、ジャイロセンサ６４に対する制御指示が出力される。なお、３軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ６４はジャイロセンサ４８と同様、２軸ジャイロセンサと１軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ６４は１軸または２軸方向を検出するジャイロセンサであってもよい。
【０１３１】
バイブレータ７９は、例えば振動モータやソレノイドであり、ＵＩコントローラ６５に接続される。ＵＩコントローラ６５の指示によりバイブレータ７９が作動することによって端末装置７に振動が発生する。これによって、端末装置７を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。
【０１３２】
ＵＩコントローラ６５は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックＬＳＩ６６に出力する。なお、拡張コネクタ５８を介して端末装置７に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【０１３３】
コーデックＬＳＩ６６は、ゲーム装置３へ送信するデータに対する圧縮処理、および、ゲーム装置３から送信されたデータに対する伸張処理を行う回路である。コーデックＬＳＩ６６には、ＬＣＤ５１、カメラ５６、サウンドＩＣ６８、無線モジュール７０、フラッシュメモリ７３、および赤外線通信モジュール７２が接続される。また、コーデックＬＳＩ６６はＣＰＵ７７と内部メモリ７８を含む。端末装置７はゲーム処理自体を行なわない構成であるが、端末装置７の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ７３に格納されたプログラムを内部メモリ７８に読み出してＣＰＵ７７が実行することで、端末装置７が起動する。また、内部メモリ７８の一部の領域はＬＣＤ５１のためのＶＲＡＭとして使用される。
【０１３４】
カメラ５６は、ゲーム装置３からの指示に従って画像を撮像し、撮像した画像データをコーデックＬＳＩ６６へ出力する。また、コーデックＬＳＩ６６からカメラ５６へは、画像の撮像指示等、カメラ５６に対する制御指示が出力される。なお、カメラ５６は動画の撮影も可能である。すなわち、カメラ５６は、繰り返し撮像を行って画像データをコーデックＬＳＩ６６へ繰り返し出力することも可能である。
【０１３５】
サウンドＩＣ６８は、スピーカ６７およびマイク６９に接続され、スピーカ６７およびマイク６９への音声データの入出力を制御する回路である。すなわち、コーデックＬＳＩ６６から音声データを受け取った場合、サウンドＩＣ６８は当該音声データに対してＤ／Ａ変換を行って得られる音声信号をスピーカ６７へ出力し、スピーカ６７から音を出力させる。また、マイク６９は、端末装置７に伝わる音（ユーザの音声等）を検知して、当該音を示す音声信号をサウンドＩＣ６８へ出力する。サウンドＩＣ６８は、マイク６９からの音声信号に対してＡ／Ｄ変換を行い、所定の形式の音声データをコーデックＬＳＩ６６へ出力する。
【０１３６】
赤外線通信モジュール７２は、赤外線信号を発光し、他の装置との間で赤外線通信を行う。ここでは、赤外線通信モジュール７２は、例えばＩｒＤＡの規格に従った赤外線通信を行う機能と、モニタ２を制御するための赤外線信号を出力する機能とを備える。
【０１３７】
コーデックＬＳＩ６６は、カメラ５６からの画像データと、マイク６９からの音声データと、ＵＩコントローラ６５からの端末操作データとを無線モジュール７０を介してゲーム装置３へ送信する。本実施形態では、コーデックＬＳＩ６６は、画像データおよび音声データに対して、コーデックＬＳＩ２７と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール７０に出力される。無線モジュール７０にはアンテナ７１が接続されており、無線モジュール７０はアンテナ７１を介してゲーム装置３へ上記送信データを送信する。無線モジュール７０は、ゲーム装置３の端末通信モジュール２８と同様の機能を有している。すなわち、無線モジュール７０は、例えばＩＥＥＥ８０２．１１ｎの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【０１３８】
以上のように、端末装置７からゲーム装置３へ送信される送信データには、操作データ（端末操作データ）、画像データ、および音声データが含まれる。なお、拡張コネクタ５８を介して端末装置７に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。コーデックＬＳＩ６６は、赤外線通信モジュール７２による赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置３へ送信してもよい。
【０１３９】
また、上述のように、ゲーム装置３から端末装置７へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ７１および無線モジュール７０を介してコーデックＬＳＩ６６に受信される。コーデックＬＳＩ６６は、受信した画像データおよび音声データを伸張する。伸張された画像データはＬＣＤ５１へ出力され、画像がＬＣＤ５１に表示される。また、伸張された音声データはサウンドＩＣ６８へ出力され、サウンドＩＣ６８はスピーカ６７から音を出力させる。
【０１４０】
また、ゲーム装置３から受信されるデータに制御データが含まれる場合、コーデックＬＳＩ６６およびＵＩコントローラ６５は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置７が備える各構成要素（本実施形態では、カメラ５６、タッチパネルコントローラ６１、マーカ部５５、各センサ６２〜６４、赤外線通信モジュール７２、およびバイブレータ７９）に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止（停止）させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置７からゲーム装置３へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部５５は赤外ＬＥＤであるので、制御は単に電力の供給のＯＮ／ＯＦＦでよい。
【０１４１】
また、ゲーム装置３は、上記赤外線通信モジュール７２の出力を制御することによって、モニタ２の動作を制御することが可能である。すなわち、ゲーム装置３は、モニタ２を制御するための制御指令に対応する赤外線信号を赤外線通信モジュール７２に出力させるための指示（上記制御データ）を端末装置７に出力する。この指示に応じて、コーデックＬＳＩ６６は、上記制御指令に対応する赤外線信号を赤外線通信モジュール７２に出力させる。ここで、モニタ２は赤外線信号を受光可能な赤外線受光部を備えている。赤外線通信モジュール７２から出力された赤外線信号が赤外線受光部によって受光されることで、モニタ２は当該赤外線信号に応じた動作を行う。なお、ゲーム装置３からの上記指示は、赤外線信号のパターンを示すものであってもよいし、端末装置７が赤外線信号のパターンを記憶している場合には、当該パターンを示す指示であってもよい。
【０１４２】
以上のように、端末装置７は、タッチパネル５２、アナログスティック５３、および操作ボタン５４といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
【０１４３】
また、端末装置７は、端末装置７の動き（位置や姿勢、あるいは、位置や姿勢の変化を含む）を算出するためのセンサとして、磁気センサ６２、加速度センサ６３、およびジャイロセンサ６４を備えるが、他の実施形態においては、これらのセンサのうち１つまたは２つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
【０１４４】
また、端末装置７は、カメラ５６およびマイク６９を備える構成であるが、他の実施形態においては、カメラ５６およびマイク６９を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【０１４５】
また、端末装置７は、端末装置７とコントローラ５との位置関係（コントローラ５から見た端末装置７の位置および／または姿勢等）を算出するための構成としてマーカ部５５を備える構成であるが、他の実施形態ではマーカ部５５を備えていない構成としてもよい。また、他の実施形態では、端末装置７は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、コントローラ５がマーカ部を備え、端末装置７が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置６は赤外ＬＥＤに代えて、撮像素子を備える構成としてもよい。
【０１４６】
［５．パノラマ動画の再生］
次に、ゲームシステム１において実行される動画再生の動作について説明する。ゲームシステム１は、内部メモリに記憶されたパノラマ動画を読みだして再生し、端末装置７に表示する。端末装置７には、動画の再生の進行にしたがって、所定時間ごとに、パノラマ動画の各フレームが順次表示されるが、各フレームのパノラマ画像の全体が端末装置７に表示されるのではなく、その一部が表示される。パノラマ画像のうち表示される領域（以下、単に「表示領域」と呼ぶこともある）は、そのときの端末装置７の姿勢に応じて変更される。以下、具体的に説明する。
【０１４７】
パノラマ動画の再生開始を指示すると、端末装置７にはパノラマ動画の先頭フレームのパノラマ画像のうちデフォルトの領域が表示される。このデフォルトの領域は、パノラマ画像のうちパノラマ撮影の基準方向（通常は、撮影機材の進行方向）に対応する領域とするのが好ましく、典型的には、パノラマ画像の中央の領域とするのが好ましい。その後、パノラマ動画の再生が継続するが、端末装置７の姿勢を変化せずに保持する限り、端末装置７には各フレームのパノラマ画像のうちのデフォルトの範囲が表示される。そして、パノラマ動画の再生継続中に端末装置７の姿勢を変更すると、表示領域が変更される。
【０１４８】
より具体的には、端末装置７を把持した使用者が、端末装置７の画面を自分の方に向けたまま、自分を中心にして端末装置７を上下左右に動かすことにより、表示領域が上下左右に変更される。ここで、使用者が端末装置７の画面を自分の方に向けたまま、端末装置７を自分を中心にして上方向に動かすと、端末装置７の画面は斜め下方向または下方向を向き、使用者は自分より上にある端末装置７の画面を下から見るような位置関係となる。このとき、表示領域は、デフォルト領域よりも、または、動かす前の表示領域よりも、上側の領域となる。また、使用者が端末装置７の画面を自分の方に向けたまま、端末装置７を自分を中心にして下方向に動かすと、端末装置７の画面は斜め上方向または上方向を向き、使用者は自分より下にある端末装置７の画面を上から見るような位置関係になる。このとき、表示領域は、デフォルト領域よりも、または、動かす前の表示領域よりも下側の領域となる。また、使用者が端末装置７の画面を自分の方に向けたまま、端末装置７を自分を中心にして右方向に動かすと、端末装置７の画面は動かす前よりも左方向を向き、表示領域は、デフォルト領域よりも、または、動かす前の表示領域よりも、右側の領域となる。また、使用者が端末装置７の画面を自分の方に向けたまま、端末装置７を自分を中心にして左方向に動かすと、端末装置７の画面は動かす前よりも右方向を向き、表示領域は、デフォルト領域よりも、または、動かす前の表示領域よりも左側の領域となる。このような動作が毎フレームおこなわれることにより、端末装置７に表示される領域は端末装置７の姿勢に応じて随時変更される。
【０１４９】
また、端末装置７を把持した使用者が、端末装置７の画面に垂直な軸まわりに端末装置７を回転させると、表示領域は回転される。
【０１５０】
なお、本実施例では端末装置７の３軸まわりの姿勢に応じて、表示領域を上下左右に移動かつ回転するが、端末装置７の１軸まわりの姿勢に応じて、表示領域を左右方向のみ移動、または、上下方向のみ移動させてもよい。また、端末装置７の２軸まわりの姿勢に応じて、表示領域を上下左右に移動、または、表示領域を上下方向に移動かつ回転、表示領域を左右方向に移動かつ回転させてもよい。
【０１５１】
なお、端末装置７の基準姿勢からの変位だけ、表示領域をデフォルトの領域から変位させてもよい。そうすることによって、端末装置７の姿勢が基準姿勢から変化したときには表示領域はデフォルトの領域から変位するが、その後再び基準姿勢に戻ったときに、表示領域はデフォルトの領域に戻ることになる。
【０１５２】
また、使用者が端末装置７を自分を中心にして左右方向に１周（３６０度回転）したときには、表示領域は同じ領域に戻るようにするのが好ましい。
【０１５３】
［６．第１の実施形態の説明］
本発明に係る第１の実施形態として、上述したような動作は、各フレームのパノラマ画像を仮想空間中の球体モデル（完全球体モデル、非完全体モデル）または円柱モデルの内面にテクスチャとして貼りつけて、当該モデルの内側から仮想カメラで撮影し、当該仮想カメラの撮影方向を端末装置７の姿勢に応じて変更することにより実現される。
【０１５４】
図１１は、完全球パノラマ画像を使用する場合の実施例を示す図である。完全球パノラマ画像を使用する場合、完全球モデル１００が仮想空間に配置される。そして、当該完全球モデル１００の内面の全域に完全球パノラマ画像がテクスチャとして貼りつけられる。
【０１５５】
本実施例においては、パノラマ画像は、正距円筒図法(ｅｑｕｉｒｅｃｔａｎｇｕｌａｒ)によるフォーマットを使用する。このフォーマットによるパノラマ画像を球体モデルの内面に貼りつけるマッピング手法は周知であるのでここでは省略する。
【０１５６】
当該モデルの中心に仮想カメラ１０１が配置され、この仮想カメラ１０１により球体モデル１００の内面の一部領域が撮影されることにより、パノラマ画像の一部領域がレンダリングされる。この仮想カメラ１０１は後述するように、端末装置７の姿勢に応じて撮影方向が変更される。なお、仮想カメラ１０１の位置は固定である。
【０１５７】
なお、完全球パノラマ画像の場合、カメラの足やカメラマンの身体の一部などがパノラマ画像に写ってしまうことがある。その場合には、以下のいずれか方法を採用することができる。
・パノラマ画像のうちのカメラの足などを画像処理により消去する。
・パノラマ画像のうちの最下部（または最上部）から一定範囲（典型的には矩形領域）を他の画像（例えば、黒画像）に置き換える
【０１５８】
図１２から図１５は、非完全球パノラマ画像を使用する場合の実施例を示す図である。非完全球パノラマ画像は、撮影時にカメラの足などが写らないように撮影されたパノラマ画像や、撮影時は完全球パノラマ画像として撮影されたが、撮影された完全球パノラマ画像の最下部（または最上部）から一定範囲（典型的には矩形領域）を切り取ることにより生成されたものなどがある。
【０１５９】
非完全球パノラマ画像は、典型的には、下方に死角のあるもの（下方向の一定の範囲の画角の撮影情報を欠くもの）と上方に死角のあるもの（上方向の一定の範囲の画角の撮影情報を欠くもの）とがある。
【０１６０】
図１２および図１３は、下方に死角のある非完全球パノラマ画像を使用する場合の実施例である。図１２に示す方法、または、図１３に示す方法が選択的に使用される。
【０１６１】
図１２の実施例と図１３の実施例とでは、いずれも、完全球モデル１００が仮想空間に配置される。そして、パノラマ画像は、完全球モデル１００のうちの下部領域を除く部分１００ａの内面（上部球面部分の内面）に貼りつけられる。より具体的には、完全球モデル１００が仮想空間の原点に配置され、上下方向がＹ軸の正負方向であるとして、完全球モデルのうちＹ＞Ｙ１（負の値）の部分の内面に貼りつけられる。なお、Ｙ１の値は死角の大きさに応じて決定する。より具体的には、死角が大きいときにはＹ１の値は大きい値（０に近い値）とし、死角が小さいときにはＹ１の値は小さい値（０から遠い値）とする。
【０１６２】
ここで、仮想カメラ１０１の視野範囲にＹ＜Ｙ１の部分が入る場合、テクスチャが何も貼られていないモデルが撮影されてしまう。そこで、図１２の実施例では、完全球モデル１００のうちの下部領域１００ｂの内面（左上がり斜線部分の球面部分の内面）に所定のテクスチャを貼りつける。より具体的には、完全球モデルのうちＹ＜Ｙ１（負の値）の部分の内面に貼りつけられる。「所定のテクスチャ」は単色画像（例えば、黒画像）であってもよいし、地面や床や地表などを表現した写真やＣＧ画像であってもよい。また、動画であってもよいし、所定条件により（一定時間ごと、シーンの切替時など）、他の画像に切り替えてもよい。
【０１６３】
一方、図１３の実施例では、球体モデル１００のうちパノラマ画像が貼りつけられる部分の開口部に、当該開口部をふさぐような平面モデルを配置して、当該平面モデルに上記「所定のテクスチャ」を貼りつける。より具体的には当該平面モデルの「球体モデルの中心側の面」に貼りつける。図１３の例では、Ｙ＝Ｙ１の位置にＺＸ面に平行に円板モデル１０２（図１３の左上がり斜線部分）が配置される。なお、この円板モデルの半径は、球体モデルの表面に接するように設定される。
【０１６４】
このように、死角部分に「所定のテクスチャ」を貼りつけることによって、仮想カメラが３６０度いずれの方向を向いた場合でも正しくレンダリング画像を生成することができる。また、図１３の実施例では「所定のテクスチャ」を平面モデルに貼りつけるので、「所定のテクスチャ」を通常の平面画像として用意すればよい。
【０１６５】
そして、図１２の実施例と図１３の実施例とでは、いずれも、図１１と同様、球体モデルの中心に仮想カメラ１０１が配置され、この仮想カメラ１０１により球体モデル１００の内面の一部領域が撮影されることにより、パノラマ画像の一部領域がレンダリングされる。この仮想カメラ１０１は後述するように、端末装置７の姿勢に応じて撮影方向が変更される。なお、仮想カメラ１０１の位置は固定である。
【０１６６】
図１４および図１５は、上方に死角のある非完全球パノラマ画像を使用する場合の実施例である。図１４または図１５に示す方法が選択的に使用される。
【０１６７】
図１４の実施例と図１５の実施例とでは、いずれも、完全球モデル１００が仮想空間に配置される。そして、パノラマ画像は、完全球モデル１００のうちの上部領域を除く部分１００ｃの内面（下部球面部分の内面）に貼りつけられる。より具体的には、完全球モデル１００が仮想空間の原点に配置され、上下方向がＹ軸の正負方向であるとして、完全球モデルのうちＹ＜Ｙ２（正の値）の部分の内面に貼りつけられる。なお、Ｙ２の値は死角の大きさに応じて決定する。より具体的には、死角が大きいときにはＹ２の値は小さい値とし、死角が小さいときにはＹ２の値は大きいとする。
【０１６８】
ここで、仮想カメラ１０１の視野範囲にＹ＞Ｙ２の部分が入る場合、テクスチャが何も貼られていないモデルが撮影されてしまう。そこで、図１４の実施例では、完全球モデル１００のうちの上部領域１００ｄの内面（左上がり斜線部分の球面部分の内面）に所定のテクスチャを貼りつける。より具体的には、完全球モデルのうちＹ＜Ｙ２（正の値）の部分の内面に貼りつけられる。「所定のテクスチャ」は単色画像（例えば、黒画像）であってもよいし、空や宇宙や天井などを表現した写真やＣＧ画像であってもよい。また、動画であってもよいし、所定条件により（一定時間ごと、シーンの切替時など）、他の画像に切り替えてもよい。
【０１６９】
一方、図１５の実施例では、球体モデル１００のうちパノラマ画像が貼りつけられる部分の開口部に、当該開口部をふさぐような平面モデルを配置して、当該平面モデルに上記「所定のテクスチャ」を貼りつける。より具体的には当該平面モデルの「球体モデルの中心側の面」に貼りつける。図１５の例では、Ｙ＝Ｙ２の位置にＺＸ面に平行に円板モデル１０３（図１５の左上がり斜線部分）が配置される。なお、この円板モデルの半径は、球体モデルの表面に接するように設定される。
【０１７０】
そして、図１４の実施例と図１５の実施例とでは、いずれも、球体モデルの中心に仮想カメラ１０１が配置され、この仮想カメラ１０１により球体モデル１００の内面の一部領域が撮影されることにより、パノラマ画像の一部領域がレンダリングされる。この仮想カメラ１０１は後述するように、端末装置７の姿勢に応じて撮影方向が変更される。なお、仮想カメラ１０１の位置は固定である。
【０１７１】
図１６は、「全周パノラマ画像であって、左右方向に３６０度の画角を有し、上下方向の画角は所定角度（１８０度より小さい）」のパノラマ画像（以下、「左右のみ全周パノラマ画像」と呼ぶ）を使用する場合の実施例である。
【０１７２】
左右のみ全周パノラマ画像を使用する場合、円柱モデル１０４が仮想空間に配置される。そして、パノラマ画像は、この円柱モデル１０４のうちの側面の内面の全域に貼りつけられる。
【０１７３】
ここで、図１６に示すように、仮想カメラ１０１の上下方向の視野角は、パノラマ画像の画角と同じに設定される。それゆえ、端末装置７には、パノラマ画像の上から下まで全体が表示される（ただし、言うまでもないが、左右方向についてはその一部が表示される）。
【０１７４】
そして、円柱モデル１０４の中心に仮想カメラ１０１が配置され、この仮想カメラ１０１により円柱モデル１０４の内面の一部領域が撮影されることにより、パノラマ画像の一部領域がレンダリングされる。この仮想カメラ１０１は後述するように、端末装置７の左右方向の姿勢に応じて撮影方向が変更される。しかしながら、端末装置７の上下方向の姿勢に応じた撮影方向の変更は行われない。なお、仮想カメラ１０１の位置は固定である。
【０１７５】
なお、円柱モデルを使用する場合でも、仮想カメラ１０１の上下方向の視野角をパノラマ画像の画角より小さく設定して、その一部を表示するようにしてもよい。そして、端末装置７の上下方向の姿勢に応じた撮影方向の変更をおこなうようにしてもよい。また、その場合、円柱モデルの上面および／または底面の内面に「所定のテクスチャ」を貼り付けるようにしてもよい。
【０１７６】
図１７は、「全周パノラマ画像であって、左右方向に３６０度より小さい画角（好ましくは１８０度以上）を有し、上下方向の画角は所定角度（１８０度より小さい）」のパノラマ画像（以下、「左右のみパノラマ画像」と呼ぶ）を使用する場合の実施例である。
【０１７７】
左右のみパノラマ画像を使用する場合、図１６で示したような円柱モデル１０４が仮想空間に配置される。そして、パノラマ画像は、この円柱モデル１０４のうちの側面の内面のうち図１７で示す範囲１０４ａに貼りつけられる。なお、範囲１０４ａはパノラマ画像の左右方向の画角に応じて決定される。より具体的には、画角が大きいほど範囲１０４ａは大きくなる。典型的には、画角と範囲１０４ａのＹ軸から見た角度は一致する。
【０１７８】
なお、円柱モデル１０４の側面の内面のうち範囲１０４ａ以外の部分については、上記「所定のテクスチャ」が貼りつけられる。
【０１７９】
仮想カメラの上下方向の視野角、配置位置、および、撮影方向の制御については、図１６の実施例と同様である。
【０１８０】
なお、図１１〜図１７のいずれの実施例においても、仮想カメラの左右方向についての視野角は、パノラマ画像の左右方向の画角よりも小さく設定され、典型的には、２５度〜９０度（より好ましくは３０度〜６０度）に設定される。また、図１１〜図１５の実施例においては、仮想カメラの上下方向についての視野角は、パノラマ画像の上下方向の画角よりも小さく設定され、典型的には、２０度〜６０度（より好ましくは２０度〜４０度）に設定される。
【０１８１】
また、図１１〜図１７のいずれの実施例においても、仮想カメラ１０１の初期姿勢は、仮想空間のＸ軸、Ｙ軸、Ｚ軸に一致するように配置される。より具体的には、仮想カメラ１０１の撮影方向（ｚ軸）がＺ軸に一致し、左右方向（ｘ軸）がＸ軸に一致し、上下方向（ｙ軸）がＹ軸に一致するように配置される（当該初期姿勢となった仮想カメラ１０１のｘ軸、ｙ軸、ｚ軸を、それぞれｘ０軸、ｙ０軸、ｚ０軸とする）。
【０１８２】
図１８Ａ〜図１８Ｃは、端末装置７の姿勢に応じた仮想カメラ１０１の撮影方向の制御を示す図である。図１８Ａを参照して、まず、端末装置７の基準姿勢（ｘｎ，ｙｎ，ｚｎ）が設定される。より具体的には、動画再生の開始時または開始前の所定タイミングにおける端末装置７の姿勢が基準姿勢に設定される。より具体的には、動画再生の開始時の端末装置７の姿勢を基準姿勢として設定してもよいし、動画再生の開始前にユーザが所定の操作をしたときの端末装置７の姿勢を基準姿勢として設定してもよいし、予め定める固定的な姿勢を基準姿勢として設定してもよいし、予め定める固定的な複数の姿勢のうちユーザが選択してもよい。
【０１８３】
なお、本実施例では、端末装置７の姿勢はジャイロセンサ６４の出力値に基づいて算出されるので、基準姿勢の設定は、ジャイロセンサ６４により算出される姿勢値のリセットである。しかしながら、基準姿勢の設定は、センサの種類によって適宜の処理を実行してよい。
【０１８４】
基準姿勢が設定された後、図１８Ｂに示すように、ジャイロセンサ６４の出力値に基づいて端末装置７の姿勢（ｘｐ，ｙｐ，ｚｐ）が逐次算出される。なお、ジャイロセンサ６４の代わりに、加速度センサ６３の値を用いて姿勢を算出することもできるし、ジャイロセンサ６４と加速度センサ６３との両方の値を用いて姿勢を算出することもできる。
【０１８５】
そして、図１８Ｃに示すように、端末装置７の姿勢（ｘｐ，ｙｐ，ｚｐ）の基準姿勢（ｘｎ，ｙｎ，ｚｎ）に対する姿勢変化（ｘｎ軸まわりの回転、ｙｎ軸まわりの回転、ｚｎ軸まわりの回転）の方向に応じて、仮想カメラ１０１の姿勢を、初期姿勢（基準姿勢；前述の通り、仮想カメラ１０１のｘ軸、ｙ軸、ｚ軸が仮想空間のＸ軸、Ｙ軸、Ｚ軸と一致するｘ０軸、ｙ０軸、ｚ０軸）から当該姿勢変化と同じ方向に変化させる（Ｘ軸まわりの回転、Ｙ軸まわりの回転、Ｚ軸まわりの回転）。なお、端末装置７の姿勢（ｘｐ，ｙｐ，ｚｐ）の基準姿勢（ｘｎ，ｙｎ，ｚｎ）に対する姿勢変化量（ｘｎ軸まわりの回転量、ｙｎ軸まわりの回転量、ｚｎ軸まわりの回転量）に応じて、仮想カメラ１０１の姿勢を、初期姿勢（基準姿勢；前述の通り、仮想カメラ１０１のｘ軸、ｙ軸、ｚ軸が仮想空間のＸ軸、Ｙ軸、Ｚ軸と一致するｘ０軸、ｙ０軸、ｚ０軸）から当該姿勢変化量と同じ量だけ変化させるようにするのが好ましい。
【０１８６】
図１９は、本実施例におけるパノラマ画像データファイルのファイルフォーマットを示す図である。本実施例のファイルは、１つのファイル内に、以下を含む。
（１）パノラマタイプ情報Ｔ
（２）フレームごとの情報として、フレーム番号Ｎ、パノラマ画像データＩｐ、補完画像データＩｃ、位置情報Ｐ、向き情報Ｄｉ、マップ画像データＭ
【０１８７】
パノラマタイプ情報Ｔは、パノラマ画像の種類を表す情報であり、具体的には、完全球、非完全球（下方死角有)、非完全球（上方死角有)、左右のみ全周、左右のみパノラマなどを識別する情報であり、たとえば、各タイプに割り当てられる識別番号であってもよい。
【０１８８】
フレームごとの情報は、フレーム番号（１，２，３・・・）ごとに各種データが記録される。パノラマ画像データＩｐは、説明が不要であるので省略する。補完画像データＩｃは、前述した「所定のテクスチャ」として使用されるデータであり、パノラマ画像の死角部分を補完するためのデータである。また、位置情報Ｐは、当該フレームにおけるパノラマ画像の撮影場所を示す情報であり、マップ画像Ｍ上の座標を示すデータであってもよいし、ＧＰＳのような絶対的な地点情報であってもよい。また、向き情報Ｄｉは、当該フレームにおけるパノラマ画像の撮影方向を示す情報であり、マップ画像Ｍ上の向きを示すデータであってもよいし、ＧＰＳのような絶対的な方位情報であってもよい。また、マップ画像Ｍは、パノラマ撮影が行われた地域を表す画像データであり、写真であってもよいし、ＣＧであってもよい。典型的には、当該地域を俯瞰的に表現した画像が用いられる。マップ画像Ｍは、後述するようにモニタ２に表示されるデータである。なお、マップ画像Ｍは、そのフレームにおけるパノラマ撮影の基準方向が上方向となるような画像とするのが好ましい。
【０１８９】
なお、補完画像は、フレームごとのデータがなくてもよい。例えば、１つの動画ファイルに対して、１つの補完画像を記録してもよいし、複数のフレームに対して１つの補完画像を記録してもよい。マップ画像についても同様である。また、位置情報および向き情報は、複数のフレームに対して１つの情報を記録してもよい。
【０１９０】
図２０ないし図２２は、ゲーム装置３の処理動作を示すフローチャートである。このフローチャートで示される各ステップの処理は、ゲーム装置３内の不揮発メモリ、または、光ディスク４に記憶されるプログラム（ブラウザプログラム）をＣＰＵ１０が実行することにより実現される。
【０１９１】
まず、図２０を参照して、ステップＳ１１において、ゲーム装置３は、パノラマ画像ファイルを取得する。具体的には、ゲーム装置３内の不揮発メモリから、または、ゲーム装置３に装着された記憶媒体から、または、ネットワークを介して所定のサーバーから、ファイルを取得する。
【０１９２】
ステップＳ１１の後、ステップＳ１２において、ステップＳ１１で取得したファイル内のパノラマタイプ情報に基づいて、パノラマタイプに対応するモデルを仮想空間にその中心が原点に位置するように配置する。具体的には、全球パノラマ（完全球、非完全球）の場合には、球体モデルを配置する。左右のみ全周、左右のみパノラマ等の場合には、円柱モデルを配置する。また、前述した図１３および図１５の実施例の場合には、円板モデルも配置する。
【０１９３】
ステップＳ１２の後、ステップＳ１３において、第１仮想カメラをモデルと同じ仮想空間に配置する。本実施例では、第１仮想カメラの位置は仮想空間の原点とし、第１仮想カメラの姿勢は、カメラのｘｙｚ軸が仮想空間のＸＹＺ軸に一致するように配置する。なお、本実施例では、第１仮想カメラの姿勢を、ＸＺ平面に平行になるようにしたが、ＸＺ平面と所定角度を有するようにしてもよい。なお、このときの、仮想空間における仮想カメラの姿勢を「カメラ基準姿勢」と呼ぶ。第１仮想カメラは端末装置７に出力される画像を生成するためのカメラであり、図１１〜図１７における仮想カメラ１０１は第１仮想カメラである。
【０１９４】
ステップＳ１３の後、ステップＳ１４において、第２仮想カメラを同じ仮想空間に配置する。より具体的には、第２仮想カメラの位置および姿勢は第１仮想カメラと同じに設定される。
【０１９５】
ステップＳ１４の後、ステップＳ１５において、端末装置７の基準姿勢を設定する。より具体的には、端末装置７またはモニタ２に、基準姿勢を設定する旨の表示をおこない、かつ、所定ボタンを押すことを促す表示をおこなうとともに、当該所定ボタンの入力待ちをおこなう。そして、当該所定ボタンが操作されたときの端末装置７の姿勢を基準姿勢として設定する。このときの端末装置７の姿勢を「ディスプレイ基準姿勢」と呼ぶ。
【０１９６】
ステップＳ１５の後、図２１のステップＳ１６において、ｎを１に設定する。ｎはフレーム番号である。ステップＳ１６の後、パノラマ動画の再生が終了するまで、ステップＳ１７からステップＳ３０の処理が所定周期毎に繰り返される。
【０１９７】
ステップＳ１７において、パノラマ画像ファイル内の情報のうちフレームｎの情報（パノラマ画像Ｉｐ、補完画像Ｉｃ、位置情報Ｐ、向き情報Ｄｉ、マップ情報Ｍ）を取得する。
【０１９８】
ステップＳ１７の後、ステップＳ１８において、ステップＳ１７で取得したパノラマ画像Ｉｐを、ステップＳ１２で配置したモデルにテクスチャとして貼りつける。なお、図１１〜図１７を用いて前述したとおり、ステップＳ１１で取得したパノラマタイプ情報に基づいて、貼りつける場所を決定する。
【０１９９】
より具体的には、ステップＳ１８においては、パノラマ画像の上下方向を第１仮想カメラの基準姿勢の上下方向（本実施例では、ｙ０軸正負方向であり仮想空間のＹ軸の正負方向）に一致させ、かつ、パノラマ画像の左右方向を第１仮想カメラの基準姿勢の左右方向（本実施例では、ｘ０軸正負方向であり仮想空間のＸ軸の正負方向）に一致させ、かつ、パノラマ画像の中心を第１仮想カメラの基準姿勢における撮影方向に一致するように貼り付ける。本実施例では、第１仮想カメラの基準姿勢となるｘ０軸、ｙ０軸、ｚ０軸は仮想空間のＸ軸、Ｙ軸、Ｚ軸に平行であるので、パノラマ画像の中心が、ステップＳ１２で配置されるモデルのＺ軸との交点のうち（Ｚ＞０）の点と一致するように貼り付ける。なお、パノラマ画像の中心は、第１仮想カメラの基準姿勢における撮影方向（仮想カメラのＺ軸方向（奥行方向））とステップＳ１２で配置されるモデルの交点と一致するように貼り付けるのが好ましい。
【０２００】
前述した図１２〜図１５、および図１７の実施例の場合には、ステップＳ１８の後、ステップＳ１９において、ステップＳ１７で取得した補完画像Ｉｃを、図１２〜図１５および図１７を用いて前述したモデルに貼りつける。なお、図１１、図１６の実施例の場合には、ステップＳ１９の処理はおこなわれない。なお、補完画像の貼り付け方法（方向および中心位置）はステップＳ１８におけるパノラマ画像の貼り付け方法と同一である。
【０２０１】
ステップＳ１９の後（図１１、図１６の実施例の場合には、ステップＳ１８の後）、ステップＳ２０において端末装置７のジャイロセンサ６４の出力値を取得する。なお、端末装置７からはジャイロセンサの出力値が一定周期でゲーム装置３に送信されて記憶される。
【０２０２】
ステップＳ２０の後、ステップＳ２１において、ステップＳ２０において取得したデータを利用して、端末装置７の「ディスプレイ基準姿勢」からの回転方向および回転量（ステップＳ１５で初期化してからの回転方向および回転量）を算出する。例えば、上記ステップＳ２１では、ディスプレイ基準姿勢におけるｘ軸（図１８Ａのｘｎ）まわりの回転方向および回転量と、ｙ軸（図１８Ａのｙｎ）まわりの回転方向および回転量と、ｚ軸（図１８Ａのｚｎ）まわりの回転方向および回転量とがそれぞれ算出される。なお、回転方向は、回転量の正負により表すことができるので、データとしては回転量データのみでもよい。
【０２０３】
より具体的には、上記ステップＳ２１では、前回処理におけるステップＳ２１において算出された回転量に、今回ステップＳ２０で取得した角速度に基づく回転量を加えて、新たな回転量として算出する。
【０２０４】
ステップＳ２１の後、ステップＳ２２において、第１仮想カメラの仮想空間における姿勢を「カメラ基準姿勢」から、ステップＳ２１で算出された回転量だけ回転する。より具体的には、第１仮想カメラの姿勢を、「カメラ基準姿勢」から、ステップＳ２１で算出された端末装置７のｘｎ軸まわりの回転量と同じだけ仮想空間のＸ軸（図１８Ｃのｘ０）まわりに回転させ、かつ、端末装置７のｙｎ軸まわりの回転量と同じだけ仮想空間のＹ軸（図１８Ｃのｙ０）まわりに回転させ、かつ、端末装置７のｚｎ軸まわりの回転量と同じだけ仮想空間のＺ軸（図１８Ｃのｚ０）まわりに回転させる。なお、第２仮想カメラの姿勢は変化させない。
【０２０５】
ステップＳ２２の後、ステップＳ２３において、第１仮想カメラで仮想空間を撮影して画像生成し、端末装置７に無線出力する。
【０２０６】
ステップＳ２３の後、図２２のステップＳ２４において、マップモードか否かが判断される。マップモードとは、モニタ２にマップ画像Ｍを表示するモードであり、マップモードでない場合には、モニタ２にはパノラマ画像が表示される。なお、モニタ２に表示されるパノラマ画像は、第２仮想カメラで撮影された画像である。マップモードか非マップモードかは、ユーザが端末装置７の所定の操作部を操作することにより切り替えるようにしてもよい。
【０２０７】
ステップＳ２４においてマップモードであると判定されたときには、ステップＳ２５において、ステップＳ１７で取得した向き情報と第１仮想カメラの撮影方向（仮想空間のＸＺ平面に第１仮想カメラのｚ軸方向（奥行方向）を投影した方向）に基づいて、パノラマ画像のうち、現在、端末装置７に表示されている方向を算出する。具体的には、向き情報をマップ画像上における向きの情報とし、その向きを現在の第１仮想カメラの撮影方向の基準姿勢における撮影方向からの変化量だけ変化させた向きが、端末装置７に表示されている方向をマップ画像上で示す向きとなる。
【０２０８】
ステップＳ２５の後、ステップＳ２６において、ステップＳ１７で取得した位置情報、および、ステップＳ２５で算出した向き情報に基づいて、ステップＳ１７で取得したマップ画像上に、当該位置および当該向きを示すアイコンを合成する。
【０２０９】
ステップＳ２４においてマップモードでないと判定されたときには、ステップＳ２７において、第２仮想カメラで仮想空間を撮影して画像を生成する。
【０２１０】
ステップＳ２６またはステップＳ２７の後、ステップＳ２６またはステップＳ２７の画像をモニタ２に出力する。
【０２１１】
ステップＳ２８の後、ステップＳ２９において、ｎをインクリメントし、ステップＳ３０において最後のフレームを再生終了したか否かを判断し、最後のフレームを再生終了したときには処理を終了し、そうでなければ、ステップＳ１７に戻って、動画再生を繰り返す。
【０２１２】
［７．第２の実施形態の説明］
本発明に係る第２の実施形態では、第１の実機形態と同様に、表示装置（例えば、モニタ２および端末装置７）には、パノラマ動画の再生の進行にしたがって、記憶されているパノラマ動画の各フレームとなるパノラマ画像が所定時間毎に読み出されて順次表示される。そして、当該実施形態では、各フレームのパノラマ画像を仮想空間中の６面体モデルの内面にテクスチャとして貼りつけて、当該モデルの内側に配置された少なくとも１つの仮想カメラから当該内面を見ることによって、端末装置７に表示されるパノラマ画像が生成され、当該仮想カメラの方向を端末装置７の姿勢に応じて変更する。また、当該実施形態では、モニタ２に表示するためのパノラマ画像と端末装置７に表示されるパノラマ画像とは、記憶されているパノラマ動画からモニタ２および端末装置７に表示制御するタイミングで読み出した同じパノラマ画像を用いてそれぞれ生成され、結果的にパノラマ動画における時間軸が実質的に同じとなる画像がモニタ２および端末装置７にそれぞれ表示されることになる。そして、一例として、モニタ２に表示するためのパノラマ画像は、端末装置７に表示されるパノラマ画像より表示範囲が広い画像であり、例えば当該パノラマ画像における後述する全方位画像がモニタ２に表示される。他の例として、モニタ２に表示するためのパノラマ画像は、上記モデルの内側に固定された別の仮想カメラから当該モデルの内面を見た画像であり、例えば当該パノラマ画像における所定方向の画像がモニタ２に表示される。
【０２１３】
図２３は、フレーム毎のパノラマ画像を構成するパノラマ動画を撮像し、当該パノラマ動画をエンコードして記録するまでの処理の流れの一例を示す図である。
【０２１４】
一例として、現実世界のパノラマ動画を撮像する場合、撮影方向が互いに固定された複数の現実世界撮像カメラが用いられる。例えば、現実世界撮像カメラは、５角柱形状の支持部材の側面および上面からそれぞれ放射する方向を撮像方向としてそれぞれ１台ずつ、計６台固設されて設けられる。そして、上記側面の１つを前方として移動しながら、現実世界を６台の現実世界撮像カメラで撮像する。なお、上記前方となる側面（すなわち、移動しながら撮像する場合に進行方向に向かって設けられる側面）に設けられた撮像カメラを「正面前方カメラ」とし、当該移動の際に左前方を撮像方向として設けられる撮像カメラを「左前方カメラ」、当該移動の際に右前方を撮像方向として設けられる撮像カメラを「右前方カメラ」、当該移動の際に左後方を撮像方向として設けられる撮像カメラを「左後方カメラ」、当該移動の際に右後方を撮像方向として設けられる撮像カメラを「右後方カメラ」、当該移動の際に上方を撮像方向として設けられる撮像カメラを「上方カメラ」とする。そして、上記移動に応じて、時間軸が同じ画像がそれぞれの撮像カメラから得られ、「正面前方カメラ」から得られる画像を「正面前方カメラ画像」、「左前方カメラ」から得られる画像を「左前方カメラ画像」、「右前方カメラ」から得られる画像を「右前方カメラ画像」、「左後方カメラ」から得られる画像を「左後方カメラ画像」、「右後方カメラ」から得られる画像を「右後方カメラ画像」、「上方カメラ」から得られる画像を「上方カメラ画像」とする。
【０２１５】
なお、上述した現実世界撮像カメラの構成は一例であり、他の構成によって実現されてもよいことは言うまでもない。また、現実世界を移動することなく現実世界撮像カメラで撮像（すなわち、定点撮像）することによって、現実世界のパノラマ動画を撮像してもかまわない。
【０２１６】
それぞれの撮像カメラから得られた画像は、同じ時間軸の画像毎にパノラマ展開されて１つの全方位画像（パノラマ画像）に合成される。図２３で用いた全方位画像は、正面前方カメラ画像を中心として、左へ順に左前方カメラ画像および左後方カメラ画像を合成し、右へ順に右前方カメラ画像および右後方カメラ画像を合成して、さらに当該合成された５つのカメラ画像の上方領域に上方カメラ画像を合成し、それぞれのカメラ画像では死角となる方位（典型的には、下方であり図２３において斜線で示される領域）の画像については所定の画像（例えば、黒画像）を合成することによって生成されている。なお、複数の撮像カメラから得られた画像を合成して構成される全方位画像（パノラマ画像）については図２３で示した構成でなくてもよく、他の構成によって全方位画像を生成してもよい。なお、複数の撮像カメラから得られた画像からパノラマ画像を生成する手法については、既に周知であるためここでは詳細な説明を省略する。
【０２１７】
次に、時間毎に生成された全方位画像を６面体画像に変換され、所定の方式（例えば、Ｈ．２６４として標準化された動画データの圧縮符号化方式）で時間毎に変換された全ての６面体画像がエンコードされて光ディスク等の記憶媒体に記憶される。ここで、６面体画像とは、全方位画像（パノラマ画像）を正６面体モデルの内面に貼り付けてマッピングした際に、当該モデルの６面にそれぞれ生成される画像を示している。例えば、上記全方位画像を６面体画像に変換することによって、６つの画像（正面画像、左側面画像、右側面画像、背面画像、上面画像、および底面画像）に変換される。ここで、正面前方カメラ画像に対応する全方位画像における領域の少なくとも一部が、上記６つの画像のうちの正面画像に含められるように（例えば、当該領域の中心が正面画像の中心付近となるように）変換する。なお、６面体画像を生成するためのマッピング手法についても既に周知であるためここでは詳細な説明を省略する。
【０２１８】
なお、パノラマ動画をエンコードして記憶媒体に記憶する際、当該パノラマ動画を構成する複数のパノラマ画像がそれぞれエンコードされることになるが、Ｈ．２６４以外の圧縮符号化方式を用いてもよく、当該パノラマ画像がそれぞれエンコードされる方式はどのようなものでもよい。例えば、フレーム毎のパノラマ画像をフレーム間の依存関係がない状態でパノラマ画像毎に圧縮する方式（例えば、モーションＪＰＥＧ）でもよいし、前フレームとのパノラマ画像との差分を圧縮する方式（例えば、ＭＰＥＧ）でもよい。また、フレーム予測符号化方式を用いてパノラマ動画をエンコードする場合、フレーム間予測だけでなくフレーム内予測を用いる符号化方式を用いてもよい。
【０２１９】
また、パノラマ動画をエンコードして記憶媒体に記憶する際、当該パノラマ動画を再生する際に出力される音声を示す音声データを加えてもよい。例えば、現実世界のパノラマ動画を撮像する際に、撮像位置において録音された音や予め録音されたＢＧＭや効果音を、パノラマ動画の再生と同期させて出力する場合、当該音、ＢＧＭ、効果音等を示す音声データを当該パノラマ動画とともに記憶媒体に記憶してもよい。この場合、エンコードされたパノラマ動画データをデコードして再生する際に、当該パノラマ動画の再生と同期した音声を出力することが可能となる。
【０２２０】
図２４は、エンコードされたパノラマ動画データをデコードして表示するまでの処理の流れの一例を示す図である。なお、図２４に示した例では、端末装置７に仮想カメラから見た画像を表示し、モニタ２に全方位画像を表示する一例を用いている。
【０２２１】
所定の記憶媒体にエンコードされて記憶されたパノラマ動画は、上記方式によって、表示する時間（フレーム）毎の６面体画像にデコードされる。そして、６面体モデルの内面にテクスチャとしてそれぞれ対応する面に各フレームの６面体画像を貼り付け、当該６面体モデルの内側に配置された仮想カメラから見た６面体画像の一部領域をレンダリングしてフレーム毎に端末装置７に表示する。
【０２２２】
一例として、上記６面体モデルは、仮想空間の原点に配置される。そして、上下方向が仮想空間のＹ軸の正負方向であるとして、Ｙ軸に対して垂直に６面体モデルの上面（Ｙ軸正方向側）および底面（Ｙ軸負方向側）がそれぞれ配置される。また、左右方向が仮想空間のＸ軸の正負方向であるとして、Ｘ軸に対して垂直に６面体モデルの左側面（Ｘ軸正方向側）および右側面（Ｘ軸負方向側）がそれぞれ配置される。さらに、前後方向が仮想空間のＺ軸の正負方向であるとして、Ｚ軸に対して垂直に６面体モデルの正面（Ｚ軸正方向側）および背面（Ｚ軸負方向側）がそれぞれ配置される。そして、６面体モデルの正面、左側面、右側面、背面、上面、および底面のそれぞれの内面に、６面体画像の正面画像、左側面画像、右側面画像、背面画像、上面画像、および底面画像がテクスチャとしてそれぞれ貼り付けられる。
【０２２３】
そして、６面体モデルの中心（仮想空間の原点）に仮想カメラが配置され、当該仮想カメラから見た６面体モデルの内面の一部領域がパノラマ動画の一部領域としてレンダリングされる。上記仮想カメラは、後述するように端末装置７の姿勢に応じて視線方向が変更される。なお、第１の実施形態と同様に、上記仮想カメラの初期姿勢は、当該仮想カメラの左右方向、上下方向、および前後方向が、それぞれ仮想空間のＸ軸、Ｙ軸、Ｚ軸に一致するように配置される。より具体的には、上記仮想カメラの視線方向（ｚ軸正方向）がＺ軸正方向に一致し、上記仮想カメラの左方向（ｘ軸正方向）がＸ軸正方向に一致し、上記仮想カメラの上方向（ｙ軸正方向）がＹ軸正方向に一致するように配置される。これによって、仮想カメラの初期姿勢によって端末装置７に表示されるパノラマ画像は、６面体画像のうち正面画像の中央を少なくとも含む表示範囲となる。なお、端末装置７の姿勢によって仮想カメラの姿勢を制御する一例や初期姿勢および基準姿勢の設定については第１の実施形態と同様であるため、詳細な説明を省略する。
【０２２４】
また、上記デコードされた６面体画像は、１つの画像に合成されることによって上述した全方位画像にも変換され、フレーム毎にモニタ２に表示される。これによって、モニタ２には、端末装置７に表示されるパノラマ動画と実質的に時間軸が同じパノラマ動画が表示されることになり、当該パノラマ動画に対するモニタ２の表示範囲が端末装置７に表示される範囲より相対的に広いものとなる。
【０２２５】
なお、端末装置７に表示されているパノラマ画像（６面体画像）の範囲を示す画像を、モニタ２に表示する全方位画像に重畳表示してもよい。このように、モニタ２に端末装置７に表示されている画像範囲を表示することによって、モニタ２を見ているユーザが端末装置７を操作するユーザが見ている画像を知ることができたり、端末装置７を操作するユーザがモニタ２を見ることによってパノラマ画像全体と端末装置７に表示されているパノラマ画像の一部との位置関係を把握したりすることができる。
【０２２６】
なお、第２の実施形態では、デコードされた１つのパノラマ動画の少なくとも一部が複数の表示装置にそれぞれ表示され、当該複数の表示装置にはそれぞれ実質的に同じ時間軸のパノラマ動画が表示される。また、複数の表示装置は、それぞれの表示画面の方向がキャリブレーションされた後にパノラマ動画が表示されるため、それぞれの表示画面に表示されるパノラマ動画の範囲を、それぞれの表示装置の実空間における位置関係に基づいたものにすることが可能となる。例えば、モニタ２が配置されている方向をパノラマ動画の基準方向（正面方向）に設定した場合、モニタ２の表示画面の向きと端末装置７の表示画面の向きとが同じ場合には、端末装置７の表示画面に正面方向のパノラマ動画が表示される。そして、端末装置７の姿勢変化と同じように仮想カメラの姿勢が変化するため、モニタ２の方向を常に基準方向（正面方向）としてパノラマ動画で生成される仮想空間を、端末装置７の姿勢によって自由な方向を見ているような操作感覚をユーザに与えることができる。
【０２２７】
次に、ゲーム装置３において行われる処理の詳細を説明する。まず、図２５を参照して、処理において用いられる主なデータについて説明する。なお、図２５は、ゲーム装置３の内部メインメモリ１１ｅおよび／または外部メインメモリ１２（以下、２つのメインメモリを総称して、単にメインメモリと記載する）に記憶される主なデータおよびプログラムの一例を示す図である。
【０２２８】
図２５に示すように、メインメモリのデータ記憶領域には、パノラマ画像ファイルデータＤａ、端末操作データＤｂ、姿勢データＤｃ、仮想カメラデータＤｄ、仮想空間画像データＤｅ、および全方位画像データＤｆ等が記憶される。なお、メインメモリには、図２５に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メインメモリのプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【０２２９】
パノラマ画像ファイルデータＤａは、フレーム毎の情報として、６面体画像データＤａ１等を含んでいる。６面体画像データＤａ１は、フレーム番号Ｎ（１，２，３・・・）毎に、上述した６つの画像（正面画像、左側面画像、右側面画像、背面画像、上面画像、および底面画像）を示すデータを含んでいる。６面体画像データＤａ１は、所定の記憶媒体にエンコードされて記憶されたパノラマ動画を、上記方式によってデコードすることによって得られる。
【０２３０】
端末操作データＤｂは、端末装置７に対する操作内容を示すデータであり、操作ボタンデータＤｂ１および角速度データＤｂ２等を含んでいる。操作ボタンデータＤｂ１は、操作ボタン５４に対する操作内容を示すデータである。角速度データＤｂ２は、端末装置７に生じる角速度を示すデータであり、ジャイロセンサ６４から出力される角速度を示すデータである。
【０２３１】
姿勢データＤｃは、実空間における端末装置７の姿勢を示すデータであり、例えば基準姿勢からの端末装置７の回転量を示すデータである。
【０２３２】
仮想カメラデータＤｄは、６面体モデルの中央に配置される仮想カメラに関するデータである。
【０２３３】
仮想空間画像データＤｅは、上記仮想カメラから６面体モデルの内面を見た仮想空間画像を示すデータである。全方位画像データＤｆは、６面体画像データＤａ１が示す６面体画像を１つの画像に合成することによって生成される全方位画像を示すデータである。
【０２３４】
次に、図２６および図２７を参照して、ゲーム装置３において行われる処理の詳細を説明する。なお、図２６は、ゲーム装置３において実行される処理の前半の一例を示すフローチャートである。図２７は、ゲーム装置３において実行される処理の後半の一例を示すフローチャートである。ここで、図２６および図２７に示すフローチャートにおいては、ゲーム装置３における処理のうち、パノラマ動画を端末装置７およびモニタ２にそれぞれ表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。
【０２３５】
ＣＰＵ１０は、メインメモリ等を初期化し、ゲーム装置３内の不揮発メモリまたは光ディスク４に記憶される情報処理プログラムをメインメモリに読み込む。そして、ＣＰＵ１０によって当該情報処理プログラムの実行が開始される。図２６および図２７に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【０２３６】
なお、図２６および図２７に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をＣＰＵ１０が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０２３７】
図２６において、ＣＰＵ１０は、パノラマ画像ファイルを取得する（ステップＳ８１）。例えば、ＣＰＵ１０は、ゲーム装置３内の不揮発メモリ、ゲーム装置３に装着された記憶媒体、またはネットワーク等を介して他の装置から、パノラマ画像ファイルを取得し、パノラマ画像ファイルデータＤａに格納する。
【０２３８】
次に、ＣＰＵ１０は、パノラマ動画を貼り付けるための６面体モデルを、仮想空間にその中心が原点に位置するように配置し（ステップＳ８２）、次のステップに処理を進める。例えば、ＣＰＵ１０は、仮想空間に設定されたＸＹＺ軸に対して、上記６面体モデルの正面がＺ軸正方向側でＺ軸と垂直に交わり、背面がＺ軸負方向側でＺ軸と垂直に交わり、左側面がＸ軸正方向側でＸ軸と垂直に交わり、右側面がＸ軸負方向側でＸ軸と垂直に交わり、上面がＹ軸正方向側でＹ軸と垂直に交わり、底面がＹ軸負方向側でＹ軸と垂直に交わるように、上記６面体モデルを配置する（図２４に示す状態）。
【０２３９】
次に、ＣＰＵ１０は、仮想カメラを基準位置に基準姿勢で配置し（ステップＳ８３）、次のステップに処理を進める。例えば、ＣＰＵ１０は、仮想カメラの基準位置を仮想空間の原点（すなわち、６面体モデルの中央）とし、仮想カメラのｘｙｚ軸（ｘ軸正方向が仮想カメラの左方向、ｙ軸正方向が仮想カメラの上方向、ｚ軸正方向が仮想カメラの視線方向）が仮想空間のＸＹＺ軸に一致する姿勢を基準姿勢とする。そして、ＣＰＵ１０は、仮想カメラの基準位置および基準姿勢を用いて、仮想カメラデータＤｄを更新する。
【０２４０】
次に、ＣＰＵ１０は、端末装置７とモニタ２との姿勢調整をユーザに促し（ステップＳ８４）、姿勢調整が行われるのを待つ（ステップＳ８５）。例えば、ＣＰＵ１０は、端末装置７のＬＣＤ５１の向きとモニタ２の表示画面の向きとが同じになるように端末装置７の姿勢を調整し、当該姿勢になった場合に端末装置７の所定の操作ボタンを押下するように促す表示を、端末装置７および／またはモニタ２に表示する。そして、ＣＰＵ１０は、操作ボタンデータＤｂ１を参照して操作ボタン５４に対する操作内容を示すデータを取得し、当該データが所定の操作ボタンが押下されたことを示す場合に、上記姿勢調整が行われたと判断して、次のステップＳ８６に処理を進める。なお、端末装置７からは、操作ボタン５４の操作内容を示すデータが一定周期でゲーム装置３に送信されて、操作ボタンデータＤｂ１に格納されている。
【０２４１】
ステップＳ８６において、ＣＰＵ１０は、現時点の端末装置７の姿勢を基準姿勢に設定し、次のステップに処理を進める。例えば、ＣＰＵ１０は、姿勢データＤｃが示す端末装置７の姿勢（基準姿勢からの回転量）を初期化（各軸周りの回転量を０）して、端末装置７の基準姿勢を設定する。上記ステップＳ８４〜ステップＳ８６の処理によって、端末装置７のＬＣＤ５１の向きとモニタ２の表示画面の向きとが同じになるように姿勢調整された端末装置７の姿勢が、端末装置７の基準姿勢として設定されることになる。
【０２４２】
次に、ＣＰＵ１０は、フレーム数ｎを１に設定し（ステップＳ８７）、次のステップＳ９１（図２７参照）に処理を進める。
【０２４３】
図２７において、ＣＰＵ１０は、６面体画像データＤａ１のうち、フレームｎに対応する６面体画像を取得し（ステップＳ９１）、次のステップに処理を進める。
【０２４４】
次に、ＣＰＵ１０は、上記ステップＳ９１で取得した６面体画像を６面体モデルの内面にテクスチャとして貼りつけ（ステップＳ９２）、次のステップに処理を進める。例えば、図２４を用いて前述したとおり、６面体画像が６面体モデルの各内面にテクスチャとして貼りつけられる。
【０２４５】
次に、ＣＰＵ１０は、端末装置７のジャイロセンサ６４の出力値を取得し（ステップＳ９３）、次のステップに処理を進める。なお、端末装置７からは、ジャイロセンサ６４の出力値を示すデータが一定周期でゲーム装置３に送信されて、角速度データＤｂ２に格納されている。
【０２４６】
次に、ＣＰＵ１０は、上記ステップＳ９３において取得したデータを用いて、端末装置７の基準姿勢からの回転方向および回転量（ステップＳ８６で初期化してからの回転方向および回転量）を算出し（ステップＳ９４）、次のステップに処理を進める。例えば、上記ステップＳ９４では、端末装置７の基準姿勢におけるｘ軸（図１８Ａのｘｎ）まわりの回転方向および回転量と、ｙ軸（図１８Ａのｙｎ）まわりの回転方向および回転量と、ｚ軸（図１８Ａのｚｎ）まわりの回転方向および回転量とがそれぞれ算出されて、姿勢データＤｃを更新する。なお、回転方向は、回転量の正負により表すことができるので、姿勢データＤｃには回転量を示すデータのみ格納してもよい。例えば、ＣＰＵ１０は、上記ステップＳ９４では、前回処理におけるステップＳ９４において算出された回転量に、今回ステップＳ９４で取得した角速度データに基づく回転量を加えて、新たな回転量として算出する。
【０２４７】
次に、ＣＰＵ１０は、仮想カメラの仮想空間における姿勢を、基準姿勢からステップＳ９４で算出された回転量だけ回転させ（ステップＳ９５）、次のステップに処理を進める。例えば、ＣＰＵ１０は、仮想カメラの姿勢を、基準姿勢からステップＳ９４で算出された端末装置７のｘｎ軸まわりの回転量と同じだけ仮想空間のＸ軸（図１８Ｃのｘ０）まわりに回転させ、かつ、端末装置７のｙｎ軸まわりの回転量と同じだけ仮想空間のＹ軸（図１８Ｃのｙ０）まわりに回転させ、かつ、端末装置７のｚｎ軸まわりの回転量と同じだけ仮想空間のＺ軸（図１８Ｃのｚ０）まわりに回転させて、仮想カメラデータＤｄを更新する。
【０２４８】
次に、ＣＰＵ１０は、仮想カメラから見た６面体モデルの内面の画像（仮想空間画像）を生成し（ステップＳ９６）、次のステップに処理を進める。例えば、ＣＰＵ１０は、生成された仮想空間画像を示すデータを用いて、仮想空間画像データＤｅを更新する。
【０２４９】
次に、ＣＰＵ１０は、上記ステップＳ９１で取得した６面体画像を１つの画像に合成することによって全方位画像を生成し（ステップＳ９７）、次のステップに処理を進める。例えば、ＣＰＵ１０は、生成された全方位画像を示すデータを用いて、全方位画像データＤｆを更新する。なお、全方位画像の生成方法については、図２３および図２４を用いて説明した方法と同様であるため、ここでは詳細な説明を省略する。
【０２５０】
次に、ＣＰＵ１０は、仮想空間画像データＤｅに基づいた仮想空間画像を端末装置７へ送信し（ステップＳ９８）、次のステップに処理を進める。例えば、仮想空間画像データＤｅに基づいた仮想空間画像は、ＶＲＡＭ１１ｄに記憶された後、コーデックＬＳＩ２７に送られ、コーデックＬＳＩ２７によって所定の圧縮処理が行われる。さらに、圧縮処理が施された仮想空間画像のデータは、コーデックＬＳＩ２７によって端末通信モジュール２８に送られ、アンテナ２９を介して端末通信モジュール２８によって端末装置７へ送信される。ゲーム装置３から送信された仮想空間画像のデータは、端末装置７の無線モジュール７０によって受信され、コーデックＬＳＩ７８によって所定の伸張処理が行われる。そして、伸張処理が行われた仮想空間画像のデータは、ＬＣＤ５１に出力されて仮想空間画像が表示される。
【０２５１】
次に、ＣＰＵ１０は、全方位画像データＤｆに基づいた全方位画像をモニタ２へ出力し（ステップＳ９９）、次のステップに処理を進める。例えば、ＣＰＵ１０は、全方位画像データＤｆに基づいた全方位画像は、ＶＲＡＭ１１ｄに記憶された後、ＡＶ−ＩＣ１５へ送る。これに応じて、ＡＶ−ＩＣ１５は、全方位画像を示すデータを、ＡＶコネクタ１６を介してモニタ２へ出力する。これによって、全方位画像がモニタ２に表示される。
【０２５２】
次に、ＣＰＵ１０は、フレーム数ｎをインクリメントし（ステップＳ１００）、処理を終了するか否かを判定する（ステップＳ１０１）。処理を終了する条件としては、例えば、再生しているパノラマ動画における最後のフレームの画像の再生が終了したことや、ユーザが処理を終了する操作を行ったこと等がある。ＣＰＵ１０は、処理を終了しない場合に上記ステップＳ９１に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップＳ９１〜ステップＳ１０１の一連の処理は、ステップＳ１０１で処理を終了すると判定されるまで繰り返し実行される。
【０２５３】
［８．変形例］
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【０２５４】
上記実施形態においては、ゲームシステム１は端末装置７を１つのみ有する構成であったが、ゲームシステム１は複数の端末装置７を有する構成であってもよい。すなわち、ゲーム装置３は、複数の端末装置７とそれぞれ無線通信可能であり、画像のデータを各端末装置７へ送信し、ジャイロセンサ６４のデータを各端末装置７から受信するものであってもよい。そして、仮想空間に各端末装置７の仮想カメラを配置して、各端末装置７の姿勢に応じて各仮想カメラの姿勢を制御して、各仮想カメラから見た仮想空間の画像を各端末装置７に送信するようにすればよい。なお、ゲーム装置３は、複数の端末装置７のそれぞれと無線通信を行うが、このとき、ゲーム装置３は、各端末装置７との無線通信を時分割で行ってもよいし、周波数帯域を分割して行ってもよい。
【０２５５】
このように、複数の端末装置７を用いてパノラマ動画を表示する場合、モニタ２を用いなくてもかまわない。例えば、上述した第２の実施形態において複数の端末装置７（例えば、第１の端末装置と第２の端末装置）にそれぞれ同じパノラマ動画を実質的に同じ時間軸で再生して表示する場合を考える。この場合、上記ステップＳ８３において、２つの仮想カメラ（例えば、第１の仮想カメラと第２の仮想カメラ）を同じ基準位置に同じ基準姿勢で配置する。そして、ステップＳ８４において、第１の端末装置のＬＣＤ５１の向きと第２の端末装置のＬＣＤ５１の向きとが同じになるようにそれぞれの姿勢を調整し、当該姿勢になった場合に少なくとも一方の端末装置の所定の操作ボタンを押下するように促す表示をそれぞれの端末装置に表示して、上記ステップＳ８６において姿勢調整が行われた時点の第１の端末装置および第２の端末装置の姿勢をそれぞれ基準姿勢に設定する。このような設定に基づいて、第１の端末装置の基準姿勢からの回転量に応じて第１の仮想カメラの姿勢を変更し、第２の端末装置の基準姿勢からの回転量に応じて第２の仮想カメラの姿勢を変更して、第１の仮想カメラから見た６面体モデルの内面の画像を第１の端末装置に表示し、第２の仮想カメラから見た６面体モデルの内面の画像を第２の端末装置に表示する。このように、実空間における第１の端末装置と第２の端末装置との位置関係をキャリブレーションした後に、それぞれ端末装置の姿勢変化と同じようにそれぞれの仮想カメラの姿勢を変化させることによって、パノラマ動画によって生成される同じ世界を複数の表示装置を介して自由に覗いたような画像をそれぞれの端末装置に表示することができる。
【０２５６】
ここで、第２の仮想カメラの位置および姿勢を基準位置および基準姿勢に固定し、当該第２の仮想カメラから見た６面体モデルの内面の画像を第２の端末装置の代わりにモニタ２に表示すれば、モニタ２には常に基準方向（正面方向）のパノラマ動画を表示することができる。これによって、移動しながらパノラマ画像が撮像されてパノラマ動画が生成されている場合、モニタ２には当該移動における進行方向を見たパノラマ画像の一部が常に表示されることになる。
【０２５７】
なお、モニタ２に表示するパノラマ動画の範囲を、コントローラ５を操作することによって変化させてもかまわない。一例として、モニタ２に上述した全方位画像の一部を表示する場合、当該全方位画像からモニタ２に表示される範囲を、コントローラ５が操作データとして出力するマーカ座標データ、加速度データ、角速度データ、および操作ボタンデータの少なくとも１つに応じて移動させる。他の例として、上記第２の仮想カメラから見た６面体モデルの内面の画像をモニタ２に表示する場合、当該第２の仮想カメラの姿勢をコントローラ５が操作データとして出力するマーカ座標データ、加速度データ、角速度データ、および操作ボタンデータの少なくとも１つに応じて変化させる。
【０２５８】
また、コントローラ５を操作することによって、パノラマ動画に所定のオブジェクトや付加情報を付加してもよい。例えば、モニタ２に表示されたパノラマ動画を見ているユーザがコントローラ５を用いて所定の操作をすることによって、当該操作によって指示されたパノラマ動画の一部に所定のオブジェクトや付加情報が入力される。具体的には、モニタ２に表示されているパノラマ動画の一部をコントローラ５で指し示して所定のボタン操作を行うことによって、当該一部に当該ボタン操作に応じたオブジェクトや付加情報が再生中のパノラマ動画に付加される。
【０２５９】
また、入力された所定のオブジェクトや付加情報（例えば、コメント）は、端末装置７で表示されているパノラマ動画にも付加表示される。ここで、上述したように、モニタ２に表示されている画像と端末装置７に表示されている画像とは、再生されている１つのパノラマ動画において実質的に時間軸が同じとなるパノラマ画像の少なくとも一部である。したがって、モニタ２を介して所定のオブジェクトや付加情報が付加されたパノラマ動画の部位を含む範囲が端末装置７に表示されている場合、端末装置７にはパノラマ動画とともに、付加された所定のオブジェクトや付加情報が付加操作と実質的に同じタイミングで表示される。これによって、ユーザは、パノラマ動画を単に見るだけでなく、他のユーザがポインティングして付加したオブジェクトや付加情報とともにパノラマ動画を見ることができる。このように、モニタ２を介して所定のオブジェクトや付加情報をパノラマ動画に付加できるように構成することによって、モニタ２および端末装置７を介して表示されているパノラマ動画についてのユーザ間のコミュニケーションを図ることができる。
【０２６０】
モニタ２を介して、所定のオブジェクトや付加情報の入力が行われた場合、ＣＰＵ１０は、付加する対象（所定のオブジェクトや付加情報）を示す対象情報と、当該対象情報をパノラマ動画に付加するために必要な入力位置情報とを管理する。例えば、入力位置情報は、対象情報の入力が受け付けられた場合におけるモニタ２のパノラマ画像表示範囲内の入力位置を特定可能な情報である。上記入力位置は、例えば、上述した付加操作によって指定された位置でもよい。
【０２６１】
一例として、上記入力位置を示す入力位置情報として、モニタ２に表示する画像を生成するための仮想カメラの姿勢（視線方向）を表すベクトルの情報が用いられる。例えば、仮想カメラの位置から立体モデル（上記球体モデルや上記６面体モデル）上の上記入力位置への方向を表すベクトルによって入力位置を表すことができる。なお、パノラマ動画を撮像する際の視点が時間経過につれて所定空間（例えば、現実世界）内を移動している場合には、当該視点の移動に応じて上記入力位置も立体モデル上で移動させる。そして、モニタ２および端末装置７に表示されているパノラマ動画の表示範囲に上記入力位置が含まれる場合、当該入力位置に管理されている対象情報に対応する所定のオブジェクトや付加情報を、パノラマ動画における当該入力位置に重畳表示する。
【０２６２】
また、端末装置７に表示しているパノラマ動画を、モニタ２に表示してもよい。例えば、上述した説明においてモニタ２に表示しているパノラマ動画に加えて、端末装置７に表示しているパノラマ動画をモニタ２に表示してもいいし、端末装置７に表示しているパノラマ動画を単独でモニタ２に表示してもよい。前者の場合、上述した説明においてモニタ２に表示しているパノラマ動画の表示領域とは別の表示領域に端末装置７に表示しているパノラマ動画を表示してもいいし、これらの表示領域の少なくとも一部を重複させて表示してもよい。後者の場合、モニタ２の表示領域全体に端末装置７に表示しているパノラマ動画を表示してもよい。このように、モニタ２にも端末装置７に表示しているパノラマ動画を表示することによって、端末装置７を操作しているユーザが見ているパノラマ画像を、モニタ２を介して他のユーザも見ることが可能となり、見ているパノラマ動画についてのユーザ間のコミュニケーションを図ることができる。
【０２６３】
また、端末装置７に表示しているパノラマ動画をモニタ２に表示する場合、端末装置７を把持しているユーザの手ぶれによる画像の相対的に小さな揺れや、端末装置７をユーザが上下左右に大きく動かすことによる視線方向の相対的に大きな変化等によって、モニタ２に表示された当該パノラマ動画を見るユーザが映像酔い（画像酔い）することが考えられる。このような映像酔いを防止するために、端末装置７に表示しているパノラマ動画の視線方向の変化を軽減した画像をモニタ２に表示してもかまわない。例えば、端末装置７にパノラマ動画を表示するための端末装置用仮想カメラと同じ視点に同じ視線方向となるモニタ用仮想カメラを仮想世界に設定し、当該端末装置用仮想カメラの動きと基本的に同じ動きで当該モニタ用仮想カメラを動作させる。そして、第１の例として、実空間における端末装置７の向きの単位時間当たり変化量が所定の閾値未満である場合や、端末装置７の動きを検出するセンサ（加速度センサ６３、ジャイロセンサ６４等）から出力される値（加速度や角速度を示す値）が所定の閾値未満である場合等には、上記モニタ用仮想カメラの姿勢を固定して、手ぶれによる画像の相対的に小さな揺れを防止する。そして、上記変化量や出力値が０になった場合や当該閾値以上となった場合に上記端末装置用仮想カメラの姿勢に近づくまたは同じとなるように当該モニタ用仮想カメラの姿勢を制御する。第２の例として、実空間における端末装置７の向きの単位時間当たり変化量が所定の閾値以上である場合や、端末装置７の動きを検出するセンサ（加速度センサ６３、ジャイロセンサ６４等）から出力される値（加速度や角速度を示す値）が所定の閾値以上である場合等には、上記モニタ用仮想カメラの動きを制限して、視線方向の相対的に大きな変化を抑制する。そして、上記変化量や出力値が当該閾値未満となった場合に上記端末装置用仮想カメラの姿勢に近づくように当該モニタ用仮想カメラの姿勢を制御する。第３の例として、上記端末装置用仮想カメラの動きに所定の割合で追従するように上記モニタ用仮想カメラの動きを制御することによって、手ぶれによる画像の相対的に小さな揺れや視線方向の相対的に大きな変化を抑制する。具体的には、上記端末装置用仮想カメラの視線方向と上記モニタ用仮想カメラの視線方向との角度差に対して所定の割合（例えば、５０％）だけ、当該端末装置用仮想カメラの視線方向に近づくように当該モニタ用仮想カメラの視線方向が常に変化するように制御する。このような制御例の１つまたは組み合わせを用いて姿勢制御されるモニタ用仮想カメラから見た上記立体モデル内面の画像をモニタ２に表示することによって、端末装置７に表示しているパノラマ動画の視線方向の変化を軽減した画像をモニタ２に表示することができる。
【０２６４】
また、上述した説明では、端末装置７に表示しているパノラマ動画をモニタ２に表示する場合に上下左右方向の視覚的な振動による映像酔いを防止する例を用いたが、パノラマ動画を拡大または縮小する際の画像変化をモニタ２に表示する画像において低減することも考えられる。例えば、端末装置７を把持するユーザが端末装置７に表示されているパノラマ動画を拡大表示または縮小表示する操作を行った場合、ＬＣＤ５１には当該操作に応じて拡大または縮小したパノラマ動画がそのまま表示される。一方、端末装置７に対する操作に応じて拡大または縮小して端末装置７に表示されたパノラマ動画をモニタ２にも表示する場合、当該パノラマ動画の拡大率または縮小率が所定の閾値以上となる場合は、拡大率または縮小率を当該閾値に抑制したパノラマ動画をモニタ２に表示する。また、端末装置７に対する操作に応じて、パノラマ動画を拡大してから縮小するまでの時間またはパノラマ動画を縮小してから拡大するまでの時間が所定時間以内に行われた場合、当該所定時間内に行われた縮小または拡大を抑制したパノラマ動画をモニタ２に表示する。このような制御例の１つまたは組み合わせを用いてパノラマ動画の拡大または縮小を制御したパノラマ動画をモニタ２に表示することによって、端末装置７に拡大または縮小する画像変化を軽減したパノラマ動画をモニタ２に表示することができる。
【０２６５】
また、上述した端末装置７は、図２０〜図２２、図２６、および図２７を用いて説明した一連の処理やゲーム装置３で行われるようなゲーム処理を実行しない、いわゆるシンクライアント端末として機能するものであった。しかしながら、端末装置７は、例えば携帯ゲーム機のように、所定のプログラム（ゲームプログラム）によって所定の情報処理（ゲーム処理）を実行する機能を有する装置であってもよい。この場合、上記実施例においてゲーム装置３によって実行される一連の処理のうち、少なくとも一部の処理が端末装置７によって実行されてもよい。一例として、上記一連の処理の全部を実行可能な端末装置を少なくとも１つ用いて複数の端末装置にパノラマ動画をそれぞれ表示する場合、当該実行可能な端末装置の１つを当該一連の処理を実行する主処理実行装置とし、他の端末装置の姿勢に応じたパノラマ動画を当該主処理実行装置から他の端末装置へ送信することによって、同様のパノラマ画像を各端末装置に表示することができる。
【０２６６】
また、上述した実施例では、現実世界を移動しながら撮像したパノラマ画像によって構成されるパノラマ動画を表示する例を用いたが、仮想世界内を移動しながら撮像したパノラマ画像によって構成されるパノラマ動画や、現実世界を撮像したパノラマ画像に仮想世界の画像を合成した画像によって構成されるパノラマ動画を表示してもかまわない。
【０２６７】
他の実施形態では、互いに通信可能な複数の情報処理装置を有するゲームシステムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。なお、複数の情報処理装置において情報処理が実行される場合には、各情報処理装置で実行される処理を同期させる必要があり、処理が複雑になってしまう。これに対して、上記実施形態のように、情報処理が１つのゲーム装置３によって実行され、端末装置７が画像を受信して表示する場合（つまり、端末装置７がシンクライアント端末である場合）には、複数の情報処理装置間で処理の同期をとる必要がなく、処理を簡易化することができる。
【０２６８】
また、上記実施形態においては、ゲーム処理を実行することが可能なゲーム装置３を含むゲームシステム１を例として説明したが、上記実施形態で記載した各処理動作は、ゲームシステムおよびゲーム装置に限らず、任意の情報処理システムおよび情報処理装置によって実行可能である。情報処理システムは、情報処理装置と、複数の表示装置（ユーザによる操作入力が可能な少なくとも１つの可搬型の表示装置（例えば端末装置７）と据置型の表示装置との組み合わせ、または複数の可搬型の表示装置）を含むものであればよく、情報処理装置は、複数の表示装置にそれぞれ画像を出力して表示させることができるものであればよい。また、上述した処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。
【０２６９】
上記のように、本明細書で説明した種々のシステム、方法、および技術は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはこれら要素の組み合わせによって提供されてもよい。上記の技術を実現するための装置は、プログラム可能なプロセッサによる実行のためのコンピュータ読み取り可能な非一時的な記憶装置において実体的に具体化されるコンピュータプログラムプロダクト、入出力装置、およびコンピュータプロセッサを含んでもよい。上記技術を実現するための処理は、入力データを処理して所望の出力を生成することによって、要求される機能を実行するためのプログラムを実行する、プログラム可能なプロセッサによって実行されてもよい。上記の技術は、入力装置、出力装置、および情報記憶装置といったハードウェア資源との間でデータや指示のやり取りを行うプログラム可能なプロセッサを含むコンピュータシステム上で実行可能な１以上のコンピュータプログラムによって実現されてもよい。また、各コンピュータプログラムは、手続型やオブジェクト指向型の高水準プログラミング言語、アセンブリ言語、または、機械語によって実現されてもよく、必要に応じてコンパイルまたはインタプリタされて実行されてもよい。また、上記のプロセッサは、汎用または専用のマイクロプロセッサであってもよい。プロセッサは、一般的に、ＲＯＭまたはＲＡＭからデータおよび指示を受け取る。また、上記の記憶装置は、（ａ）ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリのような半導体メモリ装置を含む不揮発性のメモリ、（ｂ）内部ハードディスクあるいは着脱可能な外部ディスクのような磁気ディスク、（ｃ）光磁気ディスク、（ｄ）ＣＤＲＯＭ、に限定されず、あらゆる種類のコンピュータメモリを含む。上記のプロセッサや記憶装置は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）によって補充される、あるいは、ＡＳＩＣに組み込まれる形で実現されてもよい。
【０２７０】
また、本明細書に記載の処理システム（回路）は、本明細書において記載された内容に応じたゲーム処理のような制御処理のためにプログラムされる。上記の内容に応じた指示を実行する少なくとも１つのＣＰＵを含む処理システムが、上記の内容によって定義される処理動作を実行するための「プログラムされた論理回路」として作用するものであってもよい。
【０２７１】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０２７２】
以上のように、本発明は、より現実感の高いユーザ体験を提供することができること等を目的として、例えば、ゲームシステムおよびゲーム装置等に利用することができる。
【符号の説明】
【０２７３】
１  ゲームシステム
２  モニタ
３  ゲーム装置
４  光ディスク
５  コントローラ
７  端末装置
１０  ＣＰＵ
５１  ＬＣＤ
１００  球体モデル
１０１  仮想カメラ
１０４  円柱モデル
【図１】
0005918618.tif 000002
【図２】
0005918618.tif 000003
【図３】
0005918618.tif 000004
【図４】
0005918618.tif 000005
【図５】
0005918618.tif 000006
【図６】
0005918618.tif 000007
【図７】
0005918618.tif 000008
【図８】
0005918618.tif 000009
【図９】
0005918618.tif 000010
【図１０】
0005918618.tif 000011
【図１１】
0005918618.tif 000012
【図１２】
0005918618.tif 000013
【図１３】
0005918618.tif 000014
【図１４】
0005918618.tif 000015
【図１５】
0005918618.tif 000016
【図１６】
0005918618.tif 000017
【図１７】
0005918618.tif 000018
【図１８Ａ】
0005918618.tif 000019
【図１８Ｂ】
0005918618.tif 000020
【図１８Ｃ】
0005918618.tif 000021
【図１９】
0005918618.tif 000022
【図２０】
0005918618.tif 000023
【図２１】
0005918618.tif 000024
【図２２】
0005918618.tif 000025
【図２３】
0005918618.tif 000026
【図２４】
0005918618.tif 000027
【図２５】
0005918618.tif 000028
【図２６】
0005918618.tif 000029
【図２７】
0005918618.tif 000030