特許第5698529号(P5698529)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 任天堂株式会社の特許一覧

特許5698529表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
<>
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000002
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000003
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000004
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000005
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000006
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000007
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000008
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000009
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000010
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000011
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000012
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000013
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000014
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000015
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000016
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000017
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000018
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000019
  • 特許5698529-表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5698529
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法
(51)【国際特許分類】
   G06F 3/048 20130101AFI20150319BHJP
【FI】
   G06F3/048 651A
【請求項の数】17
【全頁数】37
(21)【出願番号】特願2010-294484(P2010-294484)
(22)【出願日】2010年12月29日
(65)【公開番号】特開2012-141823(P2012-141823A)
(43)【公開日】2012年7月26日
【審査請求日】2013年11月14日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】110001276
【氏名又は名称】特許業務法人 小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】三原 一郎
【審査官】 若林 治男
(56)【参考文献】
【文献】 特開2010−238108(JP,A)
【文献】 特開2005−295163(JP,A)
【文献】 特開昭58−081065(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01−3/048
G06F 3/14−3/153
(57)【特許請求の範囲】
【請求項1】
立体視可能な画像を出力する表示制御装置のコンピュータを、
仮想世界内の奥行方向へ第1の奥行距離となる位置に第1オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段として機能させ、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第1の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第2オブジェクトを少なくとも1つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御プログラム。
【請求項2】
前記オブジェクト配置手段は、仮想世界内の前記奥行方向へ前記第1の奥行距離とは異なる第2の奥行距離となる位置に第3オブジェクトをさらに配置し、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第1の奥行距離と前記第2の奥行距離との間となる位置に前記第2オブジェクトを配置する、請求項1に記載の表示制御プログラム。
【請求項3】
前記オブジェクト配置手段は、前記表示装置の端となる表示領域の一部のみに表示されるように前記第2オブジェクトを配置する、請求項2に記載の表示制御プログラム。
【請求項4】
前記第2の奥行距離は、前記第1の奥行距離より長い距離であり、
前記オブジェクト配置手段は、前記立体視画像として前記表示装置に表示される場合に、前記第2オブジェクトと重ならないように前記第3オブジェクトを配置する、請求項2または3に記載の表示制御プログラム。
【請求項5】
前記オブジェクト配置手段は、前記第1の奥行距離と前記第2の奥行距離との間となる位置で、かつ、前記表示装置の端となる表示領域の少なくとも一部に常に表示されるように、前記第2オブジェクトを複数配置する、請求項2乃至4の何れか1つに記載の表示制御プログラム。
【請求項6】
前記オブジェクト配置手段は、前記複数の第2オブジェクトを、前記第1の奥行距離と前記第2の奥行距離との間となる異なる奥行距離にそれぞれ配置し、前記立体視画像として前記表示装置に表示される場合に少なくとも一部が互いに重なって表示されるようにそれぞれ配置する、請求項5に記載の表示制御プログラム。
【請求項7】
前記オブジェクト配置手段は、前記第1オブジェクトを仮想世界内における前記第1の奥行距離に設定された平面上に配置し、前記第3オブジェクトを仮想世界内における前記第2の奥行距離に設定された平面上に配置し、前記第2オブジェクトを仮想世界内における前記第1の奥行距離と前記第2の奥行距離との間となる奥行距離に設定された少なくとも1つの平面上に配置する、請求項2乃至6の何れか1つに記載の表示制御プログラム。
【請求項8】
入力装置への操作に応じた操作信号を取得する操作信号取得手段と、
前記操作信号取得手段が取得した操作信号に応じて、前記第1オブジェクトを動作させる第1オブジェクト動作制御手段として、さらに前記コンピュータを機能させ、
前記第2オブジェクトは、前記第1オブジェクトが仮想世界内で得る得点および/または仮想世界内で存在する時間に影響を与え得る仮想オブジェクトであり、
前記第3オブジェクトは、前記第1オブジェクトが仮想世界内で得る得点および仮想世界内で存在する時間の何れにも影響を与えない仮想オブジェクトである、請求項2乃至7の何れか1つに記載の表示制御プログラム。
【請求項9】
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、それぞれ前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力し、
前記オブジェクト配置手段は、前記立体視画像として前記表示装置に表示される場合に前記所定の方向を挟んで相対する前記表示装置の両端となる表示領域の少なくとも一部に常に表示されるように前記第2オブジェクトを配置する、請求項2乃至8の何れか1つに記載の表示制御プログラム。
【請求項10】
前記立体視画像出力制御手段は、前記第2オブジェクトのスクロール量を、前記第1オブジェクトのスクロール量より小さく、かつ、前記第3オブジェクトのスクロール量より大きくなるように設定する、請求項乃至9の何れか1つに記載の表示制御プログラム。
【請求項11】
前記オブジェクト配置手段は、前記第1の奥行距離と前記第2の奥行距離との間となる位置で、かつ、異なる奥行距離に前記第2オブジェクトをそれぞれ複数配置し、
前記立体視画像出力制御手段は、前記複数の第2オブジェクトを、それぞれ前記奥行距離に応じて異なるスクロール量で所定の方向へスクロール移動させて前記立体視画像を出力する、請求項乃至10の何れか1つに記載の表示制御プログラム。
【請求項12】
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、それぞれ前記奥行距離が長いほど前記スクロール量を少なくスクロール移動させて前記立体視画像を出力する、請求項1乃至11の何れか1つに記載の表示制御プログラム。
【請求項13】
入力装置への操作に応じた操作信号を取得する操作信号取得手段と、
前記操作信号取得手段が取得した操作信号に応じて、前記第1オブジェクトを動作させる第1オブジェクト動作制御手段として、さらに前記コンピュータを機能させ、
前記第2の奥行距離は、前記第1の奥行距離より長い距離である、請求項2乃至9の何れか1つに記載の表示制御プログラム。
【請求項14】
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第1の奥行距離より短い位置に前記第2オブジェクトを配置する、請求項1に記載の表示制御プログラム。
【請求項15】
立体視可能な画像を出力する表示制御装置であって、
仮想世界内の奥行方向へ第1の奥行距離となる位置に第1オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段とを備え、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第1の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第2オブジェクトを少なくとも1つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御装置。
【請求項16】
複数の装置が通信可能に構成され、立体視可能な画像を出力する表示制御システムであって、
仮想世界内の奥行方向へ第1の奥行距離となる位置に第1オブジェクトを配置するオブジェクト配置手段と、
前記オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御手段とを備え、
前記オブジェクト配置手段は、前記仮想世界内の奥行方向へ前記第1の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第2オブジェクトを少なくとも1つ配置し、
前記立体視画像出力制御手段は、前記オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像を出力する、表示制御システム。
【請求項17】
立体視可能な画像を出力する表示制御が可能な少なくとも1つの情報処理装置により構成される表示制御システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される表示制御方法であって、
仮想世界内の奥行方向へ第1の奥行距離となる位置に第1オブジェクトを配置するオブジェクト配置ステップと、
前記オブジェクト配置ステップにおいて配置された仮想世界のオブジェクトを立体視画像として出力する立体視画像出力制御ステップとを含み、
前記オブジェクト配置ステップでは、前記仮想世界内の奥行方向へ前記第1の奥行距離と異なる位置で、かつ、前記立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第2オブジェクトが少なくとも1つ配置され、
前記立体視画像出力制御ステップでは、前記オブジェクト配置ステップにおいて配置されたオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で前記奥行方向に垂直な所定の方向へスクロール移動させて前記立体視画像が出力される、表示制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関し、より特定的には、立体視可能な画像を出力する表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法に関する。
【背景技術】
【0002】
従来、所定の視差を有する画像を用いて、立体視可能な画像表示を行う方法が知られている(例えば、特許文献1参照)。上記特許文献1で開示されたコンテンツ作成方法は、xy平面に描かれた各図形にz軸方向の奥行きをそれぞれ設定し、設定された奥行きに基づいて立体表示させる。例えば、上記特許文献1で開示された方法では、奥行きに基づいて各xy平面に存在する図形における左目用画像と右目用画像との画像のずらし量を算出する。そして、上記方法は、算出されたずらし量に基づいて、左目用画像と右目用画像とを生成して表示装置に表示する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−145832号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載された方法は、図形の奥行き感が大きく感じられるような立体表示を行うことは難しかった。
【0005】
それ故に、本発明の主たる目的は、立体視可能な画像を出力する場合に奥行き感を強調することのできる、表示制御プログラム、表示制御装置、表示制御方法および表示制御システムを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の表示制御プログラムの一構成例は、立体視可能な画像を出力する表示制御装置のコンピュータを、オブジェクト配置手段および立体視画像出力制御手段として機能させる。オブジェクト配置手段は、仮想世界内の奥行方向へ第1の奥行距離となる位置に第1オブジェクトを配置する。立体視画像出力制御手段は、オブジェクト配置手段によって配置された仮想世界のオブジェクトを立体視画像として出力する。オブジェクト配置手段は、仮想世界内の奥行方向へ第1の奥行距離と異なる位置で、かつ、立体視画像として表示装置に表示される場合に当該表示装置の端となる表示領域の少なくとも一部に表示されるように第2オブジェクトを少なくとも1つ配置する。
【0008】
上記によれば、第1オブジェクトを立体視画像として出力する際、表示装置に表示される仮想世界の奥行方向において異なる奥行距離に配置された第2オブジェクトが当該表示装置の表示画面の端の一部を少なくとも含む位置に表示される。したがって、ユーザが表示装置に表示された第1オブジェクトの奥行方向への位置を視認する際に、第2オブジェクトが奥行方向への比較対象物となって表示されるため、立体視画像として第1オブジェクトを表示装置に表示する場合に奥行き感を強調することができる。
【0009】
また、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第1の奥行距離とは異なる第2の奥行距離となる位置に第3オブジェクトをさらに配置してもよい。この場合、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第1の奥行距離と第2の奥行距離との間となる位置に第2オブジェクトを配置する。
【0010】
上記によれば、奥行距離が異なる第1オブジェクトおよび第3オブジェクトを立体視画像として表示装置に表示する際、当該表示装置に表示される仮想世界の奥行方向において第1オブジェクトの奥行距離と第3オブジェクトの奥行距離との間となる位置に第2オブジェクトが表示される。したがって、ユーザが表示装置に表示された第1オブジェクトおよび第3オブジェクトの奥行方向への位置を視認する際に、それらの間に第2オブジェクトが奥行方向への比較対象物となって表示されるため、立体視画像として第1オブジェクトおよび第3オブジェクトを表示装置に表示する場合に奥行き感を強調することができる。
【0011】
また、上記オブジェクト配置手段は、表示装置の端となる表示領域の一部のみに表示されるように第2オブジェクトを配置してもよい。
【0012】
上記によれば、第2オブジェクトが表示領域の端にのみ表示されるため、表示装置に表示された第1オブジェクトおよび/または第3オブジェクトへの視界が第2オブジェクトによって遮られることが少なくなり、第1オブジェクトおよび/または第3オブジェクトへの視認性が向上する。
【0013】
また、上記第2の奥行距離は、第1の奥行距離より長い距離であってもよい。この場合、上記オブジェクト配置手段は、立体視画像として表示装置に表示される場合に、第2オブジェクトと重ならないように第3オブジェクトを配置してもよい。
【0014】
上記によれば、奥行方向に対して第2オブジェクトより遠い位置に表示される第3オブジェクトへの視界が第2オブジェクトによって遮られることがないため、第3オブジェクトへの視界を確保することができる。
【0015】
また、上記オブジェクト配置手段は、第1の奥行距離と第2の奥行距離との間となる位置で、かつ、表示装置の端となる表示領域の少なくとも一部に常に表示されるように、第2オブジェクトを複数配置してもよい。
【0016】
上記によれば、奥行方向への比較対象物となる第2オブジェクトを複数表示することによって、立体視画像として第1オブジェクトを表示装置に表示する場合の奥行き感がより強調される。
【0017】
また、上記オブジェクト配置手段は、複数の第2オブジェクトを、第1の奥行距離と第2の奥行距離との間となる異なる奥行距離にそれぞれ配置し、立体視画像として表示装置に表示される場合に少なくとも一部が互いに重なって表示されるようにそれぞれ配置してもよい。
【0018】
上記によれば、比較対象物となる複数の第2オブジェクトを奥行方向への奥行距離が異なる複数の階層にそれぞれ重なるように表示することによって、立体視画像として第1オブジェクトを表示装置に表示する場合の奥行き感がより強調される。
【0019】
また、上記オブジェクト配置手段は、第1オブジェクトを仮想世界内における第1の奥行距離に設定された平面上に配置し、第3オブジェクトを仮想世界内における第2の奥行距離に設定された平面上に配置し、第2オブジェクトを仮想世界内における第1の奥行距離と第2の奥行距離との間となる奥行距離に設定された少なくとも1つの平面上に配置してもよい。
【0020】
上記によれば、仮想世界内において奥行距離が異なる平面に仮想オブジェクトをそれぞれ配置することによって、複数の仮想オブジェクトがそれぞれ異なる平面上を移動するような仮想世界を容易に立体視画像として表示することができる。
【0021】
また、上記表示制御プログラムは、操作信号取得手段および第1オブジェクト動作制御手段として、さらにコンピュータを機能させてもよい。操作信号取得手段は、入力装置への操作に応じた操作信号を取得する。第1オブジェクト動作制御手段は、操作信号取得手段が取得した操作信号に応じて、第1オブジェクトを動作させる。この場合、上記第2オブジェクトは、第1オブジェクトが仮想世界内で得る得点および/または仮想世界内で存在する時間に影響を与え得る仮想オブジェクトであってもよい。上記第3オブジェクトは、第1オブジェクトが仮想世界内で得る得点および仮想世界内で存在する時間の何れにも影響を与えない仮想オブジェクトであってもよい。
【0022】
上記によれば、ゲームのプレイや進行に影響を与える仮想オブジェクトを2つの奥行領域に配置したゲーム(例えば、2次元画像を表示するゲーム)を、立体視表示も可能なゲームとして構築する場合に好適なものとなる。例えば、ゲームのプレイや進行に影響を与える2つの仮想オブジェクトの間に、ゲームのプレイや進行に影響を与えない仮想オブジェクトを配置することによって、当該ゲームのプレイや進行に影響を与える2つの仮想オブジェクトの間の奥行き感を強調した立体視表示が可能となる。
【0023】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、それぞれ奥行方向に垂直な所定の方向へスクロール移動させて立体視画像を出力してもよい。上記オブジェクト配置手段は、立体視画像として表示装置に表示される場合に所定の方向を挟んで相対する表示装置の両端となる表示領域の少なくとも一部に常に表示されるように第2オブジェクトを配置してもよい。
【0024】
上記によれば、仮想オブジェクトを表示装置にスクロール表示する際も、当該表示装置の表示画面の端の一部を少なくとも含むように第2オブジェクトを常に表示することができる。
【0025】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、奥行距離に応じてそれぞれ異なるスクロール量で奥行方向に垂直な所定の方向へスクロール移動させて立体視画像を出力してもよい。
【0026】
上記によれば、奥行距離が異なる仮想オブジェクトを、異なるスクロール速度でスクロール表示することによって、立体視表示された仮想オブジェクトの奥行き感をさらに強調することができる。
【0027】
また、上記立体視画像出力制御手段は、第2オブジェクトのスクロール量を、第1オブジェクトのスクロール量より小さく、かつ、第3オブジェクトのスクロール量より大きくなるように設定してもよい。
【0028】
上記によれば、第1オブジェクトと第3オブジェクトとの間の階層に配置されている第2オブジェクトのスクロール速度を、第1オブジェクトのスクロール速度より遅く第3オブジェクトのスクロール速度より速く設定することによって、立体視表示された第1〜第3オブジェクトの奥行き感をさらに強調することができる。
【0029】
また、上記オブジェクト配置手段は、第1の奥行距離と第2の奥行距離との間となる位置で、かつ、異なる奥行距離に第2オブジェクトをそれぞれ複数配置してもよい。上記立体視画像出力制御手段は、複数の第2オブジェクトを、それぞれ奥行距離に応じて異なるスクロール量で所定の方向へスクロール移動させて立体視画像を出力してもよい。
【0030】
上記によれば、第1オブジェクトと第3オブジェクトとの間の複数の階層にそれぞれ配置されている複数の第2オブジェクトのスクロール速度を、それぞれ異なるスクロール速度に設定することによって、立体視表示された第1〜第3オブジェクトの奥行き感をさらに強調することができる。
【0031】
また、上記立体視画像出力制御手段は、オブジェクト配置手段が配置したオブジェクトを、それぞれ奥行距離が長いほどスクロール量を少なくスクロール移動させて立体視画像を出力してもよい。
【0032】
上記によれば、奥行距離が長いほどスクロール速度が遅くなるため、立体視表示された仮想オブジェクトの奥行き感をさらに強調することができる。
【0033】
また、上記表示制御プログラムは、操作信号取得手段および第1オブジェクト動作制御手段として、さらにコンピュータを機能させてもよい。操作信号取得手段は、入力装置への操作に応じた操作信号を取得する。第1オブジェクト動作制御手段は、操作信号取得手段が取得した操作信号に応じて、第1オブジェクトを動作させる。この場合、第2の奥行距離は、第1の奥行距離より長い距離であってもよい。
【0034】
上記によれば、ユーザが操作可能な第1オブジェクトが奥行方向において最も手前に表示され、当該第1オブジェクトと第3オブジェクトとの間の奥行き感が強調された仮想世界を表示装置に表示することができる。
【0035】
また、上記オブジェクト配置手段は、仮想世界内の奥行方向へ第1の奥行距離より短い位置に第2オブジェクトを配置してもよい。
【0036】
上記によれば、奥行方向において第1オブジェクトの手前で、かつ表示装置の表示画面の端の一部を少なくとも含む位置に第2オブジェクトが表示されるため、第1オブジェクトへの視界を妨げることなく立体視画像として表示された第1オブジェクトの奥行き感を強調することができる。
【0037】
また、本発明は、上記各手段を備える表示制御装置および表示制御システムや上記各手段で行われる動作を含む表示制御方法の形態で実施されてもよい。
【発明の効果】
【0038】
本発明によれば、表示装置に第1オブジェクトを立体視画像で表示する際、第2オブジェクトが奥行方向への比較対象物となって表示されるため、表示装置に表示された第1オブジェクトの奥行き感を強調することができる。
【図面の簡単な説明】
【0039】
図1】開いた状態におけるゲーム装置10の一例を示す正面図
図2】開いた状態におけるゲーム装置10の一例を示す側面図
図3A】閉じた状態におけるゲーム装置10の一例を示す左側面図
図3B】閉じた状態におけるゲーム装置10の一例を示す正面図
図3C】閉じた状態におけるゲーム装置10の一例を示す右側面図
図3D】閉じた状態におけるゲーム装置10の一例を示す背面図
図4】ゲーム装置10の内部構成の一例を示すブロック図
図5】ユーザがゲーム装置10を両手で把持する様子の一例を示す図
図6】上側LCD22に表示される表示形態例を示す図
図7】上側LCD22に表示される立体視画像の様子の一例を示す概念図
図8】立体視画像を生成する第1の立体視画像生成方法を説明するための図
図9】第1の立体視画像生成方法で用いられる仮想カメラの視体積を説明するための図
図10】立体視画像を生成する第2の立体視画像生成方法を説明するための図
図11】表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図
図12図11のオブジェクトデータDbの一例を示す図
図13】表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャート
図14図13のステップ51で行われるオブジェクト初期配置処理の詳細な動作の一例を示すサブルーチン
図15図13のステップ52で行われる立体視画像描画処理の詳細な動作の一例を示すサブルーチン
図16図13のステップ53で行われるスクロール処理の詳細な動作の一例を示すサブルーチン
【発明を実施するための形態】
【0040】
図面を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。本発明の表示制御プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、表示制御装置の一例として携帯型のゲーム装置10を用い、ゲーム装置10で実行される表示制御プログラムを用いて説明する。なお、図1図3Dは、ゲーム装置10の外観の一例を示す平面図である。ゲーム装置10は、一例として携帯型のゲーム装置であり、図1図3Dに示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10の一例を示す正面図である。図2は、開状態におけるゲーム装置10の一例を示す右側面図である。図3Aは、閉じた状態(閉状態)におけるゲーム装置10の一例を示す左側面図である。図3Bは、閉状態におけるゲーム装置10の一例を示す正面図である。図3Cは、閉状態におけるゲーム装置10の一例を示す右側面図である。図3Dは、閉状態におけるゲーム装置10の一例を示す背面図である。ゲーム装置10は、撮像部を内蔵しており、当該撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することもできる。
【0041】
図1図3Dにおいて、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。通常、ユーザは、開状態でゲーム装置10を使用し、ゲーム装置10を使用しない場合には閉状態としてゲーム装置10を保管することができる。
【0042】
図1および図2に示されるように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1図3A図3D)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0043】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0044】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば静電容量方式等、任意の押圧式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0045】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0046】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトは、アナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いてもよい。
【0047】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク43(図4参照)が設けられ、当該マイク43がゲーム装置10の外部の音を検出する。
【0048】
図3Bおよび図3Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。例えば、Lボタン14GおよびRボタン14Hは、撮像部のシャッターボタン(撮影指示ボタン)として機能する。また、図3Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0049】
図3Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ46とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ46は、上記コネクタに着脱自在に装着される。データ保存用外部メモリ46は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0050】
図3Dに示されるように、下側ハウジング11の上側面にはゲーム装置10とゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ45と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。外部メモリ45がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0051】
図1に示されるように、下側ハウジング11の下側面には、ゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16Aが設けられる。また、図3Cに示されるように、下側ハウジング11の右側面には、ゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、他の機器との無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3C参照)。
【0052】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0053】
上側ハウジング21には、上側LCD22、2つの外側撮像部23(外側左撮像部23aおよび外側右撮像部23b)、内側撮像部24、3D調整スイッチ25、および3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0054】
図1に示すように、上側LCD22は、上側ハウジング21に収納される。上側LCD22の画素数は、一例として800dot×240dot(横×縦)である。なお、本実施形態では、上側LCD22が液晶表示装置であるとしたが、例えばELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0055】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示することが可能である。具体的には、上側LCD22は、左目用画像と右目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。一例として、上側LCD22の画素数が800dot×240dotで構成される場合、横の800ピクセルを左目用画像と右目用画像とに交互にそれぞれ400ピクセル割り当てることによって立体視が可能となる。なお、上側LCD22は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22は、パララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像をそれぞれ視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0056】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(外側左撮像部23aおよび外側右撮像部23b)の総称である。外側左撮像部23aおよび外側右撮像部23bの撮像方向は、いずれも外側面21Dの外向きの法線方向である。外側左撮像部23aと外側右撮像部23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0057】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0058】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。また、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0059】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。例えば、3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0060】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ44からの音声がこのスピーカ孔21Eを介して出力される。
【0061】
次に、図4を参照して、ゲーム装置10の内部構成を説明する。なお、図4は、ゲーム装置10の内部構成の一例を示すブロック図である。
【0062】
図4において、ゲーム装置10は、上述した各構成部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0063】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する画像処理やゲーム処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0064】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0065】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、画像処理やゲーム処理で用いられる各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0066】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ46がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ46に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0067】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0068】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は、情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0069】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(本実施形態では、xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、例えば下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、ゲーム装置10の各軸方向へ生じる直線加速度の大きさをそれぞれ検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は、1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受け取って、ゲーム装置10の姿勢や動きを算出する。
【0070】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置10の3軸(本実施形態では、xyz軸)周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。角速度センサ40は、例えば下側ハウジング11の内部に設けられる。情報処理部31は、角速度センサ40から出力された角速度データを受け取って、ゲーム装置10の姿勢や動きを算出する。
【0071】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路41は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0072】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。具体的には、I/F回路42には、図示しないアンプを介してスピーカ44が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。アンプは、I/F回路42からの音声信号を増幅し、音声をスピーカ44から出力させる。I/F回路42は、マイク43およびスピーカ44(アンプ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置(タッチ位置)の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、およびタッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0073】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0074】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。本実施形態では、情報処理部31は、例えば入力操作用の画像を下側LCD12に表示させ、外側撮像部23および内側撮像部24のいずれかから取得した画像を上側LCD22に表示させる。すなわち、情報処理部31は、上側LCD22に外側撮像部23で撮像した右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させたり、内側撮像部24で撮像した平面画像を上側LCD22に表示させたり、上側LCD22に外側撮像部23で撮像した右目用画像および左目用画像の一方を用いた平面画像を表示させたりする。
【0075】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された(外側撮像部23で撮像された)右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0076】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は、外側撮像部23および内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、ユーザによるタッチパネル13や操作ボタン14を用いた操作によって使用する撮像部が選択される。そして、撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23または内側撮像部24に対して撮像指示を行う。
【0077】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0078】
3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0079】
次に、図5図10を参照して、ゲーム装置10の使用状態および表示内容の一例を示す。なお、図5は、ユーザがゲーム装置10を把持して操作する様子の一例を示す図である。図6は、上側LCD22に表示される表示形態例を示す図である。図7は、上側LCD22に表示される立体視画像の様子の一例を示す概念図である。図8は、立体視画像を生成する一例である第1の立体視画像生成方法を説明するための図である。図9は、第1の立体視画像生成方法で用いられる仮想カメラの視体積を説明するための図である。図10は、立体視画像を生成する他の例である第2の立体視画像生成方法を説明するための図である。
【0080】
図5に示されるように、ユーザは、下側LCD12および上側LCD22がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング11の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング11を把持したまま、各操作ボタン14A〜14Eおよびアナログスティック15に対する操作を親指で行い、Lボタン14GおよびRボタン14Hに対する操作を人差し指で行うことができる。そして、ユーザは、操作ボタン14A〜14Eやアナログスティック15を操作することによって、仮想世界内に登場するプレイヤオブジェクトを移動させたり、プレイヤオブジェクトに所定の動作(例えば、攻撃動作)を行わせたりすることができる。
【0081】
例えば、図6に示すように、プレイヤオブジェクトPOを含む仮想世界を鳥瞰した仮想世界画像が、上側LCD22に立体視表示される。プレイヤオブジェクトPOは、ユーザの操作に応じて仮想世界内の空中を飛行する飛行体(例えば、戦闘機等の飛行機)であり、上側LCD22の上方向にプレイヤオブジェクトPOの前面を向けてその上面が上側LCD22に表示されている。そして、プレイヤオブジェクトPOは、ユーザ操作に応じて、上側LCD22に表示されている表示範囲内で移動可能であるが、プレイヤオブジェクトPOが飛行する仮想世界が一定方向(例えば、上側LCD22の上から下への方向)にスクロール表示されるため、結果的にプレイヤオブジェクトPOも仮想世界を当該方向へ飛行してゲームが進行することになる。
【0082】
また、仮想世界に設定されている地上には、複数の地上オブジェクトGOが配置されている。ここで、地上オブジェクトGOは、仮想世界の地上に固定して配置されるオブジェクトでもいいし、当該地上を移動するオブジェクトでもいいし、所定のアルゴリズムに基づいて空中のプレイヤオブジェクトPOを攻撃するオブジェクトでもかまわない。上側LCD22にはプレイヤオブジェクトPOが地上オブジェクトGOを攻撃するための照準Aが表示されている。そして、所定の攻撃操作(例えば、操作ボタン(Aボタン)14Bを押下する操作)に応じて、照準Aが示す地上位置に向けてプレイヤオブジェクトPOから対地攻撃弾が発射される。したがって、ユーザは、所定の攻撃操作を行うことによって、照準Aと重なる地上オブジェクトGOを攻撃することができる。なお、照準Aは、プレイヤオブジェクトPOとの間の位置関係が固定された状態で、プレイヤオブジェクトPOの移動に応じて仮想世界の地上に沿って移動する。
【0083】
また、仮想世界の空中には、敵オブジェクトEOが出現することがある。敵オブジェクトEOは、プレイヤオブジェクトPOの飛行を妨害するために仮想世界の空中に登場し、所定のアルゴリズムに基づいてプレイヤオブジェクトPOを攻撃する。一方、プレイヤオブジェクトPOも所定の攻撃操作(例えば、操作ボタン(Bボタン)14Cを押下する操作)に応じて、プレイヤオブジェクトPOの前面からプレイヤオブジェクトが向く方向(すなわち、上側LCD22の上方向)へ対空攻撃弾が発射される。したがって、ユーザは、所定の攻撃操作を行うことによって、プレイヤオブジェクトPOの前方を飛行している敵オブジェクトEOを攻撃することができる。
【0084】
さらに、仮想世界の空中には、複数の雲オブジェクトCOが配置される。複数の雲オブジェクトCOは、上側LCD22において、何れも仮想世界のスクロール方向を挟んで相対する両側端部(上下方向がスクロール方向である場合、上側LCD22の左右端部)に表示される。そして、複数の雲オブジェクトCOを、仮想世界において上記両側端部に対応する位置で、かつ、上記スクロール方向に沿ってそれぞれ延設して配置することによって、上記スクロール方向へスクロール表示された場合に複数の雲オブジェクトCOが当該両側端部に常に(あるいは、常時、いつも、継続的に、連続的に、絶えず等)表示されることになる。また、複数の雲オブジェクトCOは、当該両側端部のみに表示されることになる。なお、図6に示した一例では、仮想世界の空中に配置される高度が異なる3つの雲オブジェクトCO1〜CO3が重なって、上側LCD22の左右端部にそれぞれ表示されている。
【0085】
なお、仮想世界の地上に配置される地上オブジェクトGOは、仮想世界のスクロール方向を挟んで相対する上記両側端部を除いた位置に配置される。このように、上記両側端部を除いた位置に地上オブジェクトGOを配置することによって、上空に配置される雲オブジェクトCOによって地上オブジェクトGOへの視界が妨げられないようにすることができる。
【0086】
次に、仮想オブジェクトがそれぞれ仮想世界に配置される高度(奥行方向への距離)について説明する。図7において、上側LCD22に上記仮想世界の立体視画像が表示される場合、当該立体視画像の奥行方向に対して異なる位置(仮想世界における異なる高度)に仮想オブジェクトがそれぞれ配置される。例えば、プレイヤオブジェクトPOおよび敵オブジェクトEOは、仮想世界において最も高度が高い位置(ユーザの視点に対して最も近い位置であり、奥行距離が最も短い位置;以下、この奥行きを示す奥行距離をZ1とする。)に配置され、当該高度を保って常に仮想世界内を飛行する。また、地上オブジェクトGOは、仮想世界において最も高度が低い地上(ユーザの視点に対して最も遠い位置であり、奥行距離が最も長い位置;以下、この奥行きを示す奥行距離をZ5とする。)に配置され、地上を移動するオブジェクトであっても当該地上高度を保って仮想世界内を移動する。
【0087】
雲オブジェクトCO1〜CO3は、何れもプレイヤオブジェクトPOが配置される位置と地上オブジェクトGOが配置される位置との間の高度となる位置に配置される。つまり、雲オブジェクトCO1〜CO3は、ユーザの視点に対してプレイヤオブジェクトPOより遠く地上オブジェクトGOより近い位置に配置される。具体的には、雲オブジェクトCO1が奥行距離Z2となる位置に配置され、雲オブジェクトCO2が奥行距離Z2より長い奥行距離Z3となる位置に配置され、雲オブジェクトCO3が奥行距離Z3より長い奥行距離Z4となる位置に配置される。この場合、奥行距離Z1<奥行距離Z2<奥行距離Z3<奥行距離Z4<奥行距離Z5となる。
【0088】
このように、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトPOと地上オブジェクトGOとの間となる位置に雲オブジェクトCO1〜CO3を配置することによって、プレイヤオブジェクトPOと地上オブジェクトGOとの間の奥行き感が強調される。また、雲オブジェクトCO1〜CO3がそれぞれスクロール方向の軸に対して上側LCD22の両側端部に常に表示されるため、プレイヤオブジェクトPOや地上オブジェクトGOを覆い隠すことがなく、常にプレイヤオブジェクトPOや地上オブジェクトGOへの視界も確保される。
【0089】
ここで、プレイヤオブジェクトPOと地上オブジェクトGOとは、ゲームに必要不可欠なオブジェクト(ゲームのプレイや進行に影響を与えるオブジェクト)であるのに対し、雲オブジェクトCO1〜CO3は必ずしもゲームに必要なオブジェクトではなく、プレイヤオブジェクトPOと地上オブジェクトGOとの間の奥行き感を強調するためだけに用いられるものである。例えば、プレイヤオブジェクトPOと地上オブジェクトGOとは、互いに攻撃しあうので、当たり判定を有しており、ゲームのプレイや進行によって得点が加算されたり、ゲームオーバになったりといった影響があるが、雲オブジェクトCO1〜CO3は、当たり判定を有しておらず、ゲームのプレイや進行に何ら影響を与えない。言い換えれば、仮想世界を2次元の画像として表示するのであれば、プレイヤオブジェクトPOと地上オブジェクトGOとがあればよく、雲オブジェクトCO1〜CO3はなくてもかまわない。
【0090】
つまり、本発明は、2つの奥行領域にある2つのオブジェクトを2次元画像として表示していた従来のゲームを、立体視表示も可能なゲームとして構築する場合に好適なものであり、その際に2つのオブジェクトの間の奥行き感を強調した立体視表示が可能になるものである。
【0091】
次に、上述した仮想世界を示す立体視画像を生成する一例として、第1の立体視画像生成方法について説明する。図8に示すように、所定の座標系(例えば、ワールド座標系)で定義される仮想空間に各仮想オブジェクトが配置される。なお、図8に示した一例では、説明を具体的にするために、仮想空間に2つの仮想カメラ(左仮想カメラおよび右仮想カメラ)が配置され、当該仮想カメラの視線方向をZ軸正方向とし、Z軸正方向に仮想カメラを向けたときの仮想カメラの右方向をX軸正方向、仮想カメラの上方向をY軸正方向としたカメラ座標系が示されている。そして、左仮想カメラおよび右仮想カメラは、3D調整スイッチ25のスライダ位置に応じて算出されたカメラ間距離だけ離間され、それぞれ上述したカメラ座標系に応じた方向となるように仮想空間に配置されている。なお、仮想空間には一般的にワールド座標系が定義されるが、仮想空間に配置される仮想オブジェクトと仮想カメラとの関係を説明するために、カメラ座標系を用いて仮想空間内の位置を説明する。
【0092】
上記仮想空間において、地上オブジェクトGOは、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Z5となるXY平面に設定された地形オブジェクト上にそれぞれ配置される。また、プレイヤオブジェクトPOおよび敵オブジェクトEOは、上記仮想空間における地形オブジェクトの上空となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Z1となる高度にそれぞれ配置される。そして、プレイヤオブジェクトPOは、左仮想カメラおよび右仮想カメラの視体積内を移動範囲とし、ユーザ操作によって算出される移動速度および移動方向(移動ベクトルVp)に応じて、プレイヤオブジェクトPOの前方(飛行方向)をY軸正方向に向けた状態で上記仮想空間内を移動する。また、敵オブジェクトEOは、所定のアルゴリズムに基づいて、上記仮想空間内に出現して移動ベクトルVeがそれぞれ設定され、当該移動ベクトルVeに応じて、上記仮想空間内を移動する。
【0093】
なお、上述では、各オブジェクトはそれぞれに設定された平面上を移動すると説明したが、奥行き方向に所定の距離を有する空間を設定し、当該空間内を移動するようにしてもよい。その場合、他のオブジェクトに設定される奥行き空間と重ならないように各オブジェクトの奥行き空間を設定すればよい。
【0094】
なお、上述した左仮想カメラおよび右仮想カメラの視体積は、上側LCD22に表示される表示範囲によって定まるものとする。例えば、図9に示すように、2つの仮想カメラ(左仮想カメラおよび右仮想カメラ)を用いて仮想空間の立体視画像を生成する場合、それぞれの仮想カメラから得られる仮想空間の画像から上側LCD22に表示する範囲をそれぞれ調整する必要がある。具体的には、上側LCD22に立体視画像を表示する場合に奥行距離が表示画面(すなわち、上側LCD22の表面)の位置と一致する基準奥行距離において、左仮想カメラから得られる仮想空間の画像に対する表示範囲と右仮想カメラから得られる仮想空間の画像に対する表示範囲とが仮想空間において一致するように調整される。本明細書における説明では、上述したように調整された表示範囲と一致するように左仮想カメラの視体積および右仮想カメラの視体積が設定されるものとする。つまり、本明細書の説明では、左仮想カメラの視体積内に含まれる仮想オブジェクトおよび右仮想カメラの視体積内に含まれる仮想オブジェクトが全て上側LCD22に表示されることになる。
【0095】
上記仮想空間において、雲オブジェクトCO1は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトPOの下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Z2となる高度に配置される。そして、雲オブジェクトCO1は、仮想空間をスクロール表示する方向であるY軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。また、上記仮想空間において、雲オブジェクトCO2は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトPOおよび雲オブジェクトCO1の下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Z3となる高度に配置される。そして、雲オブジェクトCO2も、仮想空間をスクロール表示する方向であるY軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。また、上記仮想空間において、雲オブジェクトCO3は、上記仮想空間における地形オブジェクトの上空で、かつ、プレイヤオブジェクトPO、雲オブジェクトCO1、および雲オブジェクトCO2の下方となり、左仮想カメラおよび右仮想カメラからそれぞれ奥行距離Z4となる高度に配置される。そして、雲オブジェクトCO3も、仮想空間をスクロール表示する方向であるY軸方向に沿って、左仮想カメラおよび右仮想カメラの視体積内において左右の端部となる位置にそれぞれ配置される。
【0096】
このように設定された仮想空間を用いて、左仮想カメラから見た当該仮想空間を左目用の仮想世界画像(左仮想世界画像)として生成し、右仮想カメラから見た当該仮想空間を右目用の仮想世界画像(右仮想世界画像)として生成する。そして、生成された左仮想世界画像および右仮想世界画像を上側LCD22に表示することによって、図5図7を用いて説明したような仮想世界の立体視画像が上側LCD22に表示される。そして、2つの仮想カメラおよび/または仮想空間の仮想オブジェクトを、周期的にY軸方向へスクロール移動させることによって、仮想世界が上側LCD22の下方向へ順次スクロールするように表示される。なお、後述により明らかとなるが、Y軸方向へスクロール移動させる量(スクロール量)は、仮想オブジェクトが配置されている奥行距離Zに応じて異なる値に設定される。つまり、仮想オブジェクトの配置位置に応じてスクロール量が異なるため、仮想空間の仮想オブジェクトを、周期的にY軸負方向へそれぞれ設定されたスクロール量に応じてスクロール移動させることによって、上記スクロール表示を実現することが好ましい。
【0097】
次に、上述した仮想世界を示す立体視画像を生成する他の例として、第2の立体視画像生成方法について説明する。図10に示すように、仮想オブジェクトは、それぞれZ軸方向の段階的な奥行距離ごとのXY平面で設定された各レイヤに描画される。例えば、図10に示す各レイヤは、奥行距離の昇順に奥行距離Z1に対応する第1レイヤ、奥行距離Z2に対応する第2レイヤ、奥行距離Z3に対応する第3レイヤ、奥行距離Z4に対応する第4レイヤ、および奥行距離Z5に対応する第5レイヤを含んでいる。
【0098】
仮想世界に描画される仮想オブジェクトには、それぞれ上記仮想空間における奥行方向への配置位置を示す奥行情報が設定されており、当該奥行情報に応じたレイヤに描画される。例えば、プレイヤオブジェクトPOおよび敵オブジェクトEOは、奥行距離Z1が奥行情報として設定されており、第1レイヤに2次元画像で描画される。そして、プレイヤオブジェクトPOは、ユーザ操作によって算出された移動ベクトルVpに応じて第1レイヤ上を移動し、プレイヤオブジェクトPOの前方(飛行方向)がY軸正方向に向けた上面視の2次元画像が第1レイヤに描画される。また、敵オブジェクトEOは、所定のアルゴリズムに基づいて設定された移動ベクトルVeに応じて第1レイヤ上を移動し、移動中の敵オブジェクトEOを上方から見た2次元画像が第1レイヤに描画される。
【0099】
例えば、地上オブジェクトGOは、奥行距離Z5が奥行情報として設定されており、第5レイヤに2次元画像で描画される。具体的には、第5レイヤには地形オブジェクトが描画されており、地上オブジェクトGOを上方から見た2次元画像が当該地形オブジェクト上に描画される。また、地上を移動する地上オブジェクトGOについては、所定のアルゴリズムに基づいて設定された移動ベクトルに応じて第1レイヤ上を移動し、移動中の地上オブジェクトGOを上方から見た2次元画像が第1レイヤに描画される。
【0100】
例えば、雲オブジェクトCO1は、奥行距離Z2が奥行情報として設定されており、第2レイヤにおける左右両端領域(X軸負方向への値が所定の値以下となる左端領域、およびX軸正方向への値が所定の値以上となる右端領域)内に、2次元画像で描画される。また、雲オブジェクトCO2は、奥行距離Z3が奥行情報として設定されており、第3レイヤにおける左右両端領域内に、2次元画像で描画される。そして、雲オブジェクトCO3は、奥行距離Z3が奥行情報として設定されており、第3レイヤにおける左右両端領域内に、2次元画像で描画される。
【0101】
そして、上記第1レイヤ〜第5レイヤに描画された仮想オブジェクトを表示する際、各レイヤの奥行情報に基づいて左目用の仮想世界画像(左仮想世界画像)および右目用の仮想世界画像(右仮想世界画像)を生成する。例えば、3D調整スイッチ25のスライダ位置に応じて算出されたカメラ間距離、奥行距離が表示画面の位置と一致する基準奥行距離、および奥行情報に基づいて、各レイヤのずらし量を算出する。
【0102】
一例として、基準奥行距離におけるずらし量を0として、レイヤの奥行距離と基準奥行距離との距離差と所定の関係となる(例えば、正比例する)ように各レイヤのずらし量を設定し、上記カメラ間距離に基づいた係数を各ずらし量に乗算することによって、各レイヤのずらし量を決定する。そして、決定されたずらし量だけずらして各レイヤを合成して左仮想世界画像および右仮想世界画像をそれぞれ生成する。例えば、左仮想世界画像を生成する場合、基準奥行距離より奥行距離が長いレイヤについては設定されているずらし量だけ左(X軸負方向)にずらし、基準奥行距離より奥行距離が短いレイヤについては設定されているずらし量だけ右(X軸正方向)にずらす。そして、奥行距離が短いレイヤの画像を優先して各レイヤを重ねあわせて合成することによって、左仮想世界画像を生成する。また、右仮想世界画像を生成する場合、基準奥行距離より奥行距離が長いレイヤについては設定されているずらし量だけ右(X軸正方向)にずらし、基準奥行距離より奥行距離が短いレイヤについては設定されているずらし量だけ左(X軸負方向)にずらす。そして、奥行距離が短いレイヤの画像を優先して各レイヤを重ねあわせて合成することによって、右仮想世界画像を生成する。
【0103】
このように設定された各レイヤを合成して生成された左仮想世界画像および右仮想世界画像を上側LCD22に表示することによって、図5図7を用いて説明したような仮想世界の立体視画像が上側LCD22に表示される。そして、各レイヤを、周期的にY軸負方向へスクロール移動させることによって、仮想世界が上側LCD22の下方向へ順次スクロールするように表示される。なお、後述により明らかとなるが、Y軸負方向へスクロール移動させる量(スクロール量)は、仮想オブジェクトが配置されている奥行距離Zに応じて異なる値に設定される。例えば、奥行距離Zが短いほどスクロール量が大きく設定される。具体的には、第1〜第5レイヤがそれぞれスクロール量S1〜S5でY軸負方向へスクロールし、S1>S2>S3>S4>S5に設定される。
【0104】
次に、図11図16を参照して、ゲーム装置10で実行される表示制御プログラムによる具体的な処理動作について説明する。なお、図11は、表示制御プログラムを実行することに応じて、メインメモリ32に記憶される各種データの一例を示す図である。図12は、図11のオブジェクトデータDbの一例を示す図である。図13は、当該表示制御プログラムを実行することによってゲーム装置10が表示制御処理する動作の一例を示すフローチャートである。図14は、図13のステップ51で行われるオブジェクト初期配置処理の詳細な動作の一例を示すサブルーチンである。図15は、図13のステップ52で行われる立体視画像描画処理の詳細な動作の一例を示すサブルーチンである。図16は、図13のステップ53で行われるスクロール処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置10に内蔵されるメモリ(例えば、データ保存用内部メモリ35)や外部メモリ45またはデータ保存用外部メモリ46に含まれており、ゲーム装置10の電源がオンになったときに、内蔵メモリから、または外部メモリI/F33やデータ保存用外部メモリI/F34を介して外部メモリ45またはデータ保存用外部メモリ46からメインメモリ32に読み出されて、CPU311によって実行される。また、後述する表示制御処理においては、上記第1の立体視画像生成方法を用いて立体視画像を生成する場合について説明する。
【0105】
図11において、メインメモリ32には、内蔵メモリ、外部メモリ45、またはデータ保存用外部メモリ46から読み出されたプログラムや表示制御処理において生成される一時的なデータが記憶される。図11において、メインメモリ32のデータ記憶領域には、操作データDa、オブジェクトデータDb、カメラ間距離データDc、仮想カメラデータDd、左仮想世界画像データDe、右仮想世界画像データDf、および画像データDg等が格納される。また、メインメモリ32のプログラム記憶領域には、表示制御プログラムを構成する各種プログラム群Paが記憶される。
【0106】
操作データDaは、ユーザがゲーム装置10を操作した操作情報を示すデータである。例えば、操作データDaは、ユーザがゲーム装置10のタッチパネル13、操作ボタン14、およびアナログスティック15等の入力装置を操作したことを示すデータを含んでいる。タッチパネル13、操作ボタン14、およびアナログスティック15それぞれからの操作データは、ゲーム装置10が処理する時間単位(例えば、1/60秒)毎に取得され、当該取得に応じて操作データDaに格納されて更新される。なお、後述する処理フローでは、操作データDaが処理周期である1フレーム毎に更新される例を用いて説明するが、他の処理周期で更新されてもかまわない。例えば、上記入力装置をユーザが操作したことを検出する別の周期毎に操作データDaを更新し、当該更新された操作データDaを処理周期毎に利用する態様でもかまわない。この場合、操作データDaを更新する周期と、処理周期とが異なることになる。
【0107】
オブジェクトデータDbは、仮想世界に登場する各仮想オブジェクトに関するデータである。図12に示すように、オブジェクトデータDbは、仮想オブジェクトごとのオブジェクト種類、配置位置、移動ベクトル、およびスクロール量等を示すデータである。例えば、図12に示すオブジェクトデータDbでは、番号1の仮想オブジェクトがプレイヤオブジェクトPOであり、奥行距離Z1でXY位置が(X1,Y1)となる位置に配置されて移動ベクトルVpで仮想空間内を移動し、スクロール量がS1に設定されていることが示されている。また、番号4の仮想オブジェクトが雲オブジェクトCO1であり、奥行距離Z2でXY位置が(X4,Y4)となる位置に仮想空間内で固定されて配置され、スクロール量がS2に設定されていることが示されている。
【0108】
カメラ間距離データDcは、3D調整スイッチ25のスライダ位置によって設定されるカメラ間距離を示すデータである。例えば、3D調整スイッチ25が所定の周期毎にスライダ位置を示すデータを出力しており、当該データに基づいてカメラ間距離が当該周期毎に算出されている。そして、カメラ間距離データDcには、算出されているカメラ間距離を示すデータが、ゲーム装置10の処理時間単位毎に格納されて更新される。なお、後述する処理フローでは、カメラ間距離データDcが処理周期である1フレーム毎に更新される例を用いて説明するが、他の周期で更新されてもかまわない。例えば、上記カメラ間距離が算出される算出周期毎にカメラ間距離データDcを更新し、当該更新されたカメラ間距離データDcをゲーム装置10の処理周期毎に利用する態様でもかまわない。この場合、カメラ間距離データDcを更新する周期と、処理周期とが異なることになる。
【0109】
仮想カメラデータDdは、カメラ間距離に基づいて設定され、左仮想カメラおよび右仮想カメラの仮想空間における位置、姿勢、および投影法や表示範囲(視体積;図9参照)を示すデータである。一例として、仮想カメラデータDdは、左仮想カメラおよび右仮想カメラそれぞれのカメラ行列を示すデータである。例えば、上記行列は、仮想オブジェクトが配置される座標系(ワールド座標系)で表された座標を、左仮想カメラおよび右仮想カメラの位置および姿勢を基準として表された座標系(カメラ座標系)に、設定された投影法や表示範囲に基づいてそれぞれ変換する座標変換行列である。
【0110】
左仮想世界画像データDeは、仮想オブジェクトが配置された仮想空間を、左仮想カメラから見た画像(左仮想世界画像)を示すデータである。例えば、左仮想世界画像データDeは、左仮想カメラから見た仮想オブジェクトが配置された仮想空間を透視投影や平行投影することによって得られる左仮想世界画像を示すデータである。
【0111】
右仮想世界画像データDfは、仮想オブジェクトが配置された仮想空間を、右仮想カメラから見た画像(右仮想世界画像)を示すデータである。例えば、右仮想世界画像データDfは、右仮想カメラから見た仮想オブジェクトが配置された仮想空間を透視投影や平行投影することによって得られる右仮想世界画像を示すデータである。
【0112】
画像データDgは、前述の仮想オブジェクト(地形オブジェクトを含む)を表示するための情報であって、仮想オブジェクトの形状を表す3Dモデルデータ(ポリゴンデータ)や、仮想オブジェクトの模様を表すテクスチャデータ等を含む。
【0113】
次に、図13を参照して、情報処理部31の動作について説明する。まず、ゲーム装置10の電源(電源ボタン14F)がONされると、CPU311によってブートプログラム(図示せず)が実行され、これにより内蔵メモリまたは外部メモリ45やデータ保存用外部メモリ46に格納されているプログラムがメインメモリ32にロードされる。そして、当該ロードされたプログラムが情報処理部31(CPU311)で実行されることによって、図13に示すステップ(図13図16では「S」と略称する)が実行される。なお、図13図16においては、本発明に直接関連しない処理についての記載を省略する。また、本実施形態では、図13図16のフローチャートの全てのステップの処理をCPU311が実行するものとして説明するが、図13図16のフローチャートの一部のステップの処理を、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。
【0114】
図13において、CPU311は、オブジェクト初期配置処理を行い(ステップ51)、次のステップに処理を進める。以下、図14を参照して、上記ステップ51で行うオブジェクト初期配置処理について説明する。
【0115】
図14において、CPU311は、左仮想カメラおよび右仮想カメラが配置された仮想空間を設定し(ステップ60)、次のステップに処理を進める。例えば、CPU311は、左仮想カメラおよび右仮想カメラが所定の距離だけ離間(たとえば、距離0)し、それぞれの視線方向および上下左右方向が一致するように配置された仮想空間を設定する。そして、CPU311は、これらの仮想カメラの視線方向をZ軸正方向とし、Z軸正方向に仮想カメラを向けたときの仮想カメラの右方向をX軸正方向、仮想カメラの上方向をY軸正方向としたカメラ座標系を定義する。また、CPU311は、左仮想カメラおよび右仮想カメラの仮想空間における位置、表示画面の位置と一致する基準奥行距離、仮想カメラから描画する投影法、および仮想カメラの画角等に基づいて、左仮想カメラおよび右仮想カメラの視体積をそれぞれ設定する。そして、CPU311は、設定された左仮想カメラおよび右仮想カメラに関するデータを用いて、仮想カメラデータDdを更新する。
【0116】
次に、CPU311は、仮想空間における仮想カメラからの奥行距離が最も近い階層にプレイヤオブジェクトPOを配置し(ステップ61)、次のステップに処理を進める。例えば、図8に示したように、CPU311は、プレイヤオブジェクトPOを左仮想カメラおよび右仮想カメラから何れも奥行距離Z1となる位置(階層)にプレイヤオブジェクトPOを配置する。その際、CPU311は、プレイヤオブジェクトPOの上面が仮想カメラ側となって前方がカメラ座標系におけるY軸正方向を向くようにプレイヤオブジェクトPOの姿勢を設定する。また、CPU311は、ゲーム開始時に設定されている初期配置位置にプレイヤオブジェクトPOを配置し、プレイヤオブジェクトPOの移動ベクトルVpを初期設定値に設定する。そして、CPU311は、設定されたプレイヤオブジェクトPOに関するデータを用いて、オブジェクトデータDbを更新する。
【0117】
次に、CPU311は、仮想空間における仮想カメラからの奥行距離が最も遠い階層に地上オブジェクトGOを配置し(ステップ62)、次のステップに処理を進める。例えば、図8に示したように、CPU311は、地形オブジェクトを左仮想カメラおよび右仮想カメラから何れも奥行距離Z5となる位置(階層)に配置し、当該地形オブジェクト上に地上オブジェクトGOをそれぞれ配置する。そして、CPU311は、設定された地上オブジェクトGOに関するデータを用いて、オブジェクトデータDbを更新する。なお、CPU311は、仮想空間のスクロール方向を挟んで相対する表示領域の両側端部に対応する領域を除いた地形オブジェクト上に、地上オブジェクトGOを配置する。このように、上記両側端部に対応する領域を除いた位置に地上オブジェクトGOを配置することによって、ユーザから地上オブジェクトGOへの視界が上空に配置される雲オブジェクトCOによって妨げられないようにすることができる。
【0118】
次に、CPU311は、仮想空間における仮想カメラからの奥行距離が中間距離となる階層に雲オブジェクトCOを配置し(ステップ63)、当該サブルーチンによる処理を終了する。例えば、図8に示したように、CPU311は、雲オブジェクトCO1を左仮想カメラおよび右仮想カメラから何れも奥行距離Z2となる位置(階層)に配置する。その際、CPU311は、左仮想カメラおよび右仮想カメラの視体積内の両端(仮想空間のスクロール方向を挟んで相対する表示領域の両側端部であり、仮想空間をスクロールする方向が上側LCD22の上下方向である場合、左仮想カメラおよび右仮想カメラの視体積内において左右端部となる位置)に、当該スクロール方向へ伸びるように雲オブジェクトCO1を配置する。また、CPU311は、雲オブジェクトCO2を左仮想カメラおよび右仮想カメラから何れも奥行距離Z3となる位置(階層)に配置する。その際、CPU311は、左仮想カメラおよび右仮想カメラの視体積内の両端に、当該スクロール方向へ伸びるように雲オブジェクトCO2を配置する。さらに、CPU311は、雲オブジェクトCO3を左仮想カメラおよび右仮想カメラから何れも奥行距離Z4となる位置(階層)に配置する。その際、CPU311は、左仮想カメラおよび右仮想カメラの視体積内の両端に、当該スクロール方向へ伸びるように雲オブジェクトCO3を配置する。そして、CPU311は、設定された雲オブジェクトCO1〜CO3に関するデータを用いて、オブジェクトデータDbを更新する。
【0119】
図13に戻り、上記ステップ51のオブジェクト初期配置処理の後、CPU311は、立体視画像描画処理を行い(ステップ52)、次のステップに処理を進める。以下、図15を参照して、上記ステップ52で行う立体視画像描画処理について説明する。
【0120】
図15において、CPU311は、カメラ間距離を取得して(ステップ71)、次のステップに処理を進める。例えば、CPU311は、3D調整スイッチ25のスライダ位置に基づいて算出されたカメラ間距離を示すデータを取得し、取得したカメラ間距離を用いてカメラ間距離データDcを更新する。
【0121】
次に、CPU311は、上記ステップ71で取得したカメラ間距離に基づいて、仮想空間において左仮想カメラおよび右仮想カメラを設定し(ステップ72)、次のステップに処理を進める。例えば、CPU311は、上記ステップ71で取得したカメラ間距離だけ離間するように仮想カメラの位置を設定してそれぞれの視体積を設定し、設定された左仮想カメラおよび右仮想カメラの位置や視体積に基づいて、仮想カメラデータDdを更新する。
【0122】
次に、CPU311は、左仮想カメラから見た仮想空間を左仮想世界画像として生成して(ステップ73)、次のステップに処理を進める。例えば、CPU311は、仮想カメラデータDdに基づいて左仮想カメラのビュー行列を設定し、当該左仮想カメラの視体積内に存在する仮想オブジェクトを描画して左仮想世界画像を生成して、左仮想世界画像データDeを更新する。
【0123】
次に、CPU311は、右仮想カメラから見た仮想空間を右仮想世界画像として生成して(ステップ74)、次のステップに処理を進める。例えば、CPU311は、仮想カメラデータDdに基づいて右仮想カメラのビュー行列を設定し、当該左仮想カメラの視体積内に存在する仮想オブジェクトを描画して右仮想世界画像を生成して、右仮想世界画像データDfを更新する。
【0124】
次に、CPU311は、左仮想世界画像を左目用画像、右仮想世界画像を右目用画像としてそれぞれ上側LCD22に立体視画像を表示し(ステップ75)、当該サブルーチンによる処理を終了する。
【0125】
図13に戻り、上記ステップ52の立体視画像描画処理の後、CPU311は、スクロール処理を行い(ステップ53)、次のステップに処理を進める。以下、図16を参照して、上記ステップ53で行うスクロール処理について説明する。
【0126】
図16において、CPU311は、仮想空間に配置されている仮想オブジェクトの1つを選択し(ステップ81)、次のステップに処理を進める。
【0127】
次に、CPU311は、上記ステップ81で選択された仮想オブジェクトの奥行距離に基づいてスクロール量を設定し(ステップ82)、次のステップに処理を進める。例えば、CPU311は、オブジェクトデータDbを参照して上記ステップ81で選択された仮想オブジェクトが配置されている奥行距離Zを抽出する。そして、CPU311は、奥行距離Zが短いほどスクロール量が大きくなるように、抽出された奥行距離Zに対応するスクロール量を設定し、設定されたスクロール量を用いてオブジェクトデータDbを更新する。
【0128】
なお、上記ステップ81で奥行距離Zが一定となった仮想オブジェクトが選択され、既に当該仮想オブジェクトに対するスクロール量が設定済である場合、上記ステップ82の処理において当該仮想オブジェクトに対するスクロール量を再設定しなくてもかまわない。
【0129】
また、上記ステップ81で奥行距離Zが変化する仮想オブジェクトが選択されている場合であっても、当該仮想オブジェクトに対するスクロール量を最初に設定された値に固定して、上記ステップ82の処理において当該仮想オブジェクトに対するスクロール量を再設定しなくてもかまわない。一例として、プレイヤオブジェクトPOが地上オブジェクトGOを攻撃するために対地攻撃弾を発射した場合、奥行距離Zが漸増的に長くなるように当該対地攻撃弾に対応する仮想オブジェクトが仮想空間を移動する。このような対地攻撃弾に対応する仮想オブジェクトの移動に対して、奥行距離Zが変化した場合であってもスクロール量を発射地点のスクロール量に固定することによって、仮想空間における対地攻撃弾の移動速度が一定であれば上側LCD22に表示される対地攻撃弾の移動速度も等速となる。したがって、プレイヤオブジェクトPOを操作するユーザは、地上オブジェクトGOを対地攻撃弾で攻撃することが容易となる。
【0130】
他の例として、地上オブジェクトGOがプレイヤオブジェクトPOを攻撃するために対空攻撃弾を発射した場合、奥行距離Zが漸減的に短くなるように当該対空攻撃弾に対応する仮想オブジェクトが仮想空間を移動する。このような対空攻撃弾に対応する仮想オブジェクトの移動に対して、奥行距離Zが変化した場合であってもスクロール量を発射地点のスクロール量に固定することによって、仮想空間における対空攻撃弾の移動速度が一定であれば上側LCD22に表示される対空攻撃弾の移動速度も等速となる。したがって、プレイヤオブジェクトPOを操作するユーザは、地上オブジェクトGOから発射された対空攻撃弾の軌道を把握しやすくなる。
【0131】
これに対して、上記ステップ81で奥行距離Zが変化する仮想オブジェクトが選択されている場合、上記ステップ82の処理において当該仮想オブジェクトに対するスクロール量を変化する奥行距離Zに応じてスクロール量を逐次変化させて、当該仮想オブジェクトに対するスクロール量を再設定してもよい。この場合、前者の例では、プレイヤオブジェクトPOが前方へ対地攻撃弾を発射した場合、仮想空間における当該対地攻撃弾の移動速度が一定であっても、上側LCD22では移動速度が徐々に減速されるように対地攻撃弾が表示される。また、後者の例では、プレイヤオブジェクトPOの前方から地上オブジェクトGOが対空攻撃弾を発射した場合、仮想空間における当該対空攻撃弾の移動速度が一定であっても、上側LCD22では移動速度が徐々に加速されるように対空攻撃弾が表示される。
【0132】
次に、CPU311は、上記ステップ81およびステップ82の処理が行われていない仮想オブジェクトがあるか否かを判断する。そして、CPU311は、未処理の仮想オブジェクトがある場合、上記ステップ81に戻って処理を繰り返す。一方、CPU311は、全ての仮想オブジェクトに対する処理が終了した場合、次のステップ84に処理を進める。
【0133】
ステップ84において、CPU311は、設定されたスクロール量に基づいて、各仮想オブジェクトを所定のスクロール方向へスクロール移動させ、当該サブルーチンによる処理を終了する。例えば、CPU311は、オブジェクトデータDbを参照して、各仮想オブジェクトを設定されたスクロール量だけY軸負方向へそれぞれ移動させ、仮想空間における移動後の配置位置を用いて各仮想オブジェクトのXY位置を更新する。
【0134】
図13に戻り、上記ステップ53のスクロール処理の後、CPU311は、操作データを取得して(ステップ54)、次のステップに処理を進める。例えば、CPU311は、タッチパネル13、操作ボタン14、およびアナログスティック15を操作したことを示すデータを取得して、操作データDaを更新する。
【0135】
次に、CPU311は、オブジェクト移動処理を行って(ステップ55)、次のステップに処理を進める。例えば、CPU311は、上記ステップ55において、仮想オブジェクトに設定されている移動ベクトルを更新する処理、更新された移動ベクトルに基づいて仮想空間内で仮想オブジェクトを移動させる処理、他の仮想オブジェクトと衝突した仮想オブジェクトを仮想空間から消滅させる処理、新たな仮想オブジェクトを仮想空間に登場させる処理等を行う。
【0136】
仮想オブジェクトに設定されている移動ベクトルを更新する処理では、CPU311は、オブジェクトデータDbに設定されているプレイヤオブジェクトPOの移動ベクトルVpおよび操作データDaが示す操作情報に基づいて、移動ベクトルVpを変化させてオブジェクトデータDbを更新する。例えば、CPU311は、操作ボタン14Aが押下されていることを上記操作情報が示す場合、上側LCD22の表示範囲内で当該押下された指示方向へ移動してプレイヤオブジェクトPOが上側LCD22に表示されるように、プレイヤオブジェクトPOの移動ベクトルVpを変化させる。また、CPU311は、オブジェクトデータDbに設定されている敵オブジェクトEOの移動ベクトルVeや地上オブジェクトGOに設定されている移動ベクトルVgを、所定のアルゴリズムに基づいて変化させて移動ベクトルVeや移動ベクトルVgを変化させてオブジェクトデータDbを更新する。
【0137】
更新された移動ベクトルに基づいて仮想空間内で仮想オブジェクトを移動させる処理では、CPU311は、オブジェクトデータDbに設定されている移動ベクトルに基づいて、各仮想オブジェクトを仮想空間内で移動させる。そして、CPU311は、移動後の配置位置を用いて、オブジェクトデータDbにおける各仮想オブジェクトの配置位置データを更新する。また、CPU311は、移動後のプレイヤオブジェクトPOの配置位置に基づいて、照準Aの配置位置を設定し、当該配置位置に照準Aを配置する。例えば、照準Aは、プレイヤオブジェクトPOに対して所定距離だけ前方であり、かつ、地形オブジェクト上となる位置に配置される。
【0138】
他の仮想オブジェクトと衝突した仮想オブジェクトを仮想空間から消滅させる処理では、CPU311は、オブジェクトデータDbに設定されている各仮想オブジェクトの配意位置データ(奥行距離、XY位置)に基づいて、仮想空間内で衝突している仮想オブジェクトを抽出する。そして、CPU311は、他の仮想オブジェクトと衝突した場合に消滅する仮想オブジェクト(例えば、プレイヤオブジェクトPO、敵オブジェクトEO、地上オブジェクトGO、対空攻撃弾および対地攻撃弾に対応するオブジェクト等)を、仮想世界から消滅させるためにオブジェクトデータDbから消去する。
【0139】
新たな仮想オブジェクトを仮想空間に登場させる処理では、CPU311は、ユーザの操作や所定のアルゴリズムに基づいて、仮想空間に敵オブジェクトEO、地上オブジェクトGO、対空攻撃弾および対地攻撃弾に対応するオブジェクト等を新たに出現させる。例えば、ユーザが対空攻撃弾または対地攻撃弾を発射する攻撃操作を行った場合、CPU311は、当該攻撃操作に応じた仮想オブジェクトを仮想空間に出現させる。また、所定のアルゴリズムに基づいて、敵オブジェクトEOや地上オブジェクトGOがプレイヤオブジェクトPOを攻撃する動作を行う場合、CPU311は、当該攻撃動作に応じた仮想オブジェクトを仮想空間に出現させる。具体的には、CPU311は、攻撃操作や攻撃動作に応じた仮想オブジェクトを仮想空間に出現させる場合、攻撃動作を行うプレイヤオブジェクトPO、敵オブジェクトEO、および地上オブジェクトGOの配置位置を出現位置として設定し、プレイヤオブジェクトPOの前方方向、照準Aが配置されている位置への方向、プレイヤオブジェクトPOが配置されている方向等を移動方向とする所定の移動速度を移動ベクトルとして設定して、新たに出現させる仮想オブジェクトに対応するデータをオブジェクトデータDbに追加する。また、所定のアルゴリズムに基づいて、敵オブジェクトEOや地上オブジェクトGOを仮想空間に出現させる場合、CPU311は、当該アルゴリズムによって指示される出現位置および移動ベクトルに応じた仮想オブジェクトを仮想空間に出現させる。具体的には、CPU311は、敵オブジェクトEOや地上オブジェクトGOを仮想空間に出現させる場合、上記アルゴリズムによって指示される出現位置および移動ベクトルを新たに出現させる仮想オブジェクトの配置位置および移動ベクトルとして設定して、新たに出現させる仮想オブジェクトに対応するデータをオブジェクトデータDbに追加する。なお、CPU311は、地上オブジェクトGOを新たに出現させる際、仮想空間のスクロール方向を挟んで相対する表示領域の両側端部に対応する領域を除いた地形オブジェクト上に地上オブジェクトGOを出現させる。
【0140】
次に、CPU311は、ゲームを終了するか否かを判断する(ステップ56)。ゲームを終了する条件としては、例えば、ゲームがゲームオーバとなる条件が満たされたことや、ゲームがクリアされる条件が満たされたことや、ユーザがゲームを終了する操作を行ったこと等がある。CPU311は、ゲームを終了しない場合、上記ステップ52に戻って処理を繰り返す。一方、CPU311は、ゲームを終了する場合、当該フローチャートによる処理を終了する。
【0141】
このように、上述した実施形態に係る表示制御処理では、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトPOと地上オブジェクトGOとの間となる位置に雲オブジェクトCO1〜CO3が配置される。これによって、プレイヤオブジェクトPOと地上オブジェクトGOとの間に別の仮想オブジェクトが介在することによって、奥行位置を比較するための比較対象物となるため、プレイヤオブジェクトPOと地上オブジェクトGOとの間の奥行き感を強調することができる。また、仮想世界が表示される場合、雲オブジェクトCO1〜CO3が常に表示画面の端部に表示されるため、プレイヤオブジェクトPOや地上オブジェクトGOを覆い隠すことがなく、プレイに支障をきたすことも無く、常にプレイヤオブジェクトPOや地上オブジェクトGOへの視界も確保される。さらに、仮想世界が表示装置に立体視表示される際、仮想世界内の奥行方向の距離が短いほどスクロール量が大きくなるようにスクロール表示されるため、立体視表示される仮想世界にさらに立体感を加えることができる。
【0142】
なお、上述した実施形態では、立体視表示された仮想世界内の奥行方向に対してプレイヤオブジェクトPOと地上オブジェクトGOとの間となる位置に、3層の雲オブジェクトCO1〜CO3が重なるように配置した。しかしながら、プレイヤオブジェクトPOと地上オブジェクトGOとの間となる位置に、1層または2層の雲オブジェクトCOを配置してもいいし、4層以上の雲オブジェクトCOを配置してもよい。
【0143】
また、上述した実施形態では、雲オブジェクトCO1〜CO3が常に表示画面の端部に表示されるように雲オブジェクトCO1〜CO3を配置した。しかしながら、雲オブジェクトCO1〜CO3は、少なくとも表示画面の端部の少なくとも一部に常に表示されていればよく、さらに表示画面の当該端部以外の位置に表示されてもかまわない。例えば、雲オブジェクトCOは、表示画面に対してスクロール表示されるため、地上オブジェクトGOへの視界を妨げない程度の大きさの雲オブジェクトCOであれば、表示画面の中央部等を通るようにスクロール表示されてもよい。また、雲オブジェクトCO1〜CO3は、表示画面の端部に表示されている一部が切れた状態で表示されてもかまわない。例えば、表示画面の左右両端部に雲オブジェクトCO1〜CO3が表示される場合、当該左右両端部全てに渡って雲オブジェクトCO1〜CO3が常に表示される必要はない。すなわち、雲オブジェクトCO1〜CO3の少なくとも1つの一部が、上記左右両端部への表示において配置されずに表示されない状態(例えば、雲が切れた状態)で上側LCD22に表示されてもかまわない。
【0144】
また、本発明は、立体視表示された仮想世界内において奥行き感を強調したい場合に、その強調したい空間に別の仮想オブジェクトを介在させ、当該仮想オブジェクトを当該空間における奥行位置を比較するための比較対象物とすることによって、奥行き感を強調している。したがって、比較対象物として介在させる仮想オブジェクトは、様々な態様が考えられる。例えば、上述した実施形態では、仮想世界が表示画面の上下方向にスクロール表示される場合に、雲オブジェクトCO1〜CO3が表示画面の左右両端部に常に表示される例を用いた。しかしながら、本発明は、仮想世界が表示画面の上下方向にスクロール表示される場合に、雲オブジェクトCO1〜CO3が表示画面の左右端部の一方に常に表示されてもかまわない。
【0145】
また、プレイヤオブジェクトPOと地上オブジェクトGOとの間となる位置に比較対象物となる雲オブジェクトCOを配置することによって、プレイヤオブジェクトPOと地上オブジェクトGOとの奥行き感を強調しているが、比較対象物となる雲オブジェクトCOは、2つの仮想オブジェクトの間となる階層に配置しなくてもかまわない。一例として、地形オブジェクト上にプレイヤオブジェクトPOおよび地上オブジェクトGOを配置し、当該地形オブジェクトの上空に雲オブジェクトCOを配置する。この場合、雲オブジェクトCOのさらに上空には他の仮想オブジェクトが存在せず、当該雲オブジェクトCOが配置されている階層が2つの仮想オブジェクトの間とはならない。しかしながら、プレイヤオブジェクトPOおよび地上オブジェクトGOの上空に雲オブジェクトCOを配置することによって、当該雲オブジェクトCOが奥行方向に対する比較対象物となるため、立体視表示された仮想世界内におけるプレイヤオブジェクトPO、地上オブジェクトGO、および地形オブジェクトに対する奥行き感を強調することができる。他の例として、最も奥行距離短い階層(例えば、奥行距離Z1の階層)にプレイヤオブジェクトPOや敵オブジェクトEOを配置し、当該プレイヤオブジェクトPOや敵オブジェクトEOの下層(奥行方向へ奥行距離が相対的に長い階層)に雲オブジェクトCOを配置する。この場合、雲オブジェクトCOのさらに下層には他の仮想オブジェクトが存在せず、当該雲オブジェクトCOが配置されている階層が2つの仮想オブジェクトの間とはならない。しかしながら、プレイヤオブジェクトPOおよび/または敵オブジェクトEOの奥(下層)に雲オブジェクトCOを配置することによって、当該雲オブジェクトCOが奥行方向に対する比較対象物となるため、立体視表示された仮想世界内におけるプレイヤオブジェクトPOおよび/または敵オブジェクトEOに対する奥行き感を強調することができる。
【0146】
また、本発明は、他のスクロール方向へ仮想世界がスクロール表示される場合や、仮想世界がスクロールされない場合であっても適用することができる。例えば、仮想世界が表示画面の左右方向にスクロール表示される場合、雲オブジェクトCO1〜CO3を表示画面の上下端部の少なくとも一方に常に表示することによって、同様の効果を得ることができる。また、仮想世界が表示画面に固定して表示される場合、雲オブジェクトCO1〜CO3を常に表示画面の上下左右何れか1つの端部に表示することによって、同様の効果を得ることができる。例えば、奥行距離が異なる地形オブジェクトの上空にプレイヤオブジェクトが配置されて立体視表示され、地形オブジェクトが表示画面に対して固定的に表示される場合、表示画面の端部に表示されている地形オブジェクトの奥行距離に応じて、当該端部に雲オブジェクトCO等の別の仮想オブジェクトを表示してもよい。一例として、表示画面に傾斜した地形オブジェクトが表示されており、表示画面の上端部に表示されている位置の地形オブジェクトの奥行距離が他の位置よりも長い場合、当該上端部にのみ地形オブジェクトとプレイヤオブジェクトが配置されている階層との間に別の仮想オブジェクト(例えば、雲オブジェクト)を配置する。このように、立体視表示された仮想世界内の奥行方向に対して地形オブジェクトの上方となる位置に別の仮想オブジェクトが介在することによって、奥行位置を比較するための比較対象物となるため、地形オブジェクトの奥行き感を強調することができる。
【0147】
また、上述した実施形態では、最も奥行距離が短い階層にプレイヤオブジェクトPOおよび敵オブジェクトEOを配置し、最も奥行距離が長い階層に地上オブジェクトGOを配置し、その中間となる階層に雲オブジェクトCOを配置した。しかしながら、さらに別の階層に仮想オブジェクトを登場させてもかまわない。例えば、雲オブジェクトCOが配置される階層と地上オブジェクトGOが配置される階層との間に別の階層を設定し、当該階層に別の敵オブジェクトが出現するように構成してもかまわない。
【0148】
また、上記実施形態では、左仮想カメラおよび右仮想カメラの視体積を、上側LCD22に表示される表示範囲によって設定する(すなわち、視体積内の仮想空間が全て上側LCD22に表示される)例を示したが、他の方式で視体積を設定してもかまわない。例えば、左仮想カメラおよび右仮想カメラの視体積を、上側LCD22に表示される表示範囲とは無関係に設定してもよい。この場合、上記ステップ75において、左仮想カメラの視体積内の仮想空間を示す左仮想世界画像から一部の領域を切り取って左目用画像として生成し、右仮想カメラの視体積内の仮想空間を示す右仮想世界画像から一部の領域を切り取って右目用画像として生成する。具体的には、表示画面に立体視画像を表示する場合に奥行距離が当該表示画面の位置と一致する基準奥行距離における仮想空間の表示範囲が、上記左目用画像と右目用画像とにおいて一致するように、上記一部の領域が左仮想世界画像および右仮想世界画像から切り取られる。このように、左仮想カメラおよび右仮想カメラの視体積を、実際に表示画面に表示する表示領域より大きく設定して、表示画面に表示する際に立体視表示に適切な一部の範囲を当該視体積内の画像から切り取ってもかまわない。この場合、表示画面の端部に表示する雲オブジェクトCO1〜CO3は、以降の処理で切り取られる範囲を想定して表示範囲の端部となるように仮想空間内に配置すればよい。
【0149】
また、上記実施形態では、上側LCD22がパララックスバリア方式の液晶表示装置であるとして、視差バリアのON/OFFを制御することにより、立体表示と平面表示とを切り替えることができる。他の実施形態では、例えば、上側LCD22としてレンチキュラー方式の液晶表示装置を用いて、立体画像および平面画像を表示可能としてもよい。レンチキュラー方式の場合でも、外側撮像部23で撮像した2つの画像を縦方向に短冊状に分割して交互に配置することで画像が立体表示される。また、レンチキュラー方式の場合でも、内側撮像部24で撮像した1つの画像をユーザの左右の目に視認させることによって、当該画像を平面表示させることができる。すなわち、レンチキュラー方式の液晶表示装置であっても、同じ画像を縦方向に短冊状に分割し、これら分割した画像を交互に配置することにより、ユーザの左右の目に同じ画像を視認させることができる。これにより、内側撮像部24で撮像された画像を平面画像として表示することが可能である。
【0150】
また、上述した説明では、上側LCD22を裸眼立体視可能な表示装置として説明したが、上側LCD22が他の方式で立体視可能に構成されてもかまわない。例えば、偏光フィルタ方式、時分割方式、アナグリフ方式等の方式で、上側LCD22を立体視可能に構成してもかまわない。
【0151】
また、上述した実施形態では、2画面分の液晶表示部の一例として、物理的に分離された下側LCD12および上側LCD22を互いに上下に配置した場合(上下2画面の場合)を説明した。しかしながら、本発明は、単一の表示画面(例えば、上側LCD22のみ)を有する装置または単一の表示装置に表示する画像を画像処理する装置でも実現することができる。また、2画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング11の一方主面に下側LCD12および上側LCD22を左右に配置してもかまわない。また、下側LCD12と横幅が同じで縦の長さが2倍のサイズからなる縦長サイズのLCD(すなわち、物理的には1つで、表示サイズが縦に2画面分あるLCD)を下側ハウジング11の一方主面に配設して、2つの画像(例えば、撮像画像と操作説明画面を示す画像等)を上下に表示(すなわち上下の境界部分無しに隣接して表示)するように構成してもよい。また、下側LCD12と縦幅が同じで横の長さが2倍のサイズからなる横長サイズのLCDを下側ハウジング11の一方主面に配設して、横方向に2つの画像を左右に表示(すなわち左右の境界部分無しに隣接して表示)するように構成してもよい。すなわち、物理的に1つの画面を2つに分割して使用することにより2つの画像を表示してもかまわない。また、物理的に1つの画面を2つに分割して使用することにより上記2つの画像を表示する場合、当該画面全面にタッチパネル13を配設してもかまわない。
【0152】
また、上述した実施例では、ゲーム装置10にタッチパネル13が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側LCD22の上面にタッチパネル13を設けて上側LCD22に下側LCD12に表示していた表示画像を表示し、下側LCD12に上側LCD22に表示していた表示画像を表示してもよい。また、本発明を実現する場合に、タッチパネル13が設けられていなくもかまわない。
【0153】
また、上記実施例では、携帯型のゲーム装置10を用いて説明したが、据置型のゲーム装置や一般的なパーソナルコンピュータ等の情報処理装置で本発明の表示制御プログラムを実行して、本発明を実現してもかまわない。また、他の実施形態では、ゲーム装置に限らず任意の携帯型電子機器、例えば、PDA(Personal Digital Assistant)や携帯電話、パーソナルコンピュータ、カメラ等であってもよい。
【0154】
また、上述した説明では表示制御処理をゲーム装置10で行う例を用いたが、上記表示制御処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置10が他の装置(例えば、サーバや他のゲーム装置)と通信可能に構成されている場合、上記表示制御処理における処理ステップは、ゲーム装置10および当該他の装置が協働することによって実行してもよい。一例として、ゲーム装置10から他の装置へ操作データを送信し、他の装置において生成された左仮想世界画像および右仮想世界画像をゲーム装置10が受信して、受信した画像を上側LCD22に立体視表示する処理をゲーム装置10で行うことが考えられる。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した表示制御処理と同様の処理が可能となる。上述した表示制御処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置10が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0155】
また、上述したゲーム装置10の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した表示制御処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0156】
また、上記表示制御プログラム(ゲームプログラム)は、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、上記プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープなどでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。
【0157】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0158】
本発明に係る表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法は、立体視可能な画像を表示する場合に奥行き感を強調することのでき、各種立体視画像を表示装置に表示する処理等を行う表示制御プログラム、表示制御装置、表示制御システム、および表示制御方法等として有用である。
【符号の説明】
【0159】
10…ゲーム装置
11…下側ハウジング
12…下側LCD
13…タッチパネル
14…操作ボタン
15…アナログスティック
16…LED
17…挿入口
18…マイクロフォン用孔
19…無線スイッチ
21…上側ハウジング
22…上側LCD
23…外側撮像部
23a…外側左撮像部
23b…外側右撮像部
24…内側撮像部
25…3D調整スイッチ
26…3Dインジケータ
28…タッチペン
31…情報処理部
311…CPU
312…GPU
313…VRAM
32…メインメモリ
33…外部メモリI/F
34…データ保存用外部メモリI/F
35…データ保存用内部メモリ
36…無線通信モジュール
37…ローカル通信モジュール
38…RTC
39…加速度センサ
40…角速度センサ
41…電源回路
42…I/F回路
43…マイク
44…スピーカ
45…外部メモリ
46…データ保存用外部メモリ
図1
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16