特許第6219037号(P6219037)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧
特許6219037情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
<>
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000002
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000003
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000004
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000005
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000006
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000007
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000008
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000009
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000010
  • 特許6219037-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6219037
(24)【登録日】2017年10月6日
(45)【発行日】2017年10月25日
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
(51)【国際特許分類】
   G06F 3/0481 20130101AFI20171016BHJP
   G06F 3/0485 20130101ALI20171016BHJP
   G06F 3/01 20060101ALI20171016BHJP
   G06F 3/0346 20130101ALI20171016BHJP
   G06F 3/0338 20130101ALI20171016BHJP
   A63F 13/00 20140101ALI20171016BHJP
【FI】
   G06F3/0481 150
   G06F3/0485
   G06F3/01 510
   G06F3/0346 425
   G06F3/0338
   A63F13/00
【請求項の数】13
【全頁数】23
(21)【出願番号】特願2013-21213(P2013-21213)
(22)【出願日】2013年2月6日
(65)【公開番号】特開2014-153802(P2014-153802A)
(43)【公開日】2014年8月25日
【審査請求日】2015年12月10日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】鈴木 利明
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1 任天堂株式会社内
【審査官】 若林 治男
(56)【参考文献】
【文献】 特開2003−265858(JP,A)
【文献】 特開2013−12181(JP,A)
【文献】 特開2012−168783(JP,A)
【文献】 特開平7−199280(JP,A)
【文献】 特開2012−247976(JP,A)
【文献】 国際公開第2009/084213(WO,A1)
【文献】 特許第5113933(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0481
A63F 13/00
G06F 3/01
G06F 3/0338
G06F 3/0346
G06F 3/0485
(57)【特許請求の範囲】
【請求項1】
可搬型の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサおよびユーザ操作入力が可能な操作手段を備える当該可搬型の表示装置に少なくとも画像を表示する情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢および前記操作手段に対する操作に応じて仮想カメラの動作を制御することによって、表示対象画像に対してその一部を当該表示装置に表示する第1表示範囲を設定する第1表示範囲設定手段と、
前記表示対象画像において、前記第1表示範囲内の画像を前記可搬型の表示装置に表示する第1表示制御手段として機能させ、
前記第1表示範囲設定手段は、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢に応じて、前記仮想カメラの視線方向が変化するように当該仮想カメラを回転させることによって、当該仮想カメラから見た視野を前記第1表示範囲として設定する姿勢表示範囲設定手段と、
前記操作手段に対する操作に応じて、前記姿勢表示範囲設定手段によって設定された前記仮想カメラの視線方向がさらに変化するように当該仮想カメラを回転させることによって、前記第1表示範囲をオフセットする表示範囲オフセット手段とを含み、
前記第1表示制御手段は、前記表示対象画像において、前記オフセットされた第1表示範囲内の画像を前記可搬型の表示装置に表示し、
前記操作手段は、少なくとも2方向への方向指示操作が可能な方向指示手段を含み、
前記表示範囲オフセット手段は、前記方向指示手段に対する方向指示操作によって指示された方向に前記第1表示範囲をオフセットし、前記方向指示手段に対する方向指示操作が行われていない場合、前記第1表示範囲のオフセットを解除する、情報処理プログラム。
【請求項2】
前記方向指示手段は、前記方向指示操作の際、方向とともに当該方向に対する大きさを同時に指示することが可能であり、
前記表示範囲オフセット手段は、前記方向指示手段に対する方向指示操作によって指示された大きさに応じたオフセット量だけ当該指示された方向へ前記第1表示範囲をオフセットする、請求項に記載の情報処理プログラム。
【請求項3】
前記方向指示手段は、所定部材を中立状態から傾倒させることによって当該中立状態からの傾倒方向と当該中立状態からの傾倒角度とを同時に指示することが可能であり、
前記表示範囲オフセット手段は、前記傾倒角度に応じたオフセット量だけ当該傾倒方向に応じた方向へ前記第1表示範囲をオフセットする、請求項に記載の情報処理プログラム。
【請求項4】
前記表示範囲オフセット手段は、前記方向指示手段に対する方向指示操作が行われている継続時間に応じたオフセット量だけ当該指示された方向へ前記第1表示範囲をオフセットする、請求項に記載の情報処理プログラム。
【請求項5】
前記表示対象画像に対してその少なくとも一部を据置型の表示装置に表示する第2表示範囲を設定する第2表示範囲設定手段と、
前記表示対象画像において、前記第2表示範囲内の画像を前記据置型の表示装置に表示する第2表示制御手段として、前記コンピュータを機能させ、
前記第1表示範囲設定手段および前記第2表示範囲設定手段は、前記据置型の表示装置と前記可搬型の表示装置との実空間における位置関係に応じて、前記第1表示範囲と前記第2表示範囲とをそれぞれ設定する、請求項1乃至の何れか1つに記載の情報処理プログラム。
【請求項6】
前記表示範囲オフセット手段は、前記表示対象画像の視野角において、前記第1表示範囲のオフセットを可能とするオフセット量を180°未満とする、請求項1乃至の何れか1つに記載の情報処理プログラム。
【請求項7】
前記表示対象画像は、所定の仮想空間内を示す画像、かつ、前記第1表示範囲の視野角より広い画像である、請求項1乃至の何れか1つに記載の情報処理プログラム。
【請求項8】
前記表示対象画像は、実空間が撮像された画像、かつ、前記第1表示範囲の視野角より広いパノラマ画像である、請求項1乃至の何れか1つに記載の情報処理プログラム。
【請求項9】
前記第1表示範囲設定手段は、前記操作手段のうち、前記可搬型の表示装置を把持した場合に、当該把持しているユーザが操作可能な前記方向指示手段に対する操作に応じて、前記第1表示範囲を設定する、請求項1乃至の何れか1つに記載の情報処理プログラム。
【請求項10】
前記方向指示手段は、前記可搬型の表示装置の両端をユーザが両手で把持した場合、当該把持しているユーザの何れかの指で操作可能である、請求項に記載の情報処理プログラム。
【請求項11】
可搬型の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサおよびユーザ操作入力が可能な操作手段を備える当該可搬型の表示装置に少なくとも画像を表示する情報処理装置であって、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢および前記操作手段に対する操作に応じて仮想カメラの動作を制御することによって、表示対象画像に対してその一部を当該表示装置に表示する第1表示範囲を設定する第1表示範囲設定手段と、
前記表示対象画像において、前記第1表示範囲内の画像を前記可搬型の表示装置に表示する第1表示制御手段とを備え、
前記第1表示範囲設定手段は、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢に応じて、前記仮想カメラの視線方向が変化するように当該仮想カメラを回転させることによって、当該仮想カメラから見た視野を前記第1表示範囲として設定する姿勢表示範囲設定手段と、
前記操作手段に対する操作に応じて、前記姿勢表示範囲設定手段によって設定された前記仮想カメラの視線方向がさらに変化するように当該仮想カメラを回転させることによって、前記第1表示範囲をオフセットする表示範囲オフセット手段とを含み、
前記第1表示制御手段は、前記表示対象画像において、前記オフセットされた第1表示範囲内の画像を前記可搬型の表示装置に表示し、
前記操作手段は、少なくとも2方向への方向指示操作が可能な方向指示手段を含み、
前記表示範囲オフセット手段は、前記方向指示手段に対する方向指示操作によって指示された方向に前記第1表示範囲をオフセットし、前記方向指示手段に対する方向指示操作が行われていない場合、前記第1表示範囲のオフセットを解除する、情報処理装置。
【請求項12】
複数の装置が通信可能に構成され、可搬型の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサおよびユーザ操作入力が可能な操作手段を備える当該可搬型の表示装置に少なくとも画像を表示する情報処理システムであって、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢および前記操作手段に対する操作に応じて仮想カメラの動作を制御することによって、表示対象画像に対してその一部を当該表示装置に表示する第1表示範囲を設定する第1表示範囲設定手段と、
前記表示対象画像において、前記第1表示範囲内の画像を前記可搬型の表示装置に表示する第1表示制御手段とを備え、
前記第1表示範囲設定手段は、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢に応じて、前記仮想カメラの視線方向が変化するように当該仮想カメラを回転させることによって、当該仮想カメラから見た視野を前記第1表示範囲として設定する姿勢表示範囲設定手段と、
前記操作手段に対する操作に応じて、前記姿勢表示範囲設定手段によって設定された前記仮想カメラの視線方向がさらに変化するように当該仮想カメラを回転させることによって、前記第1表示範囲をオフセットする表示範囲オフセット手段とを含み、
前記第1表示制御手段は、前記表示対象画像において、前記オフセットされた第1表示範囲内の画像を前記可搬型の表示装置に表示し、
前記操作手段は、少なくとも2方向への方向指示操作が可能な方向指示手段を含み、
前記表示範囲オフセット手段は、前記方向指示手段に対する方向指示操作によって指示された方向に前記第1表示範囲をオフセットし、前記方向指示手段に対する方向指示操作が行われていない場合、前記第1表示範囲のオフセットを解除する、情報処理システム。
【請求項13】
可搬型の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサおよびユーザ操作入力が可能な操作手段を備える可搬型の表示装置に少なくとも画像を表示する少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢および前記操作手段に対する操作に応じて仮想カメラの動作を制御することによって、表示対象画像に対してその一部を当該表示装置に表示する第1表示範囲を設定する第1表示範囲設定ステップと、
前記表示対象画像において、前記第1表示範囲内の画像を前記可搬型の表示装置に表示する第1表示制御ステップとを含み、
前記第1表示範囲設定ステップは、
前記センサから出力されるデータに基づいて算出された前記可搬型の表示装置の姿勢に応じて、前記仮想カメラの視線方向が変化するように当該仮想カメラを回転させることによって、当該仮想カメラから見た視野を前記第1表示範囲として設定する姿勢表示範囲設定ステップと、
前記操作手段に対する操作に応じて、前記姿勢表示範囲設定ステップにおいて設定された前記仮想カメラの視線方向がさらに変化するように当該仮想カメラを回転させることによって、前記第1表示範囲をオフセットする表示範囲オフセットステップとを含み、
前記第1表示制御ステップでは、前記表示対象画像において、前記オフセットされた第1表示範囲内の画像が前記可搬型の表示装置に表示され、
前記操作手段は、少なくとも2方向への方向指示操作が可能な方向指示手段を含み、
前記表示範囲オフセットステップでは、前記方向指示手段に対する方向指示操作によって指示された方向に前記第1表示範囲がオフセットされ、前記方向指示手段に対する方向指示操作が行われていない場合、前記第1表示範囲のオフセットが解除される、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関し、特に例えば、可搬型ディスプレイに画像の一部を表示する情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【0002】
可搬型ディスプレイにその動きや姿勢に応じて仮想空間の一部を表示する技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平9−305788号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載の技術は、可搬型ディスプレイの動きや姿勢によって表示する範囲が決定されるため、ユーザが所望する表示範囲を表示するためには、ユーザが困難な姿勢となって可搬型ディスプレイを操作することが必要となることがある。
【0005】
それ故に、本発明の目的は、ユーザが容易に表示範囲を移動させることができる情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理プログラムの一構成例は、可搬型の表示装置本体の動きまたは姿勢に応じたデータを出力するセンサおよびユーザ操作入力が可能な操作手段を備える当該可搬型の表示装置に少なくとも画像を表示する情報処理装置に含まれるコンピュータで実行される。情報処理プログラムは、第1表示範囲設定手段、および第1表示制御手段として、コンピュータを機能させる。第1表示範囲設定手段は、センサから出力されるデータに基づいて算出された可搬型の表示装置の姿勢および操作手段に対する操作に応じて、表示対象画像に対してその一部を当該表示装置に表示する第1表示範囲を設定する。第1表示制御手段は、表示対象画像において、第1表示範囲内の画像を可搬型の表示装置に表示する。
【0008】
上記「情報処理装置」は、可搬型の表示装置とは別の装置によって構成されてもよいし、当該表示装置が情報処理機能を有する場合には当該表示装置によって構成されてもよい。また、前者の場合、「別の装置」によって本発明の各処理を実行し、可搬型の表示装置は「別の装置」によって生成された画像を表示処理するのみでもよいし、可搬型の表示装置が情報処理機能を有する場合には、当該表示装置の情報処理機能と「別の装置」の情報処理機能との協働により実現してもよい。また、「別の装置」は複数の情報処理装置によって分散処理するものであってもよい。
【0009】
上記によれば、可搬型の表示装置本体の動きまたは姿勢に応じて表示範囲が変化するとともに、操作手段に対する操作でも当該表示範囲が変化するため、表示対象画像に対して容易に表示範囲を移動させることができる。
【0010】
また、上記第1表示範囲設定手段は、姿勢表示範囲設定手段および表示範囲オフセット手段を含んでもよい。姿勢表示範囲設定手段は、センサから出力されるデータに基づいて算出された可搬型の表示装置の姿勢に応じて、第1表示範囲を設定する。表示範囲オフセット手段は、操作手段に対する操作に応じて、表示対象画像に対して姿勢表示範囲設定手段によって設定された第1表示範囲をオフセットする。この場合、第1表示制御手段は、表示対象画像において、オフセットされた第1表示範囲内の画像を可搬型の表示装置に表示してもよい。
【0011】
上記によれば、可搬型の表示装置本体の動きまたは姿勢に応じて表示範囲が変化するとともに、操作手段に対する操作でも当該表示範囲がオフセットされるため、表示対象画像に対して容易に表示範囲を移動させることができる。
【0012】
また、上記操作手段は、少なくとも2方向への方向指示操作が可能な方向指示手段を含んでもよい。この場合、上記表示範囲オフセット手段は、方向指示手段に対する方向指示操作によって指示された方向に第1表示範囲をオフセットしてもよい。
【0013】
上記によれば、方向指示手段に対する操作によって表示範囲がオフセットされる方向が設定されるため、表示範囲をオフセットする方向を制御するための操作を直感的に行うことができる。
【0014】
また、上記情報処理プログラムは、仮想カメラ設定手段として、コンピュータを機能させてもよい。仮想カメラ設定手段は、その視野の少なくとも一部が第1表示範囲として設定される仮想カメラを、仮想空間内に設定する。この場合、上記姿勢表示範囲設定手段は、可搬型の表示装置の姿勢に応じて、仮想カメラの姿勢を変化させることによって第1表示範囲を設定してもよい。上記表示範囲オフセット手段は、方向指示手段に対する方向指示操作によって指示された方向に仮想カメラの視線方向を変化させることによって第1表示範囲をオフセットしてもよい。
【0015】
上記によれば、仮想カメラの姿勢を制御することによって、容易に表示範囲を移動させることができる。
【0016】
また、上記表示範囲オフセット手段は、方向指示手段に対する方向指示操作が行われていない場合、第1表示範囲をオフセットする量を0にしてもよい。
【0017】
上記によれば、方向指示手段に対する操作を止めることによって、可搬型の表示装置本体の動きまたは姿勢のみによって表示範囲を移動させることができ、容易に表示範囲のオフセットを無効にすることができる。
【0018】
また、上記方向指示手段は、方向指示操作の際、方向とともに当該方向に対する大きさを同時に指示することが可能であってもよい。この場合、上記表示範囲オフセット手段は、方向指示手段に対する方向指示操作によって指示された大きさに応じたオフセット量だけ当該指示された方向へ第1表示範囲をオフセットしてもよい。
【0019】
上記によれば、アナログスティックやタッチパネル等を方向指示手段として用いる場合に、傾倒方向および傾倒角度やタッチ方向およびタッチ位置に応じた長さ等に基づいてオフセットする方向および量を設定することができるため、直感的な操作で容易にオフセット方向および量を制御することができる。
【0020】
また、上記方向指示手段は、所定部材を中立状態から傾倒させることによって当該中立状態からの傾倒方向と当該中立状態からの傾倒角度とを同時に指示することが可能であってもよい。この場合、上記表示範囲オフセット手段は、傾倒角度に応じたオフセット量だけ当該傾倒方向に応じた方向へ第1表示範囲をオフセットしてもよい。
【0021】
上記によれば、アナログスティック等を方向指示手段として用いる場合に、直感的な操作で容易にオフセット方向および量を制御することができる。また、中立状態からの傾倒角度によってオフセット量が設定されるため、当該中立状態から傾倒角度を漸増的に大きくするまたは漸減的に小さくするような操作を行うことによって、当該傾倒角度の拡大または縮小に応じて徐々に表示範囲をオフセットして移動させることができる。
【0022】
また、上記表示範囲オフセット手段は、方向指示手段に対する方向指示操作が行われている継続時間に応じたオフセット量だけ当該指示された方向へ第1表示範囲をオフセットしてもよい。
【0023】
上記によれば、方向指示キー(例えば、十字キーや左ボタンおよび右ボタン)等を方向指示手段として用いる場合に、操作する方向指示キーによってオフセット方向の制御ができると同時に、方向指示キーの操作を継続している時間によってオフセット量も制御することができる。また、操作を開始してからの操作継続時間に応じてオフセット量が設定されるため、当該操作継続時間の経過に応じて徐々に表示範囲をオフセットして移動させることができる。
【0024】
また、上記情報処理プログラムは、第2表示範囲設定手段および第2表示制御手段として、コンピュータを機能させてもよい。第2表示範囲設定手段は、表示対象画像に対してその少なくとも一部を据置型の表示装置に表示する第2表示範囲を設定する。第2表示制御手段は、表示対象画像において、第2表示範囲内の画像を据置型の表示装置に表示する。この場合、上記第1表示範囲設定手段および上記第2表示範囲設定手段は、据置型の表示装置と可搬型の表示装置との実空間における位置関係に応じて、第1表示範囲と第2表示範囲とをそれぞれ設定してもよい。
【0025】
上記によれば、表示対象画像によって形成されている空間を、複数の表示装置を介して覗いているかのような画像を表示することができる。
【0026】
また、上記表示範囲オフセット手段は、表示対象画像の視野角において、第1表示範囲のオフセットを可能とするオフセット量を180°未満としてもよい。
【0027】
上記によれば、表示範囲をオフセットすることにより、表示される表示対象画像に対する方向感覚が失われることが考えられるが、表示範囲をオフセットする量を制限することによって方向感覚が失われることを防止することができる。
【0028】
また、上記表示対象画像は、所定の仮想空間内を示す画像、かつ、第1表示範囲の視野角より広い画像であってもよい。
【0029】
上記によれば、視野角が相対的に広い仮想世界の一部を可搬型の表示装置に表示する場合に、可搬型の表示装置に表示する表示範囲を容易に移動させることができる。
【0030】
また、上記表示対象画像は、実空間が撮像された画像、かつ、第1表示範囲の視野角より広いパノラマ画像であってもよい。
【0031】
上記によれば、現実世界を撮像したパノラマ画像の一部を可搬型の表示装置に表示する場合に、可搬型の表示装置に表示する表示範囲を容易に移動させることができる。
【0032】
上記表示対象画像は、上下方向と左右方向のうち一方方向について視野角が180°以上の仮想空間画像またはパノラマ画像であることが好ましい。さらに好ましくは、一方方向について360°の仮想空間画像またはパノラマ画像であることが好ましい。また、他方方向については、可搬型の表示装置に表示する画像の視野角以上であることが好ましく、さらに言うと、当該画像の視野角の2倍以上、120°以上、150°以上、または、180°であることが好ましい。またパノラマ画像は、情報処理装置が有する撮像機能により撮像された画像であってもいいし、当該画像の撮像機能を有する他の装置により撮像された画像を所定の記憶媒体やネットワークを介して取り込んだ画像でもよい。
【0033】
また、上記第1表示範囲設定手段は、操作手段のうち、可搬型の表示装置を把持した場合に、当該把持しているユーザが操作可能な操作手段に対する操作に応じて、第1表示範囲を設定してもよい。
【0034】
上記によれば、第1表示範囲を設定するための操作が容易となる。
【0035】
また、上記ユーザが操作可能な操作手段は、可搬型の表示装置の両端をユーザが両手で把持した場合、当該把持しているユーザの何れかの指で操作可能であってもよい。
【0036】
上記によれば、可搬型の表示装置を把持した指で容易に操作することができる。
【0037】
また、本発明は、上記各手段を備える情報処理装置および情報処理システムや上記各手段で行われる動作を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【0038】
本発明によれば、可搬型の表示装置本体の動きまたは姿勢に応じて表示範囲が変化するとともに、操作手段に対する操作でも当該表示範囲が変化するため、表示対象画像に対して容易に表示範囲を移動させることができる。
【図面の簡単な説明】
【0039】
図1】情報処理システム1の一例を示すブロック図
図2A】端末装置2の外観の一例を示す正面図
図2B】端末装置2の外観の一例を示す背面図
図3】情報処理システム1において表示されるパノラマ動画(画像)の一例を示す図
図4】端末装置2の姿勢および方向指示に応じて表示範囲を決定する方法の一例を示す図
図5】端末装置2の姿勢に応じて表示範囲が決定される一例を示す図
図6】端末装置2の方向指示に応じて表示範囲が決定される一例を示す図
図7】情報処理装置3のメモリ6に記憶される主なデータおよびプログラムの一例を示す図
図8】情報処理装置3において実行される処理の前半の一例を示すフローチャートを示す図
図9】情報処理装置3において実行される処理の後半の一例を示すフローチャートを示す図
【発明を実施するための形態】
【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】
図2Aおよび図2Bに示すように、一例として、端末装置2の操作部13は、方向指示部を含んでいる。具体的には、方向指示部は、左アナログスティック13A、右アナログスティック13B、十字キー13C、Lボタン13D、Rボタン13E、ZLボタン13F、およびZRボタン13Gの少なくとも1つ等によって構成される。例えば、左アナログスティック13Aおよび右アナログスティック13Bは、スティックを倒した方向に応じて全方向に対する方向指示が可能である、また、十字キー13Cは、キーを押下した方向に応じて8方向に対する方向指示が可能である。また、Lボタン13DとRボタン13Eとの組やZLボタン13FとZRボタン13Gとの組は、押下したボタンによって左右方向に対する方向指示が可能である。なお、方向指示部は、タッチパネル12やタッチパッドによって構成されてもよい。例えば、タッチパネル12やタッチパッドは、入力面における基準位置(例えば、入力面の中心)に対してタッチパネル12やタッチパッドをタッチ操作している方向によって方向指示することが可能であるし、入力面上をスライドするようにタッチ操作することによって当該スライド方向を方向指示することも可能である。さらに、操作部13は、上記方向指示とは異なる指示のための操作ボタン等を備えていてもよい。また、方向指示部は、端末装置2の両端を両手で把持した場合、当該把持している何れかの指で操作可能な位置に設けられた操作手段であることが好ましい。
【0046】
また、端末装置2は、入力部として加速度センサ14を備える。加速度センサ14は、端末装置2の所定軸方向(本実施形態では3軸方向とするが、1軸以上でよい)に関する加速度を検出する。また、端末装置2は、入力部としてジャイロセンサ15を備える。ジャイロセンサ15は、端末装置2の所定軸方向(本実施形態では3軸方向とするが、1軸以上でよい)を軸とした回転に関する角速度を検出する。加速度センサ14およびジャイロセンサ15は、端末装置2の姿勢を算出するための情報(姿勢を算出あるいは推定可能な情報)を検出するセンサである。なお、他の実施形態においては、端末装置2の姿勢はどのような方法で算出されてもよく、上記センサ以外の他のセンサや端末装置2を撮影可能なカメラを用いて端末装置2の姿勢が算出されてもよい。
【0047】
情報処理装置3は、画像を生成する処理等、情報処理システム1において実行される各種の情報処理を実行する。本実施形態においては、情報処理装置3は、CPU(制御部)5およびメモリ6を有し、CPU5がメモリ6を用いて所定の情報処理プログラムを実行することによって、情報処理装置3における各種機能が実現される。なお、情報処理装置3は、上記の情報処理を実行することができればどのような構成であってもよい。本実施形態においては、情報処理装置3によって画像(パノラマ画像)が生成され、生成された画像は、表示装置である端末装置2および/またはモニタ4へ出力される。
【0048】
モニタ4は、生成された画像を表示し生成された音声を出力する表示装置の一例である。モニタ4は、情報処理装置3から送信されるデータを受信可能である。情報処理装置3において生成された画像がモニタ4へ送信されてくると、モニタ4は当該画像を表示する。
【0049】
次に、情報処理システム1において実行される、パノラマ動画を再生する処理について説明する。図3は、情報処理システム1において表示されるパノラマ動画(画像)の一例を示す図である。図3に示すように、本実施形態においては、端末装置2およびモニタ4にパノラマ画像が表示される。なお、他の実施形態においては、パノラマ画像は少なくとも1つの表示装置に表示されればよい。
【0050】
ここで、パノラマ画像とは、表示装置に表示される画像の視野角よりも広い視野角の画像である。つまり、パノラマ画像は、基本的にはその一部領域の画像が表示装置に表示される(ただし、本実施形態のように複数の表示装置が用いられる場合には、一部の表示装置においてパノラマ画像の全体が表示されてもよい。)。パノラマ画像は、表示範囲が変化することによって視線の方向が変化する画像であるとも言える。本実施形態においては、上下左右方向に関して全方向(360°)の視野角を有するパノラマ画像が用いられる(図4参照)。ただし、パノラマ画像には死角があってもよく、例えば視野角が180°程度であってもよい。また、本実施形態においては、パノラマ画像はカメラによって撮影された実画像(実写画像)であるが、その一部または全部が仮想画像(CG画像)であってもよい。
【0051】
本実施形態においては、表示装置(端末装置2およびモニタ4)には、パノラマ動画の再生の進行にしたがって、記憶されているパノラマ動画の各フレームとなるパノラマ画像が所定時間毎に読み出されて順次表示され、パノラマ画像が表示装置に逐次表示されることによって、パノラマ動画が再生される。具体的には、パノラマ動画を構成する複数のパノラマ画像にはそれぞれフレーム番号が付されており、パノラマ画像がフレーム番号順に表示される。一例として、視点を時間経過につれて所定空間(例えば、現実世界)内を移動させながら撮像したパノラマ動画を表示する場合、当該パノラマ動画を再生する時間経過に伴って視点が移動するパノラマ動画が再生される。例えば、図3に示すように、道路上から周囲を見たパノラマ画像が表示され、道路を進んでいく(視点が道路に沿って移動する)パノラマ動画が再生される。他の例として、所定空間内を移動することなく撮像(すなわち、定点撮像)したパノラマ動画を表示する場合、当該パノラマ動画を再生する時間経過に伴って視点周辺の様子が変化していくようなパノラマ動画が再生される。
【0052】
図3に示すように、各表示装置(端末装置2およびモニタ4)には、パノラマ画像の一部の範囲が表示される。以下では、パノラマ画像のうちで表示装置に表示される範囲を「表示範囲」と呼ぶ。図3においては、モニタ4には、パノラマ画像を表示する視線方向が当該パノラマ画像を撮像した際の視点の進行方向(正面方向)となる表示範囲のパノラマ画像が表示される。本実施形態においては、モニタ4における表示範囲は、基本的には予め定められた所定範囲に固定されるが、ユーザ操作に応じてパノラマ画像に対する表示範囲の位置や大きさを変化させてもよい。
【0053】
一方、端末装置2における表示範囲は、端末装置2の姿勢に応じて変更される。例えば図3においては、端末装置2は、正面方向(ユーザ(端末装置2)からモニタ4への方向)に対して右に向けた姿勢となっており、端末装置2には、上記進行方向に対して視線を右に向けた場合の表示範囲のパノラマ画像が表示されている。また、本実施例では、端末装置2の姿勢に加えて、方向指示部(例えば、左アナログスティック13A)に対する操作に応じたオフセット量に応じて、端末装置2における表示範囲が変更される。このように、情報処理システム1は、入力装置(端末装置2)に対する入力に基づいて、パノラマ動画のうちで表示装置に表示する表示範囲を決定するとともに、方向指示部に対して操作が行われた場合に表示範囲が方向指示に応じてオフセットされて決定される。これによれば、ユーザは、端末装置2の姿勢を変化させる操作によって視線方向(表示範囲)を自由に変化させてパノラマ動画を見ることができるとともに、姿勢を変化させる操作がやりにくい場面ではさらに方向指示部を用いた操作によって表示範囲をオフセットして表示することができる。
【0054】
図4は、端末装置2の姿勢および方向指示に応じて表示範囲を決定する方法の一例を示す図である。本実施形態においては、図4に示すように、仮想空間に立体モデルを配置し、その立体モデルの内側における所定位置(本実施形態においては立体モデルの実質的に中心となる位置)に仮想カメラC1を配置する。そして、仮想カメラC1から見た立体モデル(立体モデルの内側面)の画像を生成する際に、パノラマ画像をテクスチャとして立体モデルの内側面に描画することで、パノラマ画像が生成される。このとき、パノラマ画像のうち、仮想カメラC1の視野範囲(図4に示す斜線領域A1)が表示範囲となる。なお、本実施形態においては、立体モデルの形状を立方体とするが、立体モデルの形状は任意であり、例えば球体や柱状(例えば円柱)の形状であってもよい。
【0055】
図4において、端末装置2に表示すべき画像を生成するための仮想カメラC1は、その姿勢が端末装置2の姿勢に応じて制御され、方向指示部による方向指示に応じてさらにその姿勢が制御される。これによって、端末装置2の姿勢に応じて表示範囲を変化させるとともに、方向指示部による方向指示部に応じたオフセット量に応じてさらに表示範囲を変化させることができる。以下、仮想カメラC1の姿勢が端末装置2の姿勢および方向指示に応じて制御される一例を説明する。
【0056】
まず初期設定として、端末装置2の基準姿勢が設定される。例えば、端末装置2の基準姿勢は、パノラマ動画再生の開始時または開始前の所定タイミングにおける端末装置2の姿勢によって設定される。具体的には、パノラマ動画再生の開始時の端末装置2の姿勢を基準姿勢として設定してもよいし、パノラマ動画再生の開始前にユーザが所定の操作をしたときの端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な端末装置2の姿勢を基準姿勢として設定してもよいし、予め定める固定的な複数の端末装置2の姿勢のうちユーザが選択してもよい。なお、本実施形態では、端末装置2の姿勢はジャイロセンサ15の出力値に基づいて算出されるので、基準姿勢の設定は、ジャイロセンサ15により算出される姿勢値のリセットである。しかしながら、端末装置2の基準姿勢の設定は、センサの種類によって適宜の処理を実行してよい。
【0057】
また、上記初期設定として、仮想カメラC1の初期姿勢が設定される。例えば、仮想カメラC1の初期姿勢は、視線方向(z軸正方向)が仮想空間のZ軸正方向(パノラマ画像における正面方向)に一致し、左方向(x軸正方向)が仮想空間のX軸正方向に一致し、上方向(y軸正方向)が仮想空間のY軸正方向に一致するように配置される。
【0058】
そして、端末装置2の上記基準姿勢に対する姿勢変化(基準姿勢の端末装置2の左右方向となるxt軸、端末装置2の上下方向となるyt軸、端末装置2の前後方向となるzt軸周りそれぞれの回転方向および回転量)に応じて、仮想カメラC1の姿勢を、上記初期姿勢から変化(典型的には、初期姿勢の仮想カメラC1のx軸、y軸、z軸、すなわちX軸、Y軸、Z軸周りそれぞれに同じ回転方向および同じ回転量で変化)させる。そして、方向指示部に対する操作によって方向指示された場合、当該方向指示から算出されるオフセット量(例えば、方向指示に応じた方向および角度を示す情報)に応じて、さらに仮想カメラC1の姿勢を変化させる。なお、情報処理システム1は、表示範囲の位置に加えて、表示範囲の大きさ(ズームインまたはズームアウト)を端末装置2に対する操作に応じて変更するようにしてもよい。
【0059】
一方、モニタ4に表示すべき画像を生成するための仮想カメラ(図示せず)は、その視線方向が基本的には所定の基準方向(ここでは、上述した進行方向となる正面方向であり、Z軸正方向)を向くように設定される。つまり、モニタ4の表示範囲(図4に示す斜線領域A2)は、仮想カメラから正面方向への位置に設定される。この仮想カメラの位置も、所定位置(本実施形態においては立体モデルの中心位置)に固定される。
【0060】
なお、本実施形態においては、モニタ4に表示されるパノラマ画像の視線方向と端末装置2に表示されるパノラマ画像の視線方向との関係が、モニタ4における表示画面の奥行方向と端末装置2のLCD11の奥行方向との関係と概ね一致するように、仮想カメラC1の視線方向が制御される。具体的には、端末装置2のLCD11の奥行方向がモニタ4の方を向いた状態で上記基準姿勢が設定されることによって、当該状態において仮想カメラC1の視線方向が、モニタ4のための仮想カメラの視線方向と同じ方向に初期設定される。そして、端末装置2の姿勢が基準姿勢から変化した場合、その変化方向に応じた方向へ、変化量に応じた量だけ、仮想カメラC1の姿勢が変化する。これによれば、ユーザは、モニタ4によってある視線方向(正面方向)の風景を見ながら、端末装置2の向きを変化させることによって所望の視線方向(正面方向以外の方向)の風景を見ることができる。また、ユーザは、端末装置2のLCD11の奥行方向をモニタ4の方へ向けることによって、容易に正面方向のパノラマ画像をLCD11に表示することができ、モニタ4の位置を、パノラマ画像を表示する際の基準(パノラマ画像の正面方向が表示される基準)として取り扱うことができる。さらに、端末装置2の姿勢の変化と仮想カメラC1の姿勢の変化とを一致させることによって、現実空間における端末装置2の向きと、仮想空間における仮想カメラC1の視線方向とが一致するので、ユーザは、パノラマ画像が表す空間をよりリアルに感じることができる。
【0061】
次に、図5および図6を参照して、端末装置2の姿勢および方向指示に応じて表示範囲を決定する方法の一例を、さらに具体的に説明する。図5は、端末装置2の姿勢に応じて表示範囲が決定される一例を示す図である。図6は、端末装置2の方向指示に応じて表示範囲が決定される一例を示す図である。
【0062】
図5において、端末装置2自体の姿勢を角度R1°だけ右に向ける(すなわち、LCD11の奥行方向が右へヨー角度R1°だけ回転移動する)場合を考える。この場合、上記立体モデルの内側に配置された仮想カメラC1の姿勢も角度R1°だけ右方向へヨーすることによって、LCD11に表示されるパノラマ画像の表示範囲は、表示範囲Aから表示範囲Bに変化する。ここで、表示対象となっている画像が左右方向について少なくとも視野角が大きい(例えば、360°)パノラマ画像である場合、表示範囲Bは、当該パノラマ画像において表示範囲Aから当該視野角における角度R1°だけ右方向に(右方向を正の値で示す場合、+R1°)移動した範囲となる。また、図示は省略するが、端末装置2自体の姿勢を角度R2°だけ上に向けたり(すなわち、LCD11の奥行方向が上へピッチ角度R2°だけ回転移動する)、上記奥行方向を中心に端末装置2自体の姿勢を角度R3°だけ回転させたり(すなわち、LCD11の奥行方向を中心にロール角度R3°だけ回転移動する)する場合、LCD11に表示されるパノラマ画像の表示範囲は、パノラマ画像において上下方向の視野角における角度R2°だけ上方向に(上方向を正の値で示す場合、+R2°)移動した範囲に変化したり、パノラマ画像において注視点を中心に角度R3°だけ表示範囲が回転して変化したりする。このように、ユーザは、端末装置2の姿勢を上下左右方向に変化させたりロールさせたりすることによって、変化させた角度(ヨー角度、ピッチ角度、ロール角度)だけ視線方向(表示範囲)を自由に変化させてパノラマ画像(パノラマ動画)を見ることができる。
【0063】
次に、図6において、端末装置2の操作部13に含まれる方向指示部(例えば、左アナログスティック13A)を用いて、ユーザが右へ角度S1°の方向指示を行う場合を考える。一例として、ユーザが左アナログスティック13Aを中立状態(ニュートラル状態)から右へ角度S1°だけ倒すことによって、右へ角度S1°の方向指示が行われる。この場合、上記立体モデルの内側に配置された仮想カメラC1の姿勢も角度S1°だけ右方向へヨーすることによって、LCD11に表示されるパノラマ画像の表示範囲は、表示範囲Bから表示範囲Cへオフセットされる。具体的には、表示範囲Cは、上記パノラマ画像において表示範囲Bから視野角における+S1°だけさらに右方向にオフセットした範囲となる。なお、ユーザが上記方向指示を止めた場合(すなわち、左アナログスティック13Aがニュートラル状態に戻った場合)、上記オフセットが解除されてLCD11には表示範囲Bのパノラマ画像が表示される。また、図示は省略するが、上記方向指示部を用いて、ユーザが上へ角度S2°の方向指示を行った場合、LCD11に表示されるパノラマ画像の表示範囲は、パノラマ画像において上下方向の視野角における+S2°だけ上方向に移動した範囲にオフセットされる。このように、ユーザは、端末装置2の姿勢変化による表示範囲の変化に加えて、方向指示部を用いた操作に応じて表示範囲をオフセットさせてパノラマ画像を表示することができるため、端末装置2の姿勢を変化させることがやりにくい場面であっても、所望の表示範囲のパノラマ画像を表示することができる。
【0064】
なお、上述した説明では、アナログスティックをニュートラル状態から倒した傾倒角度と同じ視野角を設定し、アナログスティックを倒した傾倒方向へ当該視野角分だけオフセットされるように表示範囲が変化する例を用いたが、方向指示に対して他の態様で表示範囲がオフセットされるようにしてもよい。第1の例として、アナログスティックをニュートラル状態から倒した傾倒角度に所定の係数を乗算することによって得られる視野角だけ、当該倒した傾倒方向へオフセットされるように表示範囲を変化させてもよい。第2の例として、方向指示された時間(例えば、十字キー13C、Lボタン13D、Rボタン13E、ZLボタン13F、またはZRボタン13Gの押下操作されている継続時間)に応じて算出された視野角だけ、当該方向指示された方向へ徐々にオフセットされるように表示範囲を変化させてもよい。第3の例として、タッチパネル12をタッチ操作することによって方向指示する場合、当該タッチ位置(例えば、基準位置からタッチ位置までの長さやスライド操作された長さ)に応じて算出された視野角だけ、当該方向指示された方向へ徐々にオフセットされるように表示範囲を変化させてもよい。上記第2の例および上記第3の例の場合、方向指示が終了(例えば、方向指示部を押下する操作が終了またはタッチオフ)することによって、当該方向指示が行われる前に設定されていた表示範囲に即時に戻してパノラマ画像がLCD11に表示される。表示範囲がオフセット可能な角度は、方向指示可能な角度や長さによって設定することもできるが、例えばオフセット可能な視野角が±45°以内や±90°以内となるように設定される。しかしながら、上記オフセット可能な視野角はこれらの値に限られず、当該視野角の絶対値が180°未満となるように設定してもかまわない。
【0065】
また、上述した説明では、端末装置2に表示する画像の例として、パノラマ画像(パノラマ動画)を用いたが、端末装置2に他の画像を表示する場合であってもよい。例えば、表示対象画像の一部となる表示範囲の画像を端末装置2に表示する場合であればどのような画像でもよく、仮想世界や仮想空間の一部を端末装置2に表示する場合であっても同様に上述した表示範囲制御を適用することができる。一例として、端末装置2に表示する画像は、仮想世界内を移動しながら撮像したパノラマ画像あるいは仮想世界内の定点で撮像したパノラマ画像や、現実世界を撮像したパノラマ画像に仮想世界の画像を合成した画像であってもかまわない。
【0066】
次に、情報処理装置3において行われる処理の詳細を説明する。まず、図7を参照して、処理において用いられる主なデータについて説明する。なお、図7は、情報処理装置3のメモリ6に記憶される主なデータおよびプログラムの一例を示す図である。
【0067】
図7に示すように、メモリ6のデータ記憶領域には、パノラマ画像ファイルデータDa、端末操作データDb、姿勢データDc、オフセットデータDd、仮想カメラデータDe、および仮想空間画像データDf等が記憶される。なお、メモリ6には、図7に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ6のプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
【0068】
パノラマ画像ファイルデータDaは、フレーム毎の情報として、パノラマ画像データ等を含んでいる。パノラマ画像データは、フレーム番号n(1,2,3…)毎に、上述した立体モデルの内面にテクスチャとして貼り付けるパノラマ画像Inを示すデータを含んでいる。例えば、パノラマ画像データは、所定の記憶媒体にエンコードされて記憶されたパノラマ動画を、所定の方式によってデコードすることによって得られる。なお、パノラマ画像ファイルデータDaは、単なる一例に過ぎず、同様の情報が得られるのであれば、データの構成を変更してもいいし、各データに加えておよび/または代えて別のデータが格納されてもよい。
【0069】
端末操作データDbは、端末装置2に対する操作内容を示すデータであり、方向指示データDb1および角速度データDb2等を含んでいる。方向指示データDb1は、端末装置2に設けられた方向指示部に対する操作内容を示すデータである。角速度データDb2は、端末装置2に生じる角速度を示すデータであり、ジャイロセンサ15から出力される角速度を示すデータである。
【0070】
姿勢データDcは、実空間における端末装置2の姿勢を示すデータであり、例えば基準姿勢からの端末装置2の回転量を示すデータである。
【0071】
オフセットデータDdは、方向指示部を用いた方向指示に応じて算出されたオフセットの量および方向を示すデータである。
【0072】
仮想カメラデータDeは、立体モデルの中央に配置される仮想カメラに関するデータである。例えば、仮想カメラデータDeは、仮想空間における仮想カメラの位置、姿勢、視野(視野角)等に関するデータである。なお、仮想カメラデータDeは、パノラマ画像(パノラマ動画)を端末装置2およびモニタ4それぞれに表示する場合、それぞれに画像を表示するための複数の仮想カメラに関するデータとなる。
【0073】
仮想空間画像データDfは、上記仮想カメラから立体モデルの内面を見た仮想空間画像を示すデータである。
【0074】
次に、図8および図9を参照して、情報処理装置3において行われる処理の詳細を説明する。なお、図8は、情報処理装置3において実行される処理の前半の一例を示すフローチャートである。図9は、情報処理装置3において実行される処理の後半の一例を示すフローチャートである。ここで、図8および図9に示すフローチャートにおいては、情報処理装置3における処理のうち、パノラマ画像(パノラマ動画)を端末装置2およびモニタ4に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。
【0075】
CPU5は、メモリ6等を初期化し、情報処理装置3内の不揮発メモリまたは光ディスクに記憶される情報処理プログラムをメモリ6に読み込む。そして、CPU5によって当該情報処理プログラムの実行が開始される。図8および図9に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0076】
なお、図8および図9に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をCPU5が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0077】
図8において、CPU5は、パノラマ画像ファイルを取得する(ステップ81)。例えば、CPU5は、情報処理装置3内の不揮発メモリ、情報処理装置3に装着された記憶媒体、またはネットワーク等を介して他の装置から、パノラマ画像ファイルを取得し、パノラマ画像ファイルデータDaに格納する。
【0078】
次に、CPU5は、パノラマ画像を貼り付けるための立体モデルを、仮想空間にその中心が原点に位置するように配置し(ステップ82)、次のステップに処理を進める。例えば、CPU5は、立体モデルの形状が立方体である場合、仮想空間に設定されたXYZ軸に対して、上記立体モデルの正面がZ軸正方向側でZ軸と垂直に交わり、背面がZ軸負方向側でZ軸と垂直に交わり、左側面がX軸正方向側でX軸と垂直に交わり、右側面がX軸負方向側でX軸と垂直に交わり、上面がY軸正方向側でY軸と垂直に交わり、底面がY軸負方向側でY軸と垂直に交わるように、上記立体モデルを配置する。
【0079】
次に、CPU5は、仮想カメラC1およびC2をそれぞれ基準位置に初期姿勢で配置し(ステップ83)、次のステップに処理を進める。例えば、CPU5は、仮想カメラC1およびC2の基準位置を仮想空間の原点(すなわち、立体モデルの中央)とし、仮想カメラC1およびC2それぞれのxyz軸(x軸正方向が仮想カメラの左方向、y軸正方向が仮想カメラの上方向、z軸正方向が仮想カメラの視線方向)が仮想空間のXYZ軸に一致する姿勢を初期姿勢とする。そして、CPU5は、仮想カメラC1およびC2の基準位置および初期姿勢を用いて、仮想カメラデータDeにおける仮想カメラC1およびC2の位置および姿勢に関するデータを更新する。
【0080】
次に、CPU5は、端末装置2の姿勢調整をユーザに促し(ステップ84)、姿勢調整が行われるのを待つ(ステップ85)。
【0081】
ステップ86において、CPU5は、現時点の端末装置2の姿勢を基準姿勢に設定し、次のステップに処理を進める。例えば、CPU5は、姿勢データDcが示す端末装置2の姿勢(基準姿勢からの回転量)を初期化(各軸周りの回転量を0)して、端末装置2の基準姿勢を設定する。
【0082】
なお、上述したように、上記ステップ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の基準姿勢として設定されることになる。
【0083】
次に、CPU5は、フレーム数nを1に設定し(ステップ87)、次のステップ91(図9参照)に処理を進める。
【0084】
図9において、CPU5は、パノラマ画像ファイルデータDaのパノラマ画像データのうち、フレームnに対応するパノラマ画像を取得し(ステップ91)、次のステップに処理を進める。
【0085】
次に、CPU5は、上記ステップ91で取得したパノラマ画像を立体モデルの内面にテクスチャとして貼りつけ(ステップ92)、次のステップに処理を進める。例えば、図4を用いて前述したとおり、パノラマ画像が立体モデルの各内面にテクスチャとして貼りつけられる。
【0086】
次に、CPU5は、端末装置2から端末操作データを取得し(ステップ93)、次のステップに処理を進める。なお、端末装置2からは、操作部13(方向指示部)に対する操作内容を示すデータやジャイロセンサ15の出力値を示すデータが端末操作データとして一定周期で情報処理装置3に送信されて、方向指示データDb1および角速度データDb2にそれぞれ格納されている。
【0087】
次に、CPU5は、上記ステップ93において取得したデータを用いて、端末装置2の基準姿勢からの回転方向および回転量(ステップ86で初期化してからの回転方向および回転量)を算出し(ステップ94)、次のステップに処理を進める。例えば、上記ステップ94では、基準姿勢における端末装置2の所定軸方向(例えば、基準姿勢における端末装置2の上下左右前後軸それぞれの方向)を軸とした回転方向および回転量がそれぞれ算出されて、姿勢データDcを更新する。なお、回転方向は、回転量の正負により表すことができるので、姿勢データDcには回転量を示すデータのみ格納してもよい。例えば、CPU5は、上記ステップ94では、前回処理におけるステップ94において算出された回転量に、今回のステップ94で取得した角速度データに基づく回転量を加えて、新たな回転量として算出する。
【0088】
次に、CPU5は、仮想カメラC1の仮想空間における姿勢を、上記初期姿勢からステップ94で算出された回転量だけ回転させて設定し(ステップ95)、次のステップに処理を進める。例えば、CPU5は、上記初期姿勢から仮想カメラC1の姿勢を、ステップ94で算出された端末装置2の左右軸方向を軸とした回転量と同じだけ仮想空間のX軸方向(初期姿勢における仮想カメラC1のx軸方向)を軸として回転させ、かつ、ステップ94で算出された端末装置2の上下軸方向を軸とした回転量と同じだけ仮想空間のY軸方向(初期姿勢における仮想カメラC1のy軸方向)を軸として回転させ、かつ、ステップ94で算出された端末装置2の前後軸方向を軸とした回転量と同じだけ仮想空間のZ軸方向(初期姿勢における仮想カメラC1のz軸方向)を軸として回転させて設定し、仮想カメラデータDeにおける仮想カメラC1の姿勢に関するデータを更新する。
【0089】
次に、CPU5は、ユーザによって方向指示が行われているか否かを判断する(ステップ96)。例えば、CPU5は、上記ステップ93において取得したデータを参照して、端末装置2の方向指示部に対する操作が行われている場合(例えば、左アナログスティック13Aを何れかの方向に倒す操作が行われている場合)、方向指示が行われていると判断する。そして、CPU5は、方向指示が行われている場合、ステップ97に処理を進める。一方、CPU5は、方向指示が行われていない場合(例えば、左アナログスティック13Aがニュートラル状態の場合)、ステップ99に処理を進める。
【0090】
ステップ97において、CPU5は、方向指示部を用いた方向指示に応じて、オフセットする量および方向を算出し、次のステップに処理を進める。例えば、CPU5は、左アナログスティック13Aが倒れる角度および方向に応じて、表示範囲をオフセットする量および方向を算出し、算出されたオフセット量および方向を用いてオフセットデータDdを更新する。具体的には、アナログスティックをニュートラル状態から倒した角度からオフセットする視野角を算出し、アナログスティックを倒した方向へ当該視野角分だけ表示範囲がオフセットするようにオフセット量および方向を算出する。なお、オフセットする視野角は、アナログスティックが倒された角度と同じ角度でもいいし、当該角度に所定の係数を乗算した角度でもよい。
【0091】
次に、CPU5は、上記ステップ95で設定された仮想カメラC1の仮想空間における姿勢から、さらに上記ステップ97で算出されたオフセット量だけ算出されたオフセット方向へさらに回転させて設定し(ステップ98)、ステップ100に処理を進める。例えば、CPU5は、上記ステップ95で設定された仮想カメラC1の上下左右方向(x軸およびy軸方向)を上下左右の基準とし、視線方向(z軸正方向)を正面として、上記ステップ97で算出されたオフセット方向へ上記ステップ97で算出されたオフセット量だけ、上記ステップ95で設定された姿勢からさらに仮想カメラC1を回転させて設定し、仮想カメラデータDeにおける仮想カメラC1の姿勢に関するデータを更新する。
【0092】
一方、ステップ99において、CPU5は、オフセット量を0にして仮想カメラC1の姿勢を設定し、ステップ100に処理を進める。例えば、CPU5は、オフセットデータDdにおけるオフセット量が0以外に設定されている場合、当該オフセット量を0に設定してオフセットデータDdを更新する。また、CPU5は、仮想カメラC1の姿勢については、上記ステップ95で設定された姿勢のままとする。
【0093】
ステップ100において、CPU5は、仮想カメラC1およびC2からそれぞれ見た立体モデルの内面の画像(仮想空間画像)を生成し、次のステップに処理を進める。例えば、CPU5は、仮想カメラC1およびC2に基づいてそれぞれ生成された仮想空間画像を示すデータを用いて、仮想空間画像データDeを更新する。
【0094】
次に、CPU5は、仮想空間画像データDeが示す仮想空間画像のうち、仮想カメラC1に基づいて作成された仮想空間画像を端末装置2へ送信し(ステップ101)、次のステップに処理を進める。例えば、上記仮想空間画像は、端末装置2によって受信され、LCD11に出力されて仮想空間画像が表示される。これによって、LCD11には、パノラマ画像のうち、仮想カメラC1から見た所定の表示範囲内の画像が表示されることになる。なお、情報処理装置3から端末装置2へ仮想空間画像を送信する際、所定の圧縮処理が行われてもよい。この場合、圧縮処理が施された仮想空間画像のデータが端末装置2に送られ、端末装置2によって所定の伸張処理が行われた後、仮想空間画像の表示が行われる。
【0095】
次に、CPU5は、仮想空間画像データDeが示す仮想空間画像のうち、仮想カメラC2に基づいて作成された仮想空間画像をモニタ4へ出力し(ステップ102)、次のステップに処理を進める。例えば、上記仮想空間画像は、モニタ4によって取得されて仮想空間画像が表示される。これによって、モニタ4には、パノラマ画像のうち、仮想カメラC2から見た所定の表示範囲内の画像が表示されることになる。また、上述した実施例では、仮想カメラC2が初期姿勢のまま基準位置に固定されて配置されているため、パノラマ画像のうち、所定方向(例えば、正面方向)を視線方向として固定した表示範囲の画像がモニタ4に表示され、パノラマ動画を実質的に同じ時間軸で再生して端末装置2およびモニタ4に表示する構成となる。
【0096】
次に、CPU5は、フレーム数nをインクリメントし(ステップ103)、処理を終了するか否かを判定する(ステップ104)。処理を終了する条件としては、例えば、再生しているパノラマ動画における最後のフレームの画像の再生が終了したことや、ユーザが処理を終了する操作を行ったこと等がある。CPU5は、処理を終了しない場合に上記ステップ91に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ91〜ステップ104の一連の処理は、ステップ104で処理を終了すると判定されるまで繰り返し実行される。
【0097】
なお、モニタ4に固定された視線方向(例えば、正面方向)のパノラマ画像を表示し、仮想カメラC1およびC2の基準位置および初期姿勢を同じに設定した場合、端末装置2のLCD11の奥行方向をモニタ4の方へ向けることによって、当該視線方向(正面方向)のパノラマ画像をLCD11に表示することができる。また、端末装置2の姿勢の変化と仮想カメラC1の姿勢の変化とを一致させることによって、現実空間における端末装置2の向きと、仮想空間における仮想カメラC1の視線方向とが一致する。つまり、端末装置2とモニタ4との実空間における位置関係に応じて、端末装置2に表示する表示範囲とモニタ4に表示する表示範囲とがそれぞれ設定されるため、ユーザは、端末装置2に表示されるパノラマ画像とモニタ4に表示されるパノラマ画像とを見ることによって、これらのパノラマ画像が表す空間をよりリアルに感じることができる。ここで、方向指示部に対する操作に応じた方向指示によって端末装置2に表示する表示範囲をオフセットする場合、上述した位置関係とそれぞれの表示範囲との関係が崩れることが考えられる。しかしながら、方向指示部を用いた方向指示操作を止めることによって、表示範囲のオフセットが解除されて端末装置2の姿勢変化のみに応じた表示範囲が設定されるため、上述した位置関係とそれぞれの表示範囲との関係を再び元の関係に容易に戻すことが可能となる。
【0098】
また、モニタ4には、パノラマ画像全体を示す画像(全方位画像)を常に表示してもよい。例えば、全方位画像は、パノラマ動画を撮像した撮像カメラから得られた画像を合成して生成してもいいし、立体モデルの各内面に貼り付けられるパノラマ画像を合成して生成してもよいが、全方位画像を生成する手法については、既に周知であるためここでは詳細な説明を省略する。また、モニタ4には、端末装置2に表示されているパノラマ画像をそのまま表示してもよい。この場合、端末装置2に表示されているパノラマ画像をリアルタイムにモニタ4に表示してもいいし、端末装置2を用いて過去に同じパノラマ動画が再生されている場合に、当該再生において端末装置2に表示されていたパノラマ画像のうち、現時点で端末装置2に表示されているパノラマ画像と実質的にパノラマ動画再生において同じ時間軸となるパノラマ画像をモニタ4に表示してもよい。
【0099】
また、上記実施形態においては、情報処理システム1は端末装置2を1つのみ有する構成であったが、情報処理システム1は複数の端末装置2を有する構成であってもよい。すなわち、情報処理装置3は、複数の端末装置2とそれぞれ無線通信可能であり、画像のデータを各端末装置2へ送信し、操作部13およびジャイロセンサ15のデータを各端末装置2から受信するものであってもよい。そして、仮想空間に各端末装置2の仮想カメラをそれぞれ配置して、各端末装置2の姿勢および方向指示に応じて各仮想カメラの姿勢を制御して、各仮想カメラから見た仮想空間の画像を各端末装置2に送信するようにすればよい。なお、情報処理装置3は、複数の端末装置2のそれぞれと無線通信を行うが、このとき、情報処理装置3は、各端末装置2との無線通信を時分割で行ってもよいし、周波数帯域を分割して行ってもよい。
【0100】
また、上述した端末装置2は、図8および図9を用いて説明した一連の処理や情報処理装置3で行われるような情報処理を実行しない、いわゆるシンクライアント端末として機能するものであった。しかしながら、端末装置2は、例えば携帯ゲーム機のように、所定のプログラム(ゲームプログラム)によって所定の情報処理(ゲーム処理)を実行する機能を有する装置であってもよい。また、上記実施例において情報処理装置3によって実行される一連の処理のうち、少なくとも一部を端末装置2や端末装置2以外の他の装置で行ってもかまわない。例えば、情報処理装置3がさらに端末装置2以外の他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。一例として、上記他の装置において、仮想世界の生成や当該仮想世界を用いた情報処理(例えば、ゲーム処理)が行われ、当該情報処理の結果が端末装置2やモニタ4に表示されることも考えられる。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理装置3のCPU5が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0101】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0102】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0103】
また、上記情報処理プログラムは、光学式ディスク状記憶媒体や外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記情報処理プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記憶されていてもよい。なお、上記情報処理プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体や不揮発性メモリの他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記情報処理プログラムを記憶する情報記憶媒体としては、上記情報処理プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体に記憶された情報処理プログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0104】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0105】
以上のように、本発明は、ユーザが容易に表示範囲を移動させることができること等を目的として、例えば情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法等として有用である。
【符号の説明】
【0106】
1…情報処理システム
2…端末装置
3…情報処理装置
4…モニタ
11…LCD
12…タッチパネル
13…操作部
14…加速度センサ
15…ジャイロセンサ
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9