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