(58)【調査した分野】(Int.Cl.,DB名)
前記複数のパノラマ動画は、現実世界において同じコースに沿って前記視点を移動させながらそれぞれ撮像されたコンテンツである、請求項3に記載の情報処理プログラム。
前記複数のパノラマ動画は、年、月、および日の少なくとも1つが異なる時期にそれぞれ撮像されたコンテンツである、請求項1乃至4の何れか1つに記載の情報処理プログラム。
前記パノラマ動画取得手段は、前記表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームの前記所定のパラメータに基づいて当該変更後に読み出す表示対象のパノラマ動画におけるフレームを設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得する、請求項1乃至3の何れか1つに記載の情報処理プログラム。
前記パノラマ動画記憶手段は、現実世界において同じコースに沿って視点を移動させながら異なる時期に撮像された複数のパノラマ動画を、それぞれの撮像場所を前記所定のパラメータとして関連付けて記憶し、
前記パノラマ動画取得手段は、前記表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームが撮像された撮像場所と実質的に同じ撮像場所で撮像されたパノラマ動画のフレームを、当該変更後に読み出すフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得する、請求項7に記載の情報処理プログラム。
前記パノラマ動画記憶手段は、年、月、および日の少なくとも1つが異なる時期に撮像された複数のパノラマ動画を、それぞれの撮像時刻を前記所定のパラメータとして関連付けて記憶し、
前記パノラマ動画取得手段は、前記表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームが撮像された撮像時刻と実質的に同じ撮像時刻に撮像されたパノラマ動画のフレームを、当該変更後に読み出すフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得する、請求項7に記載の情報処理プログラム。
前記パノラマ動画記憶手段は、異なる時期に実質的に同じ場所で撮像された複数のパノラマ動画を、それぞれのフレームの再生順を示すフレーム番号を前記パラメータとして関連付けて記憶し、
前記パノラマ動画取得手段は、前記表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレーム番号と同じフレーム番号のフレームを、当該変更後に読み出すパノラマ動画のフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得する、請求項7に記載の情報処理プログラム。
前記パノラマ動画取得手段は、前記パノラマ動画記憶手段から、表示対象となったパノラマ動画の各フレームとなるパノラマ画像を、前記表示装置に再生する所定時間毎に読み出して逐次取得し、前記表示対象とするパノラマ動画が変更された場合、当該変更後のパノラマ動画におけるパノラマ画像を読み出して逐次取得し
前記表示範囲設定手段は、前記取得されたパノラマ画像に対して前記視線方向を設定することによって前記表示範囲を設定し、前記表示対象とするパノラマ動画が変更された場合、前記変更直前に取得されたパノラマ画像に対して設定されていた視線方向を当該変更によって変えることなく当該変更直後に取得されたパノラマ画像に対して前記表示範囲を設定する、請求項1乃至12の何れか1つに記載の情報処理プログラム。
少なくとも1つの表示装置に画像を表示する情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
現実世界を予めそれぞれ撮像したコンテンツであって所定のパラメータを介して関連付けられた複数のパノラマ動画を記憶したパノラマ動画記憶手段から、表示対象となったパノラマ動画を読み出して逐次取得するパノラマ動画取得ステップと、
前記取得されたパノラマ動画に対して視線方向を設定し、前記表示装置に表示する表示範囲を当該パノラマ動画に対する固定視点から見た当該視線方向に基づいて設定する表示範囲設定ステップと、
前記取得されたパノラマ動画のうち、前記表示範囲内のパノラマ動画を前記表示装置に逐次表示する制御を行う表示制御ステップと、
所定の切替条件を満たした場合、前記表示対象とするパノラマ動画を変更する表示対象変更ステップとを含み、
前記パノラマ動画取得ステップでは、前記表示対象とするパノラマ動画が変更された場合、当該変更後のパノラマ動画が読み出されて逐次取得され、
前記表示範囲設定ステップでは、前記変更直前に取得されたパノラマ動画に対して設定されていた視線方向が、当該変更によって変えられることなく当該変更直後に取得されたパノラマ動画に対して設定され、
前記表示範囲設定ステップでは、ユーザ操作に応じて変化させて前記視線方向が設定されるとともに、当該ユーザ操作に応じて変化させずに前記パノラマ動画に対する固定視点が固定して設定される、情報処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載の画像処理装置は、ある時間に撮像されたパノラマ動画がディスプレイに表示されるだけであり、表示するパノラマ動画の変化が乏しいことがある。
【0005】
それ故に、本発明の目的は、変化に富んだパノラマ動画を表示することができる情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理プログラムの一構成例は、少なくとも1つの表示装置に画像を表示する情報処理装置に含まれるコンピュータで実行される。情報処理プログラムは、パノラマ動画取得手段、表示範囲設定手段、表示制御手段、および表示対象変更手段としてコンピュータを機能させる。パノラマ動画取得手段は、所定のパラメータを介して関連付けられた複数のパノラマ動画を記憶したパノラマ動画記憶手段から、表示対象となったパノラマ動画を読み出して逐次取得する。表示範囲設定手段は、取得されたパノラマ動画に対して視線方向を設定し、表示装置に表示する表示範囲を当該視線方向に基づいて設定する。表示制御手段は、取得されたパノラマ動画のうち、表示範囲内のパノラマ動画を表示装置に逐次表示する制御を行う。表示対象変更手段は、所定の切替条件を満たした場合、表示対象とするパノラマ動画を変更する。パノラマ動画取得手段は、表示対象とするパノラマ動画が変更された場合、当該変更後のパノラマ動画を読み出して逐次取得する。表示範囲設定手段は、変更直前に取得されたパノラマ動画に対して設定されていた視線方向を、当該変更によって変えることなく当該変更直後に取得されたパノラマ動画に対して設定する。
【0008】
上記「情報処理装置」は、表示装置とは別の装置によって構成されてもよいし、表示装置が情報処理機能を有する場合には表示装置によって構成されてもよい。また、前者の場合、「別の装置」によって本発明の各処理を実行し、表示装置は「別の装置」によって生成された画像を表示処理するのみでもよいし、表示装置が情報処理機能を有する場合には、表示装置の情報処理機能と「別の装置」の情報処理機能との協同により実現してもよい。また、「別の装置」は、複数の情報処理装置によって分散処理するものであってもよい。「情報処理装置」は、後述する実施形態で例示したゲーム装置の他、一般的なパーソナルコンピュータのような多用途の情報処理装置であってもよい。
【0009】
上記表示装置は、一例として、可搬型表示装置である。また、上記表示装置は、他の例として、据置型表示装置である。これらの場合、表示装置は、後述する実施形態における端末装置2やモニタ4のように情報処理装置に無線または有線接続された表示装置であり、情報処理装置によって生成された表示画像を表示することが可能なものであればどのようなものであってもよい。例えば、上記表示装置は、情報処理装置と一体に(1つの筐体内に)構成されるものであってもよい。
【0010】
上記「パノラマ動画」は、上下方向と左右方向のうち一方方向について画角が180度以上のパノラマ動画であることが好ましい。さらに好ましくは、一方方向について360度のパノラマ動画であることが好ましい。また、他方方向については、表示装置に表示する動画の画角以上であることが好ましく、さらに言うと、当該動画の画角の2倍以上、120度以上、150度以上、または、180度であることが好ましい。
【0011】
上記「パノラマ動画記憶手段」には、当該情報処理装置が有する当該パノラマ動画の撮像機能により撮像された動画を記憶してもよいし、当該動画の撮像機能を有する他の装置により撮像された動画を所定の記憶媒体やネットワークを介して取り込んで記憶してもよい。
【0012】
上記「表示範囲設定手段」は、典型的には、表示装置の姿勢変化に応じて、少なくともパノラマ動画に対して同じ方向に表示装置に表示する範囲を移動させる。また、好ましくは、「表示範囲設定手段」は、表示装置の姿勢の変化量が大きいほど上記範囲の移動量を大きくする。さらに好ましくは、「表示範囲設定手段」は、表示装置の姿勢の変化量と上記範囲の動画を生成するための仮想カメラの姿勢変化量とを同じにする。「表示範囲設定手段」は、表示装置の現在の姿勢の基準姿勢からの変化にあわせて、上記仮想カメラの現在の姿勢の基準姿勢からの変化を制御してもよいし、表示装置の現在の姿勢の直前の姿勢からの変化にあわせて、上記仮想カメラの現在の姿勢の直前の姿勢からの変化を制御してもよい。なお、上記「姿勢」は、2次元で設定されてもよいし、3次元で設定されてもよい。
【0013】
上記によれば、所定の切替条件が満たされた場合、関連付けられた別のパノラマ動画に同じ視線方向のままで切り替えられて表示されるため、変化に富んだパノラマ動画を表示することができる。
【0014】
また、上記複数のパノラマ動画は、異なる時期に実質的に同じ場所でそれぞれ撮像されたコンテンツであってもよい。
【0015】
上記によれば、所定の切替条件が満たされた場合、瞬時に撮像時期が変化したかのようなパノラマ動画を表示することができる。
【0016】
また、上記複数のパノラマ動画は、実質的に同じ視点からそれぞれ撮像されたコンテンツであってもよい。
【0017】
上記によれば、所定の切替条件が満たされた場合、瞬時に撮像時期のみが変化したかのようなパノラマ動画を表示することができる。
【0018】
また、上記複数のパノラマ動画は、現実世界において同じコースに沿って視点を移動させながらそれぞれ撮像されたコンテンツであってもよい。
【0019】
上記によれば、所定の切替条件が満たされた場合、同じコースを移動しながら瞬時に撮像時期を変化させたようなパノラマ動画を表示することができる。
【0020】
また、上記複数のパノラマ動画は、異なる時間帯にそれぞれ撮像されたコンテンツであってもよい。
【0021】
上記によれば、所定の切替条件が満たされた場合、瞬時に撮像時間帯が変化したかのようなパノラマ動画を表示することができる。
【0022】
また、上記複数のパノラマ動画は、年、月、および日の少なくとも1つが異なる時期にそれぞれ撮像されたコンテンツであってもよい。
【0023】
上記によれば、所定の切替条件が満たされた場合、瞬時に撮像年、撮像月、および撮像日の少なくとも1つが変化したかのようなパノラマ動画を表示することができる。
【0024】
また、上記パノラマ動画取得手段は、表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームの所定のパラメータに基づいて当該変更後に読み出す表示対象のパノラマ動画におけるフレームを設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得してもよい。
【0025】
上記によれば、関連付けられたパノラマ動画の表示を切り替える場合に、切り替え前に表示されていたフレームに対応付けられたフレームから、切り替え後のパノラマ動画の再生を開始することができる。
【0026】
また、上記パノラマ動画記憶手段は、現実世界において同じコースに沿って視点を移動させながら異なる時期に撮像された複数のパノラマ動画を、それぞれの撮像場所を所定のパラメータとして関連付けて記憶してもよい。この場合、上記パノラマ動画取得手段は、表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームが撮像された撮像場所と実質的に同じ撮像場所で撮像されたパノラマ動画のフレームを、当該変更後に読み出すフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得してもよい。
【0027】
上記によれば、現実世界において同じコースに沿って視点を移動させながら異なる時期に撮像された複数のパノラマ動画の表示を切り替える場合に、切り替え前に表示されていたパノラマ動画の撮像場所と実質的に同じ撮像場所で撮像されたパノラマ動画から、切り替え後のパノラマ動画の再生を開始することができる。
【0028】
また、上記パノラマ動画記憶手段は、年、月、および日の少なくとも1つが異なる時期に撮像された複数のパノラマ動画を、それぞれの撮像時刻を所定のパラメータとして関連付けて記憶してもよい。この場合、上記パノラマ動画取得手段は、表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレームが撮像された撮像時刻と実質的に同じ撮像時刻に撮像されたパノラマ動画のフレームを、当該変更後に読み出すフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得してもよい。
【0029】
上記によれば、年、月、および日の少なくとも1つが異なる時期に撮像された複数のパノラマ動画の表示を切り替える場合に、切り替え前に表示されていたパノラマ動画の撮像時刻と実質的に同じ撮像時刻に撮像されたパノラマ動画から、切り替え後のパノラマ動画の再生を開始することができる。
【0030】
また、上記パノラマ動画記憶手段は、異なる時期に実質的に同じ場所で撮像された複数のパノラマ動画を、それぞれのフレームの再生順を示すフレーム番号をパラメータとして関連付けて記憶してもよい。この場合、上記パノラマ動画取得手段は、表示対象とするパノラマ動画が変更された場合、当該変更前に読み出したパノラマ動画のフレーム番号と同じフレーム番号のフレームを、当該変更後に読み出すパノラマ動画のフレームとして設定し、当該変更後は当該フレーム以降のパノラマ動画を読み出して逐次取得してもよい。
【0031】
上記によれば、異なる時期に実質的に同じ場所で撮像された複数のパノラマ動画の表示を切り替える場合に、切り替え前に表示されていたフレームのフレーム番号と同じフレーム番号のフレームから、切り替え後のパノラマ動画の再生を開始することができる。
【0032】
また、上記情報処理プログラムは、パノラマ動画配置手段として、さらにコンピュータを機能させてもよい。パノラマ動画配置手段は、取得されたパノラマ動画を仮想空間に配置する。この場合、上記表示範囲設定手段は、仮想空間に配置されたパノラマ動画に対して仮想カメラを設定し、当該仮想カメラの視線方向に基づいた視野範囲に応じて、当該パノラマ動画に対する表示範囲を設定してもよい。
【0033】
上記によれば、仮想カメラを用いて、容易にパノラマ動画に対する表示範囲を設定することができる。
【0034】
また、上記表示対象変更手段は、所定の切替操作が行われた場合に、切替条件が満たされたと判定してもよい。
【0035】
上記によれば、ユーザ操作に応じて、表示対象とするパノラマ動画を切り替えることができる。
【0036】
また、上記パノラマ動画取得手段は、パノラマ動画記憶手段から、表示対象となったパノラマ動画の各フレームとなるパノラマ画像を、表示装置に再生する所定時間毎に読み出して逐次取得し、表示対象とするパノラマ動画が変更された場合、当該変更後のパノラマ動画におけるパノラマ画像を読み出して逐次取得してもよい。この場合、上記表示範囲設定手段は、取得されたパノラマ画像に対して視線方向を設定することによって表示範囲を設定し、表示対象とするパノラマ動画が変更された場合、変更直前に取得されたパノラマ画像に対して設定されていた視線方向を当該変更によって変えることなく当該変更直後に取得されたパノラマ画像に対して表示範囲を設定してもよい。
【0037】
また、本発明は、上記各手段を備える情報処理装置および情報処理システムや上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【0038】
本発明によれば、所定の切替条件が満たされた場合、関連付けられた別のパノラマ動画に同じ視線方向のままで切り替えられて表示されるため、変化に富んだパノラマ動画を表示することができる。
【発明を実施するための形態】
【0040】
[情報処理システムの構成]
図1を参照して、本実施形態の一例に係る情報処理プログラムを実行する情報処理装置および当該情報処理装置を含む情報処理システムについて説明する。なお、
図1は、情報処理装置3を含む情報処理システム1の一例を示すブロック図である。一例として、情報処理装置3は据置型のゲーム装置で構成され、情報処理システム1は当該ゲーム装置を含むゲームシステムで構成される。
【0041】
図1において、情報処理システム1は、端末装置2、情報処理装置3、およびモニタ4を備える。本実施形態における情報処理システム1は、画像(パノラマ画像)を生成して表示装置(端末装置2および/またはモニタ4)に表示するものである。
【0042】
情報処理システム1においては、端末装置2に対する入力に応じて情報処理装置3が情報処理を実行し、実行の結果得られた画像が端末装置2および/またはモニタ4に表示される。このように、本実施形態においては、情報処理システム1は、入力機能、情報処理機能、および表示機能が複数の装置によって実現される構成である。なお、他の実施形態においては、情報処理システム1は、これらの機能を有する単一の情報処理装置(例えば携帯型あるいは可搬型の情報処理装置)で構成されてもよい。
【0043】
端末装置2は、ユーザが把持可能な(可搬型の)入力装置である。端末装置2は、情報処理装置3と通信可能である。端末装置2は、端末装置2に対する操作を表す操作データを情報処理装置3へ送信する。また、本実施形態においては、端末装置2は、表示部(LCD11)を備えており、端末装置2は表示装置でもある。情報処理装置3から画像が送信されてくる場合、端末装置2は、LCD11に当該画像を表示する。
【0044】
また、端末装置2は、入力部としてタッチパネル12を備える。タッチパネル12は、ハウジングに設けられる所定の入力面(表示部の画面)に対して入力された位置を検出する位置検出部の一例である。さらに、端末装置2は、入力部として、スライドパッド、十字キー、およびボタン等の操作部13を備える。
【0045】
また、端末装置2は、入力部として加速度センサ14を備える。加速度センサ14は、端末装置2の所定軸方向(本実施形態では3軸方向とするが、1軸以上でよい)に関する加速度を検出する。また、端末装置2は、入力部としてジャイロセンサ15を備える。ジャイロセンサ15は、端末装置2の所定軸方向(本実施形態では3軸方向とするが、1軸以上でよい)を軸とした回転に関する角速度を検出する。加速度センサ14およびジャイロセンサ15は、端末装置2の姿勢を算出するための情報(姿勢を算出あるいは推定可能な情報)を検出するセンサである。なお、他の実施形態においては、端末装置2の姿勢はどのような方法で算出されてもよく、上記センサ以外の他のセンサや端末装置2を撮像可能なカメラを用いて端末装置2の姿勢が算出されてもよい。
【0046】
情報処理装置3は、画像を生成する処理等、情報処理システム1において実行される各種の情報処理を実行する。本実施形態においては、情報処理装置3は、CPU(制御部)5およびメモリ6を有し、CPU5がメモリ6を用いて所定の情報処理プログラムを実行することによって、情報処理装置3における各種機能が実現される。なお、情報処理装置3は、上記の情報処理を実行することができればどのような構成であってもよい。本実施形態においては、情報処理装置3によって画像(パノラマ画像)が生成され、生成された画像は、表示装置である端末装置2および/またはモニタ4へ出力される。
【0047】
モニタ4は、生成された画像を表示する表示装置の一例である。モニタ4は、情報処理装置3から送信されるデータを受信可能である。情報処理装置3において生成された画像がモニタ4へ送信されてくると、モニタ4は当該画像を表示する。
【0048】
[パノラマ動画の再生]
次に、情報処理システム1において実行される、パノラマ動画を再生する処理について説明する。
図2は、情報処理システム1において表示されるパノラマ動画(画像)の一例を示す図である。
図2に示すように、本実施形態においては、端末装置2およびモニタ4にパノラマ画像が表示される。なお、他の実施形態においては、パノラマ画像は少なくとも1つの表示装置に表示されればよい。
【0049】
ここで、パノラマ画像とは、表示装置に表示される画像の視野角よりも広い視野角の画像である。つまり、パノラマ画像は、基本的にはその一部領域の画像が表示装置に表示される(ただし、本実施形態のように複数の表示装置が用いられる場合には、一部の表示装置においてパノラマ画像の全体が表示されてもよい。)。パノラマ画像は、表示範囲が変化することによって視線の方向が変化する画像であるとも言える。本実施形態においては、上下左右方向に関して全方向(360°)の視野角を有するパノラマ画像が用いられる(
図3参照)。ただし、パノラマ画像には死角があってもよく、例えば視野角が180°程度であってもよい。また、本実施形態においては、パノラマ画像はカメラによって撮像された実画像(実写画像)であるが、その一部または全部が仮想画像(CG画像)であってもよい。
【0050】
本実施形態においては、表示装置(端末装置2およびモニタ4)には、パノラマ動画の再生の進行にしたがって、記憶されているパノラマ動画の各フレームとなるパノラマ画像が所定時間毎に読み出されて順次表示され、パノラマ画像が表示装置に逐次表示されることによって、パノラマ動画が再生される。具体的には、パノラマ動画を構成する複数のパノラマ画像にはそれぞれフレーム番号が付されており、パノラマ画像がフレーム番号順に表示される。一例として、視点を時間経過につれて所定空間(例えば、現実世界)内を移動させながら撮像したパノラマ動画を表示する場合、当該パノラマ動画を再生する時間経過に伴って視点が移動するパノラマ動画が再生される。例えば、
図2に示すように、道路上から周囲を見たパノラマ画像が表示され、道路を進んでいく(視点が道路に沿って移動する)パノラマ動画が再生される。他の例として、所定空間内を移動することなく撮像(すなわち、定点撮像)したパノラマ動画を表示する場合、当該パノラマ動画を再生する時間経過に伴って視点周辺の様子が変化していくようなパノラマ動画が再生される。
【0051】
図2に示すように、各表示装置(端末装置2およびモニタ4)には、パノラマ画像の一部の範囲が表示される。以下では、パノラマ画像のうちで表示装置に表示される範囲を「表示範囲」と呼ぶ。
図2においては、モニタ4には、パノラマ画像を表示する視線方向が当該パノラマ画像を撮像した際の視点の進行方向(パノラマ動画の撮像の際の基準方向(正面方向))となる表示範囲のパノラマ画像が表示される。本実施形態においては、モニタ4における表示範囲は、基本的には予め定められた所定範囲に固定されるが、ユーザ操作に応じてパノラマ画像に対する表示範囲の位置や大きさを変化させてもよい。
【0052】
一方、端末装置2における表示範囲は、端末装置2の姿勢に応じて変更される。例えば
図2においては、端末装置2は、正面方向(ユーザ(端末装置2)からモニタ4への方向)に対して右に向けた姿勢となっており、端末装置2には、上記進行方向に対して視線を右に向けた場合の表示範囲のパノラマ画像が表示されている。このように、情報処理システム1は、入力装置(端末装置2)に対する入力に基づいて、パノラマ画像のうちで表示装置に表示する表示範囲を決定する。これによれば、ユーザは、端末装置2に対する操作(姿勢を変化させる操作)によって視線方向(表示範囲)を自由に変化させてパノラマ動画を見ることができる。なお、他の実施形態においては、表示範囲はユーザの操作に応じて変化するように決定されればどのような方法で決定されてもよい。
【0053】
図3は、端末装置2の姿勢に応じて表示範囲を決定する方法の一例を示す図である。本実施形態においては、
図3に示すように、仮想空間に立体モデルを配置し、その立体モデルの内側における所定位置(本実施形態においては立体モデルの実質的に中心となる位置)に仮想カメラC1を配置する。そして、仮想カメラC1から見た立体モデル(立体モデルの内側面)の画像を生成する際に、パノラマ画像をテクスチャとして立体モデルの内側面に描画することで、パノラマ画像が生成される。具体的には、パノラマ動画を撮像した際の基準方向が立体モデルの基準方向となるように、パノラマ画像がテクスチャとして立体モデルの内側面に貼り付けられる。このとき、パノラマ画像のうち、仮想カメラC1の視野範囲(
図3に示す斜線領域A1)が表示範囲となる。なお、本実施形態においては、立体モデルの形状を立方体とするが、立体モデルの形状は任意であり、例えば球体や柱状(例えば円柱)の形状であってもよい。
【0054】
図3において、端末装置2に表示すべき画像を生成するための仮想カメラC1は、その姿勢が端末装置2の姿勢に応じて制御される。これによって、端末装置2の姿勢に応じて表示範囲を変化させることができる。以下、仮想カメラC1の姿勢が端末装置2の姿勢に応じて制御される一例を説明する。
【0055】
まず初期設定として、端末装置2の基準姿勢が設定される。例えば、端末装置2の基準姿勢は、パノラマ動画再生の開始時または開始前の所定タイミングにおける端末装置2の姿勢によって設定される。具体的には、パノラマ動画再生の開始時の端末装置2の姿勢を基準姿勢として設定してもよいし、パノラマ動画再生の開始前にユーザが所定の操作をしたときの端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な複数の端末装置2の姿勢のうちユーザが選択してもよい。なお、本実施形態では、端末装置2の姿勢はジャイロセンサ15の出力値に基づいて算出されるので、基準姿勢の設定は、ジャイロセンサ15により算出される姿勢値のリセットである。しかしながら、端末装置2の基準姿勢の設定は、センサの種類によって適宜の処理を実行してよい。
【0056】
また、上記初期設定として、仮想カメラC1の初期姿勢が設定される。例えば、仮想カメラC1の初期姿勢は、視線方向(z軸正方向)が仮想空間のZ軸正方向(立体モデルの基準方向であり、パノラマ動画の撮像における基準方向(正面方向))に一致し、左方向(x軸正方向)が仮想空間のX軸正方向に一致し、上方向(y軸正方向)が仮想空間のY軸正方向に一致するように配置される。
【0057】
そして、端末装置2の上記基準姿勢に対する姿勢変化(基準姿勢の端末装置2の左右方向となるxt軸、端末装置2の上下方向となるyt軸、端末装置2の前後方向となるzt軸周りそれぞれの回転方向および回転量)に応じて、仮想カメラC1の姿勢を、上記初期姿勢から変化(典型的には、初期姿勢の仮想カメラC1のx軸、y軸、z軸、すなわちX軸、Y軸、Z軸周りそれぞれに同じ回転方向および同じ回転量で変化)させる。なお、情報処理システム1は、表示範囲の位置に加えて、表示範囲の大きさ(ズームインまたはズームアウト)を端末装置2に対する操作に応じて変更するようにしてもよい。
【0058】
一方、モニタ4に表示すべき画像を生成するための仮想カメラ(図示せず)は、その視線方向が基本的には基準方向(ここでは、上述した進行方向(正面方向)がパノラマ動画の撮像の際の基準方向に設定されており、立体モデルの基準方向(Z軸正方向)に一致している)を向くように設定される。つまり、モニタ4の表示範囲(
図3に示す斜線領域A2)は、仮想カメラから正面方向への位置に設定される。この仮想カメラの位置も、所定位置(本実施形態においては立体モデルの中心位置)に固定される。
【0059】
なお、本実施形態においては、モニタ4に表示されるパノラマ画像の視線方向と端末装置2に表示されるパノラマ画像の視線方向との関係が、モニタ4における表示画面の奥行方向と端末装置2のLCD11の奥行方向との関係と概ね一致するように、仮想カメラC1の視線方向が制御される。具体的には、端末装置2のLCD11の奥行方向がモニタ4の方を向いた状態で上記基準姿勢が設定されることによって、当該状態において仮想カメラC1の視線方向が、モニタ4のための仮想カメラの視線方向と同じ方向に初期設定される。そして、端末装置2の姿勢が基準姿勢から変化した場合、その変化方向に応じた方向へ、変化量に応じた量だけ、仮想カメラC1の姿勢が変化する。これによれば、ユーザは、モニタ4によってある視線方向(正面方向)の風景を見ながら、端末装置2の向きを変化させることによって所望の視線方向(正面方向以外の方向)の風景を見ることができる。また、ユーザは、端末装置2のLCD11の奥行方向をモニタ4の方へ向けることによって、容易に正面方向のパノラマ画像をLCD11に表示することができ、モニタ4の位置を、パノラマ画像を表示する際の基準(パノラマ画像の正面方向が表示される基準)として取り扱うことができる。さらに、端末装置2の姿勢の変化と仮想カメラC1の姿勢の変化とを一致させることによって、現実空間における端末装置2の向きと、仮想空間における仮想カメラC1の視線方向とが一致するので、ユーザは、パノラマ画像が表す空間をよりリアルに感じることができる。
【0060】
[パノラマ画像の切り替え]
次に、
図4〜
図9を参照して、パノラマ動画を再生している状態で他のパノラマ動画に切り替える処理について説明する。なお、
図4は、複数のパノラマ動画を切り替える際に対応付けられた場所で撮像された画像に切り替える一例を示す図である。
図5は、
図4の例で用いられる複数のパノラマ動画が記憶されたパノラマ動画ファイルデータの一例を示す図である。
図6は、
図4の例において切替操作に応じて切り替えられるパノラマ動画の再生動作の一例を示す図である。
図7は、複数のパノラマ動画を切り替える際に対応付けられた時刻で撮像された画像に切り替える一例を示す図である。
図8は、
図7の例で用いられる複数のパノラマ動画が記憶されたパノラマ動画ファイルデータの一例を示す図である。
図9は、
図7の例において切替操作に応じて切り替えられるパノラマ動画の再生動作の一例を示す図である。
【0061】
上述したように端末装置2には、パノラマ動画の再生の進行にしたがって、記憶されているパノラマ動画の各フレームとなるパノラマ画像が所定時間毎に読み出されて順次表示される。ここで、パノラマ動画再生中に端末装置2を用いて所定の切替操作が行われた場合、再生中のパノラマ動画が当該パノラマ動画と関連付けられた別のパノラマ動画に切り替えられる。例えば、
図4に示すように、昼間の道路上から周囲を見たパノラマ画像が表示されて当該道路を進んでいくパノラマ動画の再生中に切替操作が行われた場合、同じ道路上から周囲を見た夜間のパノラマ画像が表示されて当該道路を進んでいくパノラマ動画に切り替えられる。このパノラマ動画の切り替えの際、
図4に示すように実質的に同じ場所で異なる時間帯(例えば、昼間と夜間)に撮像されたパノラマ画像に切り替えられるとともに、当該パノラマ画像に対する視線方向(表示範囲)を変化させずに切り替えられる。一例として、現実世界において定められた同じコースを移動しながら昼間と夜間に撮像(すなわち、同じコースに沿って視点を移動させながら異なる時間帯で撮像)した2つのパノラマ動画が、互いに関連付けられて用意されている。そして、一方のパノラマ動画再生中に切替操作が行われた場合、他方のパノラマ動画を構成するパノラマ画像のうち、当該一方で再生されているパノラマ画像が撮像された撮像場所と実質的に同じ撮像場所で撮像されたパノラマ画像を表示対象とする。そして、新たに表示対象となったパノラマ画像をテクスチャとして立体モデルに貼り付け、端末装置2に表示するための仮想カメラの姿勢を切り替え前後で変えずに当該仮想カメラの視野範囲を端末装置2に表示することによって、上述したパノラマ動画の切り替えを行う。これによって、パノラマ画像によって表現されている現実世界の時間帯を切り替え前後で変化させながら、当該パノラマ画像によって表現されている現実世界に対する表示範囲(表示対象)が切り替え前後で同じとなる。
【0062】
具体的には、
図5に示すように、所定の現実世界のコースに沿って昼間に撮像されたパノラマ動画Aは、各フレームとなるパノラマ画像IAnのデータとともに、当該パノラマ画像IAnがそれぞれ撮像された撮像場所Pn(例えば、GPS情報)を示すデータがそれぞれ記憶されている。また、同じ現実世界のコースに沿って夜間に撮像されたパノラマ動画Bは、各フレームとなるパノラマ画像IBnのデータとともに、当該パノラマ画像IBnがそれぞれ撮像された撮像場所Pnを示すデータがそれぞれ記憶されている。ここで、パノラマ画像IAnおよびパノラマ画像IBnにはそれぞれパノラマ動画の撮像の際の基準方向が設定されており、例えば、パノラマ動画を移動して撮像した際の進行方向が当該基準方向に設定されている。そして、パノラマ画像IAnおよびパノラマ画像IBnは、上記立体モデルの基準方向(Z軸正方向)がパノラマ動画の撮像の際の基準方向と一致するように、当該立体モデルに貼り付けられる。なお、パノラマ動画Aを撮像する際の現実世界における移動速度とパノラマ動画Bを撮像する際の現実世界における移動速度とは同じであることが好ましいが、撮像環境によって当該移動速度に差が生じることがあり得る。この場合、例えば、
図5のフレーム番号5に記載されているように、同じフレーム番号のパノラマ画像IAnおよびIBnに対して、異なる撮像場所Pn(撮像場所P5とP4)がそれぞれ記憶される。
【0063】
そして、
図6に示すように、パノラマ動画Aの再生において、撮像場所Pxで撮像されたパノラマ画像を表示している時点で切替操作が行われたとする。この場合、パノラマ動画Bを構成するパノラマ画像のうち、撮像場所Pxで撮像されたパノラマ画像が表示対象として抽出され、当該パノラマ画像以降のパノラマ画像を用いてパノラマ動画Bの再生が開始される。すなわち、パノラマ動画AおよびBがそれぞれ撮像場所P1〜Peで示される同じコースを撮像することによって生成されている場合、端末装置2には、撮像場所P1〜Pxにおいて撮像された昼間のパノラマ動画Aが表示された後、切替操作によって撮像場所Px〜Peにおいて撮像された夜間のパノラマ動画Bに切り替えられて表示されることになる。なお、パノラマ動画Bに切り替える際に、当該パノラマ動画Bが撮像場所Pxで撮像されたパノラマ画像を複数有している場合、当該パノラマ画像の何れか(例えば、撮像場所Pxで撮像されたパノラマ画像のうち、最初に撮像されたパノラマ画像や最後に撮像されたパノラマ画像)を、切り替え時の表示対象としてもよい。
【0064】
このように、端末装置2においてパノラマ動画を再生している際に切替操作を行うことによって、同じ視線方向のままで当該パノラマ動画に関連付けられた対となるパノラマ動画(撮像場所(撮像対象)が同じで撮像時間帯が異なるパノラマ動画)の再生に切り替えられる。そして、パノラマ画像によって表現されている現実世界の時間帯を切り替え前後で変化させながら、当該パノラマ画像によって表現されている現実世界に対する表示範囲(表示対象)が切り替え前後で同じとなるため、切替操作に応じて瞬時に時間帯が変化したかのような画像を端末装置2に表示することができる。なお、上述した説明では、撮像時間帯が異なるパノラマ動画を用いたが、撮像年、撮像月、および撮像日の少なくとも1つが異なる撮像時期にそれぞれ撮像されたパノラマ動画であってもよい。
【0065】
また、他の例として、所定空間内を移動することなく定点撮像された複数のパノラマ動画を用いてもかまわない。例えば、
図7に示すように、春の現実世界の定点で撮像されたパノラマ動画の再生中に切替操作が行われた場合、同じ定点から現実世界を見た秋のパノラマ動画に切り替えられる。このパノラマ動画の切り替えの際、
図7に示すように同じ定点で異なる季節(例えば、春と秋)や異なる年月日(例えば、最近と数年前であり、年、月、および日の少なくとも1つが異なればよい)の同時刻に撮像されたパノラマ画像に切り替えられるとともに、当該パノラマ画像に対する視線方向(表示範囲)を変化させずに切り替えられる。一例として、異なる季節の同じ時間帯において現実世界の定点で撮像した2つのパノラマ動画が、互いに関連付けられて用意されている。そして、一方のパノラマ動画再生中に切替操作が行われた場合、他方のパノラマ動画を構成するパノラマ画像のうち、当該一方で再生されているパノラマ画像が撮像された撮像時刻と同じ撮像時刻に撮像されたパノラマ画像を表示対象とする。そして、新たに表示対象となったパノラマ画像をテクスチャとして立体モデルに貼り付け、端末装置2に表示するための仮想カメラの姿勢を切り替え前後で変えずに当該仮想カメラの視野範囲を端末装置2に表示することによって、上述したパノラマ動画の切り替えを行う。これによって、パノラマ画像によって表現されている現実世界の季節を切り替え前後で変化させながら、当該パノラマ画像によって表現されている現実世界の時刻および現実世界に対する表示範囲(表示対象)が切り替え前後で同じとなる。
【0066】
具体的には、
図8に示すように、現実世界の春の定点で撮像されたパノラマ動画Cは、各フレームとなるパノラマ画像ICnのデータとともに、当該パノラマ画像ICnがそれぞれ撮像された撮像時刻Tnを示すデータがそれぞれ記憶されている。また、現実世界の秋に同じ定点で撮像されたパノラマ動画Dは、各フレームとなるパノラマ画像IDnのデータとともに、当該パノラマ画像IDnがそれぞれ撮像された撮像時刻Tnを示すデータがそれぞれ記憶されている。ここで、パノラマ画像ICnおよびパノラマ画像IDnにはそれぞれパノラマ動画の撮像の際の基準方向が設定されており、例えば、パノラマ動画を定点撮像した際に、現実世界において固定的に設定された撮像方向(例えば、現実世界において所定の方位となる水平方向)が当該基準方向に設定されている。そして、パノラマ画像ICnおよびパノラマ画像IDnは、上記立体モデルの基準方向(Z軸正方向)がパノラマ動画の撮像の際の基準方向と一致するように、当該立体モデルに貼り付けられる。
【0067】
そして、
図9に示すように、パノラマ動画Cの再生において、撮像時刻Txに撮像されたパノラマ画像を表示している時点で切替操作が行われたとする。この場合、パノラマ動画Dを構成するパノラマ画像のうち、撮像時刻Txに撮像されたパノラマ画像が表示対象として抽出され、当該パノラマ画像以降のパノラマ画像を用いてパノラマ動画Dの再生が開始される。すなわち、パノラマ動画CおよびDがそれぞれ撮像時刻T1から撮像時刻Teまで同じ定点で撮像することによって生成されている場合、端末装置2には、撮像時刻T1〜Txに撮像された春のパノラマ動画Cが表示された後、切替操作によって撮像時刻Tx〜Teに撮像された秋のパノラマ動画Dに切り替えられて表示されることになる。
【0068】
このように、端末装置2において定点撮像されたパノラマ動画を再生している際に切替操作を行うことによって、同じ視線方向のままで当該パノラマ動画に関連付けられた対となるパノラマ動画(例えば、撮像場所(撮像対象)および撮像時刻が同じで撮像季節や撮像年月日が異なるパノラマ動画)の再生に切り替えられる。そして、パノラマ画像によって表現されている現実世界の季節や年月日を切り替え前後で変化させながら、当該パノラマ画像によって表現されている現実世界に対する表示範囲(表示対象)や撮像時刻が切り替え前後で同じとなるため、切替操作に応じて瞬時に季節や年月日が変化したかのような画像を端末装置2に表示することができる。
【0069】
なお、切り替えられるパノラマ動画は、異なる時間に実質的に同じ場所(視点)から撮像された動画であれば他の関連付けによって対となる動画であってもかまわない。例えば、上述した例では撮像場所や撮像時刻によって切り替えられるパノラマ動画が関連付けられているが、異なる時間に実質的に同じ場所(視点)から撮像された動画であればフレーム番号で関連付けてもよい。具体的には、
図4〜
図6を用いて説明した例の場合、現実世界において撮像する際の移動速度と移動するコースとを同じにして撮像した場合に各フレーム番号に対応する撮像場所は同じになるが、現実的にはフレーム番号に対応する撮像場所を同一にすることは難しい。しかしながら、一方のパノラマ動画のフレームの一部を削除したりフレームを追加したりすることによってフレーム番号に対応する撮像場所が実質的に同じになるように予め補正し、当該パノラマ動画の長さ(再生時間)を同じにすることによって、フレーム番号で関連付けたとしても実質的に同じ撮像場所のパノラマ画像に切り替えることが可能となる。また、
図7〜
図9を用いて説明した例の場合、季節や年月日が異なる現実世界において撮像したパノラマ動画から、撮像時刻が同一となるパノラマ動画を切り出すことによって、フレーム番号に対応する撮像時刻が実質的に同じになるように予め補正し、当該パノラマ動画の長さ(再生時間)を同じにすることによって、フレーム番号で関連付けたとしても実質的に同じ撮像時刻のパノラマ画像に切り替えることが可能となる。なお、現実世界において定点撮像した複数のパノラマ動画をフレーム番号によって関連付ける場合、それぞれのパノラマ動画を撮像した時間帯が異なっていてもよい。また、上述したように、切り替え対象とする複数のパノラマ動画の長さ(再生時間)を同じにすることによって、再生を開始してから現時点までの時間(再生経過時間)で関連付けても実質的に同じ撮像場所のパノラマ画像や実質的に同じ撮像時刻のパノラマ画像に切り替えることが可能となる。
【0070】
また、上述した説明では、表示するパノラマ動画が切り替えられた場合、当該切り替え直前に表示していたパノラマ画像(フレーム)に対応付けられたパノラマ画像(フレーム)を切り替え後のパノラマ動画から抽出し、当該切り替え後に当該パノラマ画像(フレーム)以降のパノラマ動画を再生する例を用いた。しかしながら、切り替え後のパノラマ動画は、切り替え時に対応付けられたフレームから再生してもいいし、切り替え時に対応付けられたフレームの次のフレームから再生してもよい。例えば、上記パノラマ動画Aの再生において、撮像場所Pxで撮像されたパノラマ画像を表示している時点で切替操作が行われた場合、パノラマ動画Bを構成するパノラマ画像のうち、撮像場所Pxの次の撮像場所(撮像場所Px+1)で撮像されたパノラマ画像以降のパノラマ画像を用いてパノラマ動画Bの再生を行ってもよい。また、上記パノラマ動画Cの再生において、撮像時刻Txに撮像されたパノラマ画像を表示している時点で切替操作が行われた場合、パノラマ動画Dを構成するパノラマ画像のうち、撮像時刻Txの次の撮像時刻(撮像時刻Tx+1)に撮像されたパノラマ画像以降のパノラマ画像を用いてパノラマ動画Dの再生を行ってもよい。さらに、フレーム番号によってパノラマ動画が関連付けられている場合、切り替え後のパノラマ動画を構成するパノラマ画像のうち、対応付けられたフレーム番号Xの次のフレーム番号(フレーム番号X+1)以降のパノラマ画像を用いて切り替え後のパノラマ動画の再生を行ってもよい。
【0071】
また、上述した説明では、関連付けられた対となるパノラマ動画間、すなわち関連付けられた2つのパノラマ動画間で切り替えが行われる例を用いたが、関連付けられた3つ以上のパノラマ動画間で切り替えが行われてもかまわない。関連付けて準備するパノラマ動画としては、実質的に同じ場所(視点)から撮像された動画であって、撮像時間帯が異なる、撮像季節が異なる、撮像年が異なるもの、撮像月が異なるもの、および撮像日(撮像曜日)が異なるものの少なくとも1つから選ばれた撮像条件に違いがある動画であればよい。また、撮像対象(被写体)が変化(例えば、天候による被写体の変化、改装や改築などによる被写体の変化、成長による被写体の変化)する前後に撮像したパノラマ動画を準備して切り替えることによって、さらに画像変化に富んだパノラマ動画の切り替えが可能となる。
【0072】
また、上述した説明では、ユーザの切替操作に応じてパノラマ動画が切り替えられる例を用いたが、所定の切替条件を満たした場合に自動的にパノラマ動画が切り替えられてもかまわない。一例として、端末装置2の表示範囲内に所定のオブジェクトが表示された場合に、関連付けられた別のパノラマ動画に自動的に切り替えてもかまわない。他の例として、ユーザがパノラマ動画を見ている現在の時刻や年月日に応じて自動的にパノラマ動画が選択されてもかまわない。例えば、情報処理装置3にRTC(リアルタイムクロック)等の現在時刻を取得するデバイスが備えられている場合、当該デバイスが示す現在時刻が夜の時間帯を示す場合に夜の時間帯に撮像されたパノラマ動画が初期選択されて表示されてもいいし、当該デバイスが示す現在の年月日が春の季節を示す場合に春に撮像されたパノラマ動画が初期選択されて表示されてもよい。
【0073】
[本実施形態の具体的な処理例]
次に、情報処理装置3において行われる処理の詳細を説明する。なお、後述する処理の説明では、撮像場所によって関連付けられたパノラマ動画を切り替える例(
図4〜
図6参照)を用いる。まず、
図10を参照して、処理において用いられる主なデータについて説明する。なお、
図10は、情報処理装置3のメモリ6に記憶される主なデータおよびプログラムの一例を示す図である。
【0074】
図10に示すように、メモリ6のデータ記憶領域には、パノラマ画像ファイルデータDa、端末操作データDb、姿勢データDc、仮想カメラデータDd、および仮想空間画像データDe等が記憶される。なお、メモリ6には、
図10に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ6のプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
【0075】
パノラマ画像ファイルデータDaは、
図5や
図8を用いて説明したように、関連付けられたパノラマ動画それぞれにおける各フレームのパノラマ画像データおよび撮像情報を示すデータである。パノラマ画像データは、フレーム番号N(1,2,3…)毎に、上述した立体モデルの内面にテクスチャとして貼り付けるパノラマ画像を示すデータを含んでいる。例えば、パノラマ画像データは、所定の記憶媒体にエンコードされて記憶されたパノラマ動画を、上記方式によってデコードすることによって得られる。パノラマ画像ファイルデータDaの撮像情報を示すデータは、フレーム番号N毎に、パノラマ画像の撮像場所や撮像時刻を示すデータである。
【0076】
端末操作データDbは、端末装置2に対する操作内容を示すデータであり、操作入力データDb1および角速度データDb2等を含んでいる。操作入力データDb1は、タッチパネル12や操作部13に対する操作内容を示すデータである。角速度データDb2は、端末装置2に生じる角速度を示すデータであり、ジャイロセンサ15から出力される角速度を示すデータである。
【0077】
姿勢データDcは、実空間における端末装置2の姿勢を示すデータであり、例えば基準姿勢からの端末装置2の回転量を示すデータである。
【0078】
仮想カメラデータDdは、立体モデルの中央に配置される仮想カメラに関するデータである。例えば、仮想カメラデータDdは、仮想空間における仮想カメラの位置、姿勢、視野(画角)等に関するデータである。
【0079】
仮想空間画像データDeは、上記仮想カメラから立体モデルの内面を見た仮想空間画像を示すデータである。
【0080】
次に、
図11および
図12を参照して、情報処理装置3において行われる処理の詳細を説明する。なお、
図11は、情報処理装置3において実行される処理の前半の一例を示すフローチャートである。
図12は、情報処理装置3において実行される処理の後半の一例を示すフローチャートである。ここで、
図11および
図12に示すフローチャートにおいては、情報処理装置3における処理のうち、切替操作に応じてパノラマ動画を切り替えて端末装置2に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。
【0081】
CPU5は、メモリ6等を初期化し、情報処理装置3内の不揮発メモリまたは光ディスクに記憶される情報処理プログラムをメモリ6に読み込む。そして、CPU5によって当該情報処理プログラムの実行が開始される。
図11および
図12に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0082】
なお、
図11および
図12に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をCPU5が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0083】
図11において、CPU5は、パノラマ画像ファイルを取得する(ステップ81)。例えば、CPU5は、情報処理装置3内の不揮発メモリ、情報処理装置3に装着された記憶媒体、またはネットワーク等を介して他の装置から、パノラマ画像ファイルを取得し、パノラマ画像ファイルデータDaに格納する。
【0084】
次に、CPU5は、パノラマ動画を貼り付けるための立体モデルを、仮想空間にその中心が原点に位置するように配置し(ステップ82)、次のステップに処理を進める。例えば、CPU5は、立体モデルの形状が立方体である場合、仮想空間に設定されたXYZ軸に対して、上記立体モデルの正面がZ軸正方向側でZ軸と垂直に交わり、背面がZ軸負方向側でZ軸と垂直に交わり、左側面がX軸正方向側でX軸と垂直に交わり、右側面がX軸負方向側でX軸と垂直に交わり、上面がY軸正方向側でY軸と垂直に交わり、底面がY軸負方向側でY軸と垂直に交わるように、上記立体モデルを配置する。
【0085】
次に、CPU5は、仮想カメラを基準位置に初期姿勢で配置し(ステップ83)、次のステップに処理を進める。例えば、CPU5は、仮想カメラの基準位置を仮想空間の原点(すなわち、立体モデルの中央)とし、仮想カメラのxyz軸(x軸正方向が仮想カメラの左方向、y軸正方向が仮想カメラの上方向、z軸正方向が仮想カメラの視線方向)が仮想空間のXYZ軸に一致する姿勢を初期姿勢とする。そして、CPU5は、仮想カメラの基準位置および初期姿勢を用いて、仮想カメラデータDdにおける仮想カメラの位置および姿勢に関するデータを更新する。
【0086】
次に、CPU5は、端末装置2の姿勢調整をユーザに促し(ステップ84)、姿勢調整が行われるのを待ち(ステップ85)、当該姿勢調整が行われるまで当該ステップ84および当該ステップ85を繰り返す。そして、CPU5は、姿勢調整が行われた場合、ステップ86に処理を進める。
【0087】
ステップ86において、CPU5は、現時点の端末装置2の姿勢を基準姿勢に設定し、次のステップに処理を進める。例えば、CPU5は、姿勢データDcが示す端末装置2の姿勢(基準姿勢からの回転量)を初期化(各軸周りの回転量を0)して、端末装置2の基準姿勢を設定する。
【0088】
なお、上述したように、上記ステップ84〜ステップ86の処理においては、ステップ84の処理が行われた時点または当該時点から所定時間経過後の端末装置2の姿勢を基準姿勢として設定してもよいし、ユーザが所定の操作をしたときの端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な複数の端末装置2の姿勢のうちユーザが選択してもよい。一例として、モニタ4にもパノラマ動画を再生して表示する場合、CPU5は、端末装置2のLCD11の向きとモニタ4の表示画面の向きとが同じになるように端末装置2の姿勢を調整し、当該姿勢になった場合に端末装置2の所定の操作を行うように促す表示を、端末装置2および/またはモニタ4に表示する。そして、CPU5は、端末装置2の操作部13に対して所定の操作が行われたことを示す操作データを取得した場合に、上記姿勢調整が行われたと判断して、当該操作が行われた時点の端末装置2の姿勢を基準姿勢として設定する。この場合、上記ステップ84〜ステップ86の処理によって、端末装置2のLCD11の向きとモニタ4の表示画面の向きとが同じになるように姿勢調整された端末装置2の姿勢が、端末装置2の基準姿勢として設定されることになる。
【0089】
次に、CPU5は、フレーム数nを1に設定し(ステップ87)、次のステップに処理を進める。
【0090】
次に、CPU5は、パノラマ画像ファイルデータDaにおいて関連付けられているパノラマ動画のうち、デフォルトで端末装置2に表示する表示対象を設定し(ステップ88)、次のステップ91(
図12参照)に処理を進める。例えば、CPU5は、予め定められたパノラマ画像を表示対象に設定してもいいし、ユーザによって選択されたパノラマ画像を表示対象として設定してもよい。
【0091】
図12において、CPU5は、切替操作が行われたか否かを判断する(ステップ91)。例えば、CPU5は、操作入力データDa1を参照して、切替操作が行われたか否かを判断する。なお、端末装置2からは、タッチパネル12や操作部13に対する操作入力を示すデータが一定周期で情報処理装置3に送信され、操作入力データDb1に格納されている。そして、CPU5は、切替操作が行われた場合、ステップ92に処理を進める。一方、CPU5は、切替操作が行われていない場合、ステップ95に処理を進める。
【0092】
ステップ92において、CPU5は、端末装置2に表示する表示対象となるパノラマ動画を切り替えて、次のステップに処理を進める。例えば、CPU5は、現時点で表示対象となっているパノラマ動画と関連付けられている別のパノラマ動画を、表示対象として新たに選択する。
【0093】
次に、CPU5は、現時点で表示されているパノラマ画像の撮像場所と同じ撮像場所で撮像されたフレーム番号Xを、新たに表示対象となったパノラマ動画に設定された撮像場所データを用いて抽出し(ステップ93)、次のステップに処理を進める。例えば、CPU5は、新たに表示対象となったパノラマ動画に関するパノラマ画像ファイルデータDaを参照して、現時点で表示されているパノラマ画像の撮像場所と同じ撮像場所が設定されたフレーム番号Xを抽出する。
【0094】
次に、CPU5は、上記ステップ93で抽出されたフレーム番号Xを用いてフレーム数nを更新し(ステップ94)、ステップ95に処理を進める。
【0095】
ステップ95において、CPU5は、現時点で表示対象となっているパノラマ動画に関するパノラマ画像ファイルデータDaのパノラマ画像データのうち、フレームnに対応するパノラマ画像を取得し、次のステップに処理を進める。
【0096】
次に、CPU5は、上記ステップ95で取得したパノラマ画像を立体モデルの内面にテクスチャとして貼りつけ(ステップ96)、次のステップに処理を進める。例えば、上述したように、パノラマ画像に設定された基準方向が立体モデルの基準方向と一致するように、当該立体モデルの各内面に当該パノラマ画像がテクスチャとして貼りつけられる。
【0097】
次に、CPU5は、端末装置2のジャイロセンサ15の出力値を示すデータを取得し(ステップ97)、次のステップに処理を進める。なお、端末装置2からは、ジャイロセンサ15の出力値を示すデータが一定周期で情報処理装置3に送信され、角速度データDb2に格納されている。
【0098】
次に、CPU5は、上記ステップ97において取得したデータを用いて、端末装置2の基準姿勢からの回転方向および回転量(ステップ86で初期化してからの回転方向および回転量)を算出し(ステップ98)、次のステップに処理を進める。例えば、上記ステップ98では、基準姿勢における端末装置2の所定軸方向(例えば、基準姿勢におけるxt軸、yt軸、zt軸方向)を軸とした回転方向および回転量がそれぞれ算出されて、姿勢データDcが更新される。なお、回転方向は、回転量の正負により表すことができるので、姿勢データDcには回転量を示すデータのみ格納してもよい。例えば、CPU5は、上記ステップ98では、前回処理におけるステップ98において算出された回転量に、今回のステップ98で取得した角速度データに基づく回転量を加えて、新たな回転量として算出する。
【0099】
次に、CPU5は、仮想カメラの仮想空間における姿勢を、上記初期姿勢からステップ98で算出された回転量だけ回転させ(ステップ99)、次のステップに処理を進める。例えば、CPU5は、上記初期姿勢から仮想カメラの姿勢を、ステップ98で算出された端末装置2のxt軸方向を軸とした回転量と同じだけ仮想空間のX軸方向(初期姿勢における仮想カメラC1のx軸方向)を軸として回転させ、かつ、ステップ98で算出された端末装置2のyt軸方向を軸とした回転量と同じだけ仮想空間のY軸方向(初期姿勢における仮想カメラC1のy軸方向)を軸として回転させ、かつ、ステップ98で算出された端末装置2のzt軸方向を軸とした回転量と同じだけ仮想空間のZ軸方向(初期姿勢における仮想カメラC1のz軸方向)を軸として回転させて、仮想カメラデータDdにおける仮想カメラの姿勢に関するデータを更新する。
【0100】
次に、CPU5は、仮想カメラから見た立体モデルの内面の画像(仮想空間画像)を生成し(ステップ100)、次のステップに処理を進める。例えば、CPU5は、生成された仮想空間画像を示すデータを用いて、仮想空間画像データDeを更新する。
【0101】
次に、CPU5は、仮想空間画像データDeに基づいた仮想空間画像を端末装置2へ送信し(ステップ101)、次のステップに処理を進める。例えば、仮想空間画像データDeに基づいた仮想空間画像は、端末装置2によって受信され、LCD11に出力されて仮想空間画像が表示される。なお、情報処理装置3から端末装置2へ仮想空間画像を送信する際、所定の圧縮処理が行われてもよい。この場合、圧縮処理が施された仮想空間画像のデータが端末装置2に送られ、端末装置2によって所定の伸張処理が行われた後、仮想空間画像の表示が行われる。
【0102】
次に、CPU5は、フレーム数nをインクリメントし(ステップ102)、処理を終了するか否かを判定する(ステップ103)。処理を終了する条件としては、例えば、再生しているパノラマ動画における最後のフレームの画像の再生が終了したことや、ユーザが処理を終了する操作を行ったこと等がある。CPU5は、処理を終了しない場合に上記ステップ91に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ91〜ステップ103の一連の処理は、ステップ103で処理を終了すると判定されるまで繰り返し実行される。
【0103】
[変形例]
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【0104】
上記処理例においては、端末装置2にパノラマ画像の一部を表示する例を用いたが、情報処理システム1はモニタ4にさらにパノラマ画像を表示し、パノラマ動画を実質的に同じ時間軸で再生して端末装置2およびモニタ4に表示する構成であってもよい。この場合、モニタ4に表示するパノラマ動画は、端末装置2に表示するパノラマ動画が切り替わることに応じて同じパノラマ動画に切り替えてもいいし、予め定められたパノラマ動画が固定的に表示されてもよい。モニタ4に表示するパノラマ画像の表示範囲は、以下のような例が考えられる。
【0105】
第1の例として、モニタ4にパノラマ画像を表示するための別の仮想カメラ(第2の仮想カメラ)を設け、第2の仮想カメラの位置および姿勢を上記基準位置および初期姿勢に固定する。そして、当該第2の仮想カメラから見た立体モデルの内面の画像をモニタ4に表示すれば、モニタ4には常に基準方向(正面方向)のパノラマ画像を表示することができる。なお、上記第2の仮想カメラの姿勢をユーザ操作に応じて変化させてもよい。この場合、モニタ4に表示するパノラマ画像の範囲が、ユーザ操作に応じて変化することになる。
【0106】
第2の例として、モニタ4には、パノラマ画像全体を示す画像(全方位画像)を常に表示する。例えば、全方位画像は、パノラマ動画を撮像した撮像カメラから得られた画像を合成して生成してもいいし、立体モデルの各内面に貼り付けられるパノラマ画像を合成して生成してもよいが、全方位画像を生成する手法については、既に周知であるためここでは詳細な説明を省略する。
【0107】
第3の例として、モニタ4には、端末装置2に表示されているパノラマ画像の表示範囲に対応する表示範囲を表示する。端末装置2と同じパノラマ動画を表示している場合は、端末装置2に表示されているパノラマ画像をリアルタイムにモニタ4に表示してもいい。
【0108】
また、端末装置2および/またはモニタ4には、関連付けられたパノラマ動画のうち、表示対象となっていないパノラマ動画がサムネイル表示されてもよい。この場合、表示対象となっているパノラマ動画において表示されているフレーム番号と同じフレーム番号のパノラマ画像を同期させて、表示対象となっていないパノラマ動画をサムネイル表示してもよい。また、サムネイル表示するパノラマ画像の表示範囲は、端末装置2に表示されているパノラマ画像と同じ視線方向に基づいて設定されてもいいし、予め定められた表示範囲でもいいし、端末装置2または別の表示装置において過去に表示された履歴に基づいた表示範囲でもよい。このように、表示対象となっていないパノラマ動画がサムネイル表示される場合、当該サムネイル表示が選択されるユーザ操作(例えば、LCD11に表示されたサムネイル表示と重なる位置をタッチパネル12でタッチする操作、モニタ4に表示されたサムネイル表示を所定の入力装置を用いて選択する操作)を、上記切替操作としてもかまわない。
【0109】
また、上記実施形態においては、情報処理システム1は端末装置2を1つのみ有する構成であったが、情報処理システム1は複数の端末装置2を有する構成であってもよい。すなわち、情報処理装置3は、複数の端末装置2とそれぞれ無線通信可能であり、画像のデータを各端末装置2へ送信し、ジャイロセンサ15のデータを各端末装置2から受信するものであってもよい。そして、仮想空間に各端末装置2の仮想カメラをそれぞれ配置して、各端末装置2の姿勢に応じて各仮想カメラの姿勢を制御して、各仮想カメラから見た仮想空間の画像を各端末装置2に送信するようにすればよい。なお、情報処理装置3は、複数の端末装置2のそれぞれと無線通信を行うが、このとき、情報処理装置3は、各端末装置2との無線通信を時分割で行ってもよいし、周波数帯域を分割して行ってもよい。
【0110】
このように、複数の端末装置2を用いてパノラマ動画を表示する場合、上記ステップ83において、各仮想カメラを同じ基準位置に同じ初期姿勢で配置する。そして、ステップ84〜ステップ86において、各端末装置2の向きが同じになるようにそれぞれの姿勢を調整し、当該姿勢になった場合に少なくとも1つの端末装置2を用いて所定の操作を行うことによって、各端末装置2の姿勢をそれぞれ基準姿勢に設定する。このような設定に基づいて、各端末装置2の基準姿勢からの回転量に応じてそれぞれの仮想カメラの姿勢を変更し、各仮想カメラから見た立体モデルの内面の画像を各端末装置2に表示する。そして、各端末装置2における切替操作に応じて、当該端末装置2に表示するパノラマ動画を切り替える。なお、パノラマ動画を切り替える際、切替操作が行われた端末装置2だけを対象としてパノラマ動画を切り替えてもいいし、情報処理装置3と無線通信している端末装置2全てを対象として同時にパノラマ動画を切り替えてもかまわない。
【0111】
また、上述した端末装置2は、
図11および
図12を用いて説明した一連の処理や情報処理装置3で行われるような情報処理を実行しない、いわゆるシンクライアント端末として機能するものであった。しかしながら、端末装置2は、例えば携帯ゲーム機のように、所定のプログラム(ゲームプログラム)によって所定の情報処理(ゲーム処理)を実行する機能を有する装置であってもよい。この場合、上記実施例において情報処理装置3によって実行される一連の処理のうち、少なくとも一部の処理が端末装置2によって実行されてもよい。一例として、上記一連の処理の全部を実行可能な端末装置を少なくとも1つ用いて複数の端末装置にパノラマ動画をそれぞれ表示する場合、当該実行可能な端末装置の1つを当該一連の処理を実行する主処理実行装置とし、他の端末装置の姿勢に応じたパノラマ動画を当該主処理実行装置から他の端末装置へ送信することによって、同様のパノラマ画像を各端末装置に表示して出力することができる。
【0112】
また、上述した実施例では、現実世界を移動しながら撮像したパノラマ画像によって構成されるパノラマ動画を表示する例を用いたが、仮想世界内を移動しながら撮像したパノラマ画像によって構成されるパノラマ動画や、現実世界を撮像したパノラマ画像に仮想世界の画像を合成した画像によって構成されるパノラマ動画を表示してもかまわない。
【0113】
他の実施形態では、互いに通信可能な複数の情報処理装置を有する情報処理システムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。なお、複数の情報処理装置において情報処理が実行される場合には、各情報処理装置で実行される処理を同期させる必要があり、処理が複雑になってしまう。これに対して、上記実施形態のように、情報処理が1つの情報処理装置3によって実行され、端末装置2が画像を受信して表示する場合(つまり、端末装置2がシンクライアント端末である場合)には、複数の情報処理装置間で処理の同期をとる必要がなく、処理を簡易化することができる。
【0114】
また、上記実施形態においては、情報処理を実行することが可能な情報処理装置3を含む情報処理システム1を例として説明したが、上記実施形態で記載した各処理動作は、例示したゲームシステムおよびゲーム装置に限らず、任意の情報処理システムおよび情報処理装置によって実行可能である。情報処理システムは、情報処理装置と、少なくとも1つの表示装置(例えば端末装置2)とを含むものであればよく、情報処理装置は、当該表示装置に画像を出力して表示させることができるものであればよい。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。
【0115】
また、上記情報処理プログラムは、外部記憶媒体を通じて情報処理装置3に供給されてもいいし、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、不揮発性メモリ、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0116】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。