(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023178520
(43)【公開日】2023-12-15
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
(51)【国際特許分類】
A63F 13/52 20140101AFI20231208BHJP
A63F 13/55 20140101ALI20231208BHJP
G06T 15/00 20110101ALI20231208BHJP
G06F 3/04815 20220101ALI20231208BHJP
【FI】
A63F13/52
A63F13/55
G06T15/00 501
G06F3/04815
【審査請求】有
【請求項の数】24
【出願形態】OL
【公開請求】
(21)【出願番号】P 2023149370
(22)【出願日】2023-09-14
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】嶺田 直樹
(72)【発明者】
【氏名】信田 龍哉
(57)【要約】
【課題】ゲーム空間を正射影で描画してもプレイヤキャラクタが手前側や奥側にいるように十分に見える画像表現ができるゲームプログラム等を提供すること。
【解決手段】正射影に基づいて、仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、ゲーム中の第1の場面において、仮想空間内のオブジェクトのうち少なくともプレイヤキャラクタオブジェクトと一部の地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画させる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
少なくともプレイヤキャラクタオブジェクトと地形オブジェクトが配置された仮想空間内において、少なくとも前記プレイヤキャラクタオブジェクトと仮想カメラを制御させ、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、ゲーム中の第1の場面において、前記仮想空間内のオブジェクトのうち少なくとも前記プレイヤキャラクタオブジェクトと一部の前記地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画させる、ゲームプログラム。
【請求項2】
前記コンピュータに、
前記プレイヤキャラクタオブジェクトの制御に基づいてゲーム内の第1の条件が満たされた場合に、第1の地形オブジェクトを登場させて、
以降の場面である前記第1の場面において、前記プレイヤキャラクタオブジェクトと前記第1の地形オブジェクトに対して前記変換を行いながら描画させる、請求項1に記載のゲームプログラム。
【請求項3】
前記コンピュータに、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、前記仮想空間内のオブジェクトのうち、第2の地形オブジェクトに対して前記変換を行いながら描画させ、
前記プレイヤキャラクタの制御に基づいてゲーム内の第2の条件が満たされた場合に、前記プレイヤキャラクタオブジェクトを移動させて、
以降の場面である前記第1の場面において、さらに前記プレイヤキャラクタオブジェクトに対して前記変換を行いながら描画させる、請求項1に記載のゲームプログラム。
【請求項4】
前記コンピュータに、
前記仮想空間内のオブジェクトを、デプステストを行いながら前記フレームバッファに描画させ、
当該フレームバッファに描画された画像に対してさらに、
デプスバッファのデプスに基づいて、当該デプスが小さい第1の範囲を除外した第2の範囲の画素に基づいた所定の効果を加えさせる、請求項1に記載のゲームプログラム。
【請求項5】
前記所定の効果は、ブルーム効果である、請求項4に記載のゲームプログラム。
【請求項6】
前記コンピュータに、
前記第2の範囲の画素に基づいた前記ブルーム効果によって前記第1の範囲の画素に対して色が加算される場合に、加算される色を、少なくとも累乗に基づいて補正させて加算させる、請求項5に記載のゲームプログラム。
【請求項7】
プロセッサを備えるゲームシステムであって、
前記プロセッサは、
少なくともプレイヤキャラクタオブジェクトと地形オブジェクトが配置された仮想空間内において、少なくとも前記プレイヤキャラクタオブジェクトと仮想カメラを制御し、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画し、さらに、ゲーム中の第1の場面において、前記仮想空間内のオブジェクトのうち少なくとも前記プレイヤキャラクタオブジェクトと一部の前記地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画する、ゲームシステム。
【請求項8】
前記プロセッサは、
前記プレイヤキャラクタオブジェクトの制御に基づいてゲーム内の第1の条件が満たされた場合に、第1の地形オブジェクトを登場させて、
以降の場面である前記第1の場面において、前記プレイヤキャラクタオブジェクトと前記第1の地形オブジェクトに対して前記変換を行いながら描画する、請求項7に記載のゲームシステム。
【請求項9】
前記プロセッサは、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画し、さらに、前記仮想空間内のオブジェクトのうち、第2の地形オブジェクトに対して前記変換を行いながら描画し、
前記プレイヤキャラクタの制御に基づいてゲーム内の第2の条件が満たされた場合に、前記プレイヤキャラクタオブジェクトを移動させて、
以降の場面である前記第1の場面において、さらに前記プレイヤキャラクタオブジェクトに対して前記変換を行いながら描画する、請求項7に記載のゲームシステム。
【請求項10】
前記プロセッサは、
前記仮想空間内のオブジェクトを、デプステストを行いながら前記フレームバッファに描画し、
当該フレームバッファに描画された画像に対してさらに、
デプスバッファのデプスに基づいて、当該デプスが小さい第1の範囲を除外した第2の範囲の画素に基づいた所定の効果を加える、請求項7に記載のゲームシステム。
【請求項11】
前記所定の効果は、ブルーム効果である、請求項10に記載のゲームシステム。
【請求項12】
前記プロセッサは、
前記第2の範囲の画素に基づいた前記ブルーム効果によって前記第1の範囲の画素に対して色が加算される場合に、加算される色を、少なくとも累乗に基づいて補正して加算する、請求項11に記載のゲームシステム。
【請求項13】
プロセッサを備えるゲーム装置であって、
前記プロセッサは、
少なくともプレイヤキャラクタオブジェクトと地形オブジェクトが配置された仮想空間内において、少なくとも前記プレイヤキャラクタオブジェクトと仮想カメラを制御し、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画し、さらに、ゲーム中の第1の場面において、前記仮想空間内のオブジェクトのうち少なくとも前記プレイヤキャラクタオブジェクトと一部の前記地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画する、ゲーム装置。
【請求項14】
前記プロセッサは、
前記プレイヤキャラクタオブジェクトの制御に基づいてゲーム内の第1の条件が満たされた場合に、第1の地形オブジェクトを登場させて、
以降の場面である前記第1の場面において、前記プレイヤキャラクタオブジェクトと前記第1の地形オブジェクトに対して前記変換を行いながら描画する、請求項13に記載のゲーム装置。
【請求項15】
前記プロセッサは、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画し、さらに、前記仮想空間内のオブジェクトのうち、第2の地形オブジェクトに対して前記変換を行いながら描画し、
前記プレイヤキャラクタの制御に基づいてゲーム内の第2の条件が満たされた場合に、前記プレイヤキャラクタオブジェクトを移動させて、
以降の場面である前記第1の場面において、さらに前記プレイヤキャラクタオブジェクトに対して前記変換を行いながら描画する、請求項13に記載のゲーム装置。
【請求項16】
前記プロセッサは、
前記仮想空間内のオブジェクトを、デプステストを行いながら前記フレームバッファに描画し、
当該フレームバッファに描画された画像に対してさらに、
デプスバッファのデプスに基づいて、当該デプスが小さい第1の範囲を除外した第2の範囲の画素に基づいた所定の効果を加える、請求項13に記載のゲーム装置。
【請求項17】
前記所定の効果は、ブルーム効果である、請求項13に記載のゲーム装置。
【請求項18】
前記プロセッサは、
前記第2の範囲の画素に基づいた前記ブルーム効果によって前記第1の範囲の画素に対して色が加算される場合に、加算される色を、少なくとも累乗に基づいて補正して加算する、請求項17に記載のゲーム装置。
【請求項19】
情報処理装置のコンピュータに実行させるゲーム処理方法であって、
前記コンピュータに、
少なくともプレイヤキャラクタオブジェクトと地形オブジェクトが配置された仮想空間内において、少なくとも前記プレイヤキャラクタオブジェクトと仮想カメラを制御させ、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、ゲーム中の第1の場面において、前記仮想空間内のオブジェクトのうち少なくとも前記プレイヤキャラクタオブジェクトと一部の前記地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画させる、ゲーム処理方法。
【請求項20】
前記コンピュータに、
前記プレイヤキャラクタオブジェクトの制御に基づいてゲーム内の第1の条件が満たされた場合に、第1の地形オブジェクトを登場させて、
以降の場面である前記第1の場面において、前記プレイヤキャラクタオブジェクトと前記第1の地形オブジェクトに対して前記変換を行いながら描画させる、請求項19に記載のゲーム処理方法。
【請求項21】
前記コンピュータに、
正射影に基づいて、前記仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、前記仮想空間内のオブジェクトのうち、第2の地形オブジェクトに対して前記変換を行いながら描画させ、
前記プレイヤキャラクタの制御に基づいてゲーム内の第2の条件が満たされた場合に、前記プレイヤキャラクタオブジェクトを移動させて、
以降の場面である前記第1の場面において、さらに前記プレイヤキャラクタオブジェクトに対して前記変換を行いながら描画させる、請求項19に記載のゲーム処理方法。
【請求項22】
前記コンピュータに、
前記仮想空間内のオブジェクトを、デプステストを行いながら前記フレームバッファに描画させ、
当該フレームバッファに描画された画像に対してさらに、
デプスバッファのデプスに基づいて、当該デプスが小さい第1の範囲を除外した第2の範囲の画素に基づいた所定の効果を加えさせる、請求項19に記載のゲーム処理方法。
【請求項23】
前記所定の効果は、ブルーム効果である、請求項22に記載のゲーム処理方法。
【請求項24】
前記コンピュータに、
前記第2の範囲の画素に基づいた前記ブルーム効果によって前記第1の範囲の画素に対して色が加算される場合に、加算される色を、少なくとも累乗に基づいて補正させて加算させる、請求項23に記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ゲーム等の情報処理に関する。
【背景技術】
【0002】
従来から、ゲーム空間を正射影で描画して横スクロールさせるゲームあった。(例えば、特許文献1)
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲーム空間を正射影で描画する場合、キャラクタが通常よりも手前側や奥側に配置されても見た目の大きさは変わらないため、手前側や奥側にいるように十分に見える画像表現が求められていた。
【0005】
それ故に、本発明の目的は、ゲーム空間を正射影で描画してもキャラクタが手前側や奥側にいるように十分に見える画像表現ができるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
第1の構成例は、情報処理装置のコンピュータに、少なくともプレイヤキャラクタオブジェクトと地形オブジェクトが配置された仮想空間内において、少なくともプレイヤキャラクタオブジェクトと仮想カメラを制御させ、正射影に基づいて、仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、ゲーム中の第1の場面において、仮想空間内のオブジェクトのうち少なくともプレイヤキャラクタオブジェクトと一部の地形オブジェクトに対して、手前側に移動すると共に拡大、または奥側に移動すると共に縮小する変換を頂点シェーダによって行いながら描画させる、ゲームプログラムである。
【0008】
上記第1の構成例によれば、正射影によって仮想空間を描画する際に頂点シェーダによってオブジェクトを拡大または縮小するので、オブジェクトが手前側や奥側に配置されていることを表現でき、ゲーム画像の奥行き感を効果的に表現できる。また、仮想空間内に存在するオブジェクトを拡大または縮小するのではなく、仮想空間を描画する際に頂点シェーダによってオブジェクトを拡大または縮小するので、仮想空間内に存在するオブジェクトを拡大または縮小することに応じて衝突判定等のゲーム処理を修正する必要がない。
【0009】
第2の構成例は、上記第1の構成例において、コンピュータに、プレイヤキャラクタオブジェクトの制御に基づいてゲーム内の第1の条件が満たされた場合に、第1の地形オブジェクトを登場させて、以降の場面である第1の場面において、プレイヤキャラクタオブジェクトと第1の地形オブジェクトに対して変換を行いながら描画させる。
【0010】
上記第2の構成例によれば、新たに手前側または奥側に登場した地形オブジェクト上をプレイヤキャラクタが移動するゲーム画像を表現できる。
【0011】
第3の構成例は、上記第1の構成例において、上記第1の構成例において、コンピュータに、正射影に基づいて、仮想空間内のオブジェクトをフレームバッファに描画させ、さらに、仮想空間内のオブジェクトのうち、第2の地形オブジェクトに対して変換を行いながら描画させ、プレイヤキャラクタの制御に基づいてゲーム内の第2の条件が満たされた場合に、プレイヤキャラクタオブジェクトを移動させて、以降の場面である第1の場面において、さらにプレイヤキャラクタオブジェクトに対して変換を行いながら描画させる。
【0012】
上記第3の構成例によれば、既に手前側または奥側に配置された地形オブジェクト上にプレイヤキャラクタが移動するゲーム画像を表現できる。
【0013】
第4の構成例は、上記第1の構成例において、コンピュータに、仮想空間内のオブジェクトを、デプステストを行いながらフレームバッファに描画させ、当該フレームバッファに描画された画像に対してさらに、デプスバッファのデプスに基づいて、当該デプスが小さい第1の範囲を除外した第2の範囲の画素に基づいた所定の効果を加えさせる。
【0014】
上記第4の構成例によれば、ゲーム画像において奥側の範囲にだけ所定の効果を加えることができる。また、奥側に移動して描画されたキャラクタも所定の効果の対象になり、奥行き感が出せる。
【0015】
第5の構成例は、上記第4の構成例において、所定の効果はブルーム効果である。
【0016】
上記第5の構成例によれば、奥行き感のあるブルーム効果が表現できる。
【0017】
第6の構成例は、上記第5の構成例において、コンピュータに、第2の範囲の画素に基づいたブルーム効果によって第1の範囲の画素に対して色が加算される場合に、加算される色を、少なくとも累乗に基づいて補正させて加算させる。
【0018】
上記第6の構成例によれば、更に奥行き感のあるブルーム効果が表現できる。
【発明の効果】
【0019】
本実施形態によれば、ゲーム空間を正射影で描画してもキャラクタが手前側や奥側にいるように十分に見える画像表現ができるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することができる。
【図面の簡単な説明】
【0020】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2の内部構成の一例を示すブロック図
【
図3】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図6】正射影による描画の際の頂点シェーダによる変換の概念図の一例
【
図12】正射影による描画の際の頂点シェーダによる変換の概念図の一例
【
図14】正射影による描画の際の頂点シェーダによる変換の概念図の一例
【
図17】DRAM85に記憶される各種データの例を示す図
【
図18】ゲーム処理および描画処理等のフローチャートの一例
【
図20】正射影による描画の際の頂点シェーダによる変換の概念図の一例
【発明を実施するための形態】
【0021】
以下、一実施形態について説明する。
【0022】
[情報処理システムのハードウェア構成]
【0023】
以下、本実施形態の一例に係る情報処理システム(ゲームシステム、ゲーム装置)について説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0024】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0025】
また、本体装置2は、スピーカを備えており、スピーカから効果音等の音が出力される。
【0026】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための左側端子と、本体装置2が右コントローラ4と有線通信を行うための右側端子を備える。
【0027】
また、本体装置2は、スロットを備える。スロットは、本体装置2のハウジングの上側面に設けられる。スロットは、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。
【0028】
左コントローラ3および右コントローラ4は、それぞれ、各種操作ボタン等を備える。各種操作ボタン等は、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0029】
また、左コントローラ3および右コントローラ4は、それぞれ、本体装置2と有線通信を行うための端子を備える。
【0030】
図2は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0031】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0032】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0033】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0034】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、例えばWi-Fiの規格に準拠した方式により無線LANに接続して、外部装置(他の本体装置2)とインターネット通信等を行う。また、ネットワーク通信部82は、他の本体装置2と近距離無線通信(例えば、赤外線通信)を行うこともできる。
【0035】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0036】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0037】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0038】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0039】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0040】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0041】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0042】
図3は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図2で示しているため
図3では省略している。
【0043】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図3に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0044】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0045】
左コントローラ3は、各ボタン103を備える。また、左コントローラ3は、左スティック32を備える。各ボタン103および左スティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0046】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、
図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、
図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0047】
通信制御部101は、各入力部(具体的には、各ボタン103、左スティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0048】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103および左スティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0049】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0050】
図3に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0051】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、右スティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0052】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0053】
[本実施形態で想定するゲームについて]
次に、本実施形態にかかるゲームシステム1で実行されるゲーム処理(情報処理の一例)の概要を説明する。本実施形態で想定するゲームは、様々なオブジェクトが配置された仮想空間(ゲーム空間)内を、プレイヤ(ユーザ)の操作に応じて動作するプレイヤキャラクタオブジェクト(「プレイヤキャラクタ」という場合がある)が移動してゴール地点に到達するアクションゲームである。また、本ゲームは、ゲーム空間を仮想カメラによって正射影(平行投影)で撮影して、2次元ゲームのようなゲーム画像を画面(ディスプレイ12)に表示させるゲームである。なお、本ゲームは、アクションゲームに限られず、他の種類のゲームであってもよい。
【0054】
[本実施形態のゲーム処理および描画処理の概要]
図4は、本ゲームのゲーム画面の一例を示す図である。
図4に示すように、ゲーム画面には、地形オブジェクトA、地形オブジェクトB、地形オブジェクトCが表示されている。地形オブジェクトA上には、1つの敵キャラクタオブジェクト(「敵キャラクタ」という場合がある)201と、1つのプレイヤキャラクタ200と、1つの出入口オブジェクト(単に「出入口」という場合がある)205とが表示されている。地形オブジェクトB上には、2つの敵キャラクタ201と、1つの出入口202と、1つの出入口203とが表示されている。地形オブジェクトC上には、2つの敵キャラクタ201と、1つの出入口204と、3つの木オブジェクト(単に「木」という場合がある)210とが表示されている。なお、地形オブジェクトAおよび地形オブジェクトA上に表示されるオブジェクトを「レイヤA」という場合があり、地形オブジェクトBおよび地形オブジェクトB上に表示されるオブジェクトを「レイヤB」という場合があり、地形オブジェクトCおよび地形オブジェクトC上に表示されるオブジェクトを「レイヤC」という場合がある。
【0055】
プレイヤは、プレイヤキャラクタ200を操作して、右方向(x軸の増加方向)に有るゴール地点(図示なし)を目指してプレイヤキャラクタ200を移動させる。また、プレイヤの操作に応じてプレイヤキャラクタ200が右方向又は左方向に移動すると、プレイヤキャラクタ200が画面の表示範囲外に出ないように、レイヤA、レイヤB、レイヤCが横スクロールして表示される。なお、プレイヤキャラクタ200は、敵キャラクタ201に接触するとダメージを受ける。
【0056】
敵キャラクタ201は、同じ種類の敵キャラクタであり、ゲーム空間において同じ大きさである。木210も、同じ種類の木であり、ゲーム空間において同じ大きさである。出入口203と出入口205はゲーム空間において同じ大きさであり、出入口202と204もゲーム空間において同じ大きさある。
【0057】
そして、
図4に示すように、本ゲームのゲーム画面では、最も手前側として表示されるレイヤAを拡大表示し、最も奥側として表示されるレイヤCを縮小表示している。このことによって、正射影でゲーム空間を撮影しても、奥行き感のあるゲーム画像を表示することができる。なお、従来の方法では、正射影でゲーム空間を撮影すると、手前側のレイヤも奥側のレイヤも同じ大きさ(同じ倍率)で表示されるので、
図4のような奥行き感は出なかった。
【0058】
図5は、
図4のゲーム画面(ゲーム画像)を描画するために撮影するゲーム空間を説明するための図である。
図5に示すように、ゲーム空間には、仮想カメラ220と、地形オブジェクトA~Cが配置されている。地形オブジェクトA~Cは、ゲーム空間において、仮想カメラ220から等しい奥行の位置(z方向の同じ距離)に上下方向(Y軸方向)に整列して配置されている。地形オブジェクトAの上側(y軸の増加方向)には、1つの敵キャラクタ201と1つのプレイヤキャラクタ200が配置されている。地形オブジェクトBの上側には、2つの敵キャラクタ201が配置されている。地形オブジェクトCの上側には、2つの敵キャラクタ201が配置されている。なお、
図5では、便宜上、地形オブジェクトを板形状で図示し、敵キャラクタ201およびプレイヤキャラクタ200を楕円形状で図示し、木や出入口のオブジェクトは図示を省略している。また、
図5の例では、ゲーム空間内の地形オブジェクトA~Cの奥行や、地形オブジェクト上のキャラクタの奥行が同じであるが、ずれていてもよい。
【0059】
図5には、仮想カメラ220によって正射影を用いて撮影される地形オブジェクトBの長方形の領域230が図示されている。また、領域230と同じ大きさの長方形の領域231が地形オブジェクトAに図示され、領域230と同じ大きさの長方形の領域232が地形オブジェクトCに図示されている。
【0060】
ここで、従来の方法で正射影を用いて撮影する場合、図示していないが、ゲーム空間において、レイヤA(地形オブジェクトAおよびその上に乗っているオブジェクト)を仮想カメラ220から見てレイヤB(地形オブジェクトBおよびその上に乗っているオブジェクト)の手前側に配置し、レイヤC(地形オブジェクトCおよびその上に乗っているオブジェクト)を仮想カメラ220から見てレイヤBの奥側に配置して、かつレイヤA~Cがいずれも仮想カメラの視野に含まれるように(すなわち、領域230、領域231、領域232が仮想カメラから見て重なるように)配置して撮影(フレームバッファに描画)する必要がある。
【0061】
図6は、
図5のゲーム空間をフレームバッファに描画する際に(描画する過程で)頂点シェーダによって行う変換について説明するための図である。
図6に示すように、本実施形態の描画処理では、頂点シェーダによって、レイヤAを仮想カメラ220から見てレイヤBの手前側の所定位置に移動させると共に拡大し、レイヤCを仮想カメラ220から見てレイヤBの奥側の所定位置に移動させると共に縮小させてから、デプスバッファ(Zバッファ)を用いたデプステスト(Zテスト)を実行して描画する。
図6において、領域231は、レイヤAが拡大されたことによって
図5の領域231に相当する範囲がどのくらいの大きさになるかを示したものである。また、
図6において、領域232は、レイヤCが縮小されたことによって
図5の領域232に相当する範囲がどのくらいの大きさになるかを示したものである。領域241は仮想カメラ220で撮影されるレイヤAの領域であり、領域242は仮想カメラ220で撮影されるレイヤCの領域である。
【0062】
レイヤA~Cを横スクロールさせる場合、仮想カメラを平行移動させることでスクロールを表現することが考えられるが、このとき、透視射影であった場合、より手前側のレイヤの方が、より速く横スクロールするように見えることになる。本実施形態においても、そのような遠近感を表現するため、より手前側のレイヤの方が、より速く横スクロールするようにする。具体的には、ゲーム空間を描画する際に頂点シェーダによってレイヤA~Cの位置を調整して、ゲーム画像(
図4参照)において、より手前側のレイヤの方が、より速く横スクロールしているように見えるようにレイヤA~Cを横スクロールさせる。例えば、仮想カメラを平行移動させる場合は、手前側のレイヤは仮想カメラの移動方向と逆方向にさらに移動させ、奥側のレイヤは仮想カメラの移動方向に沿ってさらに移動させた位置に頂点の位置を変換して描画を行う。
【0063】
上記のように、本実施形態では、ゲーム空間(
図5参照)を正射影で描画(撮影)する際に、頂点シェーダによって、手前側のオブジェクトとして表示させたいレイヤ(レイヤA)を手前側の所定位置に移動させると共に拡大し、奥側のオブジェクトとして表示させたいレイヤ(レイヤC)を奥側の所定位置に移動させると共に縮小させて描画する。このことによって、
図4に示すように、奥行き感を十分に表現したゲーム画像を表示することができる。
【0064】
また、本実施形態では、衝突判定等の物理演算処理(物理シミュレーション)をゲーム空間(
図5参照)で行い、上記のように、ゲーム空間を描画する際に頂点シェーダによって
図6を用いて説明した変換(拡大、縮小、移動)を行う。すなわち、本実施形態では、ゲーム空間内においてオブジェクト自体の拡大や縮小等を行わない。ゲーム空間内でサイズ変更が行われる場合は、衝突判定等の物理演算処理に影響を及ぼす可能性があり、検証のコストがかかることになるが、本実施形態では、ゲーム空間内の処理はそのままで、描画される際の位置やサイズのみを変更しているので、物理演算処理を調整(修正)することなく
図4に示すような奥行き感を十分に表現したゲーム画像を表示することができる。
【0065】
また、上記のように、本実施形態では、ゲーム空間(
図5参照)を描画する際に、手前側のオブジェクトとして表示させたいレイヤ(レイヤA)を手前側の所定位置に移動させ、奥側のオブジェクトとして表示させたいレイヤ(レイヤC)を奥側の所定位置に移動させる。このことによって、開発時においてゲーム空間にオブジェクトを設計(配置)する作業が容易になる。
【0066】
図7は、本ゲームのゲーム画面の一例を示す図である。
図7のゲーム画面は、
図4のゲーム画面においてレイヤAに表示されているプレイヤキャラクタ200が、レイヤCに表示されているものである。つまり、
図7の場合は、プレイヤキャラクタ200が、
図5および
図6においてレイヤAではなくレイヤCに位置している。なお、
図4および
図7でプレイヤキャラクタ200がレイヤAおよびレイヤCに位置している場合を説明したが、プレイヤキャラクタ200がレイヤBに位置する場合もある。
【0067】
図8は、本ゲームのゲーム画面において、プレイヤキャラクタ200がレイヤBからレイヤAに移動する場合の一例について説明するための図である。
図8(1)に示すように、レイヤBに表示されたプレイヤキャラクタ200がプレイヤの操作に応じて出入口203に入る(「第2の条件」が満たされた場合の一例)と、
図8(2)に示すように、プレイヤキャラクタ200が出入口205から出てきてレイヤAに表示される。また、レイヤAに表示されたプレイヤキャラクタ200がプレイヤの操作に応じて出入口205に入ると、プレイヤキャラクタ200が出入口203から出てきてレイヤBに表示される(図示なし)。このことによって、プレイヤキャラクタ200はレイヤAとレイヤBとの間を移動することができる。
【0068】
図9は、本ゲームのゲーム画面において、プレイヤキャラクタ200がレイヤBからレイヤCに移動する場合について説明するための図である。
図9(1)に示すように、レイヤBに表示されたプレイヤキャラクタ200がプレイヤの操作に応じて出入口203に入る(「第2の条件」が満たされた場合の一例)と、
図9(2)に示すように、プレイヤキャラクタ200が出入口204から出てきてレイヤCに表示される。また、レイヤCに表示されたプレイヤキャラクタ200がプレイヤの操作に応じて出入口204に入ると、プレイヤキャラクタ200が出入口203から出てきてレイヤBに表示される(図示なし)。このことによって、プレイヤキャラクタ200はレイヤBとレイヤCとの間を移動することができる。なお、プレイヤキャラクタ200がレイヤAとレイヤCとの間を移動することができる出入口があってもよい。
【0069】
図10は、本ゲームのゲーム画面において、プレイヤキャラクタ200がレイヤBからレイヤAに移動する場合の他の一例について説明するための図である。
図10では、(1)に示すように、ゲーム画面にレイヤAは表示されていない。つまり、ゲーム画面においてレイヤAは隠されている。
【0070】
図11は、
図10(1)のゲーム画面(ゲーム画像)を描画するために撮影するゲーム空間を説明するための図である。
図11に示すように、ゲーム空間には、
図5と同様に仮想カメラ220と各オブジェクトが配置されている。なお、
図11では、プレイヤキャラクタ200がレイヤBに位置している。
図12は、
図11のゲーム空間を描画する際に(描画する過程で)で頂点シェーダによって行う変換について説明するための図である。
図12に示すように、
図11のゲーム空間に対する描画処理では、頂点シェーダによって、(レイヤAに対して移動や拡大を行う処理(
図6参照)を実行せず)レイヤBを仮想カメラ220から見てレイヤBの奥側の所定位置に移動させると共に縮小させてから、デプスバッファを用いたデプステストを実行して描画を行う。このことによって、
図10(1)に示すように、レイヤAが表示されないゲーム画面が表示される。
【0071】
そして、
図10(1)に示すように、レイヤBに表示されたプレイヤキャラクタ200がプレイヤの操作に応じて出入口203に入る(「第1の条件」が満たされた場合の一例)と、
図10(2)に示すように、レイヤBの手前側にレイヤAが登場してから、プレイヤキャラクタ200が出入口205から出てきてレイヤAに表示される。
【0072】
図13は、
図10(2)のゲーム画面(ゲーム画像)を描画するために撮影するゲーム空間を説明するための図である。
図13に示すように、ゲーム空間には、
図5と同様に仮想カメラ220と各オブジェクトが配置されている。なお、
図13では、レイヤAのプレイヤキャラクタ200の位置が
図5と異なっている。
図14は、
図13のゲーム空間を描画する際に(描画する過程で)で頂点シェーダによって行う変換について説明するための図である。
図14に示すように、
図13のゲーム空間に対する描画処理では、頂点シェーダによって、レイヤAを仮想カメラ220から見てレイヤBの手前側の所定位置に移動させると共に縮小させ、レイヤCを仮想カメラ220から見てレイヤBの奥側の所定位置に移動させると共に縮小させてから、デプスバッファを用いたデプステストを実行して描画を行う。つまり、
図6と同様に描画を行う。このことによって、
図10(2)に示すように、レイヤAが登場するゲーム画面が表示される。なお、
図10(2)のゲーム画面において、レイヤAが上向きにせり上がって登場するように、描画処理を行ってもよい。
【0073】
上記では、プレイヤキャラクタ200が手前側の隠されたレイヤAに移動するとレイヤAが登場する場合について説明したが、プレイヤキャラクタ200が奥側の隠されたレイヤCに移動するとレイヤCが登場する場合も同様である。
図15は、本ゲームのゲーム画面において、プレイヤキャラクタ200がレイヤBから隠されたレイヤCに移動する場合の一例について説明するための図である。
図15(1)に示すように、プレイヤの操作に応じてプレイヤキャラクタ200がレイヤBの出入口202に入る(「第1の条件」が満たされた場合の一例)と、
図15(2)に示すように、レイヤCが登場してからプレイヤキャラクタ200がレイヤCの出入口204から出てくるゲーム画面が表示される。なお、
図15(1)のゲーム画面(ゲーム画像)を描画する場合には、頂点シェーダによって、(レイヤCに対して移動や縮小を行う処理(
図6参照)を実行せず)レイヤAを仮想カメラ220から見てレイヤBの手前側の所定位置に移動させると共に縮小させてから、デプスバッファを用いたデプステストを実行して描画を行う。
【0074】
図16は、本ゲームのゲーム画像にブルーム効果(光に照らされたようなエフェクト)を加える場合について説明するための図である。なお、
図16では、説明の便宜上、レイヤAを黒色にしている。
【0075】
本実施形態では、
図6等を用いて説明した頂点シェーダによる変換処理を行ってフレームバッファに描画したゲーム画像に対して、このゲーム画像のデプスバッファのデプス(Z値、デプス値)に基づいたマスクを設定してブルーム効果を加える場合がある。例えば、
図16(1)に示すように、デプスバッファのデプスが小さいレイヤA(「第1の範囲」の一例)の画素にブルームマスクを設定して、ブルーム効果を加える。このことによって、
図16(1)に示すように、レイヤBおよびレイヤC(「第2の範囲」の一例)の画素と、ブルームマスクを設定したレイヤAの境界付近(
図16(1)の場合レイヤCとの境界付近)の領域の画素にブルーム効果が加えられる。この結果として、
図16(1)に示すように、レイヤBおよびレイヤCの画素が光に照らされたように明るく表示され、奥行き感が表現される。また、ブルームマスクを設定したレイヤAの境界付近の領域の画素には、光に明るく照らされたレイヤB等の画素がぼかされたことによって、色が加えられる(加算される)。このときに、加算される色(色の強度)を累乗(又は乗算)する補正を行ってから、補正した色を加算する。このことによって、ブルームマスクを設定したレイヤAの境界付近の領域の画素は、この補正を行わない場合よりも、色(色の強度)が弱められ、色(色の強度)の減衰が極端に速くなる。
【0076】
なお、マスクを設定するためのデプス値はどのような値であってもよく、レイヤBもマスクの対象となるような値でもよい。また、レイヤ内のオブジェクトのデプスが一定でないことも考えられるが、そのような場合に、レイヤの一部のオブジェクトがマスク対象となり、それ以外がマスク対象外となるような値が設定されてもよい。奥側のレイヤは、描画の際に、頂点シェーダによって値が大きくなったデプスがデプスバッファに記憶されるので、ブルームの対象とすることができ、奥側と手前側で異なる表現ができるため、より一層遠近感のある表現ができることになる。
【0077】
図16(2)は、上記した補正を行った場合のレイヤAの境界付近の領域のイメージ図であり、
図16(3)は、上記した補正を行わない場合のレイヤAの境界付近の領域のイメージ図である。
図16(2)および(3)から分かるように、上記した補正を行うことによって、ブルームマスクを設定したレイヤAの境界がはっきりと目立つ(際立つ)ようになり、又、光が漏れ出ているような奥行きを感じさせる発光感を出すことができる。なお、
図16では、図示の都合上、レイヤAの敵キャラクタ201や出入口205(更にはプレイヤキャラクタ200がレイヤAに居る場合はプレイヤキャラクタ200)には上記した補正を表現していないが、これらのオブジェクトにも上記した補正が行われる。
【0078】
[本実施形態の情報処理の詳細]
次に、
図17および
図18を参照して、本実施形態の情報処理について詳細に説明する。
【0079】
[使用データについて]
本ゲーム処理において用いられる各種データに関して説明する。
図17は、ゲームシステム1のDRAM85に記憶されるデータの一例を示している。
図17に示すように、DRAM85には、少なくともプログラム記憶領域301とデータ記憶領域302が設けられる。プログラム記憶領域301には、ゲームプログラム401が格納される。データ記憶領域302には、ゲーム制御用データ402、画像データ408、仮想カメラ制御用データ409、操作データ410、送信用データ411、および受信データ412等が格納される。ゲーム制御用データ402には、オブジェクトデータ403が含まれる。
【0080】
ゲームプログラム401は、本ゲーム処理を実行するためのゲームプログラムである。
【0081】
オブジェクトデータ403は、仮想空間に配置されるオブジェクトのデータであり、プレイヤキャラクタ、敵キャラクタ、アイテム、地面(地形)、ブロック、岩、石、木、建物等のオブジェクトのデータである。また、オブジェクトデータ403には、オブジェクトの座標(位置)、向き、姿勢、状態等のデータが含まれる。
【0082】
画像データ408は、背景やバーチャルエフェクト等の画像データである。
【0083】
仮想カメラ制御用データ409は、仮想空間に配置される仮想カメラの動きを制御するためのデータである。具体的には、仮想カメラの位置、姿勢、画角、撮像方向等を指定するデータである。
【0084】
操作データ410は、左コントローラ3および右コントローラ4に対して行われた操作の内容を示すデータである。例えば、左コントローラ3および右コントローラ4の動きや姿勢変化、各種ボタンに対する押下状態等に対する入力状態を示すデータが含まれる。当該操作データの内容は、左コントローラ3および右コントローラ4からの信号に基づき、所定の周期で更新される。
【0085】
送信用データ411は、他のゲームシステム1に送信するためのデータであり、少なくとも、送信元を特定するための情報と、操作データ410の内容を含むデータである。送信用データ411には、マルチプレイ相手の他のゲームシステム1(又はサーバ)に送信する自プレイヤキャラクタに関するデータ(座標(位置)、姿勢、状態等を示すデータ)等が含まれる。
【0086】
受信データ412は、他のゲームシステム1から受信した送信用データを、当該他のゲームシステム1毎に(つまり、送信元が)識別可能なように記憶したデータである。受信データ412には、マルチプレイ相手の他のゲームシステム1(又はサーバ)から受信した他プレイヤ系キャラクタに関するデータ(座標(位置)、姿勢、状態等を示すデータ)が含まれる。
【0087】
その他、DRAM85には、ゲーム処理や描画処理で用いられる各種のデータが必要に応じて記憶される。
【0088】
[ゲーム処理の詳細について]
次に、フローチャートを参照して、本実施形態に係るゲーム処理および描画処理について説明する。
図18は、本実施形態に係るゲーム処理および描画処理を示すフローチャートの一例である。なお、以下では、主に本実施形態に特徴的な処理について説明し、その他の説明は省略する。
【0089】
本ゲーム処理が開始されると、
図18のフローチャートの処理が開始される。
【0090】
ステップS100において、プロセッサ81(プロセッサ81のCPU機能)は、ゲーム空間においてゲーム処理を行う。具体的には、プロセッサ81は、ゲーム空間における物理演算処理、敵キャラクタ201の動作処理、操作データ410に基づいたプレイヤキャラクタ200の動作処理等を行う。その後、処理はステップS200に移る。
【0091】
ステップS200において、プロセッサ81(プロセッサ81のGPU機能)は、ゲーム空間を正射影で描画する描画処理を行ってゲーム画像を生成する。具体的には、プロセッサ81は、
図4~
図7等を用いて説明したように、頂点シェーダによって、手前側のオブジェクトとして表示させたいレイヤ(レイヤA)を手前側の所定位置に移動させると共に拡大し、奥側のオブジェクトとして表示させたいレイヤ(レイヤC)を奥側の所定位置に移動させると共に縮小させて、フレームバッファに描画する。また、プロセッサ81は、
図10~
図15等を用いて説明したように、プレイヤの操作に基づいてプレイヤキャラクタ200が隠されているレイヤに移動する場合に、隠されているレイヤをゲーム画面(ゲーム画像)に登場させる描画処理を行う。また、プロセッサ81は、
図16を用いて説明したように、頂点シェーダによる変換処理を行ってフレームバッファに描画したゲーム画像に対して、このゲーム画像のデプスバッファのデプスに基づいてブルーム効果を加える処理を行う。その際に、プロセッサ81は、
図16を用いて説明したように、ブルームマスクを所定のレイヤに設定して、この所定のレイヤの境界付近の領域の画素にブルーム効果に関する所定の補正を実施する処理を行う。その後、処理はステップS300に移る。
【0092】
ステップS300において、ディスプレイ12は、ステップS200で生成されたゲーム画像を表示する。その後、処理はステップS100に戻る。
【0093】
ステップS100~S300の処理が繰り返されることによって、本ゲームが進行しながらゲーム空間が描画されてゲーム画像が表示されることとなる。そして、本ゲームの終了条件が満たされた場合(例えば、プレイヤにより本ゲームの終了操作が行われた場合)、
図18のフローチャートの処理は終了する。
【0094】
以上に説明したように、本実施形態によれば、ゲーム画像を正射影で描画する際に、手前側のオブジェクトとして表示させたいレイヤを手前側の所定位置に移動させると共に拡大し、奥側のオブジェクトとして表示させたいレイヤを奥側の所定位置に移動させると共に縮小させて、フレームバッファに描画する(
図4~
図7等参照)。このことによって、本実施形態によれば、正射影で描画(撮影)したゲーム画像について、十分な奥行き感を表現することができる。
【0095】
また、本実施形態によれば、フレームバッファに描画した上記のゲーム画像に対して、このゲーム画像のデプスバッファのデプスに基づいてブルーム効果を加える処理を行い、その際に、ブルームマスクを所定のレイヤに設定して、この所定のレイヤの境界付近の領域の画素にブルーム効果に関する所定の補正を実施する処理を行う(
図16参照)。このことによって、本実施形態によれば、正射影で描画(撮影)したゲーム画像について、十分な奥行きを感じさせる発光感を表現することができる。
【0096】
[変形例]
なお、上記した本実施形態では、ゲーム画面で同じレイヤとして表示されるオブジェクト(地形オブジェクト、プレイヤキャラ、敵キャラクタ等)は、ゲーム空間等においても同じレイヤとして配置する例を挙げた(
図4~
図7等参照)。例えば、
図4のゲーム画像に表示されるレイヤAに含まれるオブジェクト(地形オブジェクト、プレイヤキャラ、敵キャラクタ等)は、
図5のゲーム空間および
図6の描画処理時の変換の場面においても、レイヤAに配置されていた。しかし、例えば、ゲーム空間において、ゲーム画面では地形上に在るように表示されるオブジェクトを、その地形のレイヤとは異なるレイヤに配置する構成としてもよい。
図19の例では、ゲーム画面では地形オブジェクトA上に在るように表示されるプレイヤキャラクタ200が(
図4参照)、ゲーム空間では、地形オブジェクトAよりも仮想カメラ220側(手前側)に配置されている。そして、衝突判定処理等の物理演算処理では、地形オブジェクトA上にプレイヤキャラクタ200が存在する場合と同じになるように設定(処理)される。つまり、地形オブジェクトAがプレイヤキャラクタ200の下に存在しないことによってプレイヤキャラクタ200が落下しないように物理演算処理が設定される。そして、描画処理時の変換の場面において、
図20に示すように、プレイヤキャラクタ200およびレイヤAの両方を手前側の所定位置に移動させると共に拡大してフレームバッファに描画することで、
図4と同じゲーム画像を生成することができる。
【0097】
また、上記した本実施形態では、ゲーム空間に3つのレイヤ(レイヤA~C)を配置する例を挙げた(
図4~
図6等参照)。しかし、ゲーム空間に配置するレイヤの数はこれには限られない。
【0098】
また、上記した本実施形態では、描画処理において頂点シェーダで変換する際に、レイヤBを移動等させない基準のレイヤにして、他のレイヤを移動等させてゲーム画像を生成した(
図5、
図6等参照)。しかし、これには限られず、例えば、レイヤAを移動等させない基準のレイヤにして、他のレイヤを移動等させてゲーム画像を生成してもよい。この場合、レイヤBおよびレイヤCが、レイヤAの奥側に移動すると共に縮小される変換が頂点シェーダによって行われることとなる。また、例えば、レイヤCを移動等させない基準のレイヤにして、他のレイヤを移動等させてゲーム画像を生成してもよい。この場合、レイヤAおよびレイヤBが、レイヤCの手前側に移動すると共に拡大される変換が頂点シェーダによって行われることとなる。
【0099】
また、上記した本実施形態では、ゲーム空間において仮想カメラ220から同じ奥行の位置にレイヤA~Cが配置される例を挙げた(
図5等参照)。しかし、描画処理において頂点シェーダで変換するレイヤの位置(
図6参照)が変化しないようにすれば、ゲーム空間においてレイヤA~Cが配置される位置は、任意の位置でよい。例えば、
図5のゲーム空間においてレイヤCをレイヤBの手前側の位置(仮想カメラ220側の位置)に配置し、描画処理において頂点シェーダで変換した後のレイヤCの位置を
図6に示す位置(レイヤBの奥側の位置)にしてゲーム画像を描画してもよい。
【0100】
また、上記した本実施形態においては、ゲーム処理にかかる一連の処理が単一のゲーム装置で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、ゲーム装置は、ユーザの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声としてゲーム装置にストリーミング配信されるような構成としてもよい。
【0101】
以上、本実施形態および変形例について説明したが、これらの説明はあらゆる点において例示にすぎず、その範囲を限定しようとするものではない。また、本実施形態および変形例について、種々の改良や変形を行うことができることは言うまでもない。
【符号の説明】
【0102】
1 ゲームシステム
3、4 コントローラ
12 ディスプレイ
81 プロセッサ(CPU、GPU)
85 DRAM
200 プレイヤキャラクタ
201 敵キャラクタ
202、203、204、205 出入口
220 仮想カメラ
A、B、C 地形オブジェクト(レイヤ)