IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特開2024-156775ゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156775
(43)【公開日】2024-11-06
(54)【発明の名称】ゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法
(51)【国際特許分類】
   A63F 13/5372 20140101AFI20241029BHJP
   A63F 13/52 20140101ALI20241029BHJP
   A63F 13/55 20140101ALI20241029BHJP
   G06T 15/80 20110101ALI20241029BHJP
   G06T 19/00 20110101ALI20241029BHJP
【FI】
A63F13/5372
A63F13/52
A63F13/55
G06T15/80
G06T19/00 A
【審査請求】未請求
【請求項の数】36
【出願形態】OL
(21)【出願番号】P 2024122424
(22)【出願日】2024-07-29
(62)【分割の表示】P 2022167796の分割
【原出願日】2022-10-19
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】堂田 卓宏
(72)【発明者】
【氏名】朝倉 淳
(57)【要約】
【課題】仮想空間における視認性の低い領域と視認性が確保された領域とをイベントの発生に応じて動的に変更する。
【解決手段】情報処理システムは、ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定する。情報処理システムは、仮想空間の描画を行う描画処理において、仮想空間内の少なくとも一部の地形オブジェクトについて、対象範囲に含まれる部分を、仮想空間内に設定された光源を反映して描画させ、対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画する。
【選択図】図17
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定させ、
前記仮想空間の描画を行う描画処理において、前記仮想空間内の少なくとも一部の地形オブジェクトについて、前記対象範囲に含まれる部分を、前記仮想空間内に設定された光源を反映して描画させ、前記対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画させる、
ゲームプログラム。
【請求項2】
前記コンピュータに、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が前記対象範囲に含まれるか否かを少なくとも示すマスクデータを生成させ、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれることが示される画素については、前記光源を反映してフレームバッファへの描画を行わせ、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれないことが示される画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行わせる、
請求項1に記載のゲームプログラム。
【請求項3】
前記描画処理は、ディファードレンダリングに基づいた描画処理であって、
前記コンピュータに、前記描画処理において、
第1の段階において、前記仮想空間内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行わせ、
第2の段階において、画素ごとに、当該画素に対応する位置と、前記深度バッファに記憶された深度値と、前記対象範囲とに基づいて、前記マスクデータを生成させ、
第3の段階において、少なくとも前記Gバッファに記憶されるデータと、前記マスクデータとに基づいて前記フレームバッファへの描画を行わせる、
請求項2に記載のゲームプログラム。
【請求項4】
前記コンピュータにさらに、前記描画処理において、
前記第1の段階において、所定のオブジェクトについて、前記Gバッファおよび前記深度バッファへの書き込みを画素ごとに行わせるとともに、当該オブジェクトに対応する画素について前記マスクデータの適用を除外することを示す除外マスクデータを生成させ、
前記第3の段階において、前記除外マスクデータが示す画素について、前記少なくとも一部の地形オブジェクトのうち前記対象範囲に含まれない部分と前記所定のオブジェクトとを区別して視認することができる方法で描画を行わせる、
請求項3に記載のゲームプログラム。
【請求項5】
前記マスクデータは、前記所定の色が描画される度合い、または、前記明るさを下げる度合いを画素ごとに示すデータであって、
前記コンピュータに、前記描画処理において、
前記光源を反映して算出される画素値に対して、前記度合いに応じて前記所定の色を合成した画素値、または、当該度合いに応じて明るさを下げた画素値を前記フレームバッファに書き込ませる、
請求項2に記載のゲームプログラム。
【請求項6】
前記仮想空間内には、前記光源として少なくとも、前記仮想空間内の位置によらず所定の明るさが設定される光源が設定される、
請求項1に記載のゲームプログラム。
【請求項7】
前記コンピュータに、
前記所定のイベントの発生に応じて、前記対象範囲の基準となる点を前記仮想空間内に設定させ、
前記基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲が含まれるように前記対象範囲を設定させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項8】
前記コンピュータに、
前記所定のイベントの発生に応じて前記基準となる点が設定された後、前記しきい値を時間経過に応じて増加させることで前記対象範囲を拡大させる、
請求項7に記載のゲームプログラム。
【請求項9】
前記コンピュータに、
前記所定のイベントの発生に応じてさらに点光源を前記仮想空間内に設置させる、
請求項7に記載のゲームプログラム。
【請求項10】
前記イベントは、所定のアイテムが前記仮想空間内に配置されるイベントであり、
前記コンピュータに、
前記所定のアイテムが配置された位置に基づいて、前記基準となる点の位置を設定させる、
請求項7に記載のゲームプログラム。
【請求項11】
前記コンピュータにさらに、
操作入力に基づいて前記仮想空間内におけるプレイヤキャラクタの制御を行わせ、
前記所定のイベントは、操作入力に基づいて、前記プレイヤキャラクタの周囲が前記対象範囲となるイベントであり、
前記コンピュータにさらに、
前記プレイヤキャラクタの位置を、前記基準となる点の位置として設定させる、
請求項7に記載のゲームプログラム。
【請求項12】
前記コンピュータにさらに、
操作入力に基づいて前記仮想空間内におけるプレイヤキャラクタの制御を行わせ、
前記イベントは、前記仮想空間内に設定されたイベント発生位置に前記プレイヤキャラクタが位置する場合に所定の操作入力が行われたことによって発生するイベントであって、
前記コンピュータにさらに、
前記イベントの発生に応じて、前記仮想空間における前記対象範囲を平面的に示す2次元範囲データを、前記仮想空間のうち前記イベント発生位置に対応する範囲が少なくとも前記対象範囲となるよう更新させ、
前記2次元範囲データにさらに基づいて前記マスクデータを生成させる、
請求項2から請求項6のいずれか1項に記載のゲームプログラム。
【請求項13】
前記コンピュータに、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、前記対象範囲に含まれるか否かを画素ごとに判定させ、
前記対象範囲に含まれる画素については、前記光源を反映してフレームバッファへの描画を行わせ、
前記対象範囲に含まれない画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行わせる、
請求項1に記載のゲームプログラム。
【請求項14】
プロセッサを備えた少なくとも1つの情報処理装置を備え、
前記少なくとも1つの情報処理装置の少なくともいずれかのプロセッサは、
ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定し、
前記仮想空間の描画を行う描画処理において、前記仮想空間内の少なくとも一部の地形オブジェクトについて、前記対象範囲に含まれる部分を、前記仮想空間内に設定された光源を反映して描画し、前記対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画する、
情報処理システム。
【請求項15】
前記少なくともいずれかのプロセッサは、
前記少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が前記対象範囲に含まれるか否かを少なくとも示すマスクデータを生成し、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれることが示される画素については、前記光源を反映してフレームバッファへの描画を行い、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれないことが示される画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項14に記載の情報処理システム。
【請求項16】
前記描画処理は、ディファードレンダリングに基づいた描画処理であって、
前記少なくともいずれかのプロセッサは、前記描画処理において、
第1の段階において、前記仮想空間内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行い、
第2の段階において、画素ごとに、当該画素に対応する位置と、前記深度バッファに記憶された深度値と、前記対象範囲とに基づいて、前記マスクデータを生成し、
第3の段階において、少なくとも前記Gバッファに記憶されるデータと、前記マスクデータとに基づいて前記フレームバッファへの描画を行う、
請求項15に記載の情報処理システム。
【請求項17】
前記少なくともいずれかのプロセッサは、前記描画処理において、
前記第1の段階において、所定のオブジェクトについて、前記Gバッファおよび前記深度バッファへの書き込みを画素ごとに行うとともに、当該オブジェクトに対応する画素について前記マスクデータの適用を除外することを示す除外マスクデータを生成し、
前記第3の段階において、前記除外マスクデータが示す画素について、前記少なくとも一部の地形オブジェクトのうち前記対象範囲に含まれない部分と前記所定のオブジェクトとを区別して視認することができる方法で描画を行う、
請求項16に記載の情報処理システム。
【請求項18】
前記マスクデータは、前記所定の色が描画される度合い、または、前記明るさを下げる度合いを画素ごとに示すデータであって、
前記少なくともいずれかのプロセッサは、前記描画処理において、
前記光源を反映して算出される画素値に対して、前記度合いに応じて前記所定の色を合成した画素値、または、当該度合いに応じて明るさを下げた画素値を前記フレームバッファに書き込む、
請求項15に記載の情報処理システム。
【請求項19】
前記仮想空間内には、前記光源として少なくとも、前記仮想空間内の位置によらず所定の明るさが設定される光源が設定される、
請求項14に記載の情報処理システム。
【請求項20】
前記少なくともいずれかのプロセッサは、
前記所定のイベントの発生に応じて、前記対象範囲の基準となる点を前記仮想空間内に設定し、
前記基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲が含まれるように前記対象範囲を設定する、
請求項14から請求項19のいずれか1項に記載の情報処理システム。
【請求項21】
前記少なくともいずれかのプロセッサは、
前記所定のイベントの発生に応じて前記基準となる点が設定された後、前記しきい値を時間経過に応じて増加させることで前記対象範囲を拡大する、
請求項20に記載の情報処理システム。
【請求項22】
前記少なくともいずれかのプロセッサは、
前記所定のイベントの発生に応じてさらに点光源を前記仮想空間内に設置する、
請求項20に記載の情報処理システム。
【請求項23】
前記イベントは、所定のアイテムが前記仮想空間内に配置されるイベントであり、
前記少なくともいずれかのプロセッサは、
前記所定のアイテムが配置された位置に基づいて、前記基準となる点の位置を設定する、
請求項20に記載の情報処理システム。
【請求項24】
前記少なくともいずれかのプロセッサは、
操作入力に基づいて前記仮想空間内におけるプレイヤキャラクタの制御を行い、
前記所定のイベントは、操作入力に基づいて、前記プレイヤキャラクタの周囲が前記対象範囲となるイベントであり、
前記少なくともいずれかのプロセッサは、
前記プレイヤキャラクタの位置を、前記基準となる点の位置として設定する、
請求項20に記載の情報処理システム。
【請求項25】
前記少なくともいずれかのプロセッサは、
操作入力に基づいて前記仮想空間内におけるプレイヤキャラクタの制御を行い、
前記イベントは、前記仮想空間内に設定されたイベント発生位置に前記プレイヤキャラクタが位置する場合に所定の操作入力が行われたことによって発生するイベントであって、
前記少なくともいずれかのプロセッサは、
前記イベントの発生に応じて、前記仮想空間における前記対象範囲を平面的に示す2次元範囲データを、前記仮想空間のうち前記イベント発生位置に対応する範囲が少なくとも前記対象範囲となるよう更新し、
前記2次元範囲データにさらに基づいて前記マスクデータを生成する、
請求項15から請求項19のいずれか1項に記載の情報処理システム。
【請求項26】
前記少なくともいずれかのプロセッサは、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、前記対象範囲に含まれるか否かを画素ごとに判定し、
前記対象範囲に含まれる画素については、前記光源を反映してフレームバッファへの描画を行い、
前記対象範囲に含まれない画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項14に記載の情報処理システム。
【請求項27】
プロセッサを備え、
前記プロセッサは、
ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定し、
前記仮想空間の描画を行う描画処理において、前記仮想空間内の少なくとも一部の地形オブジェクトについて、前記対象範囲に含まれる部分を、前記仮想空間内に設定された光源を反映して描画し、前記対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画する、
情報処理装置。
【請求項28】
前記プロセッサは、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が前記対象範囲に含まれるか否かを少なくとも示すマスクデータを生成し、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれることが示される画素については、前記光源を反映してフレームバッファへの描画を行い、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれないことが示される画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項27に記載の情報処理装置。
【請求項29】
前記描画処理は、ディファードレンダリングに基づいた描画処理であって、
前記プロセッサは、前記描画処理において、
第1の段階において、前記仮想空間内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行い、
第2の段階において、画素ごとに、当該画素に対応する位置と、前記深度バッファに記憶された深度値と、前記対象範囲とに基づいて、前記マスクデータを生成し、
第3の段階において、少なくとも前記Gバッファに記憶されるデータと、前記マスクデータとに基づいて前記フレームバッファへの描画を行う、
請求項28に記載の情報処理装置。
【請求項30】
前記プロセッサは、前記描画処理において、
前記第1の段階において、所定のオブジェクトについて、前記Gバッファおよび前記深度バッファへの書き込みを画素ごとに行うとともに、当該オブジェクトに対応する画素について前記マスクデータの適用を除外することを示す除外マスクデータを生成し、
前記第3の段階において、前記除外マスクデータが示す画素について、前記少なくとも一部の地形オブジェクトのうち前記対象範囲に含まれない部分と前記所定のオブジェクトとを区別して視認することができる方法で描画を行う、
請求項29に記載の情報処理装置。
【請求項31】
前記プロセッサは、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、前記対象範囲に含まれるか否かを画素ごとに判定し、
前記対象範囲に含まれる画素については、前記光源を反映してフレームバッファへの描画を行い、
前記対象範囲に含まれない画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項27に記載の情報処理装置。
【請求項32】
情報処理システムによって実行されるゲーム処理方法であって、
前記情報処理システムは、
ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定し、
前記仮想空間の描画を行う描画処理において、前記仮想空間内の少なくとも一部の地形オブジェクトについて、前記対象範囲に含まれる部分を、前記仮想空間内に設定された光源を反映して描画し、前記対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画する、
ゲーム処理方法。
【請求項33】
前記情報処理システムは、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が前記対象範囲に含まれるか否かを少なくとも示すマスクデータを生成し、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれることが示される画素については、前記光源を反映してフレームバッファへの描画を行い、
前記マスクデータにおいて前記少なくとも一部の地形オブジェクトの位置が前記対象範囲に含まれないことが示される画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項32に記載のゲーム処理方法。
【請求項34】
前記描画処理は、ディファードレンダリングに基づいた描画処理であって、
前記情報処理システムは、前記描画処理において、
第1の段階において、前記仮想空間内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行い、
第2の段階において、画素ごとに、当該画素に対応する位置と、前記深度バッファに記憶された深度値と、前記対象範囲とに基づいて、前記マスクデータを生成し、
第3の段階において、少なくとも前記Gバッファに記憶されるデータと、前記マスクデータとに基づいて前記フレームバッファへの描画を行う、
請求項33に記載のゲーム処理方法。
【請求項35】
前記情報処理システムは、前記描画処理において、
前記第1の段階において、所定のオブジェクトについて、前記Gバッファおよび前記深度バッファへの書き込みを画素ごとに行うとともに、当該オブジェクトに対応する画素について前記マスクデータの適用を除外することを示す除外マスクデータを生成し、
前記第3の段階において、前記除外マスクデータが示す画素について、前記少なくとも一部の地形オブジェクトのうち前記対象範囲に含まれない部分と前記所定のオブジェクトとを区別して視認することができる方法で描画を行う、
請求項34に記載のゲーム処理方法。
【請求項36】
前記情報処理システムは、前記描画処理において、
前記少なくとも一部の地形オブジェクトに関して、前記対象範囲に含まれるか否かを画素ごとに判定し、
前記対象範囲に含まれる画素については、前記光源を反映してフレームバッファへの描画を行い、
前記対象範囲に含まれない画素については、前記所定の色によって、または、明るさを下げて前記フレームバッファへの描画を行う、
請求項32に記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間を描画するためのゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、仮想空間において、視認性の低い領域(例えば、暗く表示される領域)を、光源となるアイテムを用いて探索するゲームを実行するゲーム装置がある(例えば、非特許文献1参照)。上記ゲームにおいては、ゲームフィールドにおける暗い領域(例えば、洞窟内の領域)においてプレイヤキャラクタが例えばたいまつ等の光源となるアイテムを持つことにより、プレイヤキャラクタの周囲を明るくして視認性を確保することができる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「ゼルダの伝説 ブレス オブ ザ ワイルド:任天堂公式ガイドブック」、小学館、2017年5月11日、p211
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のゲームにおいては、光源が設定された結果としてその周囲が明るくなるだけであって、仮想空間における所望の範囲に対して明るさが確保されるようにするものではなかった。
【0005】
それ故、本発明の目的は、仮想空間における視認性の低い領域と視認性が確保された領域とをゲーム処理に基づいて動的に変更することができるゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(13)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置のコンピュータに、次の処理を行わせるゲームプログラムである。
・ゲーム処理に基づいて所定のイベントが発生した場合に、仮想空間内に対象範囲を設定する処理
・仮想空間の描画を行う描画処理において、仮想空間内の少なくとも一部の地形オブジェクトについて、対象範囲に含まれる部分を、仮想空間内に設定された光源を反映して描画し、対象範囲に含まれない部分を、所定の色によって、または、明るさを下げて描画する処理
【0008】
上記(1)の構成によれば、仮想空間における視認性の低い領域(すなわち、対象範囲外の領域)と視認性が確保された領域(すなわち、対象範囲内の領域)とをゲーム処理に基づいて動的に変更することができる。
【0009】
(2)
上記(1)の構成において、コンピュータは、描画処理において、少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が対象範囲に含まれるか否かを少なくとも示すマスクデータを生成してもよい。また、コンピュータは、描画処理において、マスクデータにおいて少なくとも一部の地形オブジェクトの位置が対象範囲に含まれることが示される画素については、光源を反映してフレームバッファへの描画を行ってもよい。コンピュータは、描画処理において、マスクデータにおいて少なくとも一部の地形オブジェクトの位置が対象範囲に含まれないことが示される画素については、所定の色によって、または、明るさを下げてフレームバッファへの描画を行ってもよい。
【0010】
上記(2)の構成によれば、マスクデータを用いることによって、対象範囲外が視認不可能または視認困難な態様とする描画処理を容易に行うことができる。
【0011】
(3)
上記(2)の構成において、描画処理は、ディファードレンダリングに基づいた描画処理であってもよい。コンピュータは、描画処理における第1の段階において、仮想空間内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行ってもよい。コンピュータは、描画処理における第2の段階において、画素ごとに、当該画素に対応する位置と、深度バッファに記憶された深度値と、対象範囲とに基づいて、マスクデータを生成してもよい。コンピュータは、描画処理における第3の段階において、少なくともGバッファに記憶されるデータと、マスクデータとに基づいてフレームバッファへの描画を行ってもよい。
【0012】
上記(3)の構成によれば、ディファードレンダリングの技術を用いて、対象範囲外のオブジェクトを視認不可能または視認困難な態様で描画することができる。
【0013】
(4)
上記(3)の構成において、コンピュータはさらに、描画処理における第1の段階において、所定のオブジェクトについて、Gバッファおよび深度バッファへの書き込みを画素ごとに行うとともに、当該オブジェクトに対応する画素についてマスクデータの適用を除外することを示す除外マスクデータを生成してもよい。コンピュータは、描画処理における第3の段階において、除外マスクデータが示す画素について、少なくとも一部の地形オブジェクトのうち対象範囲に含まれない部分と所定のオブジェクトとを区別して視認することができる方法で描画を行ってもよい。
【0014】
上記(4)の構成によれば、所定のオブジェクトについては対象範囲外であっても視認可能とすることができる。
【0015】
(5)
上記(2)から(4)のいずれかの構成において、マスクデータは、所定の色が描画される度合い、または、明るさを下げる度合いを画素ごとに示すデータであってもよい。コンピュータは、描画処理において、光源を反映して算出される画素値に対して、度合いに応じて所定の色を合成した画素値、または、当該度合いに応じて明るさを下げた画素値をフレームバッファに書き込んでもよい。
【0016】
上記(5)の構成によれば、位置に応じて視認性が次第に変化していくような仮想空間の画像を生成することができるので、より自然に見える仮想空間を示す画像を生成することができる。
【0017】
(6)
上記(1)から(5)のいずれかの構成において、仮想空間内には、光源として少なくとも、仮想空間内の位置によらず所定の明るさが設定される光源が設定されてもよい。
【0018】
上記(6)の構成によれば、対象範囲について一定の明るさを確保することができ、仮想空間における地形の形状等によらず対象範囲の視認性を確保することができる。
【0019】
(7)
上記(1)から(6)のいずれかの構成において、コンピュータは、所定のイベントの発生に応じて、対象範囲の基準となる点を仮想空間内に設定してもよい。コンピュータは、基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲が含まれるように対象範囲を設定してもよい。
【0020】
上記(7)の構成によれば、所定のイベントの発生に応じて、当該イベントに応じた位置とその周囲を対象範囲に設定することができる。
【0021】
(8)
上記(7)の構成において、コンピュータは、所定のイベントの発生に応じて基準となる点が設定された後、しきい値を時間経過に応じて増加させることで対象範囲を拡大してもよい。
【0022】
上記(8)の構成によれば、仮想空間において視認性が確保される領域が所定のイベントの発生に応じて次第に拡大していくように画像を生成することができる。
【0023】
(9)
上記(7)または(8)の構成において、コンピュータは、所定のイベントの発生に応じてさらに点光源を仮想空間内に設置してもよい。
【0024】
上記(9)の構成によれば、所定のイベントが発生したこと、および、当該所定のイベントの発生によって仮想空間がより明るくなったことをプレイヤに認識させやすくすることができる。
【0025】
(10)
上記(7)から(9)のいずれかの構成において、イベントは、所定のアイテムが仮想空間内に配置されるイベントであってもよい。コンピュータは、所定のアイテムが配置された位置に基づいて、基準となる点の位置を設定してもよい。
【0026】
上記(10)の構成によれば、プレイヤは、仮想空間における所望の位置にアイテムを配置することによって、当該位置に対象範囲を設定させることができる。
【0027】
(11)
上記(7)から(10)のいずれかの構成において、コンピュータはさらに、操作入力に基づいて仮想空間内におけるプレイヤキャラクタの制御を行ってもよい。所定のイベントは、操作入力に基づいて、プレイヤキャラクタの周囲が対象範囲となるイベントであってもよい。コンピュータにさらに、プレイヤキャラクタの位置を、基準となる点の位置として設定してもよい。
【0028】
上記(11)の構成によれば、プレイヤキャラクタの周囲についての視認性を継続的に確保することができる。
【0029】
(12)
上記(2)から(6)のいずれかの構成において、コンピュータはさらに、操作入力に基づいて仮想空間内におけるプレイヤキャラクタの制御を行ってもよい。イベントは、仮想空間内に設定されたイベント発生位置にプレイヤキャラクタが位置する場合に所定の操作入力が行われたことによって発生するイベントであってもよい。コンピュータはさらに、イベントの発生に応じて、仮想空間における対象範囲を平面的に示す2次元範囲データを、仮想空間のうちイベント発生位置に対応する範囲が少なくとも対象範囲となるよう更新してもよい。コンピュータは、2次元範囲データにさらに基づいてマスクデータを生成してもよい。
【0030】
上記(12)の構成によれば、プレイヤキャラクタがイベント発生位置へ到達することによって、仮想空間において視認性が確保される範囲を拡げていくゲームを提供することができる。
【0031】
(13)
上記(1)または(2)の構成において、コンピュータは、描画処理において、少なくとも一部の地形オブジェクトに関して、対象範囲に含まれるか否かを画素ごとに判定してもよい。コンピュータは、描画処理において、対象範囲に含まれる画素については、光源を反映してフレームバッファへの描画を行ってもよい。コンピュータは、描画処理において、対象範囲に含まれない画素については、所定の色によって、または、明るさを下げてフレームバッファへの描画を行ってもよい。
【0032】
上記(13)の構成によれば、フォワードレンダリングの技術を用いて、対象範囲外のオブジェクトを視認不可能または視認困難な態様で描画することができる。
【0033】
なお、本発明の別の一例は、上記(1)~(13)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(13)における処理を実行するゲーム処理方法であってもよい。
【発明の効果】
【0034】
上記ゲームプログラム、情報処理システム、情報処理装置、および、ゲーム処理方法によれば、仮想空間における視認性の低い領域と視認性が確保された領域とをイベントの発生に応じて動的に変更することができる。
【図面の簡単な説明】
【0035】
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
図3】本体装置の一例を示す六面図
図4】左コントローラの一例を示す六面図
図5】右コントローラの一例を示す六面図
図6】本体装置の内部構成の一例を示すブロック図
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
図8】本実施形態におけるゲーム例の概要を示す図
図9】1つの基準地点が解放された場合における、フィールド対応平面と判定値との関係を示す図
図10図9に示す円形領域が解放領域となる場合に表示されるマップ画像の一例を示す図
図11】2つの基準地点が解放された場合における、フィールド対応平面と判定値との関係を示す図
図12図11に示す領域が解放領域となる場合に表示されるマップ画像の一例を示す図
図13】2つの基準地点が解放され、1つの基準地点が未解放である場合における解放領域が設定されるフィールド対応平面の一例を示す図
図14】本実施形態におけるマップ画像の生成方法の一例を示す図
図15】プレイヤキャラクタを含むフィールドを示すフィールド画像を含むゲーム画像の一例を示す図
図16】プレイヤキャラクタが基準地点の近傍に位置する場合におけるゲーム画像の一例を示す図
図17】基準地点が解放された後のフィールドを示すゲーム画像の一例を示す図
図18】1つの基準地点が解放された場合におけるフィールドを上から見た図
図19】2つの基準地点が解放された場合におけるフィールドを上から見た図
図20】光源アイテムが配置されたフィールドを示すゲーム画像の一例を示す図
図21】解放イベントによる照射範囲内に光源アイテムが配置された場合におけるフィールドを示すゲーム画像の一例を示す図
図22】フレームバッファに書き込まれるフィールド画像を生成する方法の一例を示す図
図23】ゲームシステム1における情報処理に用いられる各種データを記憶する記憶領域の一例を示す図
図24】ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャート
図25図24に示すステップS8のプレイヤ関連制御処理の詳細な流れの一例を示すサブフローチャート
図26図24に示すステップS9の他オブジェクト制御処理の詳細な流れの一例を示すサブフローチャート
図27図24に示すステップS10の描画処理の詳細な流れの一例を示すサブフローチャート
図28】他の実施形態における描画処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0036】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0037】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0038】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0039】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0040】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0041】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0042】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0043】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0044】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0045】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0046】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0047】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0048】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0049】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0050】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0051】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0052】
右コントローラ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を備える。
【0053】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0054】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~85、87、88、91、97、および98を備える。これらの構成要素81~85、87、88、91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0055】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0056】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0057】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0058】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0059】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0060】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0061】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0062】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0063】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0064】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0065】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0066】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0067】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0068】
左コントローラ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(登録商標)の規格に従って行われる。
【0069】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0070】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0071】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0072】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0073】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0074】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0075】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0076】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0077】
[2.ゲームシステムにおける処理の概要]
図8図22を参照して、ゲームシステム1において実行される処理の概要について説明する。本実施形態においては、ゲームシステム1は、プレイヤ(すなわち、ゲームシステム1のユーザ)が操作可能なプレイヤキャラクタが3次元の仮想空間であるゲームフィールド(以下、単に「フィールド」と記載する)を移動するゲームを実行する。ゲームシステム1は、プレイヤキャラクタが配置されるフィールドを示すフィールド画像を表示することに加え、フィールドのマップを示すマップ画像を表示することも可能である。本実施形態においては、マップ画像は、プレイヤの指示によってフィールド画像から切り替えて表示される他、少なくとも一部が常にフィールド画像と共に表示される場合もある。
【0078】
図8は、本実施形態におけるゲーム例の概要を示す図である。図8に示す左側の欄は、フィールドの状況を示しており、右側の欄は、表示されるマップ画像の例を示している。ここで、本実施形態においては、フィールドには複数の基準地点(例えば、図8に示す基準地点202)が設定される。基準地点は、プレイヤキャラクタ201が当該基準地点またはその近傍に位置する状態でプレイヤによる所定の操作入力(例えば、基準地点を調べる動作をプレイヤキャラクタに行わせるための操作入力)が行われたことに応じて、解放される。つまり、プレイヤキャラクタ201は、基準地点に到達して所定の動作(例えば、基準地点を調べる動作)を行うことで、当該基準地点を解放することができる。以下では、基準地点が解放されるゲームイベントを「解放イベント」と呼ぶ。なお、基準地点は、例えば、プレイヤキャラクタ201が解放済みである他の基準地点へワープ移動すること(いわゆるファストトラベル)ができたり、プレイヤキャラクタ201を回復することができたり、プレイヤキャラクタ201の装備やスキルや所持アイテムを変更することができたりする場所であってもよい。
【0079】
本実施形態においては、基準地点が解放される前においては、一部の例外(例えば、プレイヤキャラクタ201自身もしくはその周囲や、後述する目印オブジェクト203)を除き、フィールドは暗闇の状態となっている(図8に示す状態a)。なお、図8においては、図面をわかりやすくする目的で、暗闇となっている範囲を斜線で示しているが、ゲームシステム1は、プレイヤが視認不可能または視認困難な態様で暗闇となるフィールドを表示する(後述する図15等参照)。図8に示す状態aにおいては、プレイヤキャラクタ201の周囲と、基準地点202を示す目印オブジェクト203とを除いてフィールドは暗闇となっているので、フィールドの探索を行いにくい状態であると言える。
【0080】
また、基準地点が解放される前においては、マップ画像は、フィールド情報が示されない態様で表示される(図8に示す状態a)。フィールド情報とは、フィールドに関する情報であり、例えば、フィールドを形成する地形の情報(具体的には、地形の形状等)、フィールドに設置されているオブジェクトの情報、フィールドに配置されているアイテムの情報、あるいは、フィールド上に存在するキャラクタの情報等である。図8に示す状態aにおいては、マップ画像は、プレイヤキャラクタ201の位置および向きを示すマーク204のみが示され、マーク204以外の他のフィールド情報は示されない態様で表示される。このように、基準地点が解放される前におけるマップ画像は、少なくとも一部のフィールド情報が示されない態様で表示されればよく、他の一部のフィールド情報(例えば、図8に示すマーク204)は解放前において示されていてもよい。
【0081】
一方、プレイヤキャラクタ201によって基準地点(図8に示す例では、基準地点202)が解放されると、フィールドのうち当該基準地点の周囲の領域は、暗闇ではなく、光が当たる範囲となる(図8に示す状態b)。以下では、フィールドのうち、光が当たる範囲を「照射範囲」と呼ぶ。詳細は後述するが、ゲームシステム1は、プレイヤが視認可能な態様で照射範囲を表示する(後述する図17等参照)。
【0082】
また、基準地点が解放されると、マップ画像のうち当該基準地点の周囲についてはフィールド情報が示される態様で表示される(図8に示す状態b)。図8に示す例においては、解放された基準地点の周囲については、プレイヤキャラクタ201に関するマーク204に加えて、地形の形状を示す線と、基準地点を示すマーク205とが示されている。
【0083】
上記のように、解放イベントが発生すると、フィールドのうち解放された基準地点の周囲の領域が視認可能に表示されるようになるとともに、マップ画像においては当該基準地点の周囲の領域についてフィールド情報が表示されるようになる。これらによって、プレイヤは、解放された基準地点の周囲の探索をプレイヤキャラクタ201に行わせやすくなる。本実施形態においては、プレイヤは、フィールドにおける基準地点を解放させることを目的の1つとして、探索しやすい領域を基準地点の解放によって増やしながらゲームを進める。
【0084】
[2-1.マップの開放領域の設定]
図9図14を参照して、基準地点が解放されることでマップ画像上においてフィールド情報が表示されるようになる領域(「解放領域」と呼ぶ。)の設定方法の一例について説明する。図9は、1つの基準地点が解放された場合における、フィールド対応平面と判定値との関係を示す図である。ここで、フィールド対応平面とは、3次元のフィールドに対応する2次元平面である。フィールド対応平面は、3次元のフィールドを鉛直方向に投影した平面と言うことができ、フィールド対応平面の2次元位置は、フィールドにおける水平方向の2次元座標(すなわち、フィールドの位置を示す3次元座標から高さ方向の座標を削除した2次元座標)が示す位置である。図9においては、上側にフィールド対応平面を示し、下側に、フィールド対応平面における判定値の変化を示すグラフを示している。具体的には、上記グラフは、解放された基準地点211を通る直線AB(図9において一点鎖線で示される直線)上における判定値の変化を示す。
【0085】
判定値は、フィールド対応平面における解放領域を判定するために用いられる値である。本実施形態においては、ゲームシステム1は、フィールド対応平面における解放領域を判定するために、フィールド対応平面の各位置について判定値を算出する。なお、判定値は、フィールド対応平面において所定の単位区間毎の位置(「算出対象位置」と呼ぶ。)ごとに算出される。具体的には、マップ画像における各画素に対応する位置ごとに、判定値を用いた判定が行われる。
【0086】
本実施形態においては、各算出対象位置における判定値は、基準地点において設定される基準値に基づいて算出される。すなわち、ゲームシステム1は、基準地点について基準値を設定し、基準値に基づいて各算出対象位置における判定値をそれぞれ算出する。なお、本実施形態においては、基準地点における基準値の大きさは、基準地点ごとに設定されるものとし、基準値の大きさは基準地点ごとに異なる大きさであってもよい。例えば、各基準地点における基準値は、全ての基準地点が解放された場合にフィールド全体が解放領域となるように設定されてもよい。
【0087】
本実施形態においては、1つの基準地点に基づいて算出される、ある位置の判定値(すなわち、1つの基準地点に設定される基準値に基づいて算出される判定値)は、当該基準地点からの距離に基づいて算出され、より具体的には、当該基準地点からの距離が長くなるにつれて減少するように算出される(図9参照)。例えば、図9に示す例においては、解放された基準地点211には基準値A1が設定されており、直線AB上の各算出対象位置における判定値は、基準地点211において基準値A1となり、基準地点211からの当該位置までの距離に応じて減衰するように変化する。判定値は、上記距離がある長さ以上となる位置では0になる。なお、基準値に基づいて各算出対象位置における判定値を決定する具体的な計算方法は任意である。
【0088】
本実施形態においては、図9に示すように基準地点211のみが解放されている場合、ゲームシステム1は、基準地点211に基づく判定値のみを考慮して解放領域を設定する。具体的には、ゲームシステム1は、フィールド対応平面のうち、基準地点211に基づく判定値が所定のしきい値(図9におけるしきい値th)以上となる位置からなる領域を、解放領域として設定する。上記のように、判定値は、基準地点211から当該位置までの距離に応じて減衰するので、図9に示す例においては、基準地点211を中心とした円形領域212が解放領域となる。
【0089】
図10は、図9に示す円形領域212が解放領域となる場合に表示されるマップ画像の一例を示す図である。上記の場合、図10に示すように、マップ画像の画素のうち、フィールド対応平面において判定値がしきい値以上となる位置に対応する画素についてフィールド情報が描画されるマップ画像が表示される。図9および図10に示すように、マップ画像においてフィールド情報が描画される範囲は、円形領域212に対応する。図10においては、領域212に対応する範囲について、フィールド情報として、地形の形状を示す線が表示される。なお、本実施形態においては、基準地点を示すマーク205は、当該基準地点の位置が解放領域内であるか否かに関わらず、プレイヤキャラクタ201が当該基準地点に到達したことによって表示されるようになるものとする。なお、本実施形態においては、マップ画像は、図10に示すように、ディスプレイ12の画面全体に表示される場合と、後述する図15に示すように、フィールドを示すフィールド画像に重ねられる態様で、ディスプレイ12の画面の一部に表示される場合とがある。
【0090】
上記のように、本実施形態においては、マップ画像は、フィールド情報を2次元的に示す画像である。また、判定値は、基準地点に対応する2次元的な位置からの2次元的な距離(すなわち、フィールド対応平面上における距離)に応じて減衰する値である。上記によれば、2次元平面上で解放領域を設定することができるので、少ない処理負荷で、2次元マップと親和性の高い領域を設定することができる。また、上記によれば、基準地点からの距離に応じて(例えば、基準地点から一定距離内の範囲が解放領域となるように)解放領域を設定することができる。なお、他の実施形態においては、ゲームシステム1は、3次元のフィールドにおける各位置について判定値を算出し、3次元のフィールド上で解放領域を設定するようにしてもよい。このとき、ゲームシステム1は、3次元のフィールド上における解放領域に基づいて、2次元のマップ画像において当該解放領域に対応する範囲を決定し、当該範囲内についてフィールド情報を示すマップ画像を生成する。また、他の実施形態においては、マップは3次元であってもよく、3次元のマップにおいて解放領域が設定され、3次元のマップを示すマップ画像が生成・表示されてもよい。
【0091】
また、複数の基準地点が解放されている場合、ゲームシステム1は、解放済みの各基準地点のそれぞれに基づいて判定値を算出し、各判定値の合計値(「合計判定値」と呼ぶ)を算出対象位置ごとに算出する。解放領域は、合計判定値に基づいて設定される。なお、1つの基準地点のみが解放されている場合(図9参照)には、当該基準地点に設定される基準値に基づく判定値が合計判定値になる、と言うことができる。
【0092】
図11は、2つの基準地点が解放された場合における、フィールド対応平面と判定値との関係を示す図である。図11においても図9と同様、上側にフィールド対応平面を示し、下側に、解放された基準地点を通る直線(図11においては、直線CD)上における判定値および合計判定値の変化を示すグラフを示している。なお、図11に示す直線CDは、解放された2つの基準地点211および213を通る。
【0093】
図11に示す場合、ゲームシステム1は、上述の算出対象位置のそれぞれについて合計判定値を算出する。合計判定値は、解放済みの各基準地点211および213に基づく各判定値の合計である。すなわち、ゲームシステム1は、各算出対象位置について、基準地点211に基づく判定値をそれぞれ算出するとともに、基準地点213に基づく判定値をそれぞれ算出する。基準地点211に基づく判定値は、基準地点211について設定される基準値A1が、基準地点211からの当該位置までの距離に応じて減衰する値として算出される。基準地点213に基づく判定値は、基準地点213について設定される基準値A2が、基準地点213からの当該位置までの距離に応じて減衰する値として算出される。ゲームシステム1は、各算出対象位置についてそれぞれ、基準地点211に基づく判定値と基準地点213に基づく判定値とを加算することで、算出対象位置ごとの合計判定値を算出する。図11の下側のグラフにおいては、実線で示される右側の山が、基準地点211に基づく判定値の変化を示し、実線で示される左側の山が、基準地点213に基づく判定値の変化を示し、太い点線で示される曲線が合計判定値の変化を示している。
【0094】
ゲームシステム1は、フィールド対応平面のうち、合計判定値が上述のしきい値th以上となる位置からなる領域を、解放領域として設定する。図11に示す例においては、基準地点211を中心とした円形領域212と、基準地点213を中心とした円形領域214とに対して、これら2つの円形領域を接続する領域215を加えた領域216(図11において斜線で示される領域)が解放領域となる。すなわち、複数の基準地点が解放されている場合における解放領域は、2次元のメタボールの手法によって生成されるということもできる。
【0095】
図12は、図11に示す領域216が解放領域となる場合に表示されるマップ画像の一例を示す図である。図12に示すように、マップ画像の画素のうち、フィールド対応平面において合計判定値がしきい値以上となる画素についてフィールド情報が描画されるマップ画像が表示される。フィールド情報が描画される範囲は、円形領域216に対応する。図12においては、フィールド情報として、地形の形状を示す線が表示される。また、図12に示す例においては、プレイヤキャラクタ201の位置および向きを示すマーク204に加えて、プレイヤキャラクタ201が到達した2つの基準地点を示すマーク205および221が表示される。このように、本実施形態においては、上記の合計判定値を用いて解放領域を設定するので、基準地点211および基準地点213の両方が解放された場合には、基準地点211のみが解放された場合、および、基準地点213のみが解放された場合のいずれの場合においても解放領域とはならない領域(すなわち、図11に示す領域215)が、解放領域に設定されることもある。
【0096】
上記のように、本実施形態においては、複数の基準地点のそれぞれについて設定される基準値(すなわち、判定値の最大値)は、大きさが基準地点ごとに設定される。これによれば、基準地点が解放された場合に、当該基準地点を基準としてどの程度の大きさの領域を開放領域とするかを、基準地点ごとに設定することができる。例えば、図11に示す例においては、基準地点211に設定される基準値A1または基準地点213に設定される基準値A2の大きさを変更することで、基準地点211および213が解放された場合における解放領域の大きさや形状を変化させることができる。例えば、基準値A1および/または基準値A2をより小さい値に変更することで、基準地点211および213が解放された場合における解放領域を、互いに接続されない2つの円形領域とすることも可能である。なお、他の実施形態においては、複数の基準地点のそれぞれについて設定される基準値は、同じ値に設定されてもよい。さらに、複数の基準地点の基準値が同じ値であっても、距離に応じた減衰の度合いが基準地点ごとに異なるように判定値の算出方法を設定することによって、解放領域の範囲が基準地点ごとに異なるようにしてもよい。
【0097】
また、上記のように、本実施形態においては、ゲームシステム1は、解放領域として、複数の基準地点のうち解放された状態となっている1つ以上の基準地点に基づく1つ以上の判定値を少なくとも合計した合計判定値が所定値(すなわち、上記しきい値th)以上となる位置からなる領域を特定する。上記によれば、解放領域の形状や大きさを、複数の基準地点の各解放状態に応じた多様なものにすることができる。
【0098】
上記実施形態においては、ゲームシステム1は、解放済みの基準地点に設定される基準値に基づいて合計判定値を算出するようにしたが、さらに、解放済みの基準地点に加えて、未解放の基準地点に設定される基準値にも基づいて合計判定値を算出するようにしてもよい。以下、図13を参照して、未解放の基準地点に設定される基準値に基づいて合計判定値を算出する例について説明する。
【0099】
図13は、2つの基準地点が解放され、1つの基準地点が未解放である場合における解放領域が設定されるフィールド対応平面の一例を示す図である。図13においては、3つの基準地点231~233がフィールドに配置されているものとする。また、図13においては、基準地点231および232は解放済みであり、基準地点231と基準地点232との間にある基準地点233は解放されていないものとする。
【0100】
図13に示す例において、解放済みの各基準地点231および232については、上記実施形態と同様に基準値が設定される。ここで、本変形例では、未解放の基準地点233については、解放された場合とは異なる基準値が設定される。以下では、解放済みの基準地点に設定される基準値を「第1基準値」と呼び、未解放の基準地点に設定される基準値を「第2基準値」と呼ぶ。すなわち、図13において基準地点233が解放された場合には、基準地点231および233と同様に第1基準値が設定される。
【0101】
図13に示す例においても、図9および図11に示した例と同様、ゲームシステム1は、第1基準値に基づく判定値(「第1判定値」と呼ぶ。)を、各算出対象位置について算出する。図13に示す例においては、基準地点231に設定される第1基準値に基づく第1判定値と、基準地点232に設定される第1基準値に基づく第1判定値とが、それぞれ各算出対象位置について算出される。さらに、図13に示す例においては、第2基準値に基づく判定値(「第2判定値」と呼ぶ。)を各算出対象位置について算出する。図13に示す例においては、基準地点233に設定される第2基準値に基づく第2判定値が、各算出対象位置について算出される。第2判定値は、基準地点において第2基準値となり、当該基準地点からの距離が長くなるにつれて減少し、当該距離がある長さ以上となる位置では0になる値である。
【0102】
図13においては、基準地点231および232を中心とした円形の点線は、第1基準値に基づく第1判定値が、所定の値となる位置を結ぶ線である。上記の点線のうち、点線234および235は、第1判定値が上述のしきい値となる位置を結ぶ線である。また、図13において、基準地点233を中心とした円形の一点鎖線は、第2基準値に基づく第2判定値が、所定の値となる位置を結ぶ線である。
【0103】
図13に示す例においては、ゲームシステム1は、第1判定値に加え、第2判定値にさらに基づいて合計判定値を算出する。具体的には、算出対象位置における合計判定値は、当該算出対象位置における第1判定値の合計から、当該算出対象位置における第2判定値の合計を減算することで得られる。図13に示す例においては、ゲームシステム1は、基準地点231の第1基準値に基づく第1判定値と、基準地点232の第1基準値に基づく第1判定値との合計値から、基準地点233の第2基準値に基づく第2判定値を減算することで合計判定値を算出する。なお、合計判定値に関する上記の算出方法は、第2基準値を負の値とし(その結果、第2判定値は負の値となる)、第1および第2判定値の合計を算出することと同義である。第1基準値と第2基準値の絶対値は、同じであってもよいし、異なっていてもよい。また、第1基準値に基づいた第1判定値の算出方法と第2基準値に基づいた第2判定値の算出方法は、同じであってもよいし、異なっていてもよい。
【0104】
図13に示す例においては、第1判定値との合計値から第2判定値を減算するので、第2判定値の影響を受ける位置(すなわち、第2判定値が正の値となる位置)においては、合計判定値は、第2判定値を考慮しない場合(例えば、上記実施形態の場合)よりも小さくなる。したがって、図13に示す例においては、第2判定値を考慮しない場合においては解放領域となる領域の一部が、解放領域に設定されなくなる。図13に示す例においては、斜線で示される領域236が解放領域となり、第2判定値を考慮しない場合においては解放領域となる領域(実線で示される領域)237は、解放領域とはならない。このように、図13に示す例においては、未解放の基準地点の近傍の位置については、第2判定値の絶対値が大きくなるので、解放領域になりにくくなる。
【0105】
図13に示す例においては、合計判定値は、複数の基準地点のうちの解放済みの状態となっている1つ以上の基準地点についての1つ以上の第1判定値の合計から、複数の基準地点のうちの未解放の状態となっている1つ以上の基準地点についての1つ以上の第2判定値の合計を減算した値である。これによれば、未解放の基準地点およびその近傍の位置を解放領域になりにくくすることができる。
【0106】
ここで、仮に未解放基準地点に基づく第2判定値を反映させずに合計判定値を算出するとすれば、例えば図13に示す場合には、未解放の基準地点233の近傍の位置まで解放領域となってしまう。その結果、未解放の基準地点233の近傍の位置までマップが解放され(つまり、マップ画像においてフィールド情報が表示され)、上述の照射範囲となるおそれがある。このとき、プレイヤが未解放の基準地点233を解放する動機付けが弱くなってしまい、基準地点を解放させることで探索範囲を拡げていくというゲーム性が失われるおそれがある。これに対して、上記変形例によれば、未解放の基準地点またはその近傍の位置が解放領域になりにくいので、未解放の基準地点を解放する動機付けが弱くなる可能性を低減することができ、ゲーム性を向上することができる。
【0107】
本実施形態において、ゲームシステム1は、上記の解放領域を示すデータとしてマップマスクを生成する。すなわち、マップマスクは、フィールドのうちで解放領域となっている領域を示す2次元データである。そして、ゲームシステム1は、解放領域についてフィールド情報が示されるマップ画像を、上記マップマスクを用いて生成する。
【0108】
図14は、本実施形態におけるマップ画像の生成方法の一例を示す図である。本実施形態においては、ゲームシステム1は、元マップ画像とマップマスクとに基づいて、表示されるマップ画像を生成する。元マップ画像は、表示されるマップ画像を生成する元となる画像であり、フィールド情報が含まれるマップ画像を示す。元マップ画像は、フィールド全体が解放領域となる場合におけるマップ画像であると言うことができる。
【0109】
本実施形態においては、マップマスクのデータは、2次元の各位置についてのマップマスク値を示すデータである。マップマスク値とは、マップ画像の生成のために元マップ画像を反映させる度合いを示す。例えば、マップマスク値は最大値が1で、最小値が0となる値である。このとき、マップマスク値が1である画素では、元マップ画像がそのままマップ画像に反映され、マップマスク値が0である画素では、元マップ画像が反映されないようにマップ画像が生成される。本実施形態においては、マップマスク値は、0から1までの範囲の多値の値である。詳細は後述するが、マップマスク値を多値の値とすることによって、解放領域の境界付近においてマップ画像をぼかして表示することができる。なお、他の実施形態においては、マップマスク値は0または1の2値の値であってもよい。
【0110】
マップマスク値は、上述の合計判定値に基づいて上述の算出対象位置ごとに設定される。具体的には、ある位置についての合計判定値が第1値より大きい場合、当該位置のマップマスク値は1に設定され、ある位置についての合計判定値が第2値より小さい場合、当該位置のマップマスク値は0に設定される。なお、第2値は、第1値よりも小さく、かつ、上記しきい値thよりも大きい値である。また、ある位置についての合計判定値が第2値以上かつ第1値以下である場合、当該位置のマップマスク値は0より大きく1より小さい範囲で、合計判定値の大きさに応じた大きさの値に設定される。上記によれば、マップマスク値は、基準地点から所定距離内の範囲内の位置については1に設定され、当該範囲の外側の範囲の位置では、基準地点からの距離に応じて小さくなる値に設定され、合計判定値がしきい値thよりも小さい位置(すなわち、解放領域外の位置)については0に設定される。なお、図14に示すマップマスクにおいては、マップマスク値が1である位置を白色で示し、マップマスク値が0である位置を黒色で示し、マップマスク値が中間値(すなわち、0より大きく1未満である値)となる位置については、値が大きいほど白色に近づくように灰色で示している。
【0111】
なお、合計判定値に基づいた算出方法の例として、次の式によってマップマスク値Mpが算出されてもよい。
【数1】
上式において、K、thresh、および、Overは定数であり、threshは上述のしきい値thである。Oiは、i番目の基準地点(iは1からnまでの自然数。nは基準地点の数を示す。)が解放済みであれば1、未解放であれば0となる変数である。Ciは、i番目の基準地点が解放済みであれば0、未解放であれば1となる変数である。定数aiは、i番目の基準地点において第1基準値となる第1判定値が、距離に応じて減衰する度合いを示す定数である。上式の例では第1基準値は1となる。定数biは、i番目の基準地点において第2基準値となる第2判定値が、距離に応じて減衰する度合いを示す定数である。上式の例では第2基準値は1となる。変数l(i,p)は、i番目の基準地点から位置p(具体的には、上述の算出対象位置)までの長さ(具体的には、上記フィールド対応平面上での長さ)である。上記の式においては、第1判定値の合計が大き過ぎて未開放の基準地点にどれだけ近くても第2判定値の合計を減算する効果が無いという結果を避けるため、第1判定値の合計が定数Overより大きい場合は当該合計を定数Overに置き換える計算を行っている。一方、第2判定値の合計の影響が大きくなり過ぎないよう、第2判定値の合計を2乗した値を減算する計算を行っている。また、減算の結果が負になる場合は値を0とする計算を行っている。
【0112】
上記の式においては、各基準値を1としたが、上述したように、第1基準値および第2基準値は基準地点ごとに個別の値に設定されてよい。例えば、上記の式における「Oi」を「Oi*Ai」に置き換えると共に定数aiを削除し、「Ci」を「Ci*Bi」に置き換えると共に定数biを削除した式を用いることで、基準地点ごとに第1基準値および第2基準値が設定される場合におけるマップマスク値Mpを算出することができる。なお、変数Aiは、i番目の基準地点における第1基準値であり、変数Biは、i番目の基準地点における第2基準値である。また、他の実施形態においては、上記の式において定数aiおよびbiを残した上で、「Oi」を「Oi*Ai」に置き換え、「Ci」を「Ci*Bi」に置き換えた式が用いられてもよい。また、第1基準値および第2基準値のいずれかが固定値(=1)とされる場合には、上記の式において「Oi」または「Ci」のいずれかのみについて上記の置き換えを行った式を用いることでマップマスク値Mpを算出することができる。なお、マップマスク値を算出するための計算式は上記の式に限らない。他の実施形態においては、例えば、ある位置における判定値が基準位置から当該ある位置までの距離に応じて減衰する(例えば、判定値が当該距離の2乗に反比例する)ように算出される任意の計算式が用いられてもよい。
【0113】
ゲームシステム1は、マップマスクを参照して、画素ごとのマップマスク値に応じた比率で、元マップ画像と未解放状態を示す画像とを合成することで、マップ画像を生成する。具体的には、ゲームシステム1は、マップマスク値が1である画素については元マップ画像がそのまま反映され、マップマスク値が0である画素については元マップ画像が反映されず、マップマスク値が中間値である画素についてはマップマスク値に応じた比率で元マップ画像が反映されるように、マップ画像を生成する。未解放状態を示す画像は、単色でもよいし、所定の模様等が描画されていてもよい。合成されたマップ画像に、さらに座標を分かり易くするための格子等が合成されてもよい。これによって、マップ画像は、解放領域内のうちの境界付近(具体的には、マップマスク値が中間値となる位置)では、薄く表示される(図14参照)。なお、図14では、マップ画像のうち薄く表示される部分を点線で示している。
【0114】
上記のように、本実施形態においては、ゲームシステム1は、解放イベントが発生した場合、フィールドにおいて解放領域となっている範囲を示す2次元のマスクデータ(すなわち、マップマスク)を生成する。また、ゲームシステム1は、フィールド情報を含む元マップ画像にマスクデータを適用することによって、解放領域に対応する部分のフィールド情報が示されたマップ画像を生成させる。これによれば、解放領域の部分を示すマップ画像を容易に生成することができる。なお、他の実施形態においては、マップ画像の具体的な生成方法は任意であり、マスクデータを用いた方法に限定されない。
【0115】
なお、本実施形態においては、マスクデータは、フィールド内の位置における合計判定値の大きさに応じた多値の値を各位置について示すデータである。また、ゲームシステム1は、マスクデータが示す多値の値に応じた比率で画素ごとに元マップ画像と未解放状態を示す画像とを合成することによって、マップ画像を生成する。これによれば、解放領域の境界付近がぼかされたマップ画像を生成することができる。したがって、解放されたマップを自然な見た目にすることができる。
【0116】
[2-2.照射範囲の設定]
図15図21を参照して、フィールド上において上述の照射範囲を設定する方法の一例について説明する。本実施形態においては、ゲーム中において所定の照射イベントが発生したことに応じて、フィールドのうち、当該照射イベントに応じた範囲が照射範囲となる。上述の解放イベントは、照射イベントの1つである。本実施形態においては、照射イベントとして、上述の解放イベントの他、キャラクタ発光イベント、および、アイテム配置イベントが発生し得る。なお、照射イベントの発生に応じて設定される照射範囲の他に、フィールド上に予め設定された照射範囲等も存在してもよい。
【0117】
キャラクタ発光イベントは、プレイヤキャラクタの周囲が照射範囲となるイベントである。本実施形態においては、キャラクタ発光イベントは、プレイヤキャラクタが発光する服を装備するイベントである。キャラクタ発光イベントは、例えば、プレイヤキャラクタが発光するアイテムを把持したり、発光する乗り物に搭乗したりするイベントであってもよい。
【0118】
アイテム配置イベントは、光源が設定されるアイテム(「光源アイテム」と呼ぶ。)がフィールドにおける地面等の地形オブジェクトに配置され、光源アイテムの周囲が照射範囲となるイベントである。
【0119】
図15は、プレイヤキャラクタを含むフィールドを示すフィールド画像を含むゲーム画像の一例を示す図である。図15では、キャラクタ発光イベントが発生しており、他の照射イベントは発生していない状況である。本実施形態においては、ゲームシステム1は、プレイヤによる指示に応じて(例えば、発光する服をプレイヤキャラクタに装備させる操作入力に応じて)、キャラクタ発光イベントを発生させる。図15に示すように、キャラクタ発光イベントが発生した場合、プレイヤキャラクタ201の周囲の範囲(「キャラクタ影響範囲」と呼ぶ。)が照射範囲に設定される。キャラクタ影響範囲は、例えば、プレイヤキャラクタ201の位置から所定距離内の範囲である。なお、図15に示す状況では、キャラクタ影響範囲外の範囲は、照射範囲には設定されていないので、目印オブジェクト203を除き、暗闇として(すなわち、視認不可能または視認困難な態様で)表示される。なお、プレイヤキャラクタ201自身や、目印オブジェクト203のように、照射範囲外でも視認可能に表示されるオブジェクト(後述する対象外オブジェクト)については後述する。
【0120】
本実施形態においては、ゲームシステム1は、フィールドに環境光を設定し、キャラクタ影響範囲による照射範囲については環境光を反映して描画を行うことで、当該照射範囲を視認可能に表示する。環境光は、フィールド内の位置によらず所定の明るさが設定される光源である。詳細は後述するが、本実施形態においては、ゲームシステム1は、照射範囲外の範囲については、光源(例えば、環境光や点光源)を反映せずに描画を行うことで、視認不可能または視認困難な態様で当該範囲を表示する。
【0121】
なお、本実施形態においては、ゲームシステム1は、フィールドを示すフィールド画像とともに、ディスプレイ12の画面の一部の領域(ここでは、画面の右下の領域)にマップ画像241を表示する。図15に示す状況では、解放イベントが未発生であるので、プレイヤキャラクタ201の位置および向きを示すマーク以外のフィールド情報を含まないマップ画像241が表示される。なお、他の実施形態においては、フィールド画像が表示される際にはマップ画像は表示されなくてもよい。
【0122】
上記のように、本実施形態においては、照射イベントの一例は、プレイヤによる操作入力に基づいて、プレイヤキャラクタの周囲が照射範囲となるイベント(すなわち、キャラクタ発光イベント)である。このとき、ゲームシステム1は、プレイヤキャラクタの位置を基準となる点の位置として設定し、当該基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲が含まれるように照射範囲を設定する。これによれば、プレイヤキャラクタの周囲を継続的に視認可能に表示することができるので、プレイヤキャラクタの周囲が全く見えないためにフィールドの探索を行うことが困難となる状況が生じるおそれを低減することができる。なお、他の実施形態においては、ゲームシステム1は、キャラクタ発光イベントの発生の有無にかかわらず、プレイヤキャラクタの周囲を照射範囲に常時設定してもよい。また、他の実施形態においては、ゲームシステム1は、照射イベントとしてキャラクタ発光イベントを発生させなくてもよい。
【0123】
なお、上記においては、キャラクタ発光イベントはプレイヤキャラクタに関するイベントであったが、ゲームシステム1は、プレイヤキャラクタに加えて(または代えて)、プレイヤキャラクタとは異なる他のキャラクタ(例えば、プレイヤキャラクタの仲間のキャラクタや敵キャラクタ)についてキャラクタ発光イベントを実行し、当該他のキャラクタについても照射範囲を設定するようにしてもよい。例えば、他のキャラクタが自発光する態様に変化するキャラクタ発光イベントに応じて、当該他のキャラクタの位置に基づいて照射範囲が設定されてもよい。
【0124】
図16は、プレイヤキャラクタが基準地点の近傍に位置する場合におけるゲーム画像の一例を示す図である。図16に示す状況は、図15に示す状況からプレイヤキャラクタ201が未解放の基準地点211の近傍まで移動してきた状況である。なお、本実施形態においては、目印オブジェクト203は照射範囲外であっても視認可能に表示されるので、プレイヤは、目印オブジェクト203を目標にして照射範囲外の基準地点211に向かってプレイヤキャラクタ201を移動させることができる。
【0125】
図16に示すようにプレイヤキャラクタ201が基準地点211の近傍(具体的には、基準地点211から所定距離内の範囲)に位置する場合、プレイヤキャラクタ201は、当該基準地点211を解放する動作を行うことができる。すなわち、上記の場合、ゲームシステム1は、当該基準地点211を解放するための操作入力を受け付け、プレイヤによって当該操作入力が行われたことに応じて当該基準地点211を解放する。本実施形態においては、上記操作入力は、「しらべる」のコマンド(すなわち、プレイヤキャラクタ201に近傍を調べる動作を行わせるコマンド)を実行するための入力であり、具体的には、右コントローラ4のAボタン53を押下する入力である。上記の場合、上記操作入力を行うことができる状態であることをプレイヤに通知するべく、ゲームシステム1は、上記コマンドが実行可能であることを示すコマンド画像242を表示する(図16参照)。なお、当該基準地点211に到達した後に上記の操作がし易いよう、目印オブジェクト203の真下等の限られた範囲を、予め設定された(すなわち、照射イベントの発生の有無にかかわらず設定される)照射範囲としてもよい。
【0126】
基準地点211を解放するための操作入力が行われた場合、ゲームシステム1は、基準地点211の周囲の範囲を照射範囲に設定する。このとき、本実施形態においては、ゲームシステム1は、解放イベントを示すイベントシーンのアニメーションを表示する。例えば、上記イベントシーンとして、基準地点211の周囲が次第に明るくなっていく様子を示すアニメーションが表示される。
【0127】
図17は、基準地点が解放された後のフィールドを示すゲーム画像の一例を示す図である。図17に示すように、基準地点211が解放される解放イベントが発生した場合、基準地点211の周囲の範囲が照射範囲に設定され、当該範囲が視認可能に表示される。なお、図17では、フィールドのうち、基準地点211の周囲の丘となっている部分が照射範囲に含まれて視認可能に表示され、丘の向こうの部分については照射範囲外であり、視認不可能な態様で表示されたままである。また、図17に示す状況では、基準地点211が解放されたことによって基準地点211の周囲のマップが解放される(すなわち、基準地点211を含む解放領域が設定される)ため、マップ画像241は、解放領域内についてフィールド情報を含むものとなっている。
【0128】
なお、照射範囲外でも視認可能であった目印オブジェクト203は、照射範囲内においても視認可能に表示される。ここで、本実施形態においては、ゲームシステム1は、解放イベントの発生に応じて、フィールドにおける所定の位置、例えば目印オブジェクト203の位置に点光源をさらに設定する。詳細は後述するが、描画処理においてゲームシステム1は、地形オブジェクトについて照射範囲に含まれる部分を、点光源をさらに反映して描画する。したがって、目印オブジェクト203の周囲については、環境光および点光源を反映して描画が行われるため、照射範囲のうち環境光のみを反映して描画が行われる部分よりも明るく表示される。すなわち、所定の範囲の視認性を確保した上で、点光源に基づいた明るさも表現することができる。なお、図17においては、照射範囲内であって目印オブジェクト203の位置に設定される点光源による光が特に反映されて明るい部分を白色領域で示し、照射範囲のうち点光源の影響が少ない部分を網がけ領域で示している。上記の点光源によって、解放イベントが発生したことをプレイヤに認識させやすくすることができる。
【0129】
照射イベントとして解放イベントが発生したことに応じて設定される照射範囲は、当該解放イベントに対応する基準地点に基づいて設定される。図18および図19を参照して、解放イベントが発生したことに応じて照射範囲を設定する方法について説明する。
【0130】
図18は、1つの基準地点が解放された場合におけるフィールドを上から見た図である。図18に示す状況は、図9に示す基準地点211が解放された状況である。本実施形態においては、ゲームシステム1は、解放された基準地点に基づいた解放領域(図18では、領域212)と、当該基準地点に対応する地点影響範囲(図18では、地点影響範囲251)とに基づいて、照射範囲を設定する。なお、「基準地点に対応する地点影響範囲」とは、基準地点ごとに予め定められる範囲である。本実施形態においては、基準地点から所定距離内の範囲が地点影響範囲に設定される。なお、この所定距離は、基準地点ごとに設定され、基準地点ごとに異なる値であってもよいし、各基準地点について同じ値であってもよい。例えば、各基準地点における地点影響範囲は、全ての基準地点が解放された場合であってもフィールドの一部が地点影響範囲外となるように設定されてもよいし、当該場合にフィールドの全部が地点影響範囲内となるように設定されてもよい。前者の場合、フィールドには、全ての基準地点が解放された場合であっても照射範囲外となる部分が存在することとなる。
【0131】
本実施形態においては、ゲームシステム1は、フィールドのうち、上記地点影響範囲内で、かつ、上記解放領域内となる範囲を照射範囲に設定する。図18に示す例においては、解放領域212が地点影響範囲251の内側となっているので、解放領域212と同じ範囲が照射範囲となる。なお、図18においては、照射範囲外を斜線領域で示している。本実施形態においては、地点影響範囲は、上記のように基準地点ごとに設定され、当該地点影響範囲に対応する解放領域とは独立して設定される。そのため、地点影響範囲は、当該地点影響範囲に対応する解放領域よりも大きく(つまり、解放領域が地点影響範囲内に含まれるように)設定されてもよいし、当該解放領域よりも小さく(つまり、地点影響範囲が解放領域内に含まれるように)設定されてもよいし、当該解放領域と同じになるように設定されてもよい。なお、「基準地点に対応する解放領域」とは、当該基準地点のみが解放される場合に設定される解放領域である。
【0132】
なお、照射範囲は、解放領域の少なくとも一部を含むように任意の方法で設定されてもよい。例えば、他の実施形態においては、ゲームシステム1は、解放領域をそのまま照射範囲としてもよいし、解放領域と地点影響範囲との少なくとも一方の内側となる範囲を照射範囲として設定してもよい。
【0133】
図19は、2つの基準地点が解放された場合におけるフィールドを上から見た図である。図19に示す状況は、図11に示す基準地点211および213が解放された状況である。
【0134】
図19に示すように2つの基準地点211および213が解放された場合、図11に示したように、図19に示す点線で示される解放領域216が設定される。また、上述のように、ゲームシステム1は、解放された基準地点に対応する地点影響範囲内で、かつ、解放領域内となる範囲を照射範囲に設定する。したがって、図19に示す例においては、基準地点211に対応する地点影響範囲251または基準地点213に対応する地点影響範囲252の少なくともいずれかの内側であり、かつ、解放領域216の内側となる範囲が照射範囲となる。なお、図19においては、照射範囲外を斜線領域で示している。
【0135】
図19に示す例においては、地点影響範囲251が、基準地点211のみが解放される場合における解放領域(すなわち、図18に示す領域212)よりも大きく設定され、地点影響範囲252が、基準地点213のみが解放される場合における解放領域よりも大きく設定される。そのため、2つの基準地点211および213が解放される場合には、1つの基準地点211または213のみが解放される場合には照射範囲とならない範囲も照射範囲となる。例えば、図19に示す例においては、地点影響範囲251および252が互いに一部が重複するように設定されているので、2つの基準地点211および213が解放される場合には、基準地点211から基準地点213にわたって連続する1つの照射範囲が設定されることとなる。上記によれば、プレイヤは、2つの基準地点211および213を解放することで、これら2つの基準地点211および213の間のフィールドを探索しやすくなる。
【0136】
一方、基準地点211および213とは異なる他の2つの基準地点については、当該基準地点に対応する地点影響範囲は、当該基準地点のみが解放されるときの解放領域と同じであるかまたは小さく設定されてもよい。この場合は、図19に示す例とは異なり、上記2つの基準地点が解放されても照射範囲が2つの基準地点にわたって連続するように設定されず、連続しない2つの照射範囲が設定されることとなる。
【0137】
上記のように、本実施形態においては、解放領域とは独立して地点影響範囲を設定し、解放領域と地点影響範囲とに基づいて照射範囲を設定することで、照射範囲の大きさおよび形状を自由に設定することができる。例えば、2つの基準地点が解放された場合において、当該2つの基準地点にわたって連続するように照射範囲を設定することも可能であるし、連続しない2つの照射範囲を設定することも可能である。
【0138】
なお、詳細は後述するが、本実施形態においては、解放イベントによって設定される照射範囲については、ゲームシステム1は、上述の環境光によって当該照射範囲を視認可能に表示する。
【0139】
上記のように、本実施形態においては、照射イベントの一例は、フィールド内に設定されたイベント発生位置(すなわち、基準位置)にプレイヤキャラクタが位置する場合に所定の操作入力が行われたことによって発生するイベント(すなわち、解放イベント)である。このとき、ゲームシステム1は、イベント発生位置を含む所定の範囲(具体的には、基準地点に基づく解放領域の範囲、または、地点影響範囲)が含まれるように照射範囲を設定する。これによれば、プレイヤキャラクタがイベント発生位置へ到達することで照射範囲を拡げていくゲームを提供することができる。このとき、照射範囲の形状は、上記のようにイベント発生位置からの距離に基づいた形状であってもよいし、他の実施形態においてはイベント発生位置を含む予め定められた形状であってもよい。
【0140】
本実施形態においては、アイテム配置イベントによっても照射範囲が設定される。図20は、光源アイテムが配置されたフィールドを示すゲーム画像の一例を示す図である。図20に示す状況は、フィールドにおける照射範囲外の位置に光源アイテム261が配置された状況である。光源アイテム261は、当該アイテムの位置に光源(具体的には、点光源)が設定されるオブジェクトである。本実施形態においては、プレイヤキャラクタ201は、所定の光源アイテムをフィールドに配置することができる。プレイヤキャラクタ201は、例えば、光源アイテムをプレイヤキャラクタ201の足下の地面においたり、投げたり、弓矢で飛ばしたりすることで光源アイテムを地面に配置する。本実施形態においては、プレイヤキャラクタ201は、アイテムとして光源アイテムを所有することができ、プレイヤの所望のタイミングで光源アイテムを地面に配置することができる。また、他の実施形態においては、例えばたいまつやろうそく等のアイテムが光源アイテムとして用いられてもよい。
【0141】
フィールドにおける地面に光源アイテム261が配置された場合、ゲームシステム1は、光源アイテムの周囲の範囲(「アイテム影響範囲」と呼ぶ。)を照射範囲として設定する。アイテム影響範囲は、例えば、光源アイテム261の位置から所定距離内の範囲である。図20に示す例においては、フィールドにおける照射範囲外の位置に光源アイテム261が配置されることによって、当該位置に基づくアイテム影響範囲が照射範囲となり、当該範囲内のフィールドが視認可能に表示されている。このように、本実施形態においては、プレイヤは、基準地点を解放することに加えて、光源アイテムを配置することによっても、フィールドにおける視認可能な範囲を拡げることができる。例えば、プレイヤは、未解放の基準地点に向かって暗闇の領域(すなわち、照射範囲外の領域)をプレイヤキャラクタ201が進んでいく際に、当該領域に光源アイテムを配置することで、視界を確保しながらフィールドを進むことができる。
【0142】
本実施形態においては、アイテム配置イベントによって設定された照射範囲(すなわち、アイテム影響範囲)については、ゲームシステム1は、光源アイテムの位置に設定される点光源を反映してゲーム画像の描画を行う。つまり、アイテム配置イベントによって設定された照射範囲については、上述の環境光に加えて上記点光源を考慮して描画が行われる。なお、ゲーム画像の描画処理の詳細については後述する。
【0143】
図21は、解放イベントによる照射範囲内に光源アイテムが配置された場合におけるフィールドを示すゲーム画像の一例を示す図である。この場合、光源アイテム261によるアイテム影響範囲については、環境光および点光源を反映して描画されるため、当該アイテム影響範囲外であって解放イベントによる照射範囲内よりも明るく表示される。なお、図21においては、照射範囲内であってアイテム影響範囲外の範囲を網がけ領域で示し、アイテム影響範囲を白色領域で示している。上記より、本実施形態によれば、プレイヤは、光源アイテム261が配置されたことを容易に認識することができる。
【0144】
なお、図21に示すように解放イベントによる照射範囲内に光源アイテム261が配置された場合も、当該照射範囲外に配置される場合と同様、ゲームシステム1は、光源アイテム261によるアイテム影響範囲を照射範囲に設定する。ただし、アイテム影響範囲の全体が照射範囲にすでに設定されている範囲である場合には、フィールドにおける照射範囲は結果的に変化しないこととなる。
【0145】
上記の3種類の照射イベント(すなわち、キャラクタ発光イベント、解放イベント、および、アイテム配置イベント)について説明したように、本実施形態においては、フィールド内には、当該フィールド内の位置によらず所定の明るさが設定される光源(具体的には環境光)が少なくとも設定される。そして、ゲームシステム1は、描画処理において、フィールドにおける少なくとも一部の地形オブジェクト(例えば、図17に示す地面のオブジェクト)について照射範囲に含まれる部分を、上記光源を反映して描画する。これによれば、照射範囲について一定の明るさが確保されるので、フィールドの地形の形状等によらず照射範囲を見やすく(例えば、地形の陰によって暗く表示されることなく)表示することができる。
【0146】
さらに本実施形態においては、上記環境光に加えて点光源が設定される。すなわち、ゲームシステム1は、所定のイベント(具体的には、解放イベント、および、アイテム配置イベント)の発生に応じてさらに点光源をフィールド内に設置する。また、ゲームシステム1は、描画処理において、フィールドにおける少なくとも一部の地形オブジェクトについて照射範囲に含まれる部分を、点光源をさらに反映して描画する。これによれば、上記所定のイベントが発生したこと、および、当該所定のイベントの発生によってフィールドがより明るくなったことをプレイヤに認識させやすくなる。
【0147】
なお、フィールドに設定される光源の種類は任意である。他の実施形態においては、例えば、点光源以外の形状の光源が環境光と共にフィールドに設定されてもよい。また、点光源が配置されず環境光のみがフィールドに設定されてもよい。
【0148】
また、本実施形態においては、上記所定のイベントは、所定のアイテム(具体的には光源アイテム)がフィールド上に配置されるイベントである。このとき、ゲームシステム1は、上記アイテムが配置された位置に基づいて、基準となる点の位置を設定し、当該基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲(すなわち、アイテム影響範囲)が含まれるように照射範囲を設定する。これによれば、プレイヤは、アイテムを配置することによって所望の位置に照射範囲を設定しやすくなる。
【0149】
なお、「所定のアイテムがフィールド上に配置されるイベント」とは、所定のアイテムが単にフィールドに配置されることによって発生するイベントに限らず、所定のアイテムが一定条件下でフィールドに配置されることによって発生するイベントをも含む意味である。例えば、「所定のアイテムがフィールド上に配置されるイベント」とは、フィールドに配置される当該アイテムに一定の衝撃が加えられたことを条件とするイベントであってもよい。上記条件は、所定のアイテムがフィールドに落下する際に落下によって一定の衝撃が加えられたことであってもよいし、フィールドに配置された所定のアイテムに対して他のオブジェクトによって一定の衝撃が加えられたことであってもよい。
【0150】
なお、点光源が設定されるイベントは、アイテム配置イベントに限らず、他の種類のイベントであってもよい。例えば、他の実施形態においては、ゲームシステム1は、キャラクタ発光イベントの発生に応じてプレイヤキャラクタ201の位置に点光源を設定し、キャラクタ影響範囲については当該点光源を反映して描画を行うことで、照射範囲を視認可能に表示してもよい。
【0151】
上記の3種類の照射イベント(すなわち、キャラクタ発光イベント、解放イベント、および、アイテム配置イベント)について説明したように、本実施形態においては、所定のイベント(具体的には、照射イベント)の発生に応じて、照射範囲の基準となる点を仮想空間内に設定する。そして、基準となる点からの距離に基づいて、当該距離がしきい値以下となる範囲が含まれるように照射範囲を設定する。これによれば、イベントの発生に応じて、当該イベントに応じた位置とその周囲を照射範囲に設定することができる。
【0152】
なお、上記「当該距離がしきい値以下となる範囲」とは、キャラクタ発光イベントにおいてはキャラクタ影響範囲であり、解放イベントにおいては地点影響範囲または解放領域の範囲であり、アイテム配置イベントにおいてはアイテム影響範囲である。
【0153】
また、上記「照射範囲の基準となる点」とは、本実施形態においては、キャラクタ発光イベントにおけるプレイヤキャラクタ201の位置、解放イベントにおける基準地点の位置、および、アイテム配置イベントにおける光源アイテムの位置である。ただし、上記「照射範囲の基準となる点」とは、厳密にこれらの位置である必要はなく、これらの位置に基づいて決定される位置であってよい。例えば、上記「照射範囲の基準となる点」は、プレイヤキャラクタ201の位置、基準地点の位置、あるいは、光源アイテムの位置から少しずれた位置であってもよい。
【0154】
また、本実施形態において、照射イベントの発生に応じて設定される照射範囲は、発生時から次第に拡がるように制御されてもよい。すなわち、ゲームシステム1は、照射イベントの発生に応じて上記の基準となる点が設定された後、照射範囲を判定するための上記しきい値を時間経過に応じて増加させることで照射範囲を拡大してもよい。なお、上記しきい値とは、キャラクタ発光イベントにおいては、キャラクタ影響範囲に設定される距離のしきい値であり、解放イベントにおいては、地点影響範囲に設定される距離のしきい値であり、アイテム配置イベントにおいては、アイテム影響範囲に設定される距離のしきい値である。これによれば、照射イベントが発生した際に、フィールドにおける明るい領域が次第に拡大していく様子を表示することができる。なお、上記において、照射範囲は、所定時間経過後に拡大を停止するように制御される。また、ゲームシステム1は、全ての照射イベントについて照射範囲を次第に拡大させる必要はなく、照射イベントのうち所定のイベント(例えば、解放イベントおよびアイテム配置イベント)について、照射範囲を次第に拡大させる制御を行うようにしてもよい。
【0155】
上述のように、本実施形態においては、所定のオブジェクトについては、当該オブジェクトが照射範囲外に位置する場合でも視認可能に表示される。以下では、このようなオブジェクトを「対象外オブジェクト」と呼ぶ。具体的には、本実施形態においては、対象外オブジェクトは、所定の種類のキャラクタ、および、自発光オブジェクトである。所定の種類のキャラクタとは、より具体的には、プレイヤキャラクタおよび敵キャラクタである。また、自発光オブジェクトとは、描画に関する設定において、自身が光っているように表示される設定が行われるオブジェクトである。例えば、上述の目印オブジェクト203は自発光オブジェクトである。
【0156】
詳細は後述するが、ゲーム画像を描画する際、ゲームシステム1は、対象外オブジェクトについては、照射範囲外に位置する場合であっても、上述の光源を反映しない描画設定でなく、当該対象外オブジェクトに予め設定される描画設定に基づいて描画を行う。本実施形態においては、所定の種類のキャラクタが照射範囲外に位置する場合には、当該キャラクタは陰が付された上で視認可能に描画される。したがって、所定の種類のキャラクタは、暗闇として表示される、照射範囲外の他のオブジェクトとは、区別可能に表示される。
【0157】
また、自発光オブジェクトについては、照射範囲外に位置する場合であっても、当該オブジェクトに設定されたエミッション等の描画設定に基づいて描画が行われる。その結果、例えば図15に示す目印オブジェクト203のように、自発光オブジェクトは、暗闇として表示される、照射範囲外の他のオブジェクトと区別可能に表示される。
【0158】
上記のように、本実施形態においては、照射イベントは、フィールド内において基準地点に関連付けて設定されたイベント発生位置にプレイヤキャラクタが位置する場合に所定の操作入力が行われたことによって発生するイベント(すなわち、解放イベント)である。なお、図15および図16に示すように、自発光オブジェクトである目印オブジェクトは、フィールドにおいて、複数の基準地点のそれぞれに対応する位置(例えば、基準地点の上方の位置)にそれぞれ配置される。ゲームシステム1は、目印オブジェクトが照射範囲に含まれるか否かにかかわらず、照射範囲に含まれない他のオブジェクトと区別可能な表示となるように当該目印オブジェクトを描画する。これによれば、プレイヤは、目印オブジェクトを目標にすることで、照射範囲外の基準地点に向かってプレイヤキャラクタを移動させやすくなる。
【0159】
[2-3.画像生成処理]
次に、フィールドのうち照射範囲外の部分を暗闇として(すなわち、視認不可能または視認困難な態様で)表示されるゲーム画像の生成方法の一例について説明する。本実施形態においては、ゲームシステム1は、照射範囲内のオブジェクトについては、フィールドに設定される光源を反映して描画を行う一方、照射範囲外のオブジェクト(ただし、上記の対象外オブジェクトを除く)については、光源を反映せず、当該オブジェクトに対応する画素を黒色で描画する。これによれば、照射範囲外のオブジェクトを視認不可能にすることができ、フィールドを探索するために基準地点を解放する動機付けをプレイヤに効果的に与えることができる。以下、ゲーム画像の生成方法の具体例について説明する。
【0160】
本実施形態では、ゲームシステム1は、ディファードレンダリング(ディファードシェーディング、あるいは、遅延シェーディングとも言う)に基づく手法でゲーム画像の描画を行う。すなわち、ゲームシステム1は、1フレームの間に以下に説明する第1~第3の段階を経て描画処理を実行する。
【0161】
第1の段階において、ゲームシステム1は、仮想空間内の各オブジェクト(キャラクタオブジェクトや地形オブジェクトを含む)について描画に用いられる情報をGバッファ(ジオメトリバッファ)に書き込む。Gバッファには、描画される画素ごとに、例えば、当該画素に対応するポリゴンの法線の情報、および、当該画素に対応するポリゴンに設定される色の情報等が書き込まれる。本実施形態においては、これらの情報以外にさらに、画素に対応するフィールド上の位置を示す座標や、対象外オブジェクトが描画される画素であることを示す情報等がGバッファに格納される。また、第1の段階において、ゲームシステム1は、フィールド上の位置の深度(奥行き)情報を、当該位置に対応する画素ごとに深度バッファに書き込む。
【0162】
第2の段階において、ゲームシステム1は、Gバッファおよび深度バッファに書き込まれた情報、および、フィールドに設定される光源の情報に基づいて、ライティングに関する情報をライトバッファに書き込む。ライトバッファには、例えば、描画される画素ごとに、対応するフィールド上の位置の明るさを示す情報が書き込まれる。なお、他の実施形態においては、ゲームシステム1は、ライティングに関する計算を第2の段階で行うものとするが、他の実施形態においては、ライティングに関する計算は、フレームバッファへの描画を行う後述の第3の段階で行われてもよい。
【0163】
また、本実施形態においては、第2の段階において、ゲームシステム1は、暗闇マスクのデータを生成する。暗闇マスクは、描画される画素ごとに対応するフィールド上の位置が、暗闇として描画される位置(すなわち、照射範囲外の位置)であるか否か、もしくは暗闇として描画される度合いを画素ごとに示すデータである。本実施形態においては、暗闇マスクは、暗闇を表す色(上述のように、本実施形態においては黒色)で描画される度合いを示す暗闇マスク値を画素ごとに示す。例えば、暗闇マスク値は、0以上1以下の値であり、暗闇を表す色で描画される画素については1に設定され、暗闇を表す色が反映されない画素については0に設定される。また、暗闇マスク値が中間値(すなわち、0より大きく1未満である値)となる場合、中間値は、暗闇を表す色が当該画素に反映される度合いが大きいほど大きい値をとる。本実施形態においては、照射範囲外の位置に対応する画素については、暗闇マスク値は1に設定され、照射範囲内の位置に対応する画素については、暗闇マスク値は1未満の値に設定される。したがって、暗闇マスクは、フィールドにおける照射範囲を示すデータであると言うことができる。詳細は後述するが、当該暗闇マスクは、仮想空間内の照射範囲と、Gバッファに記憶された、フィールド上の位置を示す座標データ等に基づいて生成される。さらに、上述の対象外オブジェクトが描画される画素に対応する画素については、暗闇を反映しない値とする。なお、他の実施形態においては、照射範囲外の位置に対応する画素については、暗闇マスク値が所定値以上(この所定値は、0より大きく1より小さい値である)に設定され、照射範囲内の位置に対応する画素については、暗闇マスク値は当該所定値未満の値に設定されてもよい。また、本実施形態においては、暗闇マスク値は0から1までの範囲の多値の値であるとするが、他の実施形態においては、暗闇マスク値は0または1の2値の値であってもよい。
【0164】
第3の段階において、ゲームシステム1は、各バッファ(すなわち、Gバッファ、深度バッファ、および、ライトバッファ)に書き込まれた情報および暗闇マスクに基づいて、光源による光の影響および暗闇が反映されたフィールドを示すフィールド画像の画素値をフレームバッファに書き込む。すなわち、ゲームシステム1は、Gバッファとライトバッファの情報に基づいた、仮想空間内の光源が反映された画素値に、暗闇マスクに基づいて黒色が上書きされた画素値をフレームバッファに書き込む。
【0165】
図22は、フレームバッファに書き込まれるフィールド画像を生成する方法の一例を示す図である。図22に示すように、フィールド画像の各画素の画素値は、Gバッファに記憶される色の情報と、ライトバッファに記憶される明るさの情報と、暗闇マスクの暗闇マスク値とに基づいて算出される。まず、ライトバッファに記憶される明るさの情報を反映することで、光源による光が反映されたフィールド画像を得ることができる。すなわち、環境光や点光源による光が当たっているように表現されたフィールド画像を得ることができる。さらに、暗闇マスクを用いることで、照射範囲外については暗闇で表現されたフィールド画像を生成することができる(図22参照)。以上によって、ゲームシステム1は、照射範囲内については環境光や点光源による光が当たっているように表現されるとともに、照射範囲外については暗闇で表現されたフィールド画像を得ることができる。
【0166】
図22に示す暗闇マスクについては、暗闇マスク値が1である位置を黒色で示し、暗闇マスク値が0である位置を白色で示し、暗闇マスク値が中間値となる位置については、値が大きいほど黒色に近づくように灰色で示している。キャラクタ発光イベントやアイテム配置イベントに基づく照射範囲に関しては、暗闇マスク値は、照射範囲の基準点から所定距離内の位置に対応する画素については0となり、基準点から当該所定距離より離れた位置に対応する画素については、基準点からの距離に応じて次第に大きくなり、照射範囲外の位置に対応する画素については1となるように、設定される。なお、照射範囲の基準点とは、照射範囲の基準となる位置であり、具体的には、解放イベントに基づく照射範囲については基準位置であり、キャラクタ発光イベントに基づく照射範囲についてはプレイヤキャラクタの位置であり、アイテム配置イベントに基づく照射範囲については光源アイテムの位置である。
【0167】
解放イベントに基づく照射範囲については、ゲームシステム1は、暗闇マスク値を算出するために用いられる2次元範囲データを算出し、当該2次元範囲データと、Gバッファに記憶された、フィールド上の位置を示す座標データのうち、水平面成分とに基づいて暗闇マスクを生成する。2次元範囲データは、上述のフィールド対応平面における各2次元位置について、暗闇マスク値を算出するために用いられる度合い値を示すデータである。2次元範囲データは、フィールドにおける照射範囲を示すデータであると言うことができる。なお、本実施形態においては、照射範囲を示すデータとして、2次元平面上での位置に関する上記2次元範囲データを生成するものとするが、他の実施形態においては、照射範囲を示すデータは、3次元のフィールドの位置を示すデータであってもよい。
【0168】
上記度合い値は、暗闇マスク値と同様、描画処理において暗く描画する度合いを示す値である。度合い値は、例えば、照射範囲の基準点において最大となり、基準点からの距離に応じて次第に小さくなり、照射範囲外で0となるように変化する。したがって、度合い値は、照射範囲の基準点からの距離に応じて減衰する値に基づいて算出することができる。本実施形態においては、上記解放イベントに基づく照射範囲は、上述の合計判定値に基づいて設定される解放領域と、基準地点からの距離に基づく地点影響範囲とに基づいて設定される。そのため、解放イベントに基づく照射範囲についての度合い値は、上述の合計判定値と、基準地点からの距離に応じて減衰する値とに基づいて算出することができる。
【0169】
次に、ゲームシステム1は、各画素における暗闇マスク値を、各画素に対応する各位置における度合い値に基づいて算出する。例えば、上記度合い値を0以上1以下の範囲にスケーリングし、スケーリングされた値を1から減算した値として暗闇マスク値を得ることができる。以上のようにして算出される暗闇マスク値を用いることで、解放イベントに基づく照射範囲を反映した暗闇マスクを生成することができる。なお、解放領域の範囲と地点影響範囲とを同じにする場合は、上述のマップマスクが2次元範囲データとして用いられてもよい。
【0170】
上記のように、本実施形態においては、ゲームシステム1は、解放イベントの発生に基づいて、フィールドにおける照射範囲を平面的に示す2次元範囲データを、フィールドのうちイベント発生位置(すなわち、基準地点の位置)に対応する範囲が少なくとも照射範囲となるよう生成し、2次元範囲データに基づいて暗闇マスクを生成する。
【0171】
また、本実施形態においてはさらに、ゲームシステム1は、描画処理における上記第2の段階において、プレイヤキャラクタの位置に基づく照射範囲と、光源アイテムについて設定される点光源の位置に基づく照射範囲とを反映するように、暗闇マスクを生成する。これによって、各照射イベント(すなわち、解放イベント、キャラクタ発光イベント、および、アイテム配置イベント)を反映した暗闇マスクが生成される。
【0172】
なお、暗闇マスク値の算出方法は任意であり、上記の方法に限らない。例えば、他の実施形態においては、ゲームシステム1は、上記2次元範囲データを生成せずに、描画処理において暗闇マスクを直接生成してもよい。すなわち、ゲームシステム1は、描画処理の第2の段階において、画素に対応するフィールド上の各位置についての合計判定値と、基準地点からの距離に応じて減衰する値とに基づいて、解放イベントに基づく照射範囲を反映した暗闇マスクを生成してもよい。
【0173】
上記のように、本実施形態においては、ゲームシステム1は、描画処理において、少なくとも一部の地形オブジェクトに関して、画素ごとに、当該地形オブジェクトのうち当該画素に対応する位置が照射範囲に含まれるか否かを少なくとも示すマスクデータ(すなわち、暗闇マスクのデータ)を生成する。そして、マスクデータにおいて上記地形オブジェクトの位置が照射範囲に含まれることが示される画素については、光源を反映してフレームバッファへの描画を行う。また、マスクデータにおいて上記地形オブジェクトの位置が照射範囲に含まれないことが示される画素については、所定の色によってフレームバッファへの描画を行う。これによれば、マスクデータを用いることによって、照射範囲外が視認不可能または視認困難な態様で表現されるフィールド画像を生成することができる。所定の色は、たとえば黒色である。ただし黒色に限らず、グレーであったり、他の色であったりしてもよい。また、単色に限らず、所定の模様を有する画像として描画されてもよい。
【0174】
また、本実施形態においては、上記マスクデータは、上記所定の色が描画される度合いを画素ごとに示すデータである。ゲームシステム1は、描画処理において、光源を反映して算出される画素値(すなわち、Gバッファに記憶される色の情報と、ライトバッファに記憶される明るさの情報とに基づく画素値)に対して、上記度合いに応じて所定の色を合成した画素値をフレームバッファに書き込む。これによれば、暗闇の度合いを多段階で表現することができる。例えば、上述のように、照射範囲の基準点において最大となり、基準点からの距離に応じて次第に小さくなり、照射範囲外で0となるように度合い値を設定することによって、照射範囲の境界において次第に暗闇が濃くなっていくようなフィールド画像を生成することができる(図22参照)。
【0175】
また、本実施形態においては、ゲームシステム1は、フィールドの高さ方向以外の座標成分に対応する2次元の座標ごとに、描画処理において暗く描画する度合いを示す度合い値を示す2次元範囲データを生成する。ゲームシステム1は、上記合計判定値と、上記各座標において、基準地点に対応する2次元的な位置において基準値となり、当該2次元的な位置から当該座標への2次元的な距離に応じて減衰する値とに基づいて度合い値を算出する。描画処理においては、フレームバッファに描画する画素ごとに、フィールド内に設定された光源を反映して算出される画素値に対して、上記2次元範囲データが示す、当該画素に対応する2次元の座標における度合い値に応じて(当該度合い値に基づく暗闇マスク値に応じて、とも言うことができる。)所定の色(すなわち、黒色)を合成した画素値がフレームバッファに書き込まれる。上記によれば、フィールドを示す画像において上記所定の色を段階的に反映させることができる。これによって、例えば照射範囲の境界付近において次第に暗くなるようにフィールド画像を生成することができるので、より自然に見えるフィールド画像を生成することができる。
【0176】
本実施形態においては、ゲームシステム1は、上述の対象外オブジェクトについては、暗闇を表す黒色ではなく、オブジェクトごとに設定されている方法で描画を行う。具体的には、上記第1の段階において、ゲームシステム1は、上記の対象外オブジェクトに関する除外マスクのデータをGバッファに書き込む。除外マスクは、対象外オブジェクトの位置に対応する画素を示すデータである。除外マスクは、対象外オブジェクトに対応する画素について上記暗闇マスクの適用を除外することを示すものであると言うことができる。なお、ゲームシステム1は、対象外オブジェクトについて設定されている描画方法(例えば、自発光することや、所定の陰が付されること)を示すデータをGバッファに書き込んでおく。
【0177】
また、描画処理における上述の第3の段階において、ゲームシステム1は、上記除外マスクが示す画素については、暗闇マスクの暗闇マスク値にかかわらず、対象外オブジェクトについて設定された方法で描画を行う。これによって、対象外オブジェクトについては照射範囲外であっても暗闇として描画されることなく、設定された方法で描画されることとなる。なお、上記第2の段階において、上記除外マスクが示す画素については暗闇ではないことを示す値を暗闇マスクに書き込むようにしてもよい。
【0178】
上記のように、本実施形態においては、ゲームシステム1は、描画処理における第1の段階において、対象外オブジェクトについて、Gバッファおよび深度バッファへの書き込みを画素ごとに行わせるとともに、上記除外マスクのデータを生成する。そして、描画処理における第3の段階において、ゲームシステム1は、除外マスクのデータが示す画素について、地形オブジェクトのうち照射範囲に含まれない部分と対象外オブジェクトとを区別して視認することができる方法で(例えば、自発光しているように見える方法で、あるいは、所定の陰が付される方法で)描画を行う。これによれば、ゲームシステム1は、対象外オブジェクトが照射範囲外であっても視認可能な態様で当該対象外オブジェクトを表示することができる。
【0179】
以上のように、本実施形態においては、ゲームシステム1は、いわゆるディファードレンダリングに基づいた描画処理によって、照射範囲外のオブジェクトを暗闇として描画する。すなわち、ゲームシステム1は、第1の段階において、フィールド内の少なくとも一部の地形オブジェクトについてGバッファおよび深度バッファへの書き込みを行う。第2の段階において、ゲームシステム1は、画素ごとに、当該画素に対応する位置と、深度バッファに記憶された深度値と、照射範囲とに基づいて、暗闇マスクデータを生成する。第3の段階において、ゲームシステム1は、少なくともGバッファに記憶されるデータと、暗闇マスクデータとに基づいてフレームバッファへの描画を行う。上記によれば、ゲームシステム1は、ディファードレンダリングの技術を応用して、照射範囲外のオブジェクトを視認不可能または視認困難な態様で描画することができる。
【0180】
なお、他の実施形態においては、照射範囲外のオブジェクトを暗闇として描画するための方法は任意であり、ディファードレンダリングに基づく描画処理に限られない。他の実施形態においては、フォワードレンダリング(前方シェーディングとも言う)に基づいて描画処理が実行されてもよい。すなわち、ゲームシステム1は、描画処理において、少なくとも一部の地形オブジェクト(例えば、上記対象外オブジェクトを除くオブジェクト)に関して、照射範囲に含まれるか否かを画素ごとに判定し、照射範囲に含まれる画素については、光源を反映してフレームバッファへの描画を行い、照射範囲に含まれない画素については、所定の色(例えば、黒色)によってフレームバッファへの描画を行うようにしてもよい。上記によれば、ゲームシステム1は、フォワードレンダリングに基づいて、照射範囲外のオブジェクトを視認不可能または視認困難な態様で描画することができる。
【0181】
[3.ゲームシステムにおける処理の具体例]
次に、図23図27を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0182】
図23は、ゲームシステム1における情報処理に用いられる各種データを記憶する記憶領域の一例を示す図である。図23に示す各記憶領域は、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に設けられる。図23に示すように、上記記憶媒体には、ゲームプログラムが記憶されるゲームプログラム領域が設けられる。ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、図24に示すゲーム処理)を実行するためのものである。また、上記記憶媒体には、上述のGバッファ、深度バッファ、ライトバッファ、および、フレームバッファが設けられる。
【0183】
また、上記記憶媒体には、上述の暗闇マスクのデータを記憶するための暗闇マスクデータ領域が設けられる。なお、上述の除外マスクのデータはGバッファに記憶される。さらに、上記記憶媒体には、ゲーム処理において用いられる各種のデータを記憶するための処理データ領域が設けられる。処理データ領域には、例えば、上述のマップマスクのデータ等が記憶される。また例えば、処理データ領域には、ゲームに登場する各種オブジェクト(例えば、プレイヤキャラクタや光源アイテム)に関するオブジェクトデータ(例えば、オブジェクトの位置および向きを示すデータ)が記憶される。
【0184】
図24は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。ゲーム処理の実行は、例えば、上記ゲームプログラムの実行中において、プレイヤの指示に応じてゲームが開始されたことに応じて開始される。なお、本実施形態においては、ゲーム処理においては、フィールドを示すフィールド画像が表示されるフィールドモードと、上述のマップ画像がディスプレイ12の全体に表示されるマップ表示モードと、メニュー画像が表示されるメニュー表示モードという処理モードがある。ゲームの開始時における処理モードは任意であるが、ここでは例えばフィールドモードに設定されるものとする。
【0185】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、図24に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、図24に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、図24に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0186】
また、プロセッサ81は、図24に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0187】
図14に示すステップS1において、プロセッサ81は、プレイヤによる指示を示す上記操作データを取得する。すなわち、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを取得する。ステップS1の次にステップS2の処理が実行される。
【0188】
ステップS2において、プロセッサ81は、解放イベント等のイベントシーンの実行中であるか否かを判定する。上述のように、本実施形態においては、解放イベントが発生したことに応じて、解放イベントを示すイベントシーンのアニメーションの再生が開始される(後述するステップS26参照)。ステップS2においては、プロセッサ81は、上記イベントシーンのアニメーションが再生中であるか否かを判定する。ステップS2の判定結果が肯定である場合、ステップS3の処理が実行される。一方、ステップS2の判定結果が否定である場合、ステップS4の処理が実行される。
【0189】
ステップS3において、プロセッサ81は、実行中のイベントシーンを進行させる。すなわち、プロセッサ81は、上記イベントシーンのアニメーションの画像をディスプレイ12に表示させる。なお、1回のステップS3では、1フレーム分の画像が表示され、イベントシーンの実行中においてはステップS3の処理が繰り返し実行されることで、上記のアニメーションが再生されることとなる。イベント時の描画処理については、フィールド画像が表示されているフィールドモード中と同様の処理が実行される場合もあるが、異なる場面を表現する場合において異なる描画処理が行われてもよい。この異なる描画処理の具体的な内容は任意であり、詳細は省略する。なお、本実施形態においては、ゲームシステム1によって生成された画像はディスプレイ12に表示されるものとするが、当該画像は他の表示装置(例えば、上述した据置型モニタ)に表示されてもよい。ステップS3の次に、後述するステップS12の処理が実行される。
【0190】
ステップS4において、プロセッサ81は、マップ画像を表示するマップ表示モード中であるか否かを判定する。詳細は後述するが、本実施形態においては、フィールド画像が表示されているフィールドモード中においてプレイヤによってマップ表示指示が行われたことに応じて、マップ表示モードが開始される(後述するステップS22参照)。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、ステップS6の処理が実行される。
【0191】
ステップS5において、プロセッサ81は、マップ画像をディスプレイ12に表示させる。すなわち、プロセッサ81は、上記“[2-1.マップの開放領域の設定]”で述べた方法に従ってマップ画像を生成し、生成されたマップ画像をディスプレイ12に表示させる。ステップS5においては(すなわち、マップ表示モードにおいては)、フィールド画像は表示されずにマップ画像がディスプレイ12の全領域に表示される(図10および図12参照)。また、マップ表示モードにおいて、プロセッサ81は、マップ画像の表示を終了する旨の指示を受け付け、当該指示が行われた場合、処理モードをフィールドモードに移行する。この場合、次に実行される上記ステップS4における判定結果が否定となり、後述のステップS11においてフィールド画像が表示される。ステップS5の次に、後述するステップS12の処理が実行される。
【0192】
ステップS6において、プロセッサ81は、メニュー画像を表示するメニュー表示モード中であるか否かを判定する。詳細は後述するが、本実施形態においては、フィールド画像が表示されているフィールドモード中においてプレイヤによってメニュー表示指示が行われたことに応じて、メニュー表示モードが開始される(後述ステップS22参照)。ステップS6の判定結果が肯定である場合、ステップS7の処理が実行される。一方、ステップS6の判定結果が否定である場合、ステップS8の処理が実行される。
【0193】
ステップS7において、プロセッサ81は、メニュー画像をディスプレイ12に表示させる。ここで、本実施形態においては、プロセッサ81は、メニュー表示モードにおいて、各種の操作のうち少なくとも、プレイヤキャラクタの装備を変更する指示のための操作入力を受け付ける。すなわち、プレイヤは、メニュー画像においてプレイヤキャラクタの装備を変更することができ、例えば、上述の光る服をプレイヤキャラクタに装備させることができる。なお、図24に示すフローチャートにおいては省略するが、メニュー表示モードにおいては、メニュー画像に対する各種の指示(例えば、プレイヤキャラクタの装備を変更する指示や、アイテムを使用する指示等)のための操作入力が受け付けられ、プロセッサ81は、当該操作入力に応じてメニュー画像の内容を適宜変更して表示する。また、メニュー表示モードにおいて、プロセッサ81は、メニュー画像の表示を終了する旨の指示を受け付け、当該指示が行われた場合、処理モードをフィールドモードに移行する。この場合、次に実行される上記ステップS6における判定結果が否定となり、後述のステップS11においてフィールド画像が表示される。ステップS7の次に、後述するステップS12の処理が実行される。
【0194】
ステップS8において、プロセッサ81は、プレイヤ関連制御処理を実行する。プレイヤ関連制御処理においては、プレイヤによる操作入力に基づいて各種の処理(例えば、プレイヤキャラクタに関する制御処理)が実行される。プレイヤ関連制御処理の詳細については、後述する図25に示すフローチャートで説明する。ステップS8の次に、ステップS9の処理が実行される。
【0195】
ステップS9において、プロセッサ81は、他オブジェクト制御処理を実行する。他オブジェクト制御処理においては、プレイヤキャラクタ以外の他のオブジェクト(例えば、敵キャラクタや、上述の光源アイテム等)の制御が行われる。他オブジェクト制御処理の詳細については、後述する図26に示すフローチャートで説明する。ステップS9の次に、ステップS10の処理が実行される。
【0196】
ステップS10において、プロセッサ81は、フィールドを示すフィールド画像の描画処理を実行する。フィールド画像の描画処理においては、上述したように、照射範囲外が暗闇で表されるフィールド画像が生成される。描画処理の詳細については、後述する図27に示すフローチャートで説明する。ステップS10の次に、ステップS11の処理が実行される。
【0197】
ステップS11において、プロセッサ81は、ステップS10で生成されたフィールド画像をディスプレイ12に表示させる。なお、図15等において示したように、フィールドモードにおいては、プロセッサ81は、フィールド画像に加えてマップ画像をさらに生成し、フィールド画像に重ねてマップ画像を表示するようにしてもよい。ステップS11の次に、ステップS12の処理が実行される。
【0198】
ステップS12において、プロセッサ81は、ゲームを終了するか否かを判定する。例えば、プロセッサ81は、ゲームを終了するための所定の操作入力がプレイヤによって行われた場合、ゲームを終了すると判定する。ステップS12の判定結果が否定である場合、ステップS1の処理が再度実行される。以降、ステップS12においてゲームを終了すると判定されるまで、ステップS1~S12の一連の処理が繰り返し実行される。一方、ステップS12の判定結果が肯定である場合、プロセッサ81は、図24に示すゲーム処理を終了する。
【0199】
図25は、図24に示すステップS8のプレイヤ関連制御処理の詳細な流れの一例を示すサブフローチャートである。プレイヤ関連制御処理においては、まずステップS21において、プロセッサ81は、上記ステップS1において取得された操作データに基づいて、上述の処理モードを切り替える指示がプレイヤによって行われたか否かを判定する。処理モードを切り替える指示とは、具体的には、マップ画像を表示する旨の指示、または、メニュー画像を表示する旨の指示である。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、ステップS23の処理が実行される。
【0200】
ステップS22において、プロセッサ81は、ステップS21で行われた指示に応じて処理モードを切り替える。すなわち、マップ画像を表示する旨の指示が行われた場合、プロセッサ81は、処理モードをマップ表示モードに切り替える。この場合、次に実行される上記ステップS4における判定結果が肯定となり、ステップS5においてマップ画像を表示する処理が実行される。また、メニュー画像を表示する旨の指示が行われた場合、プロセッサ81は、処理モードをメニュー表示モードに切り替える。この場合、次に実行される上記ステップS6における判定結果が肯定となり、ステップS7においてメニュー画像を表示する処理が実行される。ステップS22の後、プロセッサ81はプレイヤ関連制御処理を終了する。
【0201】
ステップS23において、プロセッサ81は、プレイヤキャラクタに対する操作入力が受け付けられる操作受付期間であるか否かを判定する。ここで、本実施形態においては、プレイヤキャラクタに対する操作入力に応じてプレイヤキャラクタが所定の動作(例えば、後述するステップS30において制御される動作)を行っている動作期間は、操作受付期間から外されるものとする。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、後述するステップS33の処理が実行される。
【0202】
ステップS24において、プロセッサ81は、上記ステップS1において取得された操作データに基づいて、基準地点を解放するための操作入力が行われたか否かを判定する。すなわち、プロセッサ81は、基準地点の近傍にプレイヤキャラクタが位置する状態において、「しらべる」のコマンドを実行するための入力が行われたか否かを判定する。ステップS24の判定結果が肯定である場合、ステップS25の処理が実行される。一方、ステップS24の判定結果が否定である場合、後述するステップS29の処理が実行される。
【0203】
ステップS25において、プロセッサ81は、上記操作入力が行われた基準地点を解放状態とする。例えば、プロセッサ81は、メモリに記憶されている、当該基準地点の状態を示すデータを、解放済みであることを示す内容に更新する。また、プロセッサ81は、基準地点を示す目印オブジェクトの位置に点光源を設定する。これによって、後述の描画処理においては、目印オブジェクトの周囲に光が当たるように描画が行われることとなる。ステップS25の次にステップS26の処理が実行される。
【0204】
ステップS26において、プロセッサ81は、解放イベントが発生した場合におけるイベントシーンを開始する。すなわち、プロセッサ81は、解放された基準地点の周囲が次第に明るくなっていく様子を示すアニメーションの再生を開始する。ステップS26の処理以降、上記アニメーションの再生が終了するまでは、上記ステップS2における判定結果は肯定となり、イベントシーンの実行が継続される。ステップS26の次にステップS27の処理が実行される。
【0205】
ステップS27において、プロセッサ81は、ステップS26で解放された基準地点に基づいて上述の解放領域を設定する。すなわち、プロセッサ81は、上記“[2-1.マップの開放領域の設定]”で述べた方法に従って設定される解放領域を示すマップマスクを生成する。具体的には、ゲーム処理の開始時においてメモリにはマップマスクのデータが記憶されており、プロセッサ81は、設定された解放領域を示すように当該データを更新する。ステップS27の処理によって、フィールドのうち、解放された基準地点を含む領域が解放領域に設定されることとなる。ステップS27の次にステップS28の処理が実行される。
【0206】
ステップS28において、プロセッサ81は、ステップS26で解放された基準地点に基づいて上述の照射範囲を設定する。すなわち、プロセッサ81は、上記“[2-2.照射範囲の設定]”で述べた方法に従って設定される照射範囲を示す上述の2次元範囲データを生成する。具体的には、ゲーム処理の開始時においてメモリには2次元範囲データが記憶されており、プロセッサ81は、設定された照射範囲を示すように当該データを更新する。ステップS27の処理によって、フィールドのうち、解放された基準地点を含む領域が照射範囲に設定されることとなる。ステップS28の後、プロセッサ81はプレイヤ関連制御処理を終了する。なお、ステップS25、S27、S28の処理は、このタイミングに限らず、その後のイベントシーン中の所定のタイミングで行われてもよい。
【0207】
ステップS29において、プロセッサ81は、上記ステップS1において取得された操作データに基づいて、プレイヤキャラクタに対するアクション指示のための操作入力が行われたか否かを判定する。アクション指示は、プレイヤキャラクタに例えば攻撃動作やジャンプ動作等を行わせるための指示である。ステップS29の判定結果が肯定である場合、ステップS30の処理が実行される。一方、ステップS29の判定結果が否定である場合、後述するステップS31の処理が実行される。
【0208】
ステップS30において、プロセッサ81は、ステップS29で行われたアクション指示に応じた動作をプレイヤキャラクタに開始させる。ステップS30でプレイヤキャラクタが動作を開始した後においては、後述するステップS33の処理によって、一定期間にわたって当該動作を行うようにプレイヤキャラクタが制御される。ステップS30の後、プロセッサ81はプレイヤ関連制御処理を終了する。
【0209】
ステップS31において、プロセッサ81は、上記ステップS1において取得された操作データに基づいて、プレイヤキャラクタに対する移動指示のための操作入力が行われたか否かを判定する。移動指示は、フィールド上においてプレイヤキャラクタを移動させる動作を行わせるための指示である。ステップS31の判定結果が肯定である場合、ステップS32の処理が実行される。一方、ステップS31の判定結果が否定である場合、ステップS33の処理が実行される。
【0210】
ステップS32において、プロセッサ81は、ステップS29で行われた移動指示に応じてプレイヤキャラクタをフィールド上において移動する動作をさせる。ステップS32の後、プロセッサ81はプレイヤ関連制御処理を終了する。
【0211】
ステップS33において、プロセッサ81は、ステップS30で開始された動作の進行や、何も入力されていない場合の動作等、各種の動作を行うようにプレイヤキャラクタを制御する。なお、1回のステップS33においては、プロセッサ81は、1フレーム時間分の動作の進行を行うようにプレイヤキャラクタを制御する。ステップS33の処理が複数フレームにわたって繰り返し実行されることで、アクション指示に応じた一連の動作をプレイヤキャラクタが行うこととなる。なお、プレイヤキャラクタが行うべき動作がプレイヤによって指示されていない場合(例えば、ステップS30で開始された動作が終了している場合)には、ステップS33において、プロセッサ81は、プレイヤキャラクタに動作を行わせなくてもよいし、プレイヤキャラクタの挙動を自然に見せるための動作(例えば、辺りを見回したり、体を揺らしたりする動作)を行わせてもよい。ステップS33の後、プロセッサ81はプレイヤ関連制御処理を終了する。
【0212】
図26は、図24に示すステップS9の他オブジェクト制御処理の詳細な流れの一例を示すサブフローチャートである。他オブジェクト制御処理においては、まずステップS41において、プロセッサ81は、プレイヤキャラクタを除く制御対象となる各オブジェクトについて処理を完了したか否かを判定する。すなわち、上記各オブジェクトが、後述するステップS42において指定済みであるか否かを判定する。ステップS41の判定結果が否定である場合、ステップS42の処理が実行される。一方、ステップS41の判定結果が肯定である場合、プロセッサ81は他オブジェクト制御処理を終了する。
【0213】
ステップS42において、プロセッサ81は、制御対象となるオブジェクトのうちから、後述のステップS43の処理対象となる1つのオブジェクトを指定する。なお、ステップS42においては、今回のステップS41~S45の処理ループにおいてまだ処理対象となっていないオブジェクトが指定される。ステップS42の次に、ステップS43の処理が実行される。
【0214】
ステップS43において、プロセッサ81は、ステップS42で指定されたオブジェクトの動作を制御する。例えば、当該オブジェクトが敵キャラクタである場合、ゲームプログラムにおいて定められたアルゴリズムに従って敵キャラクタの動作を制御する。また例えば、当該オブジェクトが光源アイテムである場合、プレイヤキャラクタ等の他のキャラクタによる動作に応じて(例えば、プレイヤキャラクタが光源アイテムを投げる動作に応じて)光源アイテムの移動を制御する。ステップS43の次に、ステップS44の処理が実行される。
【0215】
ステップS44において、プロセッサ81は、上記ステップS43の処理結果に基づいて、アイテム配置イベントが発生したか否かを判定する。例えば、光源アイテムに関して、プレイヤキャラクタによって投げられた光源アイテムがフィールドにおける地面に配置された場合、プロセッサ81は、アイテム配置イベントが発生したと判定する。ステップS44の判定結果が肯定である場合、ステップS45の処理が実行される。一方、ステップS44の判定結果が否定である場合、ステップS41の処理が再度実行される。
【0216】
ステップS45において、プロセッサ81は、アイテム配置イベントの発生の要因となった光源アイテムの位置に点光源を設定する。これによって、後述の描画処理においては、光源アイテムの周囲に光が当たるように描画が行われることとなる。ステップS45の次に、ステップS41の処理が再度実行される。以降、ステップS41において制御対象となる全てのオブジェクトについて処理を完了したと判定されるまで、ステップS41~S45における一連の処理が繰り返し実行される。
【0217】
図27は、図24に示すステップS10の描画処理の詳細な流れの一例を示すサブフローチャートである。描画処理においては、まずステップS51において、プロセッサ81は、上記“[2-3.画像生成処理]”で述べた第1の段階における処理が完了したか否かを判定する。すなわち、描画対象となる各オブジェクト(例えば、仮想カメラの視野範囲内のオブジェクト)についてGバッファへの書き込みが完了したか否かを判定する。ステップS51の判定結果が肯定である場合、後述のステップS56の処理が実行される。一方、ステップS51の判定結果が否定である場合、ステップS52の処理が実行される。
【0218】
ステップS52において、プロセッサ81は、描画対象となるオブジェクトのうちから、後述のステップS53の処理対象となる1つのオブジェクトを指定する。なお、ステップS52においては、今回のステップS51~S55の処理ループにおいてまだ処理対象となっていないオブジェクトが指定される。ステップS52の次に、ステップS53の処理が実行される。
【0219】
ステップS53において、プロセッサ81は、ステップS52で指定されたオブジェクトが上述の対象外オブジェクトであるか否かを判定する。ステップS53の判定結果が否定である場合、ステップS54の処理が実行される。一方、ステップS53の判定結果が肯定である場合、ステップS55の処理が実行される。
【0220】
ステップS54において、プロセッサ81は、ステップS52で指定されたオブジェクトに関する情報をGバッファおよび深度バッファに書き込む。すなわち、プロセッサ81は、当該オブジェクトのポリゴンに対応する画素について、当該ポリゴンの位置、法線、色等の情報をGバッファに書き込み、深度情報を深度バッファに書き込む。なお、ステップS54における処理は、従来のディファードレンダリングにおける処理と同様であってよい。ステップS54の次に、ステップS51の処理が再度実行される。
【0221】
一方、ステップS55において、プロセッサ81は、ステップS52で指定されたオブジェクトに関する情報をGバッファおよび深度バッファに書き込むとともに、当該オブジェクトが対象外オブジェクトであることを示す情報をGバッファに書き込む。すなわち、プロセッサ81は、対象外オブジェクトに関する上記除外マスクのデータをGバッファに書き込む。ステップS55の次に、ステップS51の処理が再度実行される。
【0222】
ステップS56において、プロセッサ81は、上記“[2-3.画像生成処理]”で述べた第2の段階における処理が完了したか否かを判定する。すなわち、ライトバッファおよび暗闇マスクにおける各画素への値の書き込みが完了したか否かを判定する。ステップS56の判定結果が肯定である場合、後述のステップS60の処理が実行される。一方、ステップS56の判定結果が否定である場合、ステップS57の処理が実行される。
【0223】
ステップS57において、プロセッサ81は、各画素のうちから、後述のステップS58の処理対象となる1つの画素を指定する。なお、ステップS57においては、今回のステップS56~S59の処理ループにおいてまだ処理対象となっていない画素が指定される。ステップS57の次に、ステップS58の処理が実行される。
【0224】
ステップS58において、プロセッサ81は、ステップS57において指定された画素についてライトバッファへの書き込みを行う。すなわち、プロセッサ81は、環境光、および、ステップS45で設定された点光源に基づいて、当該画素における明るさの情報等を算出し、算出された情報をライトバッファに書き込む。なお、ステップS58における処理は、従来のディファードレンダリングにおける処理と同様であってよい。ステップS58の次に、ステップS59の処理が実行される。
【0225】
ステップS59において、プロセッサ81は、ステップS57において指定された画素について暗闇マスクの生成(すなわち、暗闇マスク値の設定)を行う。具体的には、プロセッサ81は、上記“[2-3.画像生成処理]”で述べた方法に従って当該画素における暗闇マスク値を算出する。具体的には、ゲーム処理の開始時においてメモリには暗闇マスクのデータが記憶されており、プロセッサ81は、照射範囲が新たに設定されたことに応じて当該データを更新する。例えば、プロセッサ81は、上記ステップS28の処理によって解放イベントに基づく照射範囲が設定されている場合、上記2次元範囲データに基づいて暗闇マスクを更新する。また、上記ステップS7のメニュー表示処理が実行されるメニュー表示モードによってプレイヤキャラクタが光る服を装備している場合、プレイヤキャラクタの位置に基づくキャラクタ影響範囲内の位置に対応する画素が照射範囲となるように上記暗闇マスクを更新する。さらに、上記ステップS45の処理によって点光源が設定されている場合、光源アイテムの位置に基づくアイテム影響範囲内の位置に対応する画素が照射範囲となるように上記暗闇マスクを更新する。ステップS59の次に、ステップS56の処理が再度実行される。
【0226】
ステップS60において、プロセッサ81は、上記“[2-3.画像生成処理]”で述べた第3の段階における処理が完了したか否かを判定する。すなわち、フレームバッファにおける各画素への値の書き込みが完了したか否かを判定する。ステップS60の判定結果が肯定である場合、プロセッサ81は図27に示す描画処理を終了する。一方、ステップS60の判定結果が否定である場合、ステップS61の処理が実行される。
【0227】
ステップS61において、プロセッサ81は、各画素のうちから、後述のステップS62の処理対象となる1つの画素を指定する。なお、ステップS61においては、今回のステップS60~S62の処理ループにおいてまだ処理対象となっていない画素が指定される。ステップS61の次に、ステップS62の処理が実行される。
【0228】
ステップS62において、プロセッサ81は、ステップS61で指定された画素についての画素値を算出してフレームバッファに書き込む。すなわち、プロセッサ81は、各バッファ(すなわち、Gバッファ、深度バッファ、および、ライトバッファ)に書き込まれた情報および暗闇マスクに基づいて、上記“[2-3.画像生成処理]”で述べた方法に従って、当該画素における画素値を算出する。具体的には、プロセッサ81は、Gバッファ、深度バッファ、および、ライトバッファの情報に基づいて、光源による光の影響が反映された画素値を算出し、さらに、算出された画素値と、暗闇マスクにおける暗闇マスク値とに基づいて、暗闇を反映した画素値を算出する。これによって、光源による光の影響および暗闇が反映された画素値がフレームバッファに書き込まれることとなる。ステップS62の次に、ステップS60の処理が再度実行される。
【0229】
なお、上述したように、上記ステップS10の描画処理は、フォワードレンダリングに基づく方法で実行されてもよい。図28は、フォワードレンダリングに基づく方法で実行される描画処理の詳細な流れの一例を示すサブフローチャートである。ゲームシステム1は、ステップS10の描画処理として、図27に示す処理に代えて、図28に示す処理を実行してもよい。
【0230】
図28に示す描画処理においては、まずステップS71において、プロセッサ81は、描画対象となる各オブジェクト(例えば、仮想カメラの視野範囲内のオブジェクト)について描画が完了したか否かを判定する。ステップS71の判定結果が肯定である場合、プロセッサ81は、図28に示す描画処理を終了する。一方、ステップS71の判定結果が否定である場合、ステップS72の処理が実行される。
【0231】
ステップS72において、プロセッサ81は、描画対象となるオブジェクトのうちから、以降のステップS73~S81の処理対象となる1つのオブジェクトを指定する。なお、ステップS72においては、今回のステップS71~S81の処理ループにおいてまだ処理対象となっていないオブジェクトが指定される。ステップS72の次に、ステップS73の処理が実行される。
【0232】
ステップS73において、プロセッサ81は、ステップS72で指定されたオブジェクトが上述の対象外オブジェクトであるか否かを判定する。ステップS73の判定結果が肯定である場合、ステップS74の処理が実行される。一方、ステップS73の判定結果が否定である場合、ステップS75の処理が実行される。
【0233】
ステップS74において、プロセッサ81は、ステップS52で指定されたオブジェクトについて(すなわち、当該オブジェクトに対応する各画素について)、当該オブジェクトに予め設定される描画設定に基づいて描画を行う。これによって、当該オブジェクトが自発光オブジェクトである場合には、当該オブジェクト自身が光って見えるように描画されたり、当該オブジェクトが上記所定の種類のキャラクタである場合には、当該オブジェクトは陰が付されて見えるように描画されたりする。ステップS74の次に、上記ステップS71の処理が再度実行される。
【0234】
ステップS75において、プロセッサ81は、ステップS72で指定されたオブジェクトの各ポリゴンについて描画が完了したか否かを判定する。ステップS75の判定結果が肯定である場合、当該オブジェクトに関する描画が完了したこととなるので、上記ステップS71の処理が再度実行される。一方、ステップS75の判定結果が否定である場合、ステップS76の処理が実行される。
【0235】
ステップS76において、プロセッサ81は、ステップS72で指定されたオブジェクトの各ポリゴンのうち1つを指定する。なお、ステップS76においては、今回のステップS75~S81の処理ループにおいてまだ処理対象となっていないポリゴンが指定される。ステップS76の次に、ステップS77の処理が実行される。
【0236】
ステップS77において、プロセッサ81は、ステップS76で指定されたポリゴンに対応する各画素について描画が完了したか否かを判定する。ステップS77の判定結果が肯定である場合、当該ポリゴンに関する描画が完了したこととなるので、上記ステップS75の処理が再度実行される。一方、ステップS77の判定結果が否定である場合、ステップS78の処理が実行される。
【0237】
ステップS78において、プロセッサ81は、ステップS76で指定されたポリゴンに対応する各画素のうち1つを指定する。なお、ステップS78においては、今回のステップS77~S81の処理ループにおいてまだ処理対象となっていない画素が指定される。ステップS78の次に、ステップS79の処理が実行される。
【0238】
ステップS79において、プロセッサ81は、ステップS78で指定された画素に対応する位置(すなわち、フィールドにおける位置)が照射範囲内であるか否かを判定する。なお、図28に示す描画処理によって描画が行われる実施形態では、プロセッサ81は、上記ステップS28において解放イベントに基づく照射範囲を設定し、上記ステップS7のメニュー表示処理においてプレイヤキャラクタが光る服を装備した場合には、プレイヤキャラクタの位置に基づく照射範囲を設定し、上記ステップS45の処理において点光源が設定された場合には、光源アイテムの位置に基づく照射範囲を設定する。ステップS79の判定結果が肯定である場合、ステップS80の処理が実行される。一方、ステップS79の判定結果が否定である場合、ステップS81の処理が実行される。
【0239】
ステップS80において、プロセッサ81は、ステップS78で指定された画素について、フィールドに設定される光源(すなわち、環境光および/または点光源)を反映して描画を行う。具体的には、プロセッサ81は、当該画素に対応するポリゴンの法線の情報、当該画素に対応するポリゴンに設定される色の情報、および、フィールドに設定される光源の情報等に基づいて当該画素の画素値を算出してフレームバッファに書き込む。これによって、照射範囲内の位置に対応する画素については、光源を考慮して描画が行われることとなる。なお、ステップS80における処理は、従来のフォワードレンダリングに基づく描画処理と同様であってよい。ステップS80の次に、ステップS77の処理が再度実行される。
【0240】
一方、ステップS81において、プロセッサ81は、ステップS78で指定された画素について、黒色で描画を行う。これによって、照射範囲外の位置に対応する画素については黒色で描画されることとなる。ステップS81の次に、ステップS77の処理が再度実行される。
【0241】
なお、図28に示す描画処理においても図27に示す描画処理と同様、照射範囲内において照射範囲の境界に近づくにつれて次第に黒色が濃くなっていくように描画が行われてもよい。例えば、上記ステップS80において、プロセッサ81は、ステップS78で指定された画素について、上述の暗闇マスク値を算出し、光源による光の影響が反映された画素値と黒色とを、暗闇マスク値に応じた割合で合成することで当該画素の画素値を算出してもよい。
【0242】
[4.本実施形態の作用効果および変形例]
上記の実施形態におけるゲームプログラムは、情報処理装置(例えば、ゲーム装置2)のコンピュータ(例えば、プロセッサ81)に、次の処理を実行させる構成である。
・操作入力に基づいて、プレイヤキャラクタを仮想空間(上記実施形態においては、フィールド)内において制御するゲーム処理(ステップS32)
・ゲーム処理に基づいて所定のイベント(例えば、解放イベント)が発生した場合に、仮想空間内に設定された複数の地点(例えば、基準地点)のうち、発生したイベントに対応付けられる地点を第1の状態(例えば、未解放の状態)から第2の状態(例えば、解放された状態)へ遷移させる処理(ステップS25)
・地点に対応する位置において第1の基準値となり、当該位置からの距離に応じて減衰する第1判定値について、複数の地点のうち第2の状態となっている1つ以上の地点に基づく当該第1判定値を位置ごとに合計した合計判定値が所定値以上となる領域(上記実施形態においては、解放領域)を特定する処理(ステップS27)
・操作入力により行われるマップ表示指示に応じて、仮想空間のフィールド情報を示すマップ画像であって、上記領域に対応する部分のフィールド情報が示されたマップ画像を表示する処理(ステップS5)
【0243】
上記の構成によれば、解放されるマップ画像の範囲(すなわち、解放領域の範囲)を、複数のイベントの発生の有無に応じて変化させることができる。また、複数の上記地点のうちでどの地点が第2の状態となっているかによって、仮想空間の各位置における合計判定値が様々に変化するので、各地点における状態に応じて(すなわち、各地点におけるイベントの発生状況に応じて)解放領域を様々に変化させることができる。
【0244】
なお、解放領域を特定する処理は、上記実施形態においては、イベントが発生したタイミングで実行される(図25のステップS27参照)が、当該処理を実行するタイミングはこれに限らない。他の実施形態においては、解放領域を特定する処理は、マップ画像を生成する度に実行されてもよいし、イベント発生後において次にマップ画像を生成するタイミングで実行されてもよい。
【0245】
上記所定のイベントは、上記実施形態においては、地点に対応して仮想空間内に設定されたイベント発生位置にプレイヤキャラクタが位置する場合に所定の操作入力が行われることで発生するイベントであり、具体的には、解放イベントであった。ここで、「イベント発生位置にプレイヤキャラクタが位置する場合に所定の操作入力が行われることで発生するイベント」とは、解放イベントに限らず、他のイベントであってもよい。例えば、上記所定のイベントは、仮想空間におけるイベント発生位置にプレイヤキャラクタが到達するイベント(この例において、プレイヤキャラクタをイベント発生位置に移動させる操作入力が、所定の操作に該当する)であってもよいし、仮想空間におけるイベント発生位置においてプレイヤキャラクタが特定のアイテムを使用するイベント(この例において、アイテムを使用させる操作入力が、所定の操作に該当する)であってもよい。また、他の実施形態においては、上記所定のイベントは、イベント発生位置にプレイヤキャラクタが位置する場合に所定の操作入力が行われることで発生するイベントに限らず、他の種類のイベント(例えば、所定の操作入力を条件としないイベント)であってもよい。
【0246】
また、上記実施形態におけるゲームプログラムは、情報処理装置(例えば、ゲーム装置2)のコンピュータ(例えば、プロセッサ81)に、次の処理を実行させる構成であると言うこともできる。
・ゲーム処理に基づいて所定のイベント(例えば、照射イベント)が発生した場合に、仮想空間内に対象範囲(例えば、照射範囲)を設定する処理(ステップS28、ステップS59)
・仮想空間の描画を行う描画処理において、仮想空間内の少なくとも一部の地形オブジェクトについて、対象範囲に含まれる部分を、仮想空間内に設定された光源を反映して描画させ、対象範囲に含まれない部分を、所定の色によって描画する処理(ステップS62)
【0247】
上記の構成によれば、仮想空間における視認性の低い領域と視認性が確保された領域とをイベントの発生に応じて動的に変更することができる。これによって、フィールドのうちで視認可能な部分を、イベントを発生させることで増やしていくゲームを提供することができる。また、上記の構成によれば、対象範囲の部分については光源を反映して描画することで、視認しやすくすることができる一方、対象範囲外の部分については所定の色によって描画することで、当該部分を視認不可能または視認困難とすることができる。このように、上記の構成によれば、ゲームフィールドにおける領域の視認性を調整しやすくすることができる。
【0248】
上記対象範囲を設定する処理は、3次元の仮想空間において範囲を設定する処理(例えば、上述したキャラクタ影響範囲およびアイテム影響範囲を仮想空間において設定する処理)であってもよいし、仮想空間に対応する2次元平面において範囲を設定する処理(例えば、上述のフィールド対応平面において2次元範囲データを生成する処理)であってもよい。また、対象範囲は、概念としては仮想空間における範囲を示すものであるが、対象範囲を示すデータは、仮想空間の位置に関するデータに限らず、仮想空間に対応する2次元平面上の位置に関するデータ(例えば、上記2次元範囲データ)であってもよいし、仮想空間に対応する画素平面上の位置に関するデータ(例えば、暗闇マスクのデータ)であってもよい。
【0249】
上記「少なくとも一部の地形オブジェクト」とは、全ての地形オブジェクトについて対象範囲に応じて描画の方法を変化させる必要はない意図である。例えば、地形オブジェクトの一部は上述の対象外オブジェクトに設定されてもよい。
【0250】
上記実施形態においては、ゲームシステム1は、対象範囲に含まれない部分のオブジェクトを、黒色で描画するものとしたが、他の色で描画するようにしてもよい。他の色で描画する場合であっても当該部分を視認不可能または視認困難とすることができるので、上記実施形態と同様の効果を得ることができる。例えば、ゲームのストーリー上の設定において、霧がかかっているために視認不可能または視認困難とする領域については、ゲームシステム1は白色または灰色で描画するようにしてもよい。また、上記「所定の色」とは、描画を行う画素に対応するオブジェクトに設定される色とは独立して設定される色であり、単色である必要はない。対象範囲に含まれない部分に対応する複数の画素は、複数種類の所定の色によって模様が形成されるように描画されてもよい。
【0251】
また、他の実施形態においては、ゲームシステム1は、対象範囲に含まれない部分のオブジェクトを、明るさを下げて描画する構成を採用してもよい。例えば、ゲームシステム1は、当該部分のオブジェクトを、光源が設定される場合における当該画素よりも明るさを下げて描画するようにしてもよい。具体的には、ゲームシステム1は、描画処理において、対象範囲に含まれない部分のオブジェクトに対応する画素について、光源による光の影響を反映した画素値から明るさを下げた画素値をフレームバッファに書き込むようにしてもよい。なお、明るさを下げる具体的な方法は任意であり、元の明るさ(すなわち、光源による光の影響を考慮したときの明るさ)を所定の割合で下げるようにしてもよいし、元の明るさを所定量だけ下げるようにしてもよいし、所定の基準以下となるように明るさを下げるようにしてもよい。上記の構成によっても、上記実施形態と同様の効果を得ることができる。
【0252】
また、上記実施形態におけるゲームプログラムは、情報処理装置(例えば、ゲーム装置2)のコンピュータ(例えば、プロセッサ81)に、次の処理を実行させる構成であると言うこともできる。
・操作入力に基づいてプレイヤキャラクタを仮想空間内において制御するゲーム処理(ステップS32)
・ゲーム処理に基づいて所定のイベント(例えば、解放イベント)が発生した場合に、仮想空間内に設定された複数の地点(例えば、基準地点)のうち、発生したイベントに対応付けられる地点を第1の状態(例えば、未解放の状態)から第2の状態(例えば、解放された状態)へ遷移させる処理(ステップS25)
・複数の地点のうち第2の状態となっている地点を少なくとも含む領域(上記実施形態においては、解放領域)を特定する処理(ステップS27)
・仮想空間内の少なくとも一部の地形オブジェクトについて、上記領域の少なくとも一部を含む対象範囲(例えば、照射範囲)に含まれない部分を、所定の色によって描画する描画処理(ステップS62)
・操作入力により行われるマップ表示指示に応じて、仮想空間のフィールド情報を示すマップ画像であって、解放領域に対応する部分のフィールド情報が示されたマップ画像を表示する処理(ステップS5)
【0253】
上記の構成によれば、マップ画像においてフィールド情報が示されない領域の変化に応じて、仮想空間において視認性が確保される範囲(すなわち、上記対象範囲)を変化させることができる。すなわち、マップ画像において新たにフィールド情報が示されるようになった解放領域について、視認性が確保される表示態様で仮想空間が表示されるようにすることができる。また、上記の構成によれば、イベントの発生に応じて、仮想空間において視認性が確保される範囲が拡がるとともに、マップ画像においてフィールド情報が示される領域も拡がるので、イベントを発生させることで探索範囲を拡げていくというゲーム性が十分に発揮されるゲームを提供することができる。
【0254】
なお、他の実施形態においては、上記の構成における描画処理において、ゲームシステム1は、対象範囲に含まれない部分を所定の色によって描画することに代えて、対象範囲に含まれない部分を、対象範囲に含まれる部分より暗く描画するようにしてもよい。具体的には、ゲームシステム1は、描画処理において、光源による光の影響を反映した画素値に対して、明るさを所定の方法で低下させた画素値をフレームバッファに書き込むようにしてもよい。所定の方法は、例えば、元の明るさを所定の割合で(または所定値だけ)低下させる方法であってもよいし、所定の基準以下の明るさとなるように明るさを変更する方法であってもよい。
【0255】
上記実施形態においては、ゲームシステム1は、上記対象範囲として、(a)複数の地点のうち第2の状態となっている1つ以上の地点に基づく1つ以上の判定値を少なくとも合計した合計判定値が所定値以上となる位置からなる範囲内であり、かつ、(b)地点に対応する2次元的な位置からの2次元的な距離がしきい値以下となる範囲(すなわち、解放領域の範囲内であり、かつ、地点影響範囲内となる範囲)を設定する。これによれば、仮想空間において視認性が確保される範囲が大きくなりすぎることを抑制することができるので、イベントを発生させることで探索範囲を拡げていくというゲーム性が失われる可能性を低減することができる。
【0256】
なお、上記の実施形態において、ある情報処理装置においてデータ(プログラムを含む意味である)を用いて処理が実行される場合、当該処理に必要なデータの一部が、当該ある情報処理装置とは異なる他の情報処理装置から送信されてもよい。このとき、当該ある情報処理装置は、他の情報処理装置から受信されたデータと、自身に記憶されているデータとを用いて上記処理を実行してもよい。
【0257】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0258】
上記実施形態は、仮想空間における視認性の低い領域と視認性が確保された領域とをイベントの発生に応じて動的に変更すること等を目的として、例えば、ゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0259】
1 ゲームシステム
2 本体装置
81 プロセッサ
201 プレイヤキャラクタ
202 基準地点
203 目印オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28