(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-18
(45)【発行日】2024-09-27
(54)【発明の名称】情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法
(51)【国際特許分類】
A63F 13/53 20140101AFI20240919BHJP
A63F 13/57 20140101ALI20240919BHJP
A63F 13/52 20140101ALI20240919BHJP
G06T 15/60 20060101ALI20240919BHJP
G06T 19/00 20110101ALI20240919BHJP
【FI】
A63F13/53
A63F13/57
A63F13/52
G06T15/60
G06T19/00 300A
(21)【出願番号】P 2022031766
(22)【出願日】2022-03-02
【審査請求日】2023-11-06
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】羽根田 淳
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】特開2009-011567(JP,A)
【文献】特開2002-042165(JP,A)
【文献】特開2019-185281(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
G06T 15/60、19/00
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータを、
仮想空間にオブジェクトを配置する配置手段と、
前記仮想空間における第1の領域において、前記オブジェクトの影として、当該オブジェクトから第1の方向に位置する第1の影と、当該オブジェクトから、前記第1の方向とは異なる第2の方向に位置する第2の影とを描画する第1描画手段と、
前記仮想空間における、前記第1の領域のうち前記第1の影および前記第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域において、前記オブジェクトの影として、当該オブジェクトに対して前記第2の方向に位置する第3の影を描画する第2描画手段として機能させ、
前記第2描画手段は、前記第1基準領域における色と前記第2の影の領域における色との色差よりも、前記第2の領域のうち前記第3の影が位置しない範囲である第2基準領域における色と前記第3の影の領域における色との色差が大きくなるように、前記第3の影を描画する、情報処理プログラム。
【請求項2】
前記第2の方向は、前記第1の方向よりも前記仮想空間の下向きの方向である、請求項1に記載の情報処理プログラム。
【請求項3】
前記第2描画手段は、前記第2の領域においては、前記オブジェクトの影として、当該オブジェクトから前記第1の方向に位置する影を描画しない、請求項1または請求項2に記載の情報処理プログラム。
【請求項4】
前記配置手段は、前記仮想空間に遮蔽オブジェクトを配置し、
前記第1描画手段は、前記遮蔽オブジェクトの影として、当該遮蔽オブジェクトから第3の方向に位置する遮蔽影を描画し、
前記第2の領域は、前記遮蔽オブジェクトの前記遮蔽影の領域である、請求項1から請求項3のいずれか1項に記載の情報処理プログラム。
【請求項5】
前記第1の方向と前記第3の方向は同じ方向である、請求項4に記載の情報処理プログラム。
【請求項6】
前記第2描画手段は、前記オブジェクトが前記第1の方向に関して前記遮蔽オブジェクトと前記遮蔽影との間に位置する場合、前記第1の方向に関して当該遮蔽オブジェクトと当該遮蔽影との間に位置しない場合と比べて暗くなるように当該オブジェクトを描画する、請求項4または請求項5に記載の情報処理プログラム。
【請求項7】
前記第1描画手段は、第1の方法で前記第1の影を描画し、
同じ方向に影が描画されると仮定した場合における影の形状が前記第1の方法による影の形状とは異なる第2の方法で前記第2の影を描画し、
前記第2描画手段は、
前記第2の方法
で前記第3の影を描画する、請求項1から請求項6のいずれか1項に記載の情報処理プログラム。
【請求項8】
前記第1の方法は、前記第2の方法に比べて、影の形状が前記オブジェクトの形状に対してより対応する形状となる方法である、請求項7に記載の情報処理プログラム。
【請求項9】
前記第1の影は、デプスシャドウの手法により描画され、
前記第2の影および前記第3の影は、カプセルシャドウの手法により描画される、請求項1から請求項8のいずれか1項に記載の情報処理プログラム。
【請求項10】
前記第1の領域および前記第2の領域は、前記仮想空間における地面の一部の領域であり、
前記オブジェクトは、前記地面から離れて移動する、請求項1から請求項9のいずれか1項に記載の情報処理プログラム。
【請求項11】
前記第1の方向は前記仮想空間の下方向とのなす角が0度より大きく90度未満であり、
前記第2の方向は前記仮想空間の下方向である、請求項1から請求項10のいずれか1項に記載の情報処理プログラム。
【請求項12】
前記第1描画手段は、前記第2の影よりも濃くなるように前記第1の影を描画する、請求項1から請求項11のいずれか1項に記載の情報処理プログラム。
【請求項13】
前記色差は、CIE DE2000の色差式により求められる、請求項1から請求項12のいずれか1項に記載の情報処理プログラム。
【請求項14】
仮想空間にオブジェクトを配置する配置手段と、
前記仮想空間における第1の領域において、前記オブジェクトの影として、当該オブジェクトから第1の方向に位置する第1の影と、当該オブジェクトから、前記第1の方向とは異なる第2の方向に位置する第2の影とを描画する第1描画手段と、
前記仮想空間における、前記第1の領域のうち前記第1の影および前記第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域において、前記オブジェクトの影として、当該オブジェクトに対して前記第2の方向に位置する第3の影を描画する第2描画手段とを備え、
前記第2描画手段は、前記第1基準領域における色と前記第2の影の領域における色との色差よりも、前記第2の領域のうち前記第3の影が位置しない範囲である第2基準領域における色と前記第3の影の領域における色との色差が大きくなるように、前記第3の影を描画する、情報処理システム。
【請求項15】
仮想空間にオブジェクトを配置する配置手段と、
前記仮想空間における第1の領域において、前記オブジェクトの影として、当該オブジェクトから第1の方向に位置する第1の影と、当該オブジェクトから、前記第1の方向とは異なる第2の方向に位置する第2の影とを描画する第1描画手段と、
前記仮想空間における、前記第1の領域のうち前記第1の影および前記第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域において、前記オブジェクトの影として、当該オブジェクトに対して前記第2の方向に位置する第3の影を描画する第2描画手段とを備え、
前記第2描画手段は、前記第1基準領域における色と前記第2の影の領域における色との色差よりも、前記第2の領域のうち前記第3の影が位置しない範囲である第2基準領域における色と前記第3の影の領域における色との色差が大きくなるように、前記第3の影を描画する、情報処理装置。
【請求項16】
情報処理システムによって実行される情報処理方法であって、
仮想空間にオブジェクトを配置する配置ステップと、
前記仮想空間における第1の領域において、前記オブジェクトの影として、当該オブジェクトから第1の方向に位置する第1の影と、当該オブジェクトから、前記第1の方向とは異なる第2の方向に位置する第2の影とを描画する第1描画ステップと、
前記仮想空間における、前記第1の領域のうち前記第1の影および前記第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域において、前記オブジェクトの影として、当該オブジェクトに対して前記第2の方向に位置する第3の影を描画する第2描画ステップとを備え、
前記第2描画ステップにおいては、前記第1基準領域における色と前記第2の影の領域における色との色差よりも、前記第2の領域のうち前記第3の影が位置しない範囲である第2基準領域における色と前記第3の影の領域における色との色差が大きくなるように、前記第3の影を描画する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間における影を描画するための情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【0002】
従来、仮想空間においてオブジェクトの影を描画する場合において、異なる方向に2種類の影を表示することが行われている(例えば、特許文献1参照)。また、従来、仮想空間においてあるオブジェクトが他のオブジェクトの陰に入った場合に、これら2つのオブジェクトについてのそれぞれの影を重ねて表示することが行われている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2009-11567号公報
【文献】特開2009-140135号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のように2種類の影を生成する場合、仮想空間における暗い場所に描画される影(例えば、他のオブジェクトによる影となる場所に重ねて描画される影)についても視認性を向上することが好ましい。
【0005】
それ故、本発明の目的は、仮想空間における影の視認性を向上することができる情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(13)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、コンピュータを、配置手段と、第1描画手段と、第2描画手段として機能させる。配置手段は、仮想空間にオブジェクトを配置する。第1描画手段は、仮想空間における第1の領域において、オブジェクトの影として、当該オブジェクトから第1の方向に位置する第1の影と、当該オブジェクトから、第1の方向とは異なる第2の方向に位置する第2の影とを描画する。第2描画手段は、仮想空間における、第1の領域のうち第1の影および第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域において、オブジェクトの影として、当該オブジェクトに対して第2の方向に位置する第3の影を描画する。第2描画手段は、第1基準領域における色と第2の影の領域における色との色差よりも、第2の領域のうち第3の影が位置しない範囲である第2基準領域における色と第3の影の領域における色との色差が大きくなるように、第3の影を描画する。
【0008】
上記(1)の構成によれば、第1の領域よりも暗い第2の領域における第3の影を見やすくすることができるので、仮想空間における影の視認性を向上することができる。
【0009】
(2)
第2の方向は、第1の方向よりも仮想空間の下向きの方向であってもよい。
【0010】
上記(2)の構成によれば、第2の影および第3の影によって、仮想空間におけるオブジェクトの位置をユーザにとって把握しやすくすることができる。
【0011】
(3)
第2描画手段は、第2の領域においては、オブジェクトの影として、当該オブジェクトから第1の方向に位置する影を描画しないようにしてもよい。
【0012】
上記(3)の構成によれば、仮想空間を表す画像の現実感を向上することができる。
【0013】
(4)
配置手段は、仮想空間に遮蔽オブジェクトを配置してもよい。第1描画手段は、遮蔽オブジェクトの影として、当該遮蔽オブジェクトから第3の方向に位置する遮蔽影を描画してもよい。第2の領域は、遮蔽オブジェクトの遮蔽影の領域であってもよい。
【0014】
上記(4)の構成によれば、遮蔽オブジェクトの影の領域内に描画される第3の影の視認性を向上することができる。
【0015】
(5)
第1の方向と第3の方向は同じ方向であってもよい。
【0016】
上記(5)の構成によれば、上記オブジェクトと遮蔽オブジェクトについて同じ方向に影が生成されるので、仮想空間を表す画像の現実感を向上することができる。
【0017】
(6)
第2描画手段は、オブジェクトが第1の方向に関して遮蔽オブジェクトと遮蔽影との間に位置する場合、第1の方向に関して当該遮蔽オブジェクトと当該遮蔽影との間に位置しない場合と比べて暗くなるように当該オブジェクトを描画してもよい。
【0018】
上記(6)の構成によれば、仮想空間を表す画像の現実感を向上することができる。
【0019】
(7)
第1描画手段は、第1の方法で第1の影を描画してもよい。第2描画手段は、同じ方向に影が描画されると仮定した場合における影の形状が第1の方法による影の形状とは異なる第2の方法で第2の影および第3の影を描画してもよい。
【0020】
上記(7)の構成によれば、第1の影と第2および第3の影との区別をつきやすくすることができる。
【0021】
(8)
第1の方法は、第2の方法に比べて、影の形状がオブジェクトの形状に対してより対応する形状となる方法であってもよい。
【0022】
上記(8)の構成によれば、第1の影と第2および第3の影との区別をよりつきやすくすることができるとともに、仮想空間を表す画像の現実感を向上させることができる。
【0023】
(9)
第1の影は、デプスシャドウの手法により描画されてもよい。第2の影および第3の影は、カプセルシャドウの手法により描画されてもよい。
【0024】
(10)
第1の領域および第2の領域は、仮想空間における地面の一部の領域であってもよい。オブジェクトは、地面から離れて移動してもよい。
【0025】
上記(10)の構成によれば、第2および第3の影によって、地面から離れた状態におけるオブジェクトの位置を把握させやすくすることができる。
【0026】
(11)
第1の方向は仮想空間の下方向とのなす角が0度より大きく90度未満であってもよい。第2の方向は仮想空間の下方向であってもよい。
【0027】
上記(11)の構成によれば、第1の影によって、仮想空間を表す画像の現実感を向上させることができるとともに、第2および第3の影によって、水平方向に関するオブジェクトの位置をユーザにとって把握しやすくすることができる。
【0028】
(12)
第1描画手段は、第2の影よりも濃くなるように第1の影を描画してもよい。
【0029】
上記(12)の構成によれば、ユーザは、第1の影と第2の影とを濃さによって容易に区別することができる。2種類の影に対してユーザが不自然さを感じるおそれを低減することができる。
【0030】
(13)
色差は、CIE DE2000の色差式により求められてもよい。
【0031】
なお、本発明の別の一例は、上記(1)~(13)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(13)における処理を実行する情報処理方法であってもよい。
【発明の効果】
【0032】
上記情報処理プログラム、情報処理システム、情報処理装置、または、情報処理方法によれば、仮想空間における影の視認性を向上することができる。
【図面の簡単な説明】
【0033】
【
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図10】オブジェクトの影が描画されるゲーム画像の一例を示す図
【
図11】オブジェクトの影が描画されるゲーム画像の他の一例を示す図
【
図12】日向の場合と日陰の場合とにおける真下影の一例を示す図
【
図13】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
【
図14】ゲームシステムによって実行されるゲーム処理の流れの一例を示すフローチャート
【
図15】
図14に示すステップS2における画像生成処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0034】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0035】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0036】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0037】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0038】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0039】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0040】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0041】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0042】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0043】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0044】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0045】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0046】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0047】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0048】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0049】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0050】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0051】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0052】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~85、87、88、91、97、および98を備える。これらの構成要素81~85、87、88、91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0053】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0054】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0055】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0056】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0057】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0058】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0059】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0060】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0061】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0062】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0063】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0064】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0065】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0066】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0067】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0068】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0069】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0070】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0071】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0072】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0073】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0074】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0075】
[2.ゲームシステムにおける処理の概要]
次に、
図8~
図12を参照して、ゲームシステム1において実行される処理の概要について説明する。本実施形態において、ゲームシステム1は、仮想空間(ゲーム空間とも言う)を表すゲーム画像を生成する際に、仮想空間に配置されるオブジェクトの影を描画する。本実施形態においては、ゲームシステム1は、所定のオブジェクトについては、1つのオブジェクトに対して2種類の影を生成する。2種類の影のうち1つは、オブジェクトから、光源の位置に応じた斜めの方向に生成される影であり、もう1つは、オブジェクトの真下方向に生成される影である。以下では、前者を「斜め影」と呼び、後者を「真下影」と呼ぶ。
【0076】
図8は、本実施形態における斜め影の一例を示す図である。
図8は、仮想空間における地面202に、オブジェクト201の斜め影203が生成される例を示している。なお、
図8においては、図面を見やすくする目的で、斜め影を斜線領域で表している(
図10~
図12においても同様である。)。
【0077】
斜め影203は、オブジェクト201から、仮想空間に設定される光源(例えば、太陽)に応じた方向にある位置に生成される。つまり、斜め影203は、光源からオブジェクト201への方向に、地面202に対してオブジェクト201を投影した影である。このような斜め影203によって、仮想空間を表すゲーム画像の現実感(リアリティとも言う)を向上させることができる。
【0078】
本実施形態においては、ゲームシステム1は、デプスシャドウの手法を用いて斜め影203を描画する。すなわち、ゲームシステム1は、光源から描画対象となる位置(ここでは、地面)までの間に他のオブジェクトが存在するか否かを、シャドウマップを用いて判定し、当該他のオブジェクトが間に存在する位置については影を描画し、当該他のオブジェクトが間に存在しない位置については影を描画しないようにする。これによって、斜め影203は、オブジェクト201の形状に対応する形状となるように生成される(
図8参照)。
【0079】
なお、斜め影203を生成するためのデプスシャドウの手法は従来と同様であってよい。また、斜め影を生成する方法は任意であり、他の方法によって斜め影が生成されてもよい。ゲームシステム1は、斜め影の生成方法として、オブジェクト201の形状に対応する形状となる影が生成される任意の方法を用いてもよい。また、他の実施形態においては、オブジェクト201の形状に対応しない形状となる影が生成される方法によって斜め影が生成されてもよい。
【0080】
図8に示すように、斜め影203は、オブジェクト201の真下の位置204とは異なる位置に生成される。ただし、ゲームの状況(具体的には、ゲームの状況に応じて変化する光源の位置)によっては、真下の位置204と重なる位置に斜め影203が生成されることがあってもよい。例えば、ゲーム内の時間が正午となり、光源の一例である太陽がオブジェクト201の真上に位置するゲーム設定となる場合には、斜め影203が真下の位置204に生成されてもよい。
【0081】
本実施形態においては、斜め影203の濃さs1は、ゲームプログラムにおいて予め定められる。ここで、影の濃さとは、影が生成される位置に対応する画素の明るさを、通常(つまり、影が描画されない場合)よりもどれだけ暗くするかを示す指標である。例えば、影が生成される位置に対応する画素の明るさは、次式(1)によって算出される。
(影が生成される位置に対応する画素の明るさ)=(通常の明るさ)×{1-(影の濃さ)}・・・(1)
なお、本実施形態において、影の濃さは、0以上1以下の範囲をとり得る値である。また、上記の「通常の明るさ」とは、描画される位置に斜め影も真下影も描画されない場合における当該画素の明るさを指す。
【0082】
なお、他の実施形態においては、ゲームシステム1は、仮想空間における各種の状況に応じて斜め影203の濃さs1を変化させてもよい。例えば、ゲーム内の時間に応じて光源による光の強さが変化する場合には、当該光の強さに応じて斜め影203の濃さs1が変化してもよい。また例えば、斜め影203が生成される面とオブジェクト201との距離に応じて(例えば、距離が大きくなるほど薄くなるように)斜め影203の濃さs1が変化してもよい。また、斜め影203の濃さs1は、斜め影203が生成される面の色および/または種類(例えば、土の地面であるか、石の地面であるか等)や、オブジェクト201の種類に応じて異なる値に設定されてもよい。
【0083】
また、本実施形態においては、斜め影203の濃さは、当該斜め影203の範囲の全体において均一な値に設定される。したがって、斜め影203については、影が生成される面の色(明るさを含む意味である)が一定であると仮定すれば、影となる範囲の全体において均一な色で描画される。ただし、他の実施形態においては、斜め影203の濃さは、後述する真下影のように、影となる範囲において均一でないように設定されてもよい。
【0084】
図9は、本実施形態における真下影の一例を示す図である。
図9は、仮想空間における地面202に、オブジェクト201の真下影205が生成される例を示している。真下影205は、オブジェクト201から、仮想空間における真下方向にある位置204に生成される。このような真下影205によって、ユーザは、オブジェクト201の水平方向に関する位置を容易に把握することができる。例えば、
図9に示すようにオブジェクト201が地面から離れている状態(例えば、ジャンプ中である状態や、宙に浮いている状態)では、仮に斜め影203のみが表示されるとすれば、ユーザはオブジェクト201について水平方向に関する位置を把握しづらくなるおそれがある。これに対して、ゲームシステム1は、真下影205を表示することによって、当該位置をユーザが把握しやすくすることができる。
【0085】
なお、本実施形態においては、真下影205は、オブジェクト201の真下方向に生成される。ただし、真下影205の位置は、オブジェクト201から厳密に真下方向の位置でなくてもよい。つまり、オブジェクト201に対して真下影205が生成される方向は、オブジェクト201に対して斜め影203が生成される方向よりも仮想空間の下向きの方向であってよく、厳密に真下の方向である必要はない。例えば、真下影205の中心位置は、オブジェクト201の真下の位置204とずれていてもよいし、真下影205は、オブジェクト201の真下の位置204を含まない位置(例えば、当該位置204の近傍の位置)に生成されてもよい。これによっても本実施形態と同様、斜め影203のみが表示される場合に比べて、オブジェクト201の水平方向に関する位置をユーザは把握しやすくなる。なお、「真下影205が生成される方向が、斜め影203が生成される方向よりも仮想空間の下向きの方向である」とは、真下影205が生成される方向と仮想空間の真下方向とのなす角が、斜め影203が生成される方向と仮想空間の真下方向とのなす角よりも小さいことを意味する。
【0086】
本実施形態においては、ゲームシステム1は、カプセルシャドウの手法を用いて真下影205を描画する。ここでは、カプセルシャドウとは、オブジェクトの形状をより単純な形状(例えば、球状やカプセル形状)とみなして影を描画する手法である。本実施形態においては、ゲームシステム1は、オブジェクト201の位置に所定の形状(例えば、上下方向に長いカプセル形状)の影生成用オブジェクトを配置し、当該影生成用オブジェクトを真下方向に投影した領域を真下影205の領域とする。そのため、本実施形態においては、真下影205の形状は円形または楕円形となる(
図9参照)。ゲームシステム1は、カプセルシャドウの手法を用いることによって、影の生成による処理負荷を軽減することができる。
【0087】
なお、真下影205を生成するためのカプセルシャドウの手法は従来と同様であってよい。例えば、他の実施形態においては、ゲームシステム1は、上記の影生成用オブジェクトに関して、デプスシャドウの手法と同様のシャドウマップを用いて影を描画するか否かを判断することにより、地面において影を描画する範囲を決定するようにしてもよい。また、真下影205の生成は、光源(例えば、光の方向が仮想空間における真下方向に設定される、空の光源)に基づいて行われてよいし、光源に基づかずに行われてもよい。例えば、ゲームシステム1は、オブジェクト201の真下の領域について、真下影205を表すテクスチャを用いて描画を行うことで、真下影205を表示するようにしてもよい。真下影205を生成する方法は任意であり、他の実施形態においては、斜め影203を生成する方法と同じ方法で真下影205が生成されてもよい。
【0088】
本実施形態においては、真下影205の濃さs2は、ゲームプログラムにおいて予め定められる。詳細は後述するが、本実施形態においては、ゲームシステム1は、真下影205の濃さとして2種類の値を用いる。具体的には、ゲームシステム1は、真下影205に対応するオブジェクトとは異なる他のオブジェクトの斜め影(例えば、後述する壁オブジェクト206の斜め影207)の内側でない位置に真下影205が生成される場合(すなわち、日向における真下影205の濃さ。
図9および
図10参照)の濃さs2aと、当該斜め影の内側の位置に真下影205が生成される場合(すなわち、日陰における真下影205の濃さ。
図11参照)の濃さs2bとを設定する。
【0089】
本実施形態においては、真下影205は、当該真下影205の範囲内において、中心位置(つまり、オブジェクト201の真下の位置)が最も濃く、中心位置から離れるにつれて次第に薄くなるように描画される(
図9参照)。つまり、ゲームシステム1は、中心位置が最も濃く、中心位置から離れるにつれて次第に薄くなるように、真下影205の濃さを設定する。なお、上記の真下影205の濃さs2(具体的には、s2aおよびs2b)は、真下影205の中心位置における濃さを示すものとする。なお、他の実施形態においては、真下影205についても斜め影203と同様、影となる範囲の全体において均一な濃さに設定されてもよい。
【0090】
また、他の実施形態においては、ゲームシステム1は、仮想空間における各種の状況に応じて真下影205の濃さs2を変化させてもよい。例えば、真下影205が生成される面とオブジェクト201との距離に応じて(例えば、距離が大きくなるほど薄くなるように)真下影205の濃さs2が変化してもよい。また、真下影205の濃さs2は、真下影205が生成される面の色および/または種類や、オブジェクト201の種類に応じて異なる値に設定されてもよい。
【0091】
図10は、オブジェクトの影が描画されるゲーム画像の一例を示す図である。
図10は、オブジェクト201が日向に位置する場合(すなわち、オブジェクト201が他のオブジェクトの影の領域内に位置しない場合)におけるゲーム画像の一例を示している。
図10に示すように、オブジェクト201が日向に位置する場合においては、1つのオブジェクト201について斜め影203と真下影205とが同時に表示される。
【0092】
上記のように、本実施形態においては、ゲームシステム1は、オブジェクト201について斜め影203と真下影205との両方を表示する。ここで、ゲームシステム1は、オブジェクト201に対する斜め影203の方向と仮想空間の下方向とのなす角が0度より大きく90度未満となり、オブジェクト201に対する真下影205の方向が仮想空間の下方向(ここで言う下方向とは、上述のように、厳密な真下方向に限らない。)となるように、各影203および205を表示する。これによれば、斜め影203によってゲーム画像の現実感を向上させるとともに、真下影205によってオブジェクト201の位置(具体的には、水平方向に関する位置)をユーザにとって把握しやすくすることができる。
【0093】
本実施形態においては、オブジェクト201が日向に位置する場合において、ゲームシステム1は、真下影205よりも濃くなるように斜め影203を描画する。つまり、本実施形態においては、ゲームシステム1は、斜め影の濃さs1を、日向における真下影205の濃さs2aよりも濃い値(すなわち、大きい値)に設定する。ここで、仮に真下影205の濃さが斜め影203の濃さと同じであるとすれば、(本実施形態では、互いの形状が異なるため区別は可能であるものの、)斜め影203と真下影205との違いが一見しただけではわかりづらくなるおそれがある。また、光源(例えば、太陽)に応じた方向とは異なる方向(具体的には、真下方向)にも影が生成されることによって、ゲーム画像に対してユーザが不自然さを感じるおそれもある。これに対して、本実施形態によれば、ユーザは、斜め影203と真下影205とを濃さによって容易に区別することができる。また、真下影205を斜め影203よりも薄くすることによって、ゲーム画像に対してユーザが不自然さを感じるおそれを低減することができる。なお、他の実施形態においては、斜め影203の濃さと真下影205の濃さとは同じに設定されてもよいし、斜め影203の濃さが真下影205の濃さよりも濃く設定されてもよい。
【0094】
また、
図10に示すように、斜め影203の形状は、オブジェクト201の形状に対応しているのに対して、真下影205の形状は、例えばオブジェクト201が左手を挙げているような形状にはなっておらず、オブジェクト201の形状には対応していない。このように、本実施形態においては、ゲームシステム1は、影の形状を決定する方法が、斜め影203の方法とは異なる方法で真下影205を描画する。これによれば、ユーザは斜め影203と真下影205とを形状によって区別しやすくなると言う効果を奏する。なお、「影の形状を決定する方法が異なる2つの方法」とは、オブジェクトに対して同じ方向に影が生成されると仮定した場合において、当該2つの方法でそれぞれ生成される影の形状が異なるような方法を指す。本実施形態においては、斜め影の生成方法は、真下影の生成方法に比べて、影の形状がオブジェクトの形状に対してより対応する形状となる方法であると言うことができる。これによって、斜め影203の現実感をより向上させることができ、ゲーム画像の現実感を向上させることができる。
【0095】
なお、斜め影203と真下影205との表示形態(例えば、濃さまたは形状等)が少なくとも異なっていれば、ゲームシステム1は上記の効果を奏することができる。他の実施形態においては、ゲームシステム1は、影の濃さおよび形状の少なくともいずれかの決定の仕方が異なる方法で斜め影203および真下影205を描画してもよい。また、他の実施形態においては、ゲームシステム1は、斜め影203と真下影205とを同じ方法で描画してもよい。
【0096】
図11は、オブジェクトの影が描画されるゲーム画像の他の一例を示す図である。
図11は、オブジェクト201が日陰に位置する場合におけるゲーム画像の一例を示している。すなわち、
図11に示す例においては、オブジェクト201は、仮想空間に配置される壁オブジェクト206の陰に位置している。つまり、オブジェクト201は、壁オブジェクト206の斜め影207の領域内に位置している。
【0097】
図11に示すようにオブジェクト201が日陰に位置する場合には、ゲームシステム1はオブジェクト201の斜め影203を描画しない。つまり、ゲームシステム1は、他のオブジェクトの斜め影(
図11の例では、壁オブジェクト206の斜め影207)の領域内においては、オブジェクト201についての斜め影を描画しない。これによって、ゲーム画像の現実感を向上することができる。
【0098】
なお、他の実施形態においては、ゲームシステム1は、オブジェクト201が日陰に位置する場合においてオブジェクト201の斜め影203を描画するようにしてもよい。このとき、例えば、オブジェクト201の斜め影203の濃さは、周囲における他のオブジェクトの斜め影(
図11の例では斜め影207)の濃さよりも濃く(または薄く)設定されてもよい。
【0099】
一方、オブジェクト201が日陰に位置する場合も日向に位置する場合と同様、ゲームシステム1は、オブジェクト201について真下影205を描画する。これによって、オブジェクト201が日陰に位置する場合も日向に位置する場合と同様に、オブジェクト201の位置をユーザにとって把握しやすくすることができる。
【0100】
なお、ゲームシステム1は、日陰の場合においても日向の場合と同様にして真下影205を描画する。すなわち、本実施形態においては、ゲームシステム1は、日陰の場合においても日向の場合と同様、カプセルシャドウの手法を用いて真下影205を描画する。したがって、日陰の場合において描画される真下影205の位置および形状は、日向の場合と同様である。
【0101】
本実施形態においては、ゲームシステム1は、影の濃さについては日陰の場合には日向の場合とは異なる値(すなわち、上記影の濃さs2b)を用いて、真下影205の描画を行う。以下、
図12を用いて真下影の濃さに関する詳細を説明する。
【0102】
図12は、日向の場合と日陰の場合とにおける真下影205の一例を示す図である。本実施形態においては、ゲームシステム1は、「(影の領域とその周囲の領域とが同じ色であると仮定した場合において、)日向における真下影205とその周囲の領域との色差(
図12に示す(a)の場合の色差)よりも、日陰における真下影205とその周囲の領域との色差(
図12に示す(b)の場合の色差)が大きい」という条件を満たすように、真下影205の濃さs2aおよびs2bを設定する。上記によれば、日陰の場合における真下影205の視認性を向上することができる。
【0103】
なお、日向における真下影205の影の濃さs2aは、上述のようにゲーム画像に対してユーザが2つの影があることへの不自然さを感じるおそれを低減するべく、比較的薄く設定される。一方、日陰における真下影203が生成される状況においては、(オブジェクト201の斜め影203は他のオブジェクトの陰に位置するため)オブジェクト201の斜め陰203が生成されない場合が多いので、真下影205の濃さs2bを濃く設定しても、ゲーム画像に対してユーザが不自然さを感じるおそれは小さい。そのため、本実施形態においては、日陰における上記色差を、日向における上記色差よりも大きくなるようにすることで、真下影205が日向に描画される際におけるゲーム画像の不自然さを抑制しつつ、真下影205が日陰に描画される際における視認性を向上するようにしている。
【0104】
なお、上述したように、本実施形態においては、日向における真下影205の濃さs2aは、斜め影の濃さs1よりも薄い。そのため、仮に、日陰における真下影205の濃さs2bを、日向における真下影205の濃さs2aと同じにする、または、当該濃さs2aよりも薄くしてしまうと、日陰における真下影205の濃さが、その周囲の領域である斜め影207の領域よりも薄く表示されてしまい、不自然なゲーム画像となる。そのため、日陰における真下影205の濃さs2bは、日向における真下影205の濃さs2aよりも濃い値(で、かつ、上記の条件を満たす値)に設定される。
【0105】
また、表示されるゲーム画像の各画素における色(具体的には、RGB値)は、影の濃さの値に基づくだけでなく、他の要因にも基づいて決定される。他の要因とは、例えば、影が描画される対象(例えば、地面)の種類(例えば、異なるテクスチャの地面)や、当該対象に照射される光源の影響である。上記他の要因を考慮した上で決定される画素の色が上記の条件を満たすように、真下影の濃さs2aおよびs2bの値が設定される。例えば、日向の場合には太陽の光源の影響を考慮する一方、日陰の場合には太陽の光源の影響を考慮しないようにして色を決定するときに上記の条件が満たされるように、真下影205の濃さs2aおよびs2bの値が設定されてもよい。なお、影が描画される対象については、日向の場合と日陰の場合とで対象が同一であるとして色を決定するときに上記の条件が満たされるように、真下影205の濃さs2aおよびs2bの値が設定されてもよい。また例えば、太陽の光源とは異なる他の光源(例えば、空の光源)がさらに設定される場合には、これら複数の光源を考慮して各画素の色が決定されてもよい。この場合、ゲームシステム1は、斜め影の濃さおよび真下影の濃さに与える影響を光源毎に考慮して各画素の色を決定してもよい。例えば、ゲームシステム1は、太陽の光源については日向の場合にのみ考慮する一方、空の光源については日向であっても日陰であっても考慮して各画素の色を決定するようにし、このように色を決定するときに上記の条件が満たされるように、真下影205の濃さs2aおよびs2bの値が設定されてもよい。また、それぞれの影の濃さの値は、太陽の光源に対するものと空の光源に対するものとで別々の値が設定されてもよく、例えば、日向の真下影の部分の明るさは、太陽の光源の明るさとそれに対する影の濃さs2a1により算出される明るさと、空の光源の明るさとそれに対する影の濃さs2a2により算出される明るさとを足し合わせたものであってもよい。
【0106】
例えば、RGB値で(200,200,200)の色(灰色)の地面であって、日向における当該地面の明るさが200(最大値を255とする)である例において影が描画される場合、斜め影および真下影の濃さは、例えば、s1=0.4、s2a=0.2、s2b=0.75に設定される。このとき、斜め影203および207の領域の明るさは120となり、日向における真下影205の明るさは160となり、日陰における真下影205の明るさは50となる。上記においては、日陰における真下影205とその周囲の領域との色差は、日向における真下影205とその周囲の領域との色差の約2倍となり、上記の条件を満たすこととなる。なお、影の濃さs1、s2a、および、s2bが上記のように設定される場合には、地面の色や明るさが上記の例とは異なる場合であっても多くのケースにおいて、色差が上記の条件を満たすようにすることができる。
【0107】
また、真下影205の濃さs2aおよびs2bの値が一定であっても、他の要因が変化することによって、上記の色差は変化し得る。ここで言う他の要因とは、上述した、影が描画される対象の種類や、当該対象に照射される光源の影響の他、斜め影の濃さが変化する場合には当該斜め影の濃さを含む意味である。ゲームシステム1は、いかなる状況下においても(すなわち、上記他の要因がどのように変化しても)真下影の濃さs2aおよびs2bの値が上記の条件が満たされるようにする必要はない。特定の状況下(例えば特定の種類の地面に真下影205が描画される状況や、光源による光がほとんど照射されずゲーム空間が真っ暗に表示されるような状況)においては、上記の条件が満たされなくてもよい。
【0108】
他の実施形態においては、ゲームシステム1は、複数の状況下において上記の条件が満たされるようにするべく、真下影が生成される状況(例えば、真下影が描画される地面のテクスチャや、光源の光の強さ)に応じて、真下影の濃さの値を異ならせるようにしてもよい。例えば、ゲームシステム1は、土の地面に真下影が描画される場合に用いられる影の濃さの第1のセット(すなわち、濃さs2aおよびs2b)と、石の地面に真下影が描画される場合に用いられる影の濃さの第2のセット(すなわち、濃さs2a’およびs2b’)とを設定しておく。そして、ゲームシステム1は、地面の種類(すなわち、土の地面であるか石の地面であるか)に応じて、第1のセットと第2のセットとを使い分けるようにしてもよい。
【0109】
また、他の実施形態においては、ゲームシステム1は、真下影の領域に対応する画素の色が上記の条件を満たさない場合に、条件を満たすように当該真下影の濃さを変更するようにしてもよい。具体的には、ゲームシステム1は、真下影の濃さの基準値として、日向における濃さの値と日陰における濃さの値とを設定しておく。そして、基準値に基づいて画素の色を決定した場合に上記の条件が満たされない場合、ゲームシステム1は、条件を満たすように濃さの値を基準値から変更する(例えば、日陰における濃さの値を、より濃い値に変更する)。このようにして変更された濃さの値を用いて当該画素の色を決定し直すことで、上記の条件を満たすように真下影の濃さを設定することができる。上記によれば、予め用意された基準値の濃さの値では上記の条件が満たされない場合であっても、条件を満たすように真下影を描画することができる。
【0110】
上記の色差は、例えばCIE DE2000の色差式により求められる。なお、色差の算出方法はこれに限らず、CIE1976や、CIE1994や、CMC等、従来における任意の算出方法によって求められた色差が用いられてもよい。
【0111】
本実施形態においては、ゲームシステム1は、真下影205の影の濃さの値として日向における真下影205の濃さs2aを用いるか、それとも、日陰における真下影205の濃さs2bを用いるかを、ゲーム画像の画素毎に判断する(
図15参照)。つまり、ゲームシステム1は、画素に対応する仮想空間内の位置が、日向の領域内の位置(すなわち、斜め影の領域外の位置)である場合、上記濃さs2aに基づいて当該画素における色を決定する。一方、画素に対応する仮想空間内の位置が、日陰の領域内の位置(すなわち、斜め影の領域内の位置)である場合、ゲームシステム1は、上記濃さs2bに基づいて当該画素における色を決定する。このように、本実施形態においては、ゲームシステム1は、日向の領域内であるか日陰の領域内であるかを画素毎に判断して真下影205の濃さを決定する。そのため、例えば真下影205が日向の領域と日陰の領域とにまたがっている場合(すなわち、真下影205の一部が日向の領域内であり、残りの部分が日陰の領域内である場合)には、日向の領域については濃さs2aに基づき、日陰の領域については濃さs2bに基づいて真下影205が描画されることとなる。したがって、日向の領域内にある真下影205の部分については、比較的薄い影が表示されるとともに、日陰の領域内にある真下影205の部分については、比較的暗い影が表示されることとなる。上記のように、本実施形態においては、上記の場合においても真下影205を見やすく表示することができる。
【0112】
本実施形態においては、ゲームシステム1は、仮想空間に配置される各種のオブジェクトのうち、地面から離れて移動を行う(例えば、ジャンプしたり、空中を飛んだりする)オブジェクトについて真下影を生成する。真下影が生成されるオブジェクトは、例えば、ユーザによって操作されるプレイヤキャラクタ、および/または、ゲームプログラムによって動作が制御されるキャラクタ(例えば、敵キャラクタ)等である。これによれば、ゲームシステム1は、地面から離れて移動を行うオブジェクトに関する位置をユーザにとって把握しやすくすることができる。また、ゲームシステム1は、必要性の小さいオブジェクト(例えば、地面上に配置されて移動しないオブジェクトや、壁等の地形オブジェクト)については真下影を生成する処理を実行しなくて済むので、処理負荷を軽減することができる。なお、ゲームシステム1は、地面から離れて移動を行う全てのオブジェクトについて真下影を生成する必要はなく、特定のオブジェクトについては真下影を生成しなくてもよい。また、真下影を生成するオブジェクトの種類は任意であり、他の実施形態においては、ゲームシステム1は、例えば移動を行わないオブジェクトについても真下影を生成するようにしてもよい。
【0113】
図11に示すように、本実施形態においては、オブジェクト201が日陰に位置する場合、ゲームシステム1は、日向に位置する場合に比べてオブジェクト201自体を暗くなるように描画する。すなわち、ゲームシステム1は、オブジェクト201が斜め影の方向に関して壁オブジェクト206と当該壁オブジェクトの斜め影207との間に位置する場合(すなわち、オブジェクト201が壁オブジェクト206の陰に位置する場合)、当該方向に関して壁オブジェクト206と当該壁オブジェクトの斜め影207との間に位置しない場合と比べて暗くなるようにオブジェクト201を描画する。これによれば、ゲーム画像の現実感をより向上することができる。
【0114】
なお、他の実施形態においては、ゲームシステム1は、オブジェクト201が日陰に位置する場合であっても日向に位置する場合と同様に(つまり、明るさを変化させずに)オブジェクト201を描画してもよい。これによれば、オブジェクト201の視認性を向上することができる。
【0115】
[3.ゲームシステムにおける処理の具体例]
次に、
図13~
図15を参照して、ゲームシステム1における情報処理の具体例について説明する。
図13は、ゲームシステムにおける情報処理に用いられる各種データの一例を示す図である。
図13に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
【0116】
図13に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、
図14および
図15に示す処理)を実行するためのゲームプログラムである。また、ゲームシステム1は、影データ、オブジェクトデータ、画素データを記憶する。
【0117】
影データは、上述の斜め影および真下影の濃さを示す。本実施形態においては、影データは、斜め影の濃さs1と、真下影の濃さs2aおよびs2bとを示すデータを含む。なお、影データは、ゲームプログラムに含まれていてもよい。
【0118】
オブジェクトデータは、仮想空間に配置されるオブジェクトであって、影が生成される対象となるオブジェクト(例えば、
図8等に示すオブジェクト201)に関するデータである。例えば、オブジェクトデータは、オブジェクトの位置、形状、および、体勢等を示すデータを含む。
【0119】
画素データは、ゲーム画像における各画素の色を示す。ゲームシステム1は、例えば上記記憶媒体に設けられるフレームバッファに上記画素データを記憶する。
【0120】
図14は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。ゲーム処理は、例えば、上記ゲームプログラムの実行中においてゲームを開始する指示がプレイヤによって行われたことに応じて開始される。
【0121】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、
図14および
図15に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、
図14および
図15に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、
図14および
図15に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0122】
また、プロセッサ81は、
図14および
図15に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0123】
図14に示すステップS1において、プロセッサ81は、影が生成されるオブジェクトに関する処理を実行する。具体的には、プロセッサ81は、仮想空間にオブジェクトを配置したり、仮想空間に配置されているオブジェクトの動作を制御したりする。例えば、プロセッサ81は、所定の出現条件が満たされたことに応じて、オブジェクトを仮想空間に配置する(出現させるとも言う)。また、オブジェクトがプレイヤキャラクタである場合、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを適宜のタイミングで取得し、取得された操作データに基づいて、仮想空間においてオブジェクトを移動させたりアクションを行わせたりする。一方、オブジェクトがノンプレイヤキャラクタ(例えば、敵キャラクタ)である場合、プロセッサ81は、ゲームプログラムにおいて予め定められたアルゴリズムに基づいて、仮想空間においてオブジェクトを移動させたりアクションを行わせたりする。また、プロセッサ81は、ステップS1による処理後の状態を示すように、上記記憶媒体に記憶されているオブジェクトデータの内容を更新する。ステップS1の次にステップS2の処理が実行される。
【0124】
ステップS2において、プロセッサ81は、ゲーム画像を生成するための画像生成処理を実行する。プロセッサ81は、例えば、所定時間(例えば、1フレーム時間)に1回の割合でステップS2の処理が実行されるように、ステップS1~S4の処理ループを繰り返し実行する。以下、
図15を参照して、画像生成処理の詳細について説明する。
【0125】
図15は、
図14に示すステップS2における画像生成処理の詳細な流れの一例を示すサブフローチャートである。画像生成処理においては、まずステップS10において、プロセッサ81は、ゲーム画像を構成する複数の画素のうち1つを選択する。具体的には、プロセッサ81は、上記複数の画素のうち、今回の画像生成処理におけるステップS10~S19の処理ループにおいて選択されていない画素を所定の順序で選択する。ステップS10の次にステップS11の処理が実行される。
【0126】
ステップS11において、プロセッサ81は、ステップS10で選択された画素に対応する仮想空間における位置が、斜め影の領域内であるか否かを判定する。ステップS11の判定は、例えば、斜め影の光源から当該位置までの間にオブジェクトが存在するか否かを、シャドウマップを用いて判定することで行われる。プロセッサ81は、斜め影の光源から当該位置までの間にオブジェクトが存在する場合、当該位置は斜め影の領域内であると判定し、斜め影の光源から当該位置までの間にオブジェクトが存在しない場合、当該位置は斜め影の領域内ではないと判定する。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。ステップS11の判定結果が否定である場合、ステップS13の処理が実行される。
【0127】
ステップS12において、プロセッサ81は、ステップS10で選択された画素に対応する仮想空間における位置が真下影の領域内であるか否かを判定する。プロセッサ81は、例えば、当該位置が、影を生成するオブジェクトに対応する上記影生成用オブジェクトの真下の位置であって、かつ、当該位置と当該影生成用オブジェクトとの間に他のオブジェクトが存在しない場合、当該位置が真下影の領域内であると判定する。一方、当該位置が、影を生成するオブジェクトに対応する上記影生成用オブジェクトの真下の位置ではない、または、当該位置と当該影生成用オブジェクトとの間に他のオブジェクトが存在する場合、当該位置が真下影の領域内ではないと判定する。ステップS12の判定結果が肯定である場合、後述するステップS14の処理が実行される。ステップS12の判定結果が否定である場合、後述するステップS15の処理が実行される。
【0128】
ステップS13において、プロセッサ81は、上記ステップS12の判定と同様の判定を行う。ステップS13の判定結果が肯定である場合、後述するステップS16の処理が実行される。ステップS13の判定結果が否定である場合、後述するステップS17の処理が実行される。
【0129】
ステップS14において、プロセッサ81は、ステップS10で選択された画素に適用する影の濃さを、日陰における真下影の濃さs2bに設定する。ここで、ステップS14の処理が実行されるのは、当該画素に対応する位置が、斜め影の領域内であって、かつ、真下影の領域内となる場合である。当該位置は、日陰における真下影の領域内の位置となるので、プロセッサ81は、上述の影データを参照し、当該画素に適用する影の濃さをs2bに設定する。ステップS14の次に、後述するステップS18の処理が実行される。
【0130】
ステップS15において、プロセッサ81は、ステップS10で選択された画素に適用する影の濃さを、斜め影の濃さs1に設定する。ここで、ステップS15の処理が実行されるのは、当該画素に対応する位置が、斜め影の領域内であって、かつ、真下影の領域内ではない場合である。そのため、プロセッサ81は、上述の影データを参照し、当該画素に適用する影の濃さを、斜め影の濃さs1に設定する。ステップS15の次に、後述するステップS18の処理が実行される。
【0131】
ステップS16において、プロセッサ81は、ステップS10で選択された画素に適用する影の濃さを、日向における真下影の濃さs2aに設定する。ここで、ステップS16の処理が実行されるのは、当該画素に対応する位置が、斜め影の領域内ではなく、かつ、真下影の領域内となる場合である。当該位置は、日向における真下影の領域内の位置となるので、プロセッサ81は、上述の影データを参照し、当該画素に適用する影の濃さをs2aに設定する。ステップS16の次に、後述するステップS18の処理が実行される。
【0132】
ステップS17において、プロセッサ81は、ステップS10で選択された画素に適用する影の濃さを、影がないことを表す値(すなわち、0)に設定する。ここで、ステップS17の処理が実行されるのは、当該画素に対応する位置が、斜め影の領域内ではなく、かつ、真下影の領域内でもない場合である。そのため、当該位置の影の濃さは0に設定される。ステップS17の次に、ステップS18の処理が実行される。
【0133】
ステップS18において、プロセッサ81は、ステップS10で選択された画素における色(例えば、RGB値)を決定する。具体的には、プロセッサ81は、当該画素に対応する位置に適用するテクスチャ等に基づいて、影を描画しない場合における当該画素の色を決定する。この色の決定方法は任意であり、従来と同様であってもよい。次に、プロセッサ81は、当該画素の色を、上記ステップS14~S17で設定された影の濃さに基づいて変更する。例えば、プロセッサ81は、当該画素の明るさを、上記ステップS14~S17で設定された影の濃さに基づいて変化させる(具体的には、暗くする。上述した式(1)参照)。プロセッサ81は、当該画素の明るさが変化後の明るさとなるように色を変更する。なお、ステップS18において真下影の濃さs2aまたはs2bを用いる場合、プロセッサ81は、影の濃さの値を、真下影の中心位置から、当該画素に対応する位置までの距離に応じて補正し(具体的には薄くし)、補正後の値を用いて上記色を変更する。これによって、真下影は、中心位置が最も濃く、中心位置から離れるにつれて次第に薄くなるように描画される(
図9参照)。また、プロセッサ81は、当該画素に対応する位置がオブジェクトの位置であり、かつ、当該オブジェクトが日陰に位置する場合には、日向に位置する場合に比べて暗くなるように当該画素の色を決定する。プロセッサ81は、上記のようにして得られた色を示すように、上述の画素データを更新する。ステップS18の次にステップS19の処理が実行される。
【0134】
なお、上記ステップS18においては、プロセッサ81は、影を描画する前の色と、影が描画された後の色とを、ゲーム画像における画素毎に1つずつ算出するものとした。ここで、他の実施形態においては、上記ステップ18の処理に関して、プロセッサ81は、まず、影を描画しない場合のゲーム画像を生成し(つまり、ゲーム画像における各画素の色を決定し)、その後に、画素毎に上記ステップS18の処理を実行することで、ゲーム画像に対してさらに影を描画するようにしてもよい。
【0135】
また、他の実施形態においては、プロセッサ81は、画像生成処理として、斜め影を描画する処理と、真下影を描画する処理とを別々に実行するようにしてもよい。すなわち、プロセッサ81は、斜め影を描画する処理として、画素に対応する位置が斜め影の領域内である場合に、斜め影の濃さs1を用いて当該画素の色を変更する処理を、ゲーム画像の各画素について実行する。さらに、プロセッサ81は、斜め影が描画されたゲーム画像に対して、真下影を描画する処理を実行する。すなわち、プロセッサ81は、真下影を描画する処理として、画素に対応する位置が日向における真下影の領域内である場合に、真下影の濃さs2aを用いて当該画素の色を変更し、画素に対応する位置が日陰における真下影の領域内である場合に、真下影の濃さs2bを用いて当該画素の色を変更する処理を、ゲーム画像の各画素について実行する。上記のようにして、プロセッサ81は、ゲーム画像に対して、斜め影を描画する処理と、真下影を描画する処理とを別々に実行するようにしてもよい。
【0136】
ステップS19において、プロセッサ81は、今回の画像生成処理におけるステップS10~S19の処理ループにおいて全ての画素が選択されたか否かを判定する。ステップS19の判定結果が否定である場合、ステップS10の処理が再度実行される。以降、ステップS19の判定結果が肯定となるまで、ステップS10~S19の処理ループにおける各処理が繰り返し実行される。一方、ステップS19の判定結果が肯定である場合、プロセッサ81は、
図15に示す画像生成処理を終了する。
【0137】
図14の説明に戻り、ステップS3において、プロセッサ81は、ステップS2で生成されたゲーム画像を表示装置に表示させる。すなわち、プロセッサ81は、上述の画素データを記憶媒体から読み出し、画素データが示すゲーム画像を表示装置に表示させる。なお、ゲーム画像が表示される表示装置は任意である。本実施形態においては、ゲームシステム1はディスプレイ12に画像を表示するが、ディスプレイ12とは異なる他の表示装置(例えば、本体装置2に接続されるモニタ)に画像を表示してもよい。ステップS3の次に、ステップS4の処理が実行される。
【0138】
ステップS4において、プロセッサ81は、ゲームを終了するか否かを判定する。例えば、プロセッサ81は、ゲームを終了する指示がユーザによって行われたか否かを判定する。ステップS4の判定結果が否定である場合、上記ステップS1の処理が再度実行される。以降、ステップS4においてゲームを終了すると判定されるまで、ステップS1~S4の一連の処理が繰り返し実行される。一方、ステップS4の判定結果が肯定である場合、プロセッサ81は、
図14に示すゲーム処理を終了する。
【0139】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、情報処理プログラム(例えば、上記ゲームプログラム)は、情報処理装置(例えば、本体装置2)のコンピュータを、次の手段として機能させる。
・仮想空間にオブジェクトを配置する配置手段(ステップS1)
・仮想空間における第1の領域(例えば、日向の領域)において、オブジェクトの影として、当該オブジェクトから第1の方向(例えば、斜め方向)に位置する第1の影(例えば、斜め影)と、当該オブジェクトから、第1の方向とは異なる第2の方向(例えば、真下方向)に位置する第2の影(例えば、日向における真下影)とを描画する第1描画手段(ステップS15またはステップS16が実行される場合のステップS18)
・仮想空間における、第1の領域のうち第1の影および第2の影のいずれも位置しない範囲である第1基準領域よりも暗い第2の領域(例えば、日陰の領域)において、オブジェクトの影として、当該オブジェクトに対して第2の方向に位置する第3の影(例えば、日陰における真下影)を描画する第2描画手段(ステップS14が実行される場合のステップS18)
また、第2描画手段は、第2の領域のうち第3の影が位置しない範囲である第2基準領域(例えば、壁オブジェクト206の斜め影207の領域)における色と第3の影の領域における色との色差が、第1の領域のうち第1の影および第2の影のいずれも位置しない範囲である第1基準領域(例えば、日向における地面の領域)における色と第2の影の領域における色との色差よりも大きくなるように第3の影を描画する(
図12)。
【0140】
上記によれば、第1の領域よりも暗い第2の領域における第3の影を見やすくすることができるので、仮想空間における影の視認性を向上することができる。
【0141】
上記実施形態においては、上記第1の領域は日向の領域であり、上記第2の領域は日陰の領域である。すなわち、配置手段は、仮想空間に遮蔽オブジェクト(例えば、壁オブジェクト206)を配置し、第2描画手段は、遮蔽オブジェクトの影として、当該遮蔽オブジェクトから第3の方向に位置する遮蔽影(例えば、壁オブジェクト206の斜め影207)を描画する。第2の領域は、上記遮蔽オブジェクトの遮蔽影の領域である。このとき、上記実施形態は、日陰の領域内に描画される第3の影の視認性を向上することができる。また、上記実施形態においては、上記第1の方向と上記第3の方向は同じ方向である。これによって、上記オブジェクトと遮蔽オブジェクトについて同じ方向に影(具体的には、斜め影)が生成されるので、ゲーム画像の現実感を向上することができる。
【0142】
なお、他の実施形態においては、上記第1の方向と上記第3の方向は異なる方向であってもよい。例えば、他の実施形態において仮想空間に複数の光源が設定される場合、第1の方向は、ある1つの光源に対応する方向であり、第3の方向は、他の1つの光源に対応する方向であってもよい。
【0143】
なお、他の実施形態においては、第2の領域は日陰の領域に限らず、他の領域であってもよい。例えば、他の実施形態においては、上記第1の領域は、比較的明るい色の地面の領域であって、上記第2の領域は、第1の領域よりも暗い色の地面の領域であってもよい。このような他の実施形態においても上記実施形態と同様、第2の領域における第3の影を見やすくすることによって影の視認性を向上することができる。
【0144】
また、上記実施形態においては、上記第2の方向(すなわち、オブジェクトに対して第2および第3の影が生成される方向)は、真下方向であった。ここで、他の実施形態においては、上記第2の方向は真下方向に限らない。例えば、上記第2の方向は、仮想空間における水平な方向(例えば、仮想カメラの向きが水平に設定される場合における、仮想カメラの視線方向)であってもよい。このとき、上記第2の影および第3の影は、仮想空間における水平方向に垂直な壁面に描画される。上記によっても上記実施形態と同様に、影の視認性を向上することができる。また、上記第2の影および第3の影によって、第2の方向に垂直な方向に関するオブジェクトの位置をユーザにとって把握しやすくすることができる。
【0145】
上記実施形態においては、情報処理プログラムが、仮想のゲーム空間を表すゲーム画像を生成するためのゲームプログラムである場合を例として説明したが、情報処理プログラムはゲームプログラムに限らない。上記実施形態における影を描画するための処理は、ゲーム用途に限らず、仮想空間における影を描画するための任意の情報処理プログラムに適用可能である。
【0146】
なお、上記の実施形態において、ある情報処理装置においてデータ(プログラムを含む意味である)を用いて処理が実行される場合、当該処理に必要なデータの一部が、当該ある情報処理装置とは異なる他の情報処理装置から送信されてもよい。このとき、当該ある情報処理装置は、他の情報処理装置から受信されたデータと、自身に記憶されているデータとを用いて上記処理を実行してもよい。
【0147】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0148】
上記実施形態は、仮想空間における影の視認性を向上すること等を目的として、例えばゲームシステムやゲームプログラム等として利用することが可能である。
【符号の説明】
【0149】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
201 オブジェクト
203 斜め影
205 真下影