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

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

7836862ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2026-03-18
(45)【発行日】2026-03-27
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
(51)【国際特許分類】
   A63F 13/55 20140101AFI20260319BHJP
   A63F 13/577 20140101ALI20260319BHJP
   A63F 13/69 20140101ALI20260319BHJP
   G06T 15/04 20110101ALI20260319BHJP
   G06T 17/10 20060101ALI20260319BHJP
【FI】
A63F13/55
A63F13/577
A63F13/69
G06T15/04
G06T17/10
【請求項の数】 24
(21)【出願番号】P 2024123266
(22)【出願日】2024-07-30
(65)【公開番号】P2025113129
(43)【公開日】2025-08-01
【審査請求日】2025-05-20
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】栗原 竜矢
(72)【発明者】
【氏名】田中 航
(72)【発明者】
【氏名】山中 雄作
【審査官】白形 優依
(56)【参考文献】
【文献】特開2004-062666(JP,A)
【文献】特表2024-521128(JP,A)
【文献】特開2017-099744(JP,A)
【文献】特表2023-547720(JP,A)
【文献】特開2021-029609(JP,A)
【文献】特開2017-099809(JP,A)
【文献】米国特許第10300382(US,B1)
【文献】中国特許出願公開第118071894(CN,A)
【文献】マインクラフト ワイルドアプデ完全攻略ガイド,第6巻,株式会社三才ブックス 塩見 正孝,2022年07月26日,pp.82-89
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00- 13/98
A63F 9/24
G06T 1/00
G06T 11/60-11/80
G06T 13/00-13/80
G06T 17/05
G06T 19/00-19/20
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
仮想空間内に定義されたボクセルデータであって、複数のボクセルそれぞれについて、当該ボクセルが定義する空間が仮想的に中身に占められている度合いを示す密度と、当該中身の種類を示すマテリアルIDであって、複数である第1の個数まで設定可能なマテリアルIDとが少なくとも設定されたボクセルデータに基づいて、当該ボクセルデータに対応し、仮想カメラに基づいて描画される表示用メッシュであって、当該表示用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該表示用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて、当該表示用メッシュに含まれる複数のポリゴンのそれぞれに複数の前記マテリアルIDを設定することで決定される表示用メッシュを生成させ、
ゲーム処理に基づいて、前記仮想空間内にボクセル更新範囲を生成させ、
前記ボクセル更新範囲の生成に応じて、前記ボクセルデータのうち、前記仮想空間内において前記ボクセル更新範囲に対応するボクセルのそれぞれについて、前記密度と前記マテリアルIDの少なくともいずれかを更新させ、
更新された前記ボクセルデータに対応させて前記表示用メッシュを更新させ、
前記仮想空間内におけるコリジョン判定に用いられる判定用メッシュであって、当該判定用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該判定用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて当該判定用メッシュに含まれる複数のポリゴンのそれぞれに1つの前記マテリアルIDを設定することで決定される判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状とのコリジョン判定に基づいて、コリジョンが判定された前記判定用メッシュ内のポリゴンに設定された前記マテリアルIDに関連付けられたゲーム内の作用を発生させ、
前記表示用メッシュに含まれるそれぞれのポリゴンに設定されたそれぞれの前記マテリアルIDに関連付けられた1つまたは複数のテクスチャのブレンドによるテクスチャマッピングに基づいて当該ポリゴンの描画を行わせることで、前記表示用メッシュを含む前記仮想空間の描画を行わせ、
前記ボクセルデータは、前記ボクセル毎にさらに強制変化フラグを含み、
前記強制変化フラグがオンのボクセルは、設定された前記マテリアルIDに関わらず、当該強制変化フラグに対応したマテリアルのみを有するものとして、前記表示用メッシュのマテリアルおよび前記判定用メッシュのマテリアルを決定させる、ゲームプログラム。
【請求項2】
前記コンピュータにさらに、ゲーム処理に基づいてゲーム内の第1のイベントが発生した場合に、所定範囲内の前記強制変化フラグがオンの前記ボクセルに対して、当該強制変化フラグをオフに更新させる、請求項1記載のゲームプログラム。
【請求項3】
前記ボクセルデータはさらに、前記ボクセル毎に前記強制変化フラグがオンからオフになったことを示す解除フラグを含み、
前記コンピュータにさらに、
前記第1のイベントに応じて前記強制変化フラグをオンからオフに変更したボクセルに対し、前記解除フラグをオンに設定させ、
前記解除フラグがオンの前記ボクセルに対応する前記仮想空間内の位置に、所定のエフェクトを発生させる、請求項2記載のゲームプログラム。
【請求項4】
前記ボクセルデータは、初期状態において前記強制変化フラグおよび前記解除フラグはオフであって、
前記コンピュータに、前記第1のイベントが発生する前の状態のデータに基づいて前記ボクセルデータの初期化が行われた場合に、当該初期化時に、前記所定範囲内の前記ボクセルに対して、前記強制変化フラグをオンに更新させる、請求項3記載のゲームプログラム。
【請求項5】
前記コンピュータに、前記所定のエフェクトを発生させた後に、前記解除フラグがオンの前記ボクセルの当該解除フラグをオフに更新させる、請求項3記載のゲームプログラム。
【請求項6】
前記コンピュータに、
ゲーム処理に基づいてゲーム内の第2のイベントが発生した場合に、複数の前記ボクセル更新範囲のうち、第1のボクセル更新範囲を生成させ、
前記第1のボクセル更新範囲に対応する前記ボクセルのうち、予め破壊可能と設定された種類の前記マテリアルIDを有するボクセルであって、かつ前記強制変化フラグがオフのボクセルに対して、前記密度を減少させる、請求項1から5のいずれか記載のゲームプログラム。
【請求項7】
仮想空間内に定義されたボクセルデータであって、複数のボクセルそれぞれについて、当該ボクセルが定義する空間が仮想的に中身に占められている度合いを示す密度と、当該中身の種類を示すマテリアルIDであって、複数である第1の個数まで設定可能なマテリアルIDとが少なくとも設定されたボクセルデータに基づいて、当該ボクセルデータに対応し、仮想カメラに基づいて描画される表示用メッシュであって、当該表示用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該表示用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて、当該表示用メッシュに含まれる複数のポリゴンのそれぞれに複数の前記マテリアルIDを設定することで決定される表示用メッシュを生成し、
ゲーム処理に基づいて、前記仮想空間内にボクセル更新範囲を生成し、
前記ボクセル更新範囲の生成に応じて、前記ボクセルデータのうち、前記仮想空間内において前記ボクセル更新範囲に対応するボクセルのそれぞれについて、前記密度と前記マテリアルIDの少なくともいずれかを更新し、
更新された前記ボクセルデータに対応させて前記表示用メッシュを更新し、
前記仮想空間内におけるコリジョン判定に用いられる判定用メッシュであって、当該判定用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該判定用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて当該判定用メッシュに含まれる複数のポリゴンのそれぞれに1つの前記マテリアルIDを設定することで決定される判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状とのコリジョン判定に基づいて、コリジョンが判定された前記判定用メッシュ内のポリゴンに設定された前記マテリアルIDに関連付けられたゲーム内の作用を発生させ、
前記表示用メッシュに含まれるそれぞれのポリゴンに設定されたそれぞれの前記マテリアルIDに関連付けられた1つまたは複数のテクスチャのブレンドによるテクスチャマッピングに基づいて当該ポリゴンの描画を行わせることで、前記表示用メッシュを含む前記仮想空間の描画を行い、
前記ボクセルデータは、前記ボクセル毎にさらに強制変化フラグを含み、
前記強制変化フラグがオンのボクセルは、設定された前記マテリアルIDに関わらず、当該強制変化フラグに対応したマテリアルのみを有するものとして、前記表示用メッシュのマテリアルおよび前記判定用メッシュのマテリアルを決定させる、ゲームシステム。
【請求項8】
前記ゲームシステムは、さらに、ゲーム処理に基づいてゲーム内の第1のイベントが発生した場合に、所定範囲内の前記強制変化フラグがオンの前記ボクセルに対して、当該強制変化フラグをオフに更新する、請求項7記載のゲームシステム。
【請求項9】
前記ボクセルデータはさらに、前記ボクセル毎に前記強制変化フラグがオンからオフになったことを示す解除フラグを含み、
前記ゲームシステムは、さらに、
前記第1のイベントに応じて前記強制変化フラグをオンからオフに変更したボクセルに対し、前記解除フラグをオンに設定し、
前記解除フラグがオンの前記ボクセルに対応する前記仮想空間内の位置に、所定のエフェクトを発生させる、請求項8記載のゲームシステム。
【請求項10】
前記ボクセルデータは、初期状態において前記強制変化フラグおよび前記解除フラグはオフであって、
前記ゲームシステムは、前記第1のイベントが発生する前の状態のデータに基づいて前記ボクセルデータの初期化が行われた場合に、当該初期化時に、前記所定範囲内の前記ボクセルに対して、前記強制変化フラグをオンに更新する、請求項9記載のゲームシステム。
【請求項11】
前記ゲームシステムは、前記所定のエフェクトを発生させた後に、前記解除フラグがオンの前記ボクセルの当該解除フラグをオフに更新する、請求項9記載のゲームシステム。
【請求項12】
前記ゲームシステムは、
ゲーム処理に基づいてゲーム内の第2のイベントが発生した場合に、複数の前記ボクセル更新範囲のうち、第1のボクセル更新範囲を生成し、
前記第1のボクセル更新範囲に対応する前記ボクセルのうち、予め破壊可能と設定された種類の前記マテリアルIDを有するボクセルであって、かつ前記強制変化フラグがオフのボクセルに対して、前記密度を減少させる、請求項7から11のいずれか記載のゲームシステム。
【請求項13】
プロセッサを備えるゲーム装置であって、
前記プロセッサは、
仮想空間内に定義されたボクセルデータであって、複数のボクセルそれぞれについて、当該ボクセルが定義する空間が仮想的に中身に占められている度合いを示す密度と、当該中身の種類を示すマテリアルIDであって、複数である第1の個数まで設定可能なマテリアルIDとが少なくとも設定されたボクセルデータに基づいて、当該ボクセルデータに対応し、仮想カメラに基づいて描画される表示用メッシュであって、当該表示用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該表示用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて、当該表示用メッシュに含まれる複数のポリゴンのそれぞれに複数の前記マテリアルIDを設定することで決定される表示用メッシュを生成し、
ゲーム処理に基づいて、前記仮想空間内にボクセル更新範囲を生成し、
前記ボクセル更新範囲の生成に応じて、前記ボクセルデータのうち、前記仮想空間内において前記ボクセル更新範囲に対応するボクセルのそれぞれについて、前記密度と前記マテリアルIDの少なくともいずれかを更新し、
更新された前記ボクセルデータに対応させて前記表示用メッシュを更新し、
前記仮想空間内におけるコリジョン判定に用いられる判定用メッシュであって、当該判定用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該判定用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて当該判定用メッシュに含まれる複数のポリゴンのそれぞれに1つの前記マテリアルIDを設定することで決定される判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状とのコリジョン判定に基づいて、コリジョンが判定された前記判定用メッシュ内のポリゴンに設定された前記マテリアルIDに関連付けられたゲーム内の作用を発生させ、
前記表示用メッシュに含まれるそれぞれのポリゴンに設定されたそれぞれの前記マテリアルIDに関連付けられた1つまたは複数のテクスチャのブレンドによるテクスチャマッピングに基づいて当該ポリゴンの描画を行わせることで、前記表示用メッシュを含む前記仮想空間の描画を行い、
前記ボクセルデータは、前記ボクセル毎にさらに強制変化フラグを含み、
前記強制変化フラグがオンのボクセルは、設定された前記マテリアルIDに関わらず、当該強制変化フラグに対応したマテリアルのみを有するものとして、前記表示用メッシュのマテリアルおよび前記判定用メッシュのマテリアルを決定させる、ゲーム装置。
【請求項14】
前記プロセッサは、さらに、ゲーム処理に基づいてゲーム内の第1のイベントが発生した場合に、所定範囲内の前記強制変化フラグがオンの前記ボクセルに対して、当該強制変化フラグをオフに更新する、請求項13記載のゲーム装置。
【請求項15】
前記ボクセルデータはさらに、前記ボクセル毎に前記強制変化フラグがオンからオフになったことを示す解除フラグを含み、
前記プロセッサは、さらに、
前記第1のイベントに応じて前記強制変化フラグをオンからオフに変更したボクセルに対し、前記解除フラグをオンに設定し、
前記解除フラグがオンの前記ボクセルに対応する前記仮想空間内の位置に、所定のエフェクトを発生させる、請求項14記載のゲーム装置。
【請求項16】
前記ボクセルデータは、初期状態において前記強制変化フラグおよび前記解除フラグはオフであって、
前記プロセッサは、前記第1のイベントが発生する前の状態のデータに基づいて前記ボクセルデータの初期化が行われた場合に、当該初期化時に、前記所定範囲内の前記ボクセルに対して、前記強制変化フラグをオンに更新する、請求項15記載のゲーム装置。
【請求項17】
前記プロセッサは、前記所定のエフェクトを発生させた後に、前記解除フラグがオンの前記ボクセルの当該解除フラグをオフに更新する、請求項15記載のゲーム装置。
【請求項18】
前記プロセッサは、
ゲーム処理に基づいてゲーム内の第2のイベントが発生した場合に、複数の前記ボクセル更新範囲のうち、第1のボクセル更新範囲を生成し、
前記第1のボクセル更新範囲に対応する前記ボクセルのうち、予め破壊可能と設定された種類の前記マテリアルIDを有するボクセルであって、かつ前記強制変化フラグがオフのボクセルに対して、前記密度を減少させる、請求項13から17のいずれか記載のゲーム装置。
【請求項19】
情報処理システムに、
仮想空間内に定義されたボクセルデータであって、複数のボクセルそれぞれについて、当該ボクセルが定義する空間が仮想的に中身に占められている度合いを示す密度と、当該中身の種類を示すマテリアルIDであって、複数である第1の個数まで設定可能なマテリアルIDとが少なくとも設定されたボクセルデータに基づいて、当該ボクセルデータに対応し、仮想カメラに基づいて描画される表示用メッシュであって、当該表示用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該表示用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて、当該表示用メッシュに含まれる複数のポリゴンのそれぞれに複数の前記マテリアルIDを設定することで決定される表示用メッシュを生成させ、
ゲーム処理に基づいて、前記仮想空間内にボクセル更新範囲を生成させ、
前記ボクセル更新範囲の生成に応じて、前記ボクセルデータのうち、前記仮想空間内において前記ボクセル更新範囲に対応するボクセルのそれぞれについて、前記密度と前記マテリアルIDの少なくともいずれかを更新させ、
更新された前記ボクセルデータに対応させて前記表示用メッシュを更新させ、
前記仮想空間内におけるコリジョン判定に用いられる判定用メッシュであって、当該判定用メッシュの頂点座標が少なくとも前記ボクセルデータに含まれる前記密度に基づいて決定され、当該判定用メッシュのマテリアルが少なくとも前記ボクセルデータに含まれる複数の前記マテリアルIDに基づいて当該判定用メッシュに含まれる複数のポリゴンのそれぞれに1つの前記マテリアルIDを設定することで決定される判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状とのコリジョン判定に基づいて、コリジョンが判定された前記判定用メッシュ内のポリゴンに設定された前記マテリアルIDに関連付けられたゲーム内の作用を発生させ、
前記表示用メッシュに含まれるそれぞれのポリゴンに設定されたそれぞれの前記マテリアルIDに関連付けられた1つまたは複数のテクスチャのブレンドによるテクスチャマッピングに基づいて当該ポリゴンの描画を行わせることで、前記表示用メッシュを含む前記仮想空間の描画を行わせ、
前記ボクセルデータは、前記ボクセル毎にさらに強制変化フラグを含み、
前記強制変化フラグがオンのボクセルは、設定された前記マテリアルIDに関わらず、当該強制変化フラグに対応したマテリアルのみを有するものとして、前記表示用メッシュのマテリアルおよび前記判定用メッシュのマテリアルを決定させる、ゲーム処理方法。
【請求項20】
前記情報処理システムに、さらに、ゲーム処理に基づいてゲーム内の第1のイベントが発生した場合に、所定範囲内の前記強制変化フラグがオンの前記ボクセルに対して、当該強制変化フラグをオフに更新させる、請求項19記載のゲーム処理方法。
【請求項21】
前記ボクセルデータはさらに、前記ボクセル毎に前記強制変化フラグがオンからオフになったことを示す解除フラグを含み、
前記情報処理システムに、さらに、
前記第1のイベントに応じて前記強制変化フラグをオンからオフに変更したボクセルに対し、前記解除フラグをオンに設定させ、
前記解除フラグがオンの前記ボクセルに対応する前記仮想空間内の位置に、所定のエフェクトを発生させる、請求項20記載のゲーム処理方法。
【請求項22】
前記ボクセルデータは、初期状態において前記強制変化フラグおよび前記解除フラグはオフであって、
前記情報処理システムに、前記第1のイベントが発生する前の状態のデータに基づいて前記ボクセルデータの初期化が行われた場合に、当該初期化時に、前記所定範囲内の前記ボクセルに対して、前記強制変化フラグをオンに更新させる、請求項21記載のゲーム処理方法。
【請求項23】
前記情報処理システムに、前記所定のエフェクトを発生させた後に、前記解除フラグがオンの前記ボクセルの当該解除フラグをオフに更新させる、請求項21記載のゲーム処理方法。
【請求項24】
前記情報処理システムに、
ゲーム処理に基づいてゲーム内の第2のイベントが発生した場合に、複数の前記ボクセル更新範囲のうち、第1のボクセル更新範囲を生成させ、
前記第1のボクセル更新範囲に対応する前記ボクセルのうち、予め破壊可能と設定された種類の前記マテリアルIDを有するボクセルであって、かつ前記強制変化フラグがオフのボクセルに対して、前記密度を減少させる、請求項19から23のいずれか記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボクセルデータを用いて仮想空間におけるオブジェクトを生成するゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法に関する。
【背景技術】
【0002】
従来、ボクセルデータを用いてオブジェクトを管理し、ボクセルデータに基づいて仮想空間においてオブジェクトのメッシュを生成することが行われている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】“Marching cubes:A high resolution 3D surface construction algorithm”、Computer Graphics, Volume 21, Number 4、WE Lorensen,HE Cline、1987年
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームにおいては、オブジェクトの見た目や、ゲームにおいて発生する作用に対して、マテリアルを反映させることが望まれるが、マテリアルを変化させた場合、マテリアル情報を元に戻すことが困難になる場合がある。
【0005】
それ故、本発明の目的は、ボクセルデータに基づくオブジェクトについて、マテリアル情報を保持したまま、マテリアル変化を反映させたゲームを実行できるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下の(1)~(6)のような構成を採用し得る。
【0007】
(1)
本発明のゲームプログラムの一構成例は、情報処理装置のコンピュータに、仮想空間内に定義されたボクセルデータであって、複数のボクセルそれぞれについて、当該ボクセルが定義する空間が仮想的に中身に占められている度合いを示す密度と、当該中身の種類を示すマテリアルIDであって、複数である第1の個数まで設定可能なマテリアルIDとが少なくとも設定されたボクセルデータに基づいて、当該ボクセルデータに対応し、仮想カメラに基づいて描画される表示用メッシュであって、当該表示用メッシュの頂点座標が少なくともボクセルデータに含まれる密度に基づいて決定され、当該表示用メッシュのマテリアルが少なくともボクセルデータに含まれる複数のマテリアルIDに基づいて、当該表示用メッシュに含まれる複数のポリゴンのそれぞれに複数のマテリアルIDを設定することで決定される表示用メッシュを生成させ、ゲーム処理に基づいて、仮想空間内にボクセル更新範囲を生成させ、ボクセル更新範囲の生成に応じて、ボクセルデータのうち、仮想空間内においてボクセル更新範囲に対応するボクセルのそれぞれについて、密度とマテリアルIDの少なくともいずれかを更新させ、更新されたボクセルデータに対応させて表示用メッシュを更新させ、仮想空間内におけるコリジョン判定に用いられる判定用メッシュであって、当該判定用メッシュの頂点座標が少なくともボクセルデータに含まれる密度に基づいて決定され、当該判定用メッシュのマテリアルが少なくともボクセルデータに含まれる複数のマテリアルIDに基づいて当該判定用メッシュに含まれる複数のポリゴンのそれぞれに1つのマテリアルIDを設定することで決定される判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状とのコリジョン判定に基づいて、コリジョンが判定された判定用メッシュ内のポリゴンに設定されたマテリアルIDに関連付けられたゲーム内の作用を発生させ、表示用メッシュに含まれるそれぞれのポリゴンに設定されたそれぞれのマテリアルIDに関連付けられた1つまたは複数のテクスチャのブレンドによるテクスチャマッピングに基づいて当該ポリゴンの描画を行わせることで、表示用メッシュを含む仮想空間の描画を行わせる。ボクセルデータは、ボクセル毎にさらに強制変化フラグを含む。強制変化フラグがオンのボクセルは、設定されたマテリアルIDに関わらず、当該強制変化フラグに対応したマテリアルのみを有するものとして、表示用メッシュのマテリアルおよび判定用メッシュのマテリアルを決定させる。
【0008】
上記(1)の構成によれば、ボクセルデータに基づくオブジェクトについて、マテリアル情報を保持したまま、マテリアル変化を反映させることができる。
【0009】
(2)
上記(1)の構成において、上記コンピュータにさらに、ゲーム処理に基づいてゲーム内の第1のイベントが発生した場合に、所定範囲内の強制変化フラグがオンのボクセルに対して、当該強制変化フラグをオフに更新させてもよい。
【0010】
上記(2)の構成によれば、マテリアル情報を書き換えた場合、元のマテリアル情報が失われるが、強制変化フラグをオフにする制御によってマテリアル変化の反映を解除した場合に元のマテリアルに戻すことができる。
【0011】
(3)
上記(2)の構成において、上記ボクセルデータはさらに、ボクセル毎に強制変化フラグがオンからオフになったことを示す解除フラグを含んでもよい。上記コンピュータにさらに、第1のイベントに応じて強制変化フラグをオンからオフに変更したボクセルに対し、解除フラグをオンに設定させ、解除フラグがオンのボクセルに対応する仮想空間内の位置に、所定のエフェクトを発生させてもよい。
【0012】
上記(3)の構成によれば、マテリアル変化の反映を解除したことを示す解除フラグによる情報を保持することにより、当該解除したボクセルに対応する仮想空間内の位置に所定のエフェクトを発生させることができる。
【0013】
(4)
上記(3)の構成において、上記ボクセルデータは、初期状態において強制変化フラグおよび解除フラグはオフであってもよい。上記コンピュータに、第1のイベントが発生する前の状態のデータに基づいてボクセルデータの初期化が行われた場合に、当該初期化時に、所定範囲内のボクセルに対して、強制変化フラグをオンに更新させてもよい。
【0014】
上記(4)の構成によれば、ボクセルデータの初期化が行われた場合に、エフェクトの描画を終了することができる。
【0015】
(5)
上記(3)の構成において、上記コンピュータに、所定のエフェクトを発生させた後に、解除フラグがオンのボクセルの当該解除フラグをオフに更新させてもよい。
【0016】
上記(5)の構成によれば、エフェクトを発生させた後に解除フラグをオフに戻すことによって、エフェクトの描画を終了させることができる。
【0017】
(6)
上記(1)乃至(5)の何れか1つの構成において、上記コンピュータに、ゲーム処理に基づいてゲーム内の第2のイベントが発生した場合に、複数のボクセル更新範囲のうち、第1のボクセル更新範囲を生成させ、第1のボクセル更新範囲に対応するボクセルのうち、予め破壊可能と設定された種類のマテリアルIDを有するボクセルであって、かつ強制変化フラグがオフのボクセルに対して、密度を減少させてもよい。
【0018】
上記(6)の構成によれば、ボクセルを破壊できない状態に強制的に設定できるとともに、当該設定を解除して当該ボクセルの密度を減少させることができるゲームを提供することもできる。
【0019】
また、本発明は、ゲームシステム、ゲーム装置、およびゲーム処理方法の形態で実施されてもよい。
【発明の効果】
【0020】
本発明によれば、ボクセルデータに基づくオブジェクトについて、マテリアル情報を保持したまま、マテリアル変化を反映させることができる。
【図面の簡単な説明】
【0021】
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
図3】本体装置の一例を示す六面図
図4】左コントローラの一例を示す六面図
図5】右コントローラの一例を示す六面図
図6】本体装置の内部構成の一例を示すブロック図
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
図8】ボクセルオブジェクトである地形オブジェクトの一例を示す図
図9図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
図10図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
図11】ボクセルデータの一例を示す図
図12】マテリアルデータの一例を示す図
図13】更新イベントが発生した場合におけるゲーム空間の一例を示す図
図14】更新範囲の一例を示す図
図15】頂点の設定方法の一例を示す図
図16】頂点のマテリアルを決定する方法の一例を示す図
図17】頂点の簡略化の一例を示す図
図18】マテリアルに関する条件の一例を示す図
図19】各頂点に基づいて生成されるメッシュの一例を示す図
図20】メッシュを構成する四角形が2つの三角形に分割される一例を示す図
図21】表示用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図
図22】隣接する2つのポリゴンの各頂点に設定されるマテリアルの一例を示す図
図23】ポリゴンにテクスチャを適用する一例を示す図
図24】判定用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図
図25】地形オブジェクト上に特殊マテリアルの領域が設定されている様子を表すゲーム画像の一例を示す図
図26】マテリアル置換フラグがオンに設定されたボクセルに関連する頂点のマテリアルを決定する方法の一例を示す図
図27】マテリアル置換フラグがオンに設定されたボクセルに関連する表示用メッシュおよび判定用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図
図28】プレイヤキャラクタ201が地形オブジェクトにおける領域251の部位を破壊しようとしている様子を表すゲーム画像の一例を示す図
図29】プレイヤキャラクタ201が地形オブジェクトにおける領域251の部位を破壊しようとしている様子を表すゲーム画像の一例を示す図
図30】地形オブジェクト上に生成された特殊マテリアルの領域を解除する様子を表すゲーム画像の一例を示す図
図31】マテリアル置換フラグがオンからオフに変更されたボクセルに関連する頂点のマテリアルを決定する方法の一例を示す図
図32】地形オブジェクトにおいてマテリアル置換が解除された領域の部位をプレイヤキャラクタ201が破壊している様子を表すゲーム画像の一例を示す図
図33】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
図34】ゲームシステムによって実行されるゲーム処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【0022】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0023】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0024】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0025】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0026】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0027】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0028】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0029】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0030】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0031】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0032】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0033】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0034】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0035】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0036】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0037】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0038】
右コントローラ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を備える。
【0039】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0040】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0041】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0042】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0043】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0044】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0045】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0046】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0047】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0048】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0049】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0050】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0051】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0052】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0053】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0054】
左コントローラ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(登録商標)の規格に従って行われる。
【0055】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0056】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0057】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0058】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0059】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0060】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0061】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0062】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0063】
[2.ゲームシステムにおける処理の概要]
次に、図8図24を参照して、ゲームシステム1において実行される処理の概要について説明する。本実施形態においては、ゲームシステム1は、3次元の仮想空間であるゲーム空間に地形オブジェクトやキャラクタ(例えば、プレイヤによって操作されるプレイヤキャラクタ)が配置されたゲーム画像を生成し、表示装置に表示させる。なお、本実施形態において、ゲーム画像が表示される表示装置は、上述のディスプレイ12であってもよいし、据置型モニタであってもよい。
【0064】
[2-1.ボクセル]
本実施形態では、ゲーム空間におけるいくつかのオブジェクトについては、ボクセルデータによって形状が規定される。ここで、ボクセルとは、ゲーム空間に格子状に並べられた直方体状(より具体的には、立方体状)の領域であり、ボクセルデータとは各ボクセルに関する情報を示すデータである。以下では、ボクセルデータによって形状が規定されるオブジェクトを、「ボクセルオブジェクト」と呼ぶ。本実施形態においては、ゲームシステム1は、ゲーム空間内に設定される複数のボクセルについて、ボクセルオブジェクトをゲーム空間内において生成するためのデータとして、ボクセルデータを記憶する。
【0065】
図8は、ボクセルオブジェクトである地形オブジェクトの一例を示す図である。図8に示すように、本実施形態においては、地面等の地形を表す地形オブジェクトは、ボクセルデータによって形状が規定される(つまり、ボクセルオブジェクトである)。図8に示す各立方体は、地形オブジェクトを示す。なお、図8においては、地形オブジェクトの辺となる部分を太線で示しているが、この太線は図面を見やすくする目的で付したものであり、実際には地形オブジェクトの辺が太く表示される必要はない。
【0066】
図8に示す地形オブジェクトは、例えば、「ボクセルに設定されるボクセルデータに含まれるパラメータが所定値より大きい場合は当該ボクセルの位置に立方体を配置し、所定値以下の場合は当該ボクセルの位置に何も配置しない」というルールで生成されたものである。図8に示す地形オブジェクトは、ボクセルとボクセルオブジェクトとの関係をわかりやすく例示する目的で示されるものである。本実施形態においては、実際には、例えば後述する図13に示す地形オブジェクトのように、複雑な形状となるようなルールで(ボクセルデータに基づいて)ボクセルオブジェクトが生成される。なお、ボクセルデータに基づいてボクセルオブジェクトの形状を決定するルールは任意である。他の実施形態においては、ゲームシステム1は、オブジェクトデータに基づいて、図8に示すようなボクセルオブジェクトを生成してもよいし、図13に示すようなボクセルオブジェクトを生成してもよい。
【0067】
ボクセルオブジェクトについては、各ボクセルのボクセルデータを変更することで、形状を変化させることができる。図9および図10は、図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図である。すなわち、図9に示す地形オブジェクトのうちの斜線部分が破壊される場合、地形オブジェクトは図10に示すような形状に変化する。このとき、ゲームシステム1は、上記斜線部分のボクセルについて、地形オブジェクトが存在しないことを示すように、後述のボクセルデータを書き換えることで、地形オブジェクトを容易に消去することができる。なお、ゲームシステム1は、地形オブジェクトを追加する場合も、地形オブジェクトを消去する場合と同様に、各ボクセルのボクセルデータを変更することで、地形オブジェクトの形状を容易に変化させることができる。
【0068】
このように、ゲームシステム1は、ボクセルデータを書き換えることによって、ボクセルオブジェクトの形状を自由に変化させることができる。例えば、ゲームにおいて地形オブジェクトが何らかの理由(例えば、プレイヤキャラクタが地形オブジェクトに打撃を加える等)で破壊される結果として当該地形オブジェクトの形状を変化させる場合、ゲームシステム1は、地形オブジェクトの外形形状を示すデータ(すなわち、後述するメッシュ)を直接変更するのではなく、地形オブジェクトの生成に用いられるボクセルデータを変更することで、地形オブジェクトの形状を自由に変化させることができる。
【0069】
なお、本実施形態においては、ゲーム空間の全体にボクセルが規定される(つまり、ボクセルが設定されるボクセル空間がゲーム空間全体に対応する)ものとする。ただし、ボクセル空間はゲーム空間の全体に設定される必要はなく、ゲーム空間の一部の領域に設定されてもよい。ボクセル空間がゲーム空間の一部の領域に設定される場合、当該ボクセル空間におけるボクセルに関するボクセルデータによってボクセルオブジェクトの形状が規定され、ゲーム空間における当該ボクセル空間の位置によって当該ゲーム空間におけるボクセルオブジェクトの位置が規定される。また、ゲーム空間には、ゲーム空間の全体に設定される主ボクセル空間と、ゲーム空間の一部の領域に設定される副ボクセル空間とが設定されてもよい。このとき、ゲームシステム1は、ボクセル空間毎にボクセルデータを記憶する。
【0070】
図11は、ボクセルデータの一例を示す図である。ボクセルデータは、ゲーム空間に定義される各ボクセルについて、密度データ、第1マテリアルID、第2マテリアルID、マテリアル混合比データ、状態データ、マテリアル置換フラグデータ、および解除後フラグデータを含む。本実施形態におけるボクセルデータには、これらのデータが1つのボクセル毎に設定される。
【0071】
密度データは、当該ボクセルに基づいたボクセルオブジェクトの形状(具体的には、後述するメッシュで規定される形状)を規定するために用いられる指標である密度を示す。詳細は後述するが、ボクセルオブジェクトの表面(すなわち、後述するメッシュ)の位置および形状は、上記の密度に基づいて決定される。
【0072】
本実施形態においては、密度は、下限値(例えば、0)から上限値(例えば、255)までの範囲の整数値をとり得る。本実施形態においては、ゲームシステム1は、ボクセルに設定される密度の値が高いと、当該ボクセル内においてボクセルオブジェクト内の領域が占める体積の割合が大きくなりやすく、当該密度の値が低いと当該割合が小さくなりやすいように、密度に基づいてボクセルオブジェクトの表面形状を決定する。このように、密度は、当該ボクセル内においてボクセルオブジェクト内の領域が占める体積の割合に影響を与える指標である。密度は、当該ボクセルの空間が仮想的に中身(すなわち、ボクセルオブジェクトの仮想的な中身)に占められている度合いを示す指標であるとも言える。例えば、密度が0である場合には当該ボクセル内が空であり、密度が255の場合には当該ボクセル内の全てがボクセルオブジェクトの中身であり、密度が0と255の間の値の場合には値に応じた割合で当該ボクセル内をボクセルオブジェクトの中身が占めるものとすることができる。そして、上記密度に基づいて、メッシュの形状、すなわちボクセルオブジェクトの表面形状を決定することができる。メッシュは、ボクセルにおいて中身が存在する部分の表面であると言うこともできるし、ボクセルにおいて中身が存在する部分と存在しない部分の境界であると言うこともできる。なお、上記密度に基づいて生成されたボクセルオブジェクト内の領域が占める体積は、密度が示す割合と厳密に一致する体積になる必要はない。例えば、図8のようなボクセルオブジェクトを生成する手法と、図13のようなボクセルオブジェクトを生成する手法とでは、同じ密度に基づいていてもボクセルオブジェクトの体積が異なることもある。
【0073】
他の実施形態においては、密度は、ボクセル内の領域の全体をボクセルオブジェクト内の領域が占める体積が占める状態と、ボクセル内の領域にボクセルオブジェクト内の領域が占める体積が含まれない状態とのいずれかを示すものであってもよい。例えば、密度データは、0または1のみをとり得るデータであってもよい。
【0074】
第1マテリアルIDおよび第2マテリアルIDは、当該ボクセルのマテリアル(換言すれば、物質)を示す情報である。ここで、本実施形態においては、ボクセルには、例えば、砂、岩、または、土といったマテリアルが設定される。なお、ゲームシステム1においては、ボクセルに設定され得るマテリアルとして複数種類のマテリアルが用意されている(図12に示すマテリアルデータを参照)。本実施形態においては、1つのボクセルには、用意された複数種類のマテリアルのうち2つまでのマテリアルが設定可能である。第1マテリアルIDは、当該ボクセルに設定される第1のマテリアルを示すIDであり、第2マテリアルIDは、当該ボクセルに設定される第2のマテリアルを示すIDである。詳細は後述するが、ボクセルオブジェクトのマテリアル(すなわち、ボクセルオブジェクトのポリゴンに設定されるマテリアル)は、ボクセルに設定されるマテリアルに基づいて決定される。
【0075】
上記のように、本実施形態においては、ボクセルデータは、マテリアルを示すIDを含むものとしたが、他の実施形態においては、ボクセルデータは、マテリアルの内容(すなわち、後述する名称や、性質や、描画設定の情報)を直接示すデータを含むデータ構造であってもよい。
【0076】
マテリアル混合比データは、当該ボクセルにおけるそれぞれのマテリアルの比率を示すデータの一例である。本実施形態においては、1つのボクセルに設定されるマテリアルIDが2つまでなので、上記第1マテリアルIDが示すマテリアルと上記第2マテリアルIDが示すマテリアルの一方の比率を示すマテリアル混合比データで他方の比率も表すことができる。本実施形態においては、マテリアル混合比は、0以上1以下の値によって第1のマテリアルおよび第2のマテリアルからなる全体に対する第2のマテリアルの割合を示す値とする。例えば、あるボクセルに設定されるマテリアル混合比が0.4である場合、当該ボクセルにおいて、第1のマテリアルと第2のマテリアルとが0.6:0.4の比で構成されることを表す。詳細は後述するが、ボクセルオブジェクトの見た目および性質はマテリアルに基づいて決定される。マテリアル混合比は、ボクセルオブジェクトの見た目および性質を決定するために用いられる。マテリアル混合比は、他の実施形態においては、第1のマテリアルの割合を示す値であってもよい。また、マテリアルのボクセル内の比率は、それぞれのマテリアル毎の割合を示すそれぞれの値によって表されてもよい。特に、他の実施形態において、マテリアルを2種類まででなくて3種類以上設定可能な場合には、それぞれのマテリアル毎の割合をそれぞれ示す複数の値としてマテリアルのボクセル内の比率を表すことになる。
【0077】
なお、本実施形態において、ボクセルには必ずしも2種類のマテリアルが設定される必要はなく、1種類のマテリアルが設定されてもよい。例えば、あるボクセルに設定されるマテリアルが1種類である場合、第1マテリアルIDが当該マテリアルを示し、マテリアル混合比は0に設定される。
【0078】
状態データは、当該ボクセルに設定される状態を示す。状態データの具体的な内容や種類数は任意である。本実施形態においては、状態データは、当該ボクセルに設定されるダメージの量を示すデータを含む。なお、他の実施形態においては、状態データには、例えば当該ボクセルが濡れた状態であるか否か(および、その程度)を示すデータが含まれていてもよい。
【0079】
マテリアル置換フラグデータは、当該ボクセルに設定されているマテリアル置換フラグがオンに設定されているか否かを示す。マテリアル置換フラグは、マテリアルIDが示す当該ボクセルのマテリアルの情報を維持したまま、当該ボクセルにおけるマテリアルを当該マテリアル置換フラグに対応するマテリアル(例えば、後述する特殊マテリアル)に置換する場合にオンに設定される。一方、マテリアル置換フラグがオフの場合、当該ボクセルに設定されているマテリアルIDが示すマテリアルが当該ボクセルのマテリアルであるとされる。本実施形態では、マテリアル置換フラグをオン/オフすることにより、当該ボクセルのマテリアルを当該マテリアル置換フラグに対応するマテリアルに置換したり、当該マテリアルへの置換を解除したりすることができる。なお、[2-1.ボクセル]~[2-6.メッシュの生成]においては、マテリアル置換フラグがオフに設定された例を用いて説明し、後述する[2-7.特定のマテリアルに置換する処理]においてマテリアル置換フラグがオンに設定された例の説明を行う。なお、マテリアル置換フラグは、オン/オフだけでなく、オンの場合にさらに複数種類の特殊マテリアルのいずれに置換するかを示す情報であって、複数種類の特殊マテリアルの置換を行えるようにしてもよい。
【0080】
解除後フラグデータは、当該ボクセルに設定されている解除後フラグがオンに設定されているか否かを示す。解除後フラグは、当該ボクセルにおける上記マテリアル置換フラグがオンからオフに解除された場合にオンに設定される。そして、オンに設定された解除後フラグは、所定の条件を満たすことによりオフに設定される。解除後フラグがオンに設定されている場合、当該ボクセルに基づくゲーム空間における位置に当該解除後フラグに対応する特殊表現を行う描画処理(例えば、当該ボクセルに関連する表示用メッシュ(後述する[2-6.メッシュの生成]参照)の表面位置に解除後エフェクトを表示する描画処理)が行われる。なお、[2-1.ボクセル]~[2-6.メッシュの生成]においては、解除後フラグがオフに設定された例を用いて説明し、後述する[2-7.特定のマテリアルに置換する処理]において解除後フラグがオフからオンに設定される例の説明を行う。
【0081】
上記のように、本実施形態においてはボクセルデータにはマテリアルIDが含まれるので、ゲームシステム1は、当該マテリアルIDが示すマテリアルの内容を規定するマテリアルデータを記憶する。図12は、マテリアルデータの一例を示す図である。図12に示すように、本実施形態におけるマテリアルデータにおいては、マテリアル毎に、マテリアルIDと、当該マテリアルに設定される名称、性質、および、描画設定の情報とが対応付けられる。
【0082】
マテリアルデータに含まれる名称は、当該マテリアルに設定される名称(例えば、土、砂、草等)である。なお、ゲーム中においては、ボクセルオブジェクトのマテリアルの名称が表示されてもよい。このような表示を行うために、マテリアルデータはマテリアルの名称の情報を含む。
【0083】
マテリアルデータに含まれる性質は、当該マテリアルに設定される性質である。マテリアルの性質とは、当該マテリアルが設定されるボクセルオブジェクトがゲームにおいて有する性質である。なお、マテリアルの性質の具体的な内容や種類数は任意である。例えば、マテリアルの性質として下記の情報の少なくともいずれかが設定されてもよい。
・硬さ
・重さ
・滑り易さ
・プレイヤキャラクタが接触した場合のダメ―ジ設定
・温度
・ボクセルオブジェクトに他のオブジェクトが接着可能か否か
・プレイヤキャラクタがボクセルオブジェクトを破壊または取得した場合におけるプレイヤキャラクタの体力の回復量
・プレイヤキャラクタがボクセルオブジェクトを破壊または取得した場合にプレイヤキャラクタが取得するゲーム内通貨の量
他の実施形態においては、マテリアルの性質を示す情報として、上記とは異なる情報が設定されてもよい。
【0084】
本実施形態においては、マテリアルデータは、マテリアルの性質を特定する情報として、当該性質を示すIDを含む(図12参照)。図示しないが、ゲームシステム1は、用意される性質毎に、性質IDに対して当該性質の内容(例えば、上述の重さや滑りやすさを示す値)が対応付けられた性質情報を記憶する。ゲームシステム1は、上記性質情報を参照することで、マテリアルについて設定される性質の具体的な内容を特定することができる。
【0085】
マテリアルデータに含まれる描画設定は、当該マテリアルが設定されるボクセルオブジェクトの描画に用いられるテクスチャ等、描画に関する設定を示す情報である。本実施形態においては、マテリアルデータは、描画設定の情報として、当該マテリアルが設定されるボクセルオブジェクトの描画に用いるテクスチャのIDを含む(図12参照)。図示しないが、ゲームシステム1は、用意されるテクスチャ毎に、テクスチャIDと、当該テクスチャIDが示すテクスチャとを対応付けたテクスチャ情報を記憶する。ゲームシステム1は、上記テクスチャ情報を参照することで、マテリアルについて設定されるテクスチャの具体的な内容を特定することができる。なお、他の実施形態においては、描画設定の情報として、テクスチャの情報に加えて、シェーディングの設定に関する任意の情報が設定されてもよい。たとえば、反射率や、法線に関する情報等が設定されていてもよい。
【0086】
また、マテリアルデータは、図12に示すデータ以外の他のデータを含んでいてもよい。例えば、マテリアルデータは、サウンド設定に関するデータを含んでいてもよい。例えば、サウンド設定に関するデータは、当該ボクセルに基づくボクセルオブジェクト上をプレイヤキャラクタが歩いた場合に出力される足音を規定するデータであってもよい。
【0087】
なお、マテリアルデータは、マテリアルの性質および/または描画設定を特定可能な任意の形式のデータであってよい。例えば、他の実施形態においては、マテリアルデータは、マテリアルIDやテクスチャIDを含むデータ構造に代えて、マテリアルの性質および/または描画設定を直接示すデータを含むデータ構造を有していてもよい。
【0088】
[2-2.ボクセルデータの更新]
ゲーム中においては、上述のボクセルデータが更新されることで、ボクセルオブジェクトが変形される。本実施形態においては、ボクセルオブジェクトを更新させるためのゲームイベント(以下、「更新イベント」と呼ぶ。)が発生した場合、ゲームシステム1はボクセルデータの更新を行う。更新イベントの具体的な内容は任意である。更新イベントは、例えば、ゲームに登場するキャラクタが、ボクセルオブジェクトを変形させるアクションを行った(例えば、プレイヤキャラクタがボクセルオブジェクトに対してパンチを行った)ことであってもよいし、ボクセルオブジェクトを変形させる事象が発生したこと(例えば、キャラクタが投げつけたオブジェクトがボクセルオブジェクトに接触したことや、爆弾が爆発したこと)であってもよい。
【0089】
図13は、更新イベントが発生した場合におけるゲーム空間の一例を示す図である。図13に示す状況は、ボクセルオブジェクトである地形オブジェクト202に対してプレイヤキャラクタ201がパンチアクションを行った状況である。詳細は後述するが、図13に示す例においては、プレイヤキャラクタ201によるパンチアクションが当たった位置の周囲の地形オブジェクト202が消去されるように、ボクセルデータが更新される。これによって、プレイヤキャラクタ201によるパンチアクションによって地形オブジェクト202が破壊される様子が表現される。
【0090】
本実施形態においては、更新イベントが発生した場合、ゲームシステム1は、ボクセルオブジェクトの更新を行う更新範囲(図13に示す例においては、更新範囲203)をゲーム空間において設定する。更新範囲の位置、形状、および、大きさは任意である。更新範囲の位置は、例えば、発生した更新イベントに関するオブジェクト(例えば、パンチを行ったプレイヤキャラクタ)とボクセルオブジェクトとが接触した位置に基づいて決定されてもよい。図13に示す例においては、プレイヤキャラクタ201によるパンチが当たった位置に基づいて更新範囲203の位置が決定されてよく、例えば、当たった位置、あるいは、当たった位置から所定距離だけ前方の位置が更新範囲203の中心位置とされてもよい。更新範囲の形状および大きさは、更新イベントの種類に応じた形状となるように予め決定されてもよい。例えば、プレイヤキャラクタ201のパンチによる更新イベントが発生した場合、図13に示すような所定の大きさの球体として、更新範囲の形状および大きさが決定されてもよい。また、更新範囲の大きさは、発生した更新イベントの影響度合いを示す値(例えば、パンチの強さや爆発の大きさ)に応じて決定されてもよい。
【0091】
ゲームシステム1は、設定された更新範囲に対応するボクセルについて密度を変更する。なお、更新範囲に対応するボクセルとは、例えば、更新範囲内のボクセル、あるいは、更新範囲と重複するボクセルである。密度が変更される結果、後述する処理によってボクセルオブジェクトのメッシュが変更されることで、ボクセルオブジェクトの形状(見た目の形状、および、接触判定に用いられる形状)が変更される。なお、他の実施形態においては、ゲームシステム1は、更新範囲内に含まれるボクセルについて密度を変更することに加えて、当該ボクセルにおけるマテリアル(すなわち、第1のマテリアル、第2のマテリアル、および、マテリアル混合比)を変更してもよいし、当該ボクセルにおける状態を変更してもよい。
【0092】
本実施形態においては、ゲームシステム1は、ボクセルが更新範囲に含まれるか否かの判定を、SDF(Signed Distance Field:符号付距離場)を用いて行う。ゲームシステム1は、ゲーム空間内に設定される更新範囲を示すSDFを設定し、SDFの値に基づいて上記の判定を行う。SDFは、任意の位置について、規定する形状からの距離を符号付で表すものである。図14は、更新範囲の一例を示す図である。図14に示す例においては、ゲーム空間に球形の更新範囲が設定されている。例えば、図14に示す例においては、ゲーム空間内の位置のうち、SDFが表す形状の内側の位置についてはSDFの値が負の値となり、SDFが表す形状の外側の位置についてはSDFの値が正の値となるようにSDFが設定される。この例では、SDFの値の正であるか負であるかによって、更新範囲に含まれるか否かを判定することができる。また、符号付距離の値を用いることで、単純な内外判定だけでなく、補正や補間等の処理を行うこともできる。
【0093】
上記においては、更新範囲内のボクセルオブジェクトが消去されたように変形されるという変更がボクセルオブジェクトに加えられる例について説明したが、更新範囲を用いてボクセルオブジェクトに加えられる変更はこれに限らない。例えば、更新範囲内にボクセルオブジェクトが新たに追加される(つまり、更新範囲の分だけボクセルオブジェクト内の領域が占める体積が増加する)変更がボクセルオブジェクトに対して加えられてもよい。また、ボクセルの密度は変更されずに、更新範囲内におけるボクセルのマテリアルのみが変化するような変更がボクセルオブジェクトに対して加えられてもよい。また、ボクセルの密度の変更とマテリアルの変更とが複合的に加えられてもよい。
【0094】
[2-3.頂点の算出]
上記のようにしてボクセルの密度が更新された場合、ゲームシステム1は、更新後のボクセルデータに基づいて頂点を設定する。上記の頂点とは、ボクセルオブジェクトのメッシュの頂点となり得るものである。詳細は後述するが、本実施形態においては、上記の頂点について簡略化が行われ、簡略化後の頂点がボクセルオブジェクトのメッシュの頂点となる。
【0095】
図15は、頂点の設定方法の一例を示す図である。なお、以下において説明する図15図24では、図面を見やすくし、説明を分かりやすくする目的で、ボクセル、頂点、メッシュ等を2次元で表現しているが、実際には3次元空間におけるボクセルに基づいて3次元空間において頂点およびメッシュが設定される。本実施形態においては、ゲームシステム1は、存在することを示す設定の密度(すなわち、後述する基準値以上の密度)を有するボクセルと、存在しないことを示す設定の密度(すなわち、後述する基準値未満の密度)を有するボクセルとが隣接する部分に対し、周囲の複数のボクセルの位置と密度とに基づいた座標に頂点を設定させる手法を用いる。以下、この手法の詳細について説明する。
【0096】
上述のように、本実施形態においては、ボクセルに設定される密度は、0~255の範囲で設定される。密度が0のボクセルは完全に空中で、密度が255のボクセルは完全に中身が詰まっている状態を表す。0と255の間の密度は補間的に扱われ、頂点の決定に用いられる。そして、本実施形態においては、密度が基準値以上のボクセルをオブジェクト内とし、密度が基準値未満のボクセルをオブジェクト外であると仮想的に扱う。密度が基準値以上のボクセルを、存在することを示すボクセルであるとし、密度が基準値未満のボクセルを、存在しないことを示すボクセルであるとして仮想的に扱う、ということもできる。密度が0のボクセルのみをオブジェクト外と定義する(すなわち基準値=1とする)必要はなく、当該基準値は、例えば128とする。図15に示す例においては、ボクセル211および外側の他のボクセルにおいては密度が0、ボクセル212は密度が基準値未満である100、ボクセル213、214においては密度が基準値以上である150、210と設定されているものとする。本実施形態においては、ゲームシステム1は、密度が基準値以上のボクセルと基準値未満のボクセルとの間に頂点を生成する。具体的には、隣接する8個(図面では4個)のボクセルに跨がった領域(図面では点線に囲まれた領域)ごとに、頂点を生成するか否かの判定を行う。つまり、密度が基準値以上のボクセルと基準値未満のボクセルの両方に跨がる領域に頂点を生成する。頂点の座標は、XYZの軸ごとに、隣接するボクセル同士の密度を比較し、密度の差に基づいた補間によって決定される。なお、頂点間を結ぶ直線の位置および向きを規定する法線情報を設定しておくことで、さらに法線情報に基づいて頂点の座標を計算することができる。なお、法線情報は、少なくとも一部のボクセルについて予め保持しておくようにしてもよいし、保持されていない場合は法線情報も隣接するボクセル同士の密度に基づいて算出されてもよい。なお、図15において、ボクセル212の密度は基準値未満であるので、頂点の有無の判定においては、ボクセル212はオブジェクト外として扱われるが、ボクセル212の密度の値自体は、生成される頂点の座標計算に用いられる。仮にボクセル212の密度よりも低い値に基準値を設定した場合は、図15のボクセル212における右上側と左上側に頂点がさらに増える結果となる。
【0097】
上記のように頂点を設定することで、設定された各頂点(あるいは、設定された各頂点に対して後述の簡略化処理を行った後の各頂点)を結ぶメッシュを生成する場合には、ボクセルごとの密度をある程度反映した体積を有する形状を生成することができる。ただし、隣接ボクセルとの関係によっては、密度0のボクセルが一部オブジェクト内の領域を含むことや、密度255のボクセルが一部オブジェクト外の領域を含むようなこともあり得る。また、本実施形態では、基準値未満のボクセルはオブジェクト外として処理するため、オブジェクト内として処理する場合に比べて頂点が少なくなる分、体積も小さくなる。このように、厳密に密度の値に対応する体積となるようにポリゴンメッシュを算出する必要は無い。
【0098】
[2-4.頂点のマテリアルの決定]
ゲームシステム1は、上記のように設定された各頂点についてマテリアルを決定する。頂点のマテリアルは、当該頂点の周囲のボクセルに関するマテリアルに基づいて決定される。頂点の周囲のボクセルとは、例えば、当該頂点を生成するか否かの判定に用いられたボクセル(すなわち、上述の「ボクセルに跨がった領域」と重なるボクセル)である。なお、他の実施形態においては、頂点のマテリアルの決定に用いられるボクセルと、頂点の生成の判定に用いられるボクセルとは同じである必要はなく、異なっていてもよい。
【0099】
図16は、頂点のマテリアルを決定する方法の一例を示す図である。図16に示す例においては、4つのボクセル215~218に関して頂点219が設定されたものとし、当該4つのボクセル215~218が上述の「頂点の周囲のボクセル」である。なお、実際の3次元空間では、頂点の周囲のボクセルの数は8つとなる。また、図16に示す例においては、ボクセル215については、密度が255、第1のマテリアルが「砂」、マテリアル混合比は0(つまり、第1のマテリアル:第2のマテリアル=1:0、もしくは第2のマテリアルは設定されなくともよい)と設定されるものとする。ボクセル216については、密度が0(第1および第2のマテリアルは設定されなくともよい)と設定されるものとする。ボクセル217については、密度が204、第1のマテリアルが「砂」、第2のマテリアルは「草」、マテリアル混合比は0.3(つまり、第1のマテリアル:第2のマテリアル=0.7:0.3)と設定されるものとする。ボクセル218については、密度が153、第1のマテリアルが「土」、第2のマテリアルは「草」、マテリアル混合比は0.4(つまり、第1のマテリアル:第2のマテリアル=0.6:0.4)と設定されるものとする。また、頂点219の位置を示す座標は、(X,Y)=(0.8,0.6)であるとする。なお、この座標の座標系は、図16における左右方向をX座標とし、上下方向をY座標とし、ボクセル215~218の中心位置(図13に示す白丸の位置)のうちで左下のボクセル217の中心位置を(0,0)とする座標系である。
【0100】
頂点のマテリアルを決定する場合、ゲームシステム1は、周囲のボクセルにおけるマテリアル毎に、当該マテリアルの密度と、ボクセルから頂点までの距離に基づく重み値とに基づいて評価値を算出する。まず、重み値は、ボクセル毎に算出され、当該ボクセルの中心位置から頂点までの距離が近いほど大きくなるように算出される。本実施形態においては、当該ボクセルの中心位置を(x1,y1)とし、頂点の座標を(x2,y2)としたとき、あるボクセルについての重み値は、次の式(1)に従って算出される。
(重み値)=|(1-x1)-x2|・|(1-y1)-y2|…(1)
図16に示す例においては、上式(1)に従って算出される各ボクセル215~218の重み値は次のようになる。
(ボクセル215の重み値)=|(1-0)-0.8|・|(1-1)-0.6|=0.12
(ボクセル216の重み値)=|(1-1)-0.8|・|(1-1)-0.6|=0.48
(ボクセル217の重み値)=|(1-0)-0.8|・|(1-0)-0.6|=0.08
(ボクセル218の重み値)=|(1-1)-0.8|・|(1-0)-0.6|=0.32
【0101】
また、ゲームシステム1は、マテリアルの密度をボクセル毎に算出する。ここで、マテリアルの密度とは、当該ボクセルに設定されているマテリアルのうちで当該マテリアルが占める割合に、当該ボクセルの密度を乗算した値である。なお、本実施形態においては、上記ボクセルの密度としては、上述した0から255までの値を、0から1までの値に正規化した値を用いるものとする。図16に示す例においては、ボクセル215については、設定されているマテリアルは砂のみであるので、砂のマテリアルに関する上記割合は1であり、当該ボクセルの密度は1であるので、砂のマテリアルの密度は1となる。ボクセル216については、密度が0であってマテリアルも設定されていないので、マテリアルの密度は算出されない。もしくは、何らかのマテリアルが設定されている場合は、当該マテリアルの密度は0となる。ボクセル217については、設定されている砂のマテリアルと草のマテリアルとの上記割合はそれぞれ、0.7、0.3であり、当該ボクセルの密度は204/255=0.8であるので、砂のマテリアルの密度は、0.7・0.8=0.56となり、草のマテリアルの密度は、0.3・0.8=0.24となる。ボクセル218については、設定されている土のマテリアルと草のマテリアルとの上記割合はそれぞれ、0.6、0.4であり、当該ボクセルの密度は153/255=0.6であるので、土のマテリアルの密度は、0.6・0.6=0.36となり、土のマテリアルの密度は、0.4・0.6=0.24となる。
【0102】
そして、ゲームシステム1は、上記の重み値と、マテリアルの密度とに基づいて、マテリアル毎の上記評価値を算出する。本実施形態においては、マテリアルの評価値は、各ボクセルについて算出された当該マテリアルの密度を、ボクセル毎の重み値に応じた重みを付して、周囲の各ボクセルについて合計した値である。図16に示す例においては、砂のマテリアルの評価値は、ボクセル215についてのマテリアルの密度が1、重み値が0.12であり、ボクセル217についてのマテリアルの密度が0.56、重み値が0.08であるので、1・0.12+0.56・0.08=0.1648となる。また、草のマテリアルの評価値は、ボクセル217についてのマテリアルの密度が0.24、重み値が0.08であり、ボクセル218についてのマテリアルの密度が0.24、重み値が0.32であるので、0.24・0.08+0.24・0.32=0.096となる。また、土のマテリアルの評価値は、ボクセル218についてのマテリアルの密度が0.36、重み値が0.32であるので、0.36・0.32=0.1152となる。
【0103】
ゲームシステム1は、マテリアル毎の評価値に基づいて頂点のマテリアルを決定する。具体的には、評価値が大きいものから順に所定数のマテリアルが頂点のマテリアルとして決定される。本実施形態においては、評価値が大きい2つが頂点のマテリアルとして決定される。図16に示す例においては、砂、草、土のマテリアルの評価値は、それぞれ、0.1648、0.096、0.1152であるので、頂点のマテリアルとしては、砂のマテリアルと土のマテリアルとに決定される。また、ゲームシステム1は、決定された2つのマテリアルの比率を上記評価値に基づいて算出する。本実施形態においては、2つのマテリアルの比率は、上記マテリアル混合比と同様、全体に対する第2のマテリアルの割合である第2マテリアル比として表されてもよい。図16に示す例において、例えば第1のマテリアルが土のマテリアルであり、第2のマテリアルが砂のマテリアルと設定された場合、上記第2マテリアル比は、0.1648/(0.1648+0.1152)≒0.59で示される。なお、他の実施形態においては、2つのマテリアルの比率を表す値としては、第1のマテリアルの割合を示す値が用いられてもよい。また、それぞれのマテリアル毎の割合を示すそれぞれの値が用いられてもよい。
【0104】
本実施形態においては、ゲームシステム1は、頂点の位置と、頂点に設定される第1および第2のマテリアルのマテリアルIDと、マテリアルの比率とを示す頂点データを生成して記憶する。ただし、頂点に設定されるマテリアルを管理する方法は任意である。他の実施形態においては、頂点データは、第1および第2のマテリアルの内容を直接示すデータを含むデータ構造であってもよい。
【0105】
上記のように、本実施形態においては、ゲームシステム1は、頂点毎に、周囲の複数のボクセルのボクセルデータに含まれるマテリアルIDについて、当該マテリアルID毎の優先度パラメータ(たとえば、評価値)を当該ボクセルデータに基づいて算出する。そして、優先度パラメータに基づいて、優先度の高い所定個数(ここでは、2個)までのマテリアルIDを選択して頂点のマテリアルIDとして決定する。なお、優先度パラメータとして用いられる具体的なパラメータは、上記評価値に限らない。例えば、他の実施形態においては、上記重み値を用いずに、マテリアルの密度を用いて算出される評価値が優先度パラメータとして用いられてもよい。
【0106】
なお、本実施形態においては、優先度パラメータの一例である評価値は、当該頂点の周囲の複数のボクセルの密度に基づいて、密度の高いボクセルに設定されたマテリアルの優先度が高くなるように(つまり、当該マテリアルの評価値が大きくなり、当該マテリアルが選択されやすくなるように)算出される。これによれば、ボクセルに設定される密度の大きさを反映して頂点のマテリアルを決定することができる。
【0107】
また、本実施形態においては、優先度パラメータの一例である評価値は、当該頂点の周囲の複数のボクセルの基準位置(具体的には、中心位置)から当該頂点までの距離に基づいて、当該頂点に近いボクセルに設定されたマテリアルの優先度が高くなるように算出される。これによれば、ボクセルと頂点との距離を反映して頂点のマテリアルを決定することができる。
【0108】
また、本実施形態においては、優先度パラメータの一例である評価値は、当該頂点の周囲の複数のボクセルのマテリアル混合比に基づいて、当該マテリアル混合比が高いマテリアルの優先度が高くなるように算出されるとも言うことができる。これによれば、1つのボクセルに複数のマテリアルが設定される場合において、各マテリアルの比率を反映して頂点のマテリアルを決定することができる。
【0109】
[2-5.頂点の簡略化]
本実施形態においては、ゲームシステム1は、上記のようにして算出された各頂点について簡略化を行う。すなわち、ゲームシステム1は、上記のようにして算出された各頂点のいくつかをまとめて1つの頂点に置き換えることで、頂点数を減少させる。なお、詳細は後述するが、置き換えられる頂点の座標(すなわち、位置)およびマテリアルは、置き換え前の複数の頂点に基づいて設定される。このような簡略化によって、ボクセルオブジェクトのメッシュを構成する頂点の数やポリゴンの数を減少させることができ、処理に用いられるメモリ量を低減したり、処理負荷を低減したりすることができる。
【0110】
本実施形態においては、ゲームシステム1は、SVO(Sparse Voxel Octree)を用いて各頂点を表現することで簡略化を行う。図17は、頂点の簡略化の一例を示す図である。なお、図17では、図17に示す(a)に示す実線で示される1つの正方形が1つの頂点区分領域を表す。ここで、頂点区分領域とは、ボクセルの中心位置を頂点とする正方形の領域であり(実際の3次元空間では、頂点区分領域は立方体または直方体である)、上述の図15および図16における点線を辺とする領域である。また、図17において、内部に「v」の文字が示されている頂点区分領域は、頂点が設定されている頂点区分領域を示す。
【0111】
本実施形態においては、ゲームシステム1は、互いに隣接する所定個数(図17では4個、実際の3次元空間では8個)の頂点区分領域内の頂点について、簡略化が可能であるか否かを判定する。簡略化が可能であると判定される場合、当該所定個数の頂点区分領域内の頂点について簡略化が行われる。
【0112】
図17に示す(a)は、簡略化が行われる前の状態である。図17に示す例においては、点線で囲まれる範囲内の頂点区分領域について簡略化可能と判定されるものとする。このとき、ゲームシステム1は、簡略化可能と判定される上記所定個数の各頂点区分領域内の頂点が、1つの頂点に置き換えられるように簡略化を行う(図17に示す(b)参照)。これによって、上記所定個数の頂点区分領域内の頂点が1つの頂点に簡略化されることとなる。
【0113】
本実施形態においては、ゲームシステム1は複数段階で簡略化を行う。段階数は任意であるが、図17では、2段階目までを図示して説明する。図17に示す(b)は、1段階目の簡略化が行われた状態を示し、図17に示す(c)は、2段階目の簡略化が行われた状態を示している。2段階目の簡略化においては、1段階目の簡略化によって生じた頂点を対象として、簡略化が可能であるか否かが判定される。図17に示す例においては、図17に示す(b)において点線で囲まれる範囲内の頂点区分領域について簡略化可能と判定される結果、当該頂点区分領域の頂点が簡略化され、図17に示す(c)に示す状態となる。なお、1段階目の簡略化が可能であるか否かの判定条件と、2段階目の簡略化が可能であるか否かの判定条件とは同じ内容であってもよいし、異なる内容であってもよい。
【0114】
簡略化が可能であるか否かの判定について、具体的な方法は任意である。本実施形態においては、上記判定のための条件として、ボクセルオブジェクトの形状に関する条件と、マテリアルに関する条件とが用いられる。本実施形態においては、ボクセルオブジェクトの形状に関する条件と、マテリアルに関する条件との両方が満たされる場合、簡略化可能であると判定され、ボクセルオブジェクトの形状に関する条件と、マテリアルに関する条件との少なくとも一方が満たされない場合、簡略化不可能であると判定される。
【0115】
形状に関する条件とは、例えば、簡略化前の各頂点による形状と、簡略化後の各頂点による形状とが大きく変更されないことである。例えば、各頂点による形状が簡略化前後で大きく変更されないか否かは、簡略化前のメッシュと簡略化後のメッシュとの間の誤差を示す指標を算出し、当該指標が所定の許容値以下であるか否かによって判定することもできる。また例えば、簡略化前の各頂点による形状が中空の形状であるのに対して、簡略化後の各頂点による形状が中空でない形状となる(つまり、簡略化によって中空であるという情報が欠落してしまう)場合も、形状に関する条件が満たされないと判定される。なお、上記の場合が生じるか否かは、例えば、判定対象となる頂点区分領域に対応する各ボクセルの密度に基づいて判定することができる。また例えば、簡略化前の各頂点による形状が、2以上の頂点によってしか表現できず、1つの頂点では表現できないような形状である場合も、形状に関する条件が満たされないと判定される。なお、ボクセルオブジェクトの形状に関する条件としては、SVOを用いた従来の手法と同様の条件が用いられてもよい。
【0116】
また、マテリアルに関する条件としては、本実施形態においては、簡略化の対象となる上記所定個数の頂点区分領域内の各頂点に設定されるマテリアルの種類数に関する条件が用いられる。図18は、マテリアルに関する条件の一例を示す図である。図18に示す(a)は、頂点221~224のマテリアルが、それぞれ、(草)、(草)、(草と土)、(草と土)である場合を示しており、図18に示す(b)は、頂点221~224のマテリアルが、それぞれ、(草と砂)、(草)、(草と土)、(草と土)である場合を示している。本実施形態においては、マテリアルに関する条件は、簡略化の対象となる上記各頂点に設定されるマテリアルの種類の合計が所定数以下となることである。例えば、マテリアルに関する条件は、1つの頂点に設定可能なマテリアルの数以下となることとする。本実施形態においては、上記所定数は2である。例えば、図18に示す(a)の場合には、簡略化の対象となる各頂点221~224に設定されるマテリアルの種類の合計は、草と土の2種類となるので、マテリアルに関する条件は満たされる。このとき、上述のオブジェクトの形状に関する条件が満たされることを条件に、各頂点221~224は簡略化可能と判定される。一方、図18に示す(b)の場合には、簡略化の対象となる各頂点221~224に設定されるマテリアルの種類の合計は、草と土と砂の3種類となるので、マテリアルに関する条件は満たされない。このとき、上述のオブジェクトの形状に関する条件が満たされるか否かに関わらず、各頂点221~224は簡略化不可能と判定される。
【0117】
なお、ゲームシステム1において、厳密には異なる種類に分類されるマテリアルであっても、設定される性質が同じであって、見た目が異なる複数種類のマテリアルが用意されてもよい。このような複数種類のマテリアルの一部については、マテリアルに関する条件の判定においては同じ種類とみなして判定を行ってもよい。例えば、土のマテリアルに関して、性質は同じであるものの見た目(例えば、テクスチャの色や模様)が近い複数種類の土のマテリアルが用意される場合がある。このような場合、ゲームシステム1は、当該複数種類の土のマテリアルについては同じ種類とみなしてマテリアルに関する条件の判定を行ってもよい。
【0118】
ここで、本実施形態においては、頂点に関してはボクセルと同様に、2種類までのマテリアルが設定可能である。これに対して、本実施形態においては、簡略化の対象となる各頂点に設定されるマテリアルの種類の合計が3種類以上である場合には、簡略化が行われない。すなわち、マテリアルの種類の合計が1つの頂点に設定可能なマテリアルの数を超える場合には簡略化が行われない。したがって、簡略化によって頂点の数を減らしたとしても、頂点に設定されたマテリアルの情報が簡略化によって欠落することはなく、マテリアルの情報を維持することができる。
【0119】
本実施形態においては、簡略化後の頂点のマテリアルは、簡略化前の各頂点のマテリアルに基づいて決定される。具体的には、ゲームシステム1は、簡略化前の頂点に設定される1種類または2種類のマテリアルを、簡略化後の頂点における第1のマテリアルおよび第2のマテリアルに設定する。これによって、マテリアルの情報を維持することができる。なお、簡略化後のマテリアルの比率は、簡略化前の各頂点のマテリアルの比率に基づいて決定される。本実施形態においては、簡略化後のマテリアルの比率は、上述の評価値を用いて各頂点のマテリアルの比率を算出する方法と同様にして算出される。すなわち、ゲームシステム1は、簡略化後の頂点と簡略化前の頂点との距離に基づいて重み値を算出し、当該重み値と、簡略化前の頂点におけるマテリアルの密度(なお、上記[2-4.頂点のマテリアルの決定]で述べたマテリアルの評価値を、ここでのマテリアルの密度として用いることができる。)とに基づいて、マテリアル毎の評価値を算出する。そして、算出された各マテリアルの評価値に基づいてマテリアルの比率を算出する。
【0120】
[2-6.メッシュの生成]
本実施形態においては、上記のようにして簡略化された各頂点に基づいて、ボクセルオブジェクトのメッシュが生成される。図19は、各頂点に基づいて生成されるメッシュの一例を示す図である。なお、図19に示す正方形は、上述の頂点区分領域、あるいは、簡略化によって複数の頂点区分領域がまとめられて1つになった頂点区分領域を示す。図19に示すように、ゲームシステム1は、頂点区分領域が隣接する頂点同士を結ぶ直線を辺とする多角形で構成されるメッシュを生成する。メッシュを構成する各多角形は三角形または四角形となる。
【0121】
本実施形態においては、ゲームシステム1は、表示用メッシュと判定用メッシュとの2種類のメッシュを生成する。表示用メッシュは、ボクセルオブジェクトの表示のために用いられるメッシュである。判定用メッシュは、ボクセルオブジェクトのコリジョン判定のために用いられるメッシュである。詳細は後述するが、ゲームシステム1は、上記の2種類のメッシュを用いることで、ボクセルオブジェクトの表示およびコリジョン判定のそれぞれに適したメッシュを用いて処理を行うことができる。
【0122】
本実施形態においては、ゲームシステム1は、表示用メッシュおよび判定用メッシュを、上述のSVOのデータに基づいて(すなわち、簡略化された各頂点に基づいて)生成する。これによれば、2種類のメッシュの生成に用いられる頂点データを共有することで、処理の効率化を図ることができる。なお、他の実施形態においては、ゲームシステム1は、頂点の簡略化を行わなくてもよく、簡略化されていない頂点に基づいて表示用メッシュおよび/または判定用メッシュを生成してもよい。
【0123】
本実施形態においては、ゲームシステム1は、判定用メッシュを、表示用メッシュよりも簡易な形状となるように生成する。具体的には、ゲームシステム1は、判定用メッシュの頂点数が表示用メッシュの頂点数よりも少なくなるようにする。ここで、本実施形態においては、SVOのデータは、簡略化前の頂点のデータと、簡略化された頂点のデータとを八分木構造で保持するデータであるが、簡略化可能であるか否かの判定のために用いられたデータも含む。このデータは、例えば、簡略化後の頂点の候補として算出された頂点(仮の頂点と呼ぶ。)のデータ、および、簡略化前の頂点と当該仮の頂点との間の誤差を示す上述の指標のデータを含む。例えば、ゲームシステム1は、仮の頂点のうち、上記指標が所定の閾値(この閾値は、上記許容値よりも大きいものとする)以下である頂点を、判定用メッシュの生成に用いるようにしてもよい。これによれば、判定用メッシュの頂点数を表示用メッシュの頂点数よりも少なくすることができる。判定用メッシュの頂点数を表示用メッシュの頂点数よりも少なくすることで、コリジョン判定による処理負荷を軽減できる。また、表示用メッシュの頂点数を過度に減らすことがないのでボクセルオブジェクトの見た目を詳細に表現できる。
【0124】
なお、他の実施形態においては、表示用メッシュおよび判定用メッシュは、同じデータに基づいて生成されてもよいし、異なるデータに基づいて生成されてもよい。また、表示用メッシュと判定用メッシュは同じ形状であってもよい(ただし、この場合でも両者に設定されるマテリアルは異なっていてもよい)。また、判定用メッシュの頂点数は、表示用メッシュの頂点数と同じであってもよいし、表示用メッシュの頂点数よりも多くてもよい。
【0125】
[2-6-1.表示用メッシュのマテリアルの決定]
次に、表示用メッシュのマテリアルおよび見た目を決定する方法の一例について説明する。本実施形態においては、ゲームシステム1は、表示用メッシュを構成する多角形毎にマテリアルを決定する。詳細は後述するが、本実施形態においては、上記多角形に対応するポリゴンは、2種類までのマテリアルに対応する2種類までのテクスチャを用いて描画される。そのため、ゲームシステム1は、メッシュを構成する各多角形について、最終的には1つの多角形について設定されるマテリアルが2種類以下となるようにする。他の実施形態においては、3種類以上のマテリアルが設定されるようにしてもよい。例えば、ボクセルのマテリアル、頂点のマテリアルがそれぞれ3種類以上の実施形態において、同数のマテリアルが多角形に設定されるようにしてもよい。
【0126】
本実施形態においては、表示用メッシュを構成する多角形として四角形が形成されることがある(図19参照)。表示用メッシュのマテリアルを決定する際、ゲームシステム1はまず、表示用メッシュを構成する四角形を、一定条件下で2つの三角形に分割する。以下、図20を参照して、四角形を2つの三角形に分割する処理について説明する。
【0127】
図20は、メッシュを構成する四角形が2つの三角形に分割される一例を示す図である。図20に示す(a)は、メッシュの頂点の一部である頂点231~234によって形成される分割前の四角形を示しており、図20に示す(b)は、当該四角形を分割した2つの三角形を示している。図20に示す例においては、各頂点231~234のマテリアルとしては、それぞれ、草、土、砂と草、および、草が設定されているものとする。
【0128】
本実施形態においては、ゲームシステム1は、四角形の各頂点にそれぞれ設定されるマテリアルの種類が合計で3種類以上である場合、分割条件が満たされるか否かを判定する。本実施形態においては、分割条件は、四角形を2つの三角形に分割することで、三角形の各頂点に設定されるマテリアルの種類を合計で2種類以下にできることである。分割条件が満たされる場合、ゲームシステム1は、各頂点に設定されるマテリアルの種類が合計で2種類以下となる2つの三角形に四角形を分割する。図20に示す例においては、四角形を形成する各頂点231~234に設定されるマテリアルは、草、土、および、砂の3種類である。また、上記四角形を、頂点231,232,234で形成される三角形と、頂点231,233,234で形成される三角形とに分割すると、前者の三角形の各頂点に設定されるマテリアルは砂と草の2種類となり、後者の三角形の各頂点に設定されるマテリアルは草と土の2種類となる(図20に示す(b)参照)。したがって、上記四角形については分割条件が満たされるので、ゲームシステム1は当該四角形を2つの三角形に分割する。
【0129】
なお、四角形を2つの三角形に分割する方法は2通りであるので、ゲームシステム1は、2通りのうち少なくともいずれかの方法で分割された三角形に関して分割条件が満たされる場合、分割条件が満たされる方法で上記の分割を行う。一方、2通りのいずれの方法で分割された三角形についても分割条件が満たされない場合、いずれかの方法で分割を行う。
【0130】
上記のように分割を行うことで、ゲームシステム1は、四角形の各頂点に設定される3種類以上のマテリアルの情報をなるべく欠落させないように、各頂点に設定されるマテリアルが2種類以下となる2つの三角形を生成することができる。ここで、上述のように、メッシュを構成する各ポリゴンは2種類までのテクスチャを用いて描画される。したがって、ゲームシステム1は、上記の分割を行うことで、各頂点に設定されたマテリアルの情報をなるべく欠落させないように、2種類のテクスチャを用いてポリゴンを描画することができる。
【0131】
本実施形態においては、ゲームシステム1は、上記の分割が行われた後の多角形に対応するポリゴンを設定する。すなわち、上記の分割が行われた後の多角形の頂点が、表示用メッシュのポリゴンの頂点となる。
【0132】
本実施形態においては、ゲームシステム1は、表示用メッシュを構成する各ポリゴンについて、1つのポリゴンの各頂点に設定されるマテリアルが合計で3種類以上である場合、2種類のマテリアルを選択することで、当該ポリゴンのマテリアルを決定する。図21は、表示用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図である。図21に示す例においては、表示用メッシュを構成する三角形のポリゴンの頂点241については、第1のマテリアルが「草」、第2のマテリアルは「土」、第1のマテリアル:第2のマテリアル=0.8:0.2のマテリアル比率と設定されるものとする。また、上記ポリゴンの頂点242については、第1のマテリアルが「草」、第2のマテリアルは「砂」、第1のマテリアル:第2のマテリアル=0.5:0.5のマテリアル比率と設定されるものとする。また、上記ポリゴンの頂点243については、第1のマテリアルが「砂」、第2のマテリアルは「土」、第1のマテリアル:第2のマテリアル=0.7:0.3のマテリアル比率と設定されるものとする。
【0133】
ポリゴンの各頂点に設定されるマテリアルが合計で3種類以上である場合、ゲームシステム1は、マテリアル毎に判定値を算出する。判定値は、当該マテリアルが設定される頂点毎の比率を合計した値として算出される。そして、ゲームシステム1は、判定値が大きいものから順に2つのマテリアルを、当該ポリゴンのマテリアルとして選択する。図21に示す例においては、草のマテリアルの判定値は、0.8+0.5=1.3となり、砂のマテリアルの判定値は、0.5+0.7=1.2となり、土のマテリアルの判定値は、0.2+0.3=0.5となる。したがって、図21に示すポリゴンのマテリアルとしては、草と砂とのマテリアルが選択される(図21に示す(a)参照)。
【0134】
なお、表示用メッシュのポリゴンのマテリアルを選択する具体的な方法は任意である。他の実施形態においては、表示用メッシュのポリゴンのマテリアルは、当該ポリゴンの頂点に設定される情報に基づく任意の方法で選択されてよい。例えば、表示用メッシュのポリゴンのマテリアルは、1つの頂点において最も比率が大きいマテリアルを頂点毎に特定し、各頂点について特定された数が最も多いマテリアルが、当該ポリゴンのマテリアルとして選択されてもよい。
【0135】
本実施形態においては、上記のように選択されたポリゴンのマテリアルは、ポリゴンの各頂点に設定されるマテリアルによって示される。すなわち、ポリゴンのマテリアルが選択された場合、ゲームシステム1は、当該ポリゴンの各頂点に設定されているマテリアル(すなわち、頂点のデータに含まれるマテリアルID)を、選択されたマテリアルとなるように変更する。図21に示す例においては、頂点241および243については、ポリゴンのマテリアルの選択前においては、それぞれ、草と土、砂と土のマテリアルが設定されている(図21に示す(a)参照)。上記のようにしてポリゴンのマテリアルとして草と砂のマテリアルが選択された場合、各頂点241および243に設定されるマテリアルは草と砂に変更される(図21に示す(b)参照)。なお、頂点242については、選択前に設定されているマテリアルが、選択されたポリゴンのマテリアルと同じであるので、マテリアルの変更は行われない。上記のように、ポリゴンのマテリアルとして2種類のマテリアルが選択される場合、当該ポリゴンの各頂点に設定されている3種類目以降のマテリアルの情報は消去されることとなる。
【0136】
また、ゲームシステム1は、頂点に設定されるマテリアルの変更に応じて、当該頂点に設定されるマテリアルの比率を変更する。例えば、頂点241については、第1のマテリアルが草であり、第2のマテリアルが土である内容から、第1のマテリアルが草であり、第2のマテリアルが砂である内容へと変更される。ここで、砂のマテリアルの割合は0であるので、第1のマテリアル:第2のマテリアル=1:0のマテリアル比率とされる。このように、上記の変更は、ポリゴンのマテリアルを当該ポリゴンの各頂点のマテリアルによって表現するために、各頂点のマテリアルを形式的に変更するものである。
【0137】
上記によれば、1つのポリゴンの各頂点に設定されるマテリアルが、後述する描画に用いるテクスチャに対応するマテリアルのみとなるので、テクスチャを用いた描画処理を実行しやすくすることができる。
【0138】
なお、上記の変更によって、ある頂点についてマテリアルが全て変更される(つまり、変更前のマテリアルと変更後のマテリアルとが1つも一致しない)場合もあり得る。このような場合とは、例えば、変更前の頂点に設定されていたマテリアルが土であり、ポリゴンのマテリアルとして選択されたマテリアルが草と砂であるような場合である。このような場合には、当該頂点におけるマテリアルの比率は、当該ポリゴンの他の頂点におけるマテリアルの比率に基づいて設定されてもよい。例えば、上記の例において、三角形のポリゴンの他の頂点のうち1つの頂点に設定される第1のマテリアルが草であって草:砂=1:0のマテリアル比率、もう1つの頂点に設定されるマテリアルが砂であって砂:草=1:0のマテリアル比率の場合、当該頂点におけるマテリアル比率は草:砂=0.5:0.5に設定されてもよい。また、ゲームシステム1は、当該頂点と他の頂点との距離を考慮して(例えば、距離が近いほど大きくなる重み値に基づいて)、当該頂点におけるマテリアルの比率を決定してもよい。
【0139】
以上のように、本実施形態においては、ゲームシステム1は、ポリゴン毎に、当該ポリゴンに含まれる頂点に設定されたマテリアルID(すなわち、ポリゴンに対応する多角形の頂点に設定されるマテリアルID)のうち、所定個数(ここでは、2個)までのマテリアルIDを選択させて当該ポリゴンのマテリアルIDとして決定する。これによれば、ゲームシステム1は、頂点に設定されるマテリアルをポリゴンの見た目に反映しつつ、用いられるテクスチャの数を抑えて描画処理を行うことができる。
【0140】
なお、本実施形態においては、ゲームシステム1は、ポリゴンを構成する全ての頂点のマテリアルに関して、当該マテリアルの数が上記所定個数以下の場合には、当該マテリアルを当該ポリゴンのマテリアルに決定し、当該マテリアルが上記所定個数を超える場合には、それぞれの頂点の優先度パラメータに基づいて(具体的には、上述の評価値に基づいて算出される上記判定値に基づいて)優先度の高い所定個数のマテリアルを選択して当該ポリゴンのマテリアルに決定する。これによって、各頂点について合計で所定個数を超えるマテリアルが設定されている場合でも、ポリゴンのマテリアルを、優先度を考慮した所定個数以下のマテリアルとすることができる。
【0141】
上記のように、本実施形態においては、1つのポリゴンの各頂点に設定される第1および第2のマテリアルは、当該ポリゴンに設定される2種類のマテリアルとなるように変更される。ここで、このような変更を行う場合、隣接する2つのポリゴンで共有される頂点については、設定される第1および第2のマテリアルに齟齬が生じる可能性がある。
【0142】
図22は、隣接する2つのポリゴンの各頂点に設定されるマテリアルの一例を示す図である。図22は、図20に示す各頂点231~234によって2つのポリゴンが形成されている状態(図20に示す(b))を示している。図22に示す例において、頂点231、233、および234で形成される第1のポリゴンのマテリアルは、草および砂に決定されるので、これらの頂点の第1および第2のマテリアルは、それぞれ、草、砂に設定されるべきである。一方、頂点231、232、および234で形成される第2のポリゴンのマテリアルは、草および土に決定されるので、これらの頂点の第1および第2のマテリアルは、それぞれ、草、土に設定されるべきである。そのため、図22に示す例では、2つのポリゴンで共有される頂点231および234については、設定すべきマテリアルに齟齬が生じる。
【0143】
そこで、本実施形態においては、2つのポリゴンで共有される頂点に設定すべきマテリアルに齟齬が生じる場合、ゲームシステム1は、当該頂点に関して、同じ位置にもう1つ頂点を追加する。図22に示す(b)は、頂点231について頂点231’が追加され、頂点234について頂点234’が追加された状態の一例を示す図である。図22の例においては、ゲームシステム1は、頂点231および234については、第1および第2のマテリアルを、第1のポリゴンのマテリアルに応じて草および砂として設定する。また、頂点231’および234’については、第1および第2のマテリアルを、第2のポリゴンのマテリアルに応じて草および土として設定する。このように、2つのポリゴンで共有される頂点として形式的に2つの頂点を設定する(すなわち、位置が同じでマテリアルが異なる2つの頂点データを生成する)ことで、頂点に設定されるマテリアルに齟齬が生じることを抑制することができる。
【0144】
ゲームシステム1は、以上のようにして頂点およびマテリアルが決定されたポリゴンからなる表示用メッシュを生成する。また、ゲームシステム1は、各頂点に設定されるマテリアルの情報(すなわち、第1のマテリアルおよび第2のマテリアル)に基づいてポリゴンの描画を行うことで、ボクセルオブジェクトの描画を行う。
【0145】
図23は、ポリゴンにテクスチャを適用する一例を示す図である。図23には、図21に示す各頂点241~243によって形成される三角形のポリゴンが示されている。なお、各頂点241~243に設定されるマテリアルは、図21に示す(b)に示したものとなっている。
【0146】
ポリゴンの頂点の位置については、当該頂点に設定される第1のマテリアルのテクスチャと第2のマテリアルのテクスチャとを、当該頂点に設定されるマテリアルの比率で(つまり、当該比率をブレンド率として)ブレンドするマッピングによって描画が行われる。なお、描画に用いられる第1および第2のマテリアルのテクスチャは、上述のマテリアルデータ(図12参照)において、当該頂点のデータに対応付けられる各マテリアルIDに対応付けられる描画設定の情報が示すテクスチャである。図23に示す例においては、頂点241の位置については、草:砂=1:0のマテリアル比率となっているので、草のテクスチャのみを用いて描画が行われる。また、頂点243の位置については、第1のマテリアルが砂であり、砂:草=1:0のマテリアル比率となっているので、砂のテクスチャのみを用いて描画が行われる。また、頂点242の位置については、第1のマテリアルが草であり、第2のマテリアルが砂であり、草:砂=0.5:0.5のマテリアル比率となっているので、草のテクスチャと砂のテクスチャとを0.5:0.5のブレンド率でブレンドして描画が行われる。
【0147】
また、ポリゴンの頂点以外の位置については、ゲームシステム1は、各頂点におけるブレンド率を補間することでブレンド率を決定する。そして、各頂点に設定される2つのマテリアルのテクスチャを、補間されたブレンド率に基づいてブレンドするマッピングによって描画が行われる。なお、補間の具体的な方法は任意である。一例としては、頂点間のブレンド率を線形補間する。図23においては、草のマテリアルのテクスチャが適用される比率が高い位置を白色で示し、砂のマテリアルのテクスチャが適用される比率が高い位置を黒色で示している。図23に示す例では、頂点241では草のテクスチャが適用され、頂点243に向かうにつれて砂のテクスチャのブレンド比が高くなり、頂点242の位置では草と砂のブレンド率が1:1となり、頂点243の位置では砂のテクスチャのみが適用される。このように、ポリゴンに設定される(すなわち、ポリゴンの各頂点に設定される)2つのテクスチャを、マテリアルの比率に応じたブレンド率でブレンドして描画することで、表示用メッシュにおいて、異なるマテリアル同士の境界における見た目を自然なものとすることができる。これによって、複数種類のマテリアルが設定される表示用メッシュの見た目を自然なものとすることができる。
【0148】
[2-6-2.判定用メッシュのマテリアルの決定]
次に、判定用メッシュのマテリアルを決定する方法の一例について説明する。詳細は後述するが、本実施形態においては、判定用メッシュを用いてボクセルオブジェクトのコリジョン判定が行われ、コリジョンが判定されたボクセルオブジェクトのマテリアルに応じた処理が実行されることがある。そのため、本実施形態においては、判定用メッシュについてもマテリアルが決定される。
【0149】
本実施形態においては、ゲームシステム1は、判定用メッシュを構成する各多角形のポリゴンについて、1つのポリゴンについて設定されるマテリアルが1種類となるようにする。具体的には、ゲームシステム1は、判定用メッシュのポリゴンに設定されるマテリアルを、当該ポリゴンの頂点に設定されるマテリアルの情報(すなわち、第1および第2のマテリアルと、マテリアルの比率の情報)に基づいて決定する。
【0150】
図24は、判定用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図である。図24は、図21に示す各頂点241~243で形成される三角形のポリゴンについてマテリアルを決定する例を示している。なお、各頂点241~243に設定されるマテリアルは、図21に示す(a)に示したものとなっている。
【0151】
ポリゴンのマテリアルを決定する際、ゲームシステム1は、ポリゴンの各頂点に設定されるマテリアル毎に判定値を算出する。本実施形態においては、上記判定値の算出方法は、表示用メッシュの多角形に設定されるマテリアルの選択に用いられた判定値の算出方法と同じである。なお、判定値の具体的な算出方法は任意である。他の実施形態においては、上記判定値は、判定用メッシュのポリゴンの頂点に設定される情報に基づく任意の方法で算出されてよい。
【0152】
図24に示す例においては、マテリアル毎の判定値は、上述した図21に示す場合と同様に、草のマテリアルの判定値は1.3となり、砂のマテリアルの判定値は1.2となり、土のマテリアルの判定値は0.5となる。したがって、図24に示すポリゴンのマテリアルとしては、草のマテリアルが選択される。
【0153】
以上のように、本実施形態においては、ゲームシステム1は、ポリゴン毎に、当該ポリゴンに含まれる頂点に設定されたマテリアルID(すなわち、ポリゴンに対応する多角形の頂点に設定されるマテリアルID)のうち、所定個数(ここでは、1個)までのマテリアルIDを選択させて当該ポリゴンのマテリアルIDとして決定する。これによれば、ゲームシステム1は、判定用メッシュに設定されるマテリアルの数を所定個数以下に抑えることができる。これによって、判定用メッシュを用いたコリジョン判定の結果に応じて行われる、マテリアルの種類に応じた処理が煩雑になることを抑制することができる。なお、判定用メッシュのポリゴンのマテリアルを決定する方法は任意であり、上記に限らない。他の実施形態においては、判定用メッシュのポリゴンのマテリアルは、当該ポリゴンの頂点に設定される情報に基づく任意の方法で決定されてよい。
【0154】
また、本実施形態においては、表示用メッシュのポリゴンについては2種類までのマテリアルが設定されるのに対して、判定用メッシュのポリゴンについては1種類のマテリアルが設定される。これによれば、表示用メッシュのポリゴンについては2種類のテクスチャを用いて自然な見た目とすることができるとともに、判定用メッシュについては、当該判定用メッシュを用いたコリジョン判定の結果に応じて行われる処理が煩雑になることを抑制することができる。なお、他の実施形態においては、表示用メッシュおよび判定用メッシュのポリゴンに設定可能なマテリアルの種類は任意である。表示用メッシュのポリゴンに設定可能なマテリアルの数と、判定用メッシュのポリゴンに設定可能なマテリアルの数とは、共に複数であってもよいし、同じであってもよいし、異なっていてもよい。
【0155】
なお、本実施形態においては、1つのボクセルに設定されるマテリアルの種類は2つまでであり、表示用メッシュにおける1つのポリゴンに設定されるマテリアルの種類は2つまでである。これによれば、ボクセルデータのデータ量を抑えつつ、表示用メッシュのマテリアルに対して、ボクセルデータにおいて設定されるマテリアルの情報を反映させることができる。また、本実施形態においてはさらに、ボクセルデータに基づいて設定される頂点に設定されるマテリアルの種類も2つまでである(図16参照)。これによれば、ボクセルデータから表示用メッシュを得る処理の途中に生成される頂点についても2種類のマテリアルを設定できるので、当該処理の途中でマテリアルの情報が欠落することなく、ボクセルデータにおいて設定されるマテリアルの情報を表示用メッシュに対して反映させることができる。
【0156】
また、他の実施形態においては、ゲームシステム1は、ボクセルデータに基づいて設定される頂点に関して、表示用メッシュの生成に用いる頂点と、判定用メッシュの生成に用いる頂点とで異なるようにマテリアルを設定してもよい。例えば、ゲームシステム1は、表示用メッシュの生成に用いる頂点については上述のように2種類までのマテリアルを設定し、判定用メッシュの生成に用いる頂点については1種類のマテリアルを設定するようにしてもよい。そして、表示用メッシュのポリゴンのマテリアルについては、上記と同様に2種類のマテリアルを設定し、判定用メッシュのポリゴンのマテリアルとして、当該ポリゴンの各頂点にそれぞれ設定される1種類のマテリアルに基づいて1種類のマテリアルを設定してもよい。なお、判定用メッシュの生成に用いる頂点について1種類のマテリアルを設定する場合、各マテリアルについて算出される上述の判定値が最も大きいマテリアルを当該頂点のマテリアルに設定してもよい。上記によっても、本実施形態と同様に、表示用メッシュにおける1つのポリゴンに設定されるマテリアルの種類は2つまでとするとともに、判定用メッシュにおける1つのポリゴンに設定されるマテリアルの種類を1つとすることができる。そのため、ボクセルデータにおいて設定されるマテリアルの情報を表示用メッシュに対して反映させることができるとともに、判定用メッシュを用いたコリジョン判定の結果に応じて行われる処理が煩雑になることを抑制することができる。
【0157】
上記のように、本実施形態においては、1つのボクセルオブジェクトについて表示用メッシュと判定用メッシュとが設定され得る。ただし、ゲーム状況によっては、1つのボクセルオブジェクトについて表示用メッシュと判定用メッシュとの両方が同時に設定される必要はない(例えば、1フレームにおける処理において両方が設定される必要はない)。例えば、判定用メッシュは、ゲーム空間のうちで、コリジョン判定が行われる範囲において生成され、コリジョン判定が行われない範囲においては生成されなくてもよい。一例としては、ゲームシステム1は、プレイヤキャラクタを中心とした所定範囲内のボクセルオブジェクトについて判定用メッシュを生成し、当該所定範囲外のボクセルオブジェクトについては判定用メッシュを生成せず、表示用メッシュのみを生成するようにしてもよい。
【0158】
また、ゲームシステム1は、表示用メッシュについては、生成されたメッシュに関するデータをメモリに記憶しておき、当該メッシュが生成された後のフレームにおいては、更新が行われた範囲を除き、メッシュを生成する処理を再度実行せずに、当該データを用いるようにしてもよい。これによれば、表示用メッシュを生成するための処理負荷を軽減できる。また、判定用メッシュについては、生成されたメッシュに関するデータをメモリに記憶せず、必要に応じて(例えば、コリジョン判定を行う必要が生じる度に)逐次メッシュを生成するようにしてもよい。これによれば、メッシュの生成に用いられるメモリ領域を節約することができる。
【0159】
以上においては、ボクセルデータが初期状態から変更された場合に、変更後のボクセルデータに基づいて各メッシュ(すなわち、表示用メッシュおよび判定用メッシュ)を生成する方法について説明した。なお、上記の方法は、例えばゲームの開始時において、初期状態のボクセルデータに基づいて各メッシュを生成する場合にも用いることができる。ただし、初期状態のボクセルデータに基づく各メッシュは、ゲーム開始時に初期状態のボクセルデータに基づいて生成される必要はなく、ゲーム開始前に予め用意されていてもよい。
【0160】
[2-7.特定のマテリアルに置換する処理]
次に、図25図32を参照して、マテリアル置換フラグがオンに設定されたボクセルのマテリアルを、当該マテリアル置換フラグに対応するマテリアルに置換する処理例について説明する。以下においては、地面や壁等の地形オブジェクトがボクセルオブジェクトであるものとし、プレイヤキャラクタがアクションを行い、コリジョン判定が行われた結果として、ゲーム内の作用が発生する場合の例について説明する。
【0161】
なお、上記「ゲーム内の作用」は、ゲームにおいて生じる任意の変化であり、例えば「オブジェクト同士の接触の結果を反映する処理」によって生じる変化である。「ゲーム内の作用」は、判定用メッシュと、ゲーム処理に基づいた判定対象に対応する判定形状(例えば、プレイヤキャラクタ等のオブジェクトに設定される判定領域等)とのコリジョン判定に基づくものであればよく、判定用メッシュに対応するオブジェクトに上記作用が生じてもよいし、上記判定対象に対応するオブジェクトに上記作用が生じてもよい。「ゲーム内の作用」の内容は、当該作用が発生する要因となるコリジョン判定においてコリジョンが判定されたポリゴンに設定されるマテリアルに関連付けられてもよい(つまり、当該マテリアルによって作用の内容が決められてもよい)。
【0162】
図25は、地形オブジェクト上に特殊マテリアルの領域が設定されている様子を表すゲーム画像の一例を示す図である。図25に示す例においては、地面である地形オブジェクトの判定用メッシュおよび表示用メッシュのうち一部の領域251のポリゴンについてのマテリアルが特殊マテリアルに設定されている。また、地形オブジェクトの判定用メッシュおよび表示用メッシュのうち領域251以外の領域252のポリゴンについてのマテリアルは「岩」に設定されている。
【0163】
本実施形態においては、マテリアル置換オブジェクト250が地形オブジェクト上に設けられている場合、当該マテリアル置換オブジェクト250の設置位置に基づく所定の置換範囲における地形オブジェクトのボクセルのマテリアル置換フラグがオンに設定される。これによって、地面である地形オブジェクトの判定用メッシュおよび表示用メッシュのうち、上記置換範囲のポリゴンについてのマテリアルが特殊マテリアルに設定される。なお、上記置換範囲は、マテリアル置換オブジェクト250の設置位置に基づいて定められれば、どのような範囲でもよい。一例として、上記置換範囲は、上記当該設置位置を中心とする所定の形状の範囲でもよいし、上記設置位置から所定の方向へ拡がる所定の形状の範囲でもよい。他の例として、上記置換範囲は、マテリアル置換オブジェクト250の設置位置を基準として、ゲームステージの設計により定められる任意の形状の範囲でもよい。典型的には、上記置換範囲は、図25に例示するように、マテリアル置換オブジェクト250の設置位置を含むように設定されるが、他の実施形態においては、当該設置位置を含まない範囲に上記置換範囲が設定されてもよい。
【0164】
領域251に対応するボクセルは、領域252に対応するボクセルと同様に「特殊マテリアル」とは異なるマテリアルを示すマテリアルIDがそれぞれ設定されており、例えば、「岩」や「土」のマテリアルを示すマテリアルIDが設定されている。そして、領域251に対応するボクセルは、マテリアル置換フラグがオンに設定されることにより、マテリアルIDによる情報を維持した状態で、当該設定に応じて当該ボクセルに関連する判定用メッシュおよび表示用メッシュのポリゴンについてのマテリアルが特殊マテリアルに設定される。
【0165】
図26に示すように、本実施形態においては、メッシュの頂点のマテリアルを設定する際にマテリアル置換フラグによるマテリアル置換が行われる。例えば、[2-3.頂点の算出]において説明したメッシュの頂点が算出された後、当該頂点の周囲のボクセルに関するマテリアルに基づいて当該頂点のマテリアルが決定されるが、マテリアル置換フラグがオンのボクセルについては、当該ボクセルのマテリアルが「特殊マテリアル」であるとして当該決定を行う。
【0166】
図26に示す例においては、図16に示した例と同様に4つのボクセル215~218に関して頂点219が設定されたものとし、当該4つのボクセル215~218が上述の「頂点の周囲のボクセル」である。また、図26に示す例においては、ボクセル215については、密度が255、第1のマテリアルが「岩」、マテリアル混合比は0、マテリアル置換フラグが「オン」、解除後フラグが「オフ」と設定されているものとする。ボクセル216については、密度が0、マテリアル置換フラグが「オフ」、解除後フラグが「オフ」と設定されているものとする。ボクセル217については、密度が204、第1のマテリアルが「岩」、第2のマテリアルは「土」、マテリアル混合比は0.3、マテリアル置換フラグが「オン」、解除後フラグが「オフ」と設定されているものとする。ボクセル218については、密度が153、第1のマテリアルが「岩」、第2のマテリアルは「土」、マテリアル混合比は0.4、マテリアル置換フラグが「オン」、解除後フラグが「オフ」と設定されているものとする。また、図16と同様に、頂点219の位置を示す座標は、(X,Y)=(0.8,0.6)であるとする。
【0167】
頂点のマテリアルを決定する場合、ゲームシステム1は、周囲のボクセルのうち、マテリアル置換フラグが「オン」に設定されているボクセルのマテリアルを特殊マテリアルとし、当該特殊マテリアルの密度を1.0として、ボクセルから頂点までの距離に基づく重み値に基づいて図16の例と同様に評価値を算出する。図26の例の場合、ボクセル216が密度0であり、ボクセル215、217、および218のマテリアルが全て特殊マテリアルとなり、頂点219の周囲のボクセルが特殊マテリアルのボクセルのみとなるため、当該特殊マテリアルが頂点219のマテリアルとして決定される。そして、ゲームシステム1は、全体に対する特殊マテリアルの割合を示す値として、頂点219のマテリアルの比率が1.0で示される。このように、本実施形態においては、マテリアル置換フラグがオンのボクセルについては、当該ボクセルのマテリアルが「特殊マテリアル」であるとして頂点のマテリアルが決定される。
【0168】
頂点のマテリアルが決定された後、[2-5.頂点の簡略化]において説明した方法と同様に、上記のようにして算出された各頂点について簡略化が行われる。そして、[2-6.メッシュの生成]において説明した方法と同様に、表示用メッシュおよび判定用メッシュが生成される。
【0169】
図27に示す(a)は、マテリアル置換フラグがオンに設定されたボクセルに関連する表示用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図である。図27に示す(a)の例においては、上記のようにして算出された各頂点について簡略化が行われた後の頂点241~243を例示しており、当該頂点241~243が表示用メッシュを構成する三角形のポリゴンの頂点となる。具体的には、上記ポリゴンの頂点241については、第1のマテリアルが「特殊マテリアル」、第2のマテリアルは「岩」、第1のマテリアル:第2のマテリアル=0.5:0.5のマテリアル比率に設定されている。また、上記ポリゴンの頂点242については、第1マテリアルとして「特殊マテリアル」のみが設定されており、第1のマテリアル:第2のマテリアル=1.0:0のマテリアル比率に設定されている。また、上記ポリゴンの頂点243についても、第1マテリアルとして「特殊マテリアル」のみが設定されており、第1のマテリアル:第2のマテリアル=1.0:0のマテリアル比率に設定されている。そして、[2-6-1.表示用メッシュのマテリアルの決定]において説明されているように、1つのポリゴンについて設定されるマテリアルが2種類となるようにするため、図27に示す(a)の表示用メッシュのポリゴンのマテリアルとしては、特殊マテリアルと岩とのマテリアルが設定される。このように、マテリアル置換フラグがオンに設定されたボクセルに関連する表示用メッシュを構成するポリゴンのマテリアルは、当該ボクセルが特殊マテリアルのみを有するものとして決定される。
【0170】
図27に示す(b)は、マテリアル置換フラグがオンに設定されたボクセルに関連する判定用メッシュを構成するポリゴンのマテリアルを決定する方法の一例を示す図である。図27に示す(b)の例においても、上記のようにして算出された各頂点について簡略化が行われた後の頂点を例示しており、図27に示す(a)と同様の頂点241~243が判定用メッシュを構成する三角形のポリゴンの頂点となっている。そして、[2-6-2.判定用メッシュのマテリアルの決定]において説明されているように、1つのポリゴンについて設定されるマテリアルが1種類となるようにするため、図27に示す(b)の判定用メッシュのポリゴンのマテリアルとしては、上記判定値に基づいて特殊マテリアルが設定される。このように、マテリアル置換フラグがオンに設定されたボクセルに関連する判定用メッシュを構成するポリゴンのマテリアルは、当該ボクセルが特殊マテリアルのみを有するものとして決定される。
【0171】
図25に示す例では、領域251については、当該領域251における表示用メッシュのポリゴンのマテリアルが特殊マテリアルを含むマテリアルに設定されることにより、特殊マテリアルのテクスチャのみを用いて描画、または特殊マテリアルのテクスチャと他のマテリアル(例えば、「岩」のマテリアル)のテクスチャがマテリアル比率に基づいてブレンドされて描画される。これにより、領域251は、その表面が特殊マテリアルを少なくとも含むマテリアルによって形成されているような見た目で表示される。そして、ゲームシステム1は、領域251においては、特殊マテリアルが設定されたポリゴンを有する判定用メッシュを用いて、他のオブジェクト(例えば、プレイヤキャラクタ201)とのコリジョン判定を行う。
【0172】
図28および図29は、プレイヤキャラクタ201が地形オブジェクトにおける領域251の部位を破壊しようとしている様子を表すゲーム画像の一例を示す図である。ゲームシステム1は、領域251における判定用メッシュを用いて、地形オブジェクトとプレイヤキャラクタ201とのコリジョン判定を行う。すなわち、地形オブジェクトの判定用メッシュと、プレイヤキャラクタについて設定される判定領域(例えば、プレイヤキャラクタの位置に基づいて設定される、所定形状の領域)とが接触するか否かのコリジョン判定を行う。
【0173】
図28および図29に示すように、本実施形態においては、ユーザは、所定の操作入力によって、パンチアクションをプレイヤキャラクタ201に行わせることができる。上記パンチアクションは、地形オブジェクト等を破壊するプレイヤキャラクタのアクションの1つであり、ゲームシステム1は、パンチアクションによって生じるゲーム内の作用として、特殊マテリアルが構成されていない地形オブジェクトであれば、当該地形オブジェクトの一部を破壊して消去する。なお、地形オブジェクトは、プレイヤキャラクタが行う任意のアクションによって破壊可能であってもよい。
【0174】
例えば、ゲームシステム1は、プレイヤキャラクタ201に上記パンチアクションを行わせる操作入力がユーザによって行われた場合、プレイヤキャラクタ201に所定の方向に向かってパンチを出すアクションを行わせ、コリジョン判定を行う。しかしながら、本実施形態においては、ポリゴンのマテリアルとして特殊マテリアルが設定されている判定用メッシュとパンチアクション等を行うプレイヤキャラクタ201とのコリジョンが判定された場合、上述した更新範囲([2-2.ボクセルデータの更新]参照)が生成されない。したがって、プレイヤキャラクタ201が地形オブジェクトにおける領域251の部位をパンチアクション等によって破壊しようとしても、当該部位に破壊は生じない。
【0175】
本実施形態における特殊マテリアルは、プレイヤキャラクタによって破壊できないマテリアルとして設定されている。例えば、図29に示すように、領域251におけるボクセルにおけるマテリアルIDは、「岩」のマテリアルIDが維持されているが、マテリアル置換フラグがオンに設定されているため、領域251における判定用メッシュが特殊マテリアルのポリゴンで構成されている。したがって、ポリゴンのマテリアルとして特殊マテリアルが設定されている判定用メッシュとパンチアクション等を行うプレイヤキャラクタ201との間のコリジョンが判定されたとしても、上記更新範囲が生成されず、領域251の地形オブジェクトにおけるボクセルデータの更新が行われない。一方、領域252は、当該領域252におけるボクセルのマテリアルIDが岩のマテリアルを示し、マテリアル置換フラグがオフに設定されているため、判定用メッシュが「岩」のマテリアルのポリゴンで構成されている。したがって、ポリゴンのマテリアルとして「岩」が設定されている判定用メッシュとパンチアクション等を行うプレイヤキャラクタ201との間のコリジョンが判定された場合、プレイヤキャラクタ201の位置および向きに基づいて更新範囲が生成されて、当該更新範囲に対応するボクセルの密度を減少させる。
【0176】
図30は、地形オブジェクト上に生成された特殊マテリアルの領域を解除する様子を表すゲーム画像の一例を示す図である。本実施形態においては、地形オブジェクト上に設けられていたマテリアル置換オブジェクト250が破壊された場合、当該マテリアル置換オブジェクト250によりマテリアル置換フラグがオンに設定されていた地形オブジェクトのボクセルのマテリアル置換フラグがオフに変更される。例えば、本実施形態においては、所定の操作入力によって、プレイヤキャラクタ201がマテリアル置換オブジェクト250を攻撃対象とするアクション(例えば、パンチアクション)を行うことにより、マテリアル置換オブジェクト250を破壊することができる。なお、マテリアル置換オブジェクト250は、プレイヤキャラクタが行う任意のアクションによって破壊可能であってもよい。
【0177】
マテリアル置換フラグがオンに設定されていた地形オブジェクトのボクセルのマテリアル置換フラグがオフに変更されることにより、当該ボクセルに関連する判定用メッシュおよび表示用メッシュのポリゴンのマテリアルは、特殊マテリアルから当該ボクセルにそれぞれ設定されているマテリアルIDに基づいたマテリアルに変更される。したがって、マテリアル置換オブジェクト250の設置に基づいて生成されていた上記置換範囲における地形オブジェクトの領域251のポリゴンについてのマテリアルは、当該マテリアル置換オブジェクト250が破壊されることにより、特殊マテリアルとは異なるマテリアルに変更される。例えば、図30の例では、プレイヤキャラクタ201がマテリアル置換オブジェクト250を破壊することにより、特殊マテリアルのポリゴンによって形成された領域251が、「岩」のマテリアルのポリゴンによって形成された領域252に変更されている。このように、マテリアル置換フラグがオンからオフに解除されることにより、特殊マテリアルの領域が特殊マテリアルとは異なるマテリアルの領域に変更される。このように、ボクセルデータにおけるマテリアルIDを書き換えることにより特殊マテリアルにマテリアル置換する場合、当該マテリアル置換前のマテリアルの情報が失われているために、当該マテリアル置換が解除された場合にどのようなマテリアルに変化させる(復帰させる)かを判定するための処理が必要となる。一方、本実施形態では、マテリアル置換フラグのオン/オフによってマテリアル置換を制御することによって、当該マテリアル置換を解除した場合にマテリアルIDによって設定されているマテリアルに容易に戻すことができる。
【0178】
本実施形態においては、マテリアル置換フラグがオンからオフに解除されることを契機として、当該解除されたボクセルに基づくゲーム空間における位置(例えば、当該ボクセルに関連する表示用メッシュのポリゴンの表面)に解除後エフェクトが描画される。上記解除後エフェクトは、上記解除が行われていない他の領域には描画されないものであり、当該解除後エフェクトが描画されることによって特殊マテリアルへのマテリアル置換が解除された領域(例えば、図30に例示する破線で囲まれた領域)を見分けることができる。本実施形態では、マテリアル置換フラグがオンからオフに変更されたボクセルにおける解除後フラグがそれぞれオフからオンに変更されることにより、当該ボクセルに基づくゲーム空間における位置に解除後エフェクトが描画される。このように、上記解除後エフェクトの描画例においては、マテリアル置換オブジェクト250が破壊されるイベントに応じてマテリアル置換フラグをオンからオフに変更したボクセルに対し、解除後フラグをオンに設定させ、当該解除後フラグがオンのボクセルに対応するゲーム空間内の位置に解除後エフェクトを発生させる。
【0179】
上記解除後フラグは、所定の条件が満たされるまでオンに設定されてもよい。このように、所定の条件が満たされるまで解除後フラグをオン状態に保持することで、特殊マテリアルに置換している状態を解除した領域に解除後エフェクトを発生させている状態を維持することができる。一例として、上記解除後フラグは、ゲーム空間のデータが再読み込みされて初期化された場合、オンからオフに設定されてもよい。本実施形態においては、上記初期化において、ボクセルデータにおけるマテリアル置換フラグおよび解除後フラグはオフに設定される。そして、マテリアル置換オブジェクト250が破壊されるイベントが発生する前の状態のデータに基づいてボクセルデータの初期化が行われた場合に、マテリアル置換オブジェクト250の配置位置に基づく置換範囲内のボクセルに対して、マテリアル置換フラグがオンに設定されてもよい。上記初期化は、任意の状態において行われてもよい。例えば、セーブデータをロードすることによってデータの読み込みが行われることによる初期化や、ゲームプレイ中にゲーム空間において異なる階層や異なるセクションへ移動することによってデータの読み込みが行われることによる初期化でもよく、これら読み込まれるデータに基づいて初期化が行われる場合に、マテリアル置換フラグおよび解除後フラグが変更されて初期設定されてもよい。具体的には、上記初期化されたゲーム空間において、マテリアル置換オブジェクト250が地形オブジェクト上に設定されている場合や、破壊されたマテリアル置換オブジェクト250が地形オブジェクト上に復活している状態までゲーム空間がリセットされた場合においては、当該マテリアル置換オブジェクト250に対応する上記置換範囲内のボクセルのボクセルデータにおけるマテリアル置換フラグをオンに初期設定してもよい。これにより、ゲーム空間の初期化等により当該ゲーム空間のデータを再読み込みした場合等において、解除後エフェクトの描画を終了させることができる。また、初期化後において、マテリアル置換オブジェクト250が地形オブジェクト上に設定されている場合、当該マテリアル置換オブジェクト250に対応する置換範囲内のボクセルのボクセルデータにおけるマテリアル置換フラグをオンに設定することができる。
【0180】
他の例として、上記解除後フラグは、オンに変更されたゲーム空間が所定の条件を満たすことにより、オンからオフに変更されてもよい。例えば、上記解除後フラグがオンに変更されてから所定の時間が経過したり、上記解除後フラグがオンに変更されてからゲーム空間の状態が所定の環境に変化したりすることにより、当該解除後フラグがオンからオフに設定されてもよい。これによって、解除後エフェクトを発生させた後に解除後フラグをオフに戻すことにより、解除後エフェクトの描画を終了させることができる。
【0181】
図31に示すように、本実施形態においては、マテリアル置換フラグがオンからオフに変更されたボクセルについては、当該ボクセルにそれぞれ設定されているマテリアルIDが示すマテリアルを用いて、メッシュの頂点のマテリアルが設定される。例えば、[2-3.頂点の算出]において説明したメッシュの頂点が算出された後、当該頂点の周囲のボクセルに関するマテリアルに基づいて当該頂点のマテリアルが決定されるが、マテリアル置換フラグがオンからオフに変更されたボクセルについては、当該ボクセルのマテリアルIDおよびマテリアル混合比によって示されるマテリアルであるとして当該決定を行う。
【0182】
図31に示す例においては、図16および図26に示した例と同様に4つのボクセル215~218に関して頂点219が設定されたものとし、当該4つのボクセル215~218が上述の「頂点の周囲のボクセル」である。また、図31に示す例においては、ボクセル215については、密度が255、第1のマテリアルが「岩」、マテリアル混合比は0、マテリアル置換フラグが「オフ」、解除後フラグが「オン」と設定されているものとする。ボクセル216については、密度が0、マテリアル置換フラグが「オフ」、解除後フラグが「オフ」と設定されているものとする。ボクセル217については、密度が204、第1のマテリアルが「岩」、第2のマテリアルは「土」、マテリアル混合比は0.3、マテリアル置換フラグが「オフ」、解除後フラグが「オン」と設定されているものとする。ボクセル218については、密度が153、第1のマテリアルが「岩」、第2のマテリアルは「土」、マテリアル混合比は0.4、マテリアル置換フラグが「オフ」、解除後フラグが「オン」と設定されているものとする。また、図16および図26と同様に、頂点219の位置を示す座標は、(X,Y)=(0.8,0.6)であるとする。
【0183】
頂点のマテリアルを決定する場合、ゲームシステム1は、周囲のボクセルのうち、マテリアル置換フラグが「オン」から「オフ」に変更されたボクセルのマテリアルについては、第1のマテリアルと第2のマテリアルとマテリアル混合比に基づいたマテリアルとして、ボクセルから頂点までの距離に基づく重み値に基づいて図16および図26の例と同様に評価値を算出する。図31の例の場合、ボクセル216が密度0であり、他のボクセル215、217、および218のマテリアルが「岩」および/または「土」のマテリアルとなり、頂点219の周囲のボクセルが「岩」および/または「土」のマテリアルのボクセルとなるため、頂点219のマテリアルとしては、岩のマテリアルと土のマテリアルとに決定され、決定された2つのマテリアルの比率が上記評価値に基づいて算出される。このように、マテリアルを設定する頂点の周囲のボクセルのマテリアル置換フラグが「オン」から「オフ」に変更された場合、当該ボクセルのマテリアルを第1のマテリアルと第2のマテリアルとマテリアル混合比に基づいたマテリアルに復帰させて、当該頂点のマテリアルが決定される。そして、頂点のマテリアルが決定された後、[2-5.頂点の簡略化]において説明した方法と同様に、上記のようにして算出された各頂点について簡略化が行われる。そして、[2-6.メッシュの生成]において説明した方法と同様に、表示用メッシュおよび判定用メッシュが生成される。したがって、マテリアル置換フラグが「オン」から「オフ」に変更されたボクセルに関連する表示用メッシュおよび判定用メッシュを構成するポリゴンのマテリアルは、当該ボクセルに設定されているマテリアルIDに基づいて決定され、上記特殊マテリアルを含まないマテリアルに変更されて決定される。
【0184】
図30に示す例では、領域251については、当該領域251における表示用メッシュのポリゴンのマテリアルが特殊マテリアルを含むマテリアルから特殊マテリアルを含まない「岩」のマテリアルに変更されることにより、当該「岩」のマテリアルのテクスチャを用いて描画されて、領域251の見た目から領域252と同じ見た目(すなわち、「岩」のマテリアルの見た目)の地形オブジェクトに変わったように表示される。そして、領域251から領域252の見た目に変わった領域(図示破線内の領域)においては、上記解除後エフェクトが描画される。そして、ゲームシステム1は、領域251から領域252の見た目に変わった領域においては、特殊マテリアルのポリゴンで構成された判定用メッシュから、当該特殊マテリアルの設定が解除されたポリゴンにおけるマテリアルIDに基づいたマテリアル(例えば「岩」マテリアル)のポリゴンで構成された判定用メッシュに変更して、他のオブジェクト(例えば、プレイヤキャラクタ201)とのコリジョン判定を行う。
【0185】
図32は、地形オブジェクトにおいてマテリアル置換が解除された領域(領域251から領域252に変化した領域)の部位をプレイヤキャラクタ201が破壊している様子を表すゲーム画像の一例を示す図である。ゲームシステム1は、上記マテリアル置換が解除された領域における判定用メッシュを用いて、地形オブジェクトとプレイヤキャラクタ201とのコリジョン判定を行う。すなわち、地形オブジェクトの判定用メッシュと、プレイヤキャラクタについて設定される判定領域(例えば、プレイヤキャラクタの位置に基づいて設定される、所定形状の領域)とが接触するか否かのコリジョン判定を行う。
【0186】
図32に示すように、ユーザは、所定の操作入力によって、上記マテリアル置換が解除された領域における地形オブジェクトを破壊しようとするパンチアクションをプレイヤキャラクタ201に行わせている。上述したように、パンチアクションによって生じるゲーム内の作用として、上記特殊マテリアルが構成されていない地形オブジェクトであれば、当該地形オブジェクトの一部を破壊して消去することが可能であり、プレイヤキャラクタ201が所定の方向に向かってパンチを出すアクションを行うことにより、コリジョン判定が行われる。例えば、上記マテリアル置換が解除された領域は、マテリアル置換フラグがオフに変更されたボクセルのマテリアルIDに基づいたマテリアルを示しているため、判定用メッシュが当該マテリアル(例えば、「岩」のマテリアル)のポリゴンで構成されている。したがって、ポリゴンのマテリアルとして特殊マテリアルとは異なるマテリアル(例えば、「岩」のマテリアル)が設定されている判定用メッシュとプレイヤキャラクタ201との間のコリジョンが判定された場合、プレイヤキャラクタ201の位置および向きに基づいて更新範囲([2-2.ボクセルデータの更新]参照)が生成されて、当該更新範囲に対応するボクセルの密度を減少させて地形オブジェクトを変形させる。なお、パンチアクションが行われた場合は、当該パンチアクション後において、当該パンチアクションが行われた位置の周囲に、消去された地形オブジェクトに対応する破片オブジェクトが配置されてもよい。また、地形オブジェクトの破壊に応じた破片オブジェクトが、発生しない場合があってもよい。なお、図32においては、図面を見やすくし、説明を分かりやすくする目的で、発生する破片オブジェクトを省略している。
【0187】
例えば、上記更新範囲は、プレイヤキャラクタ201が地形オブジェクトを破壊した位置、強さ、能力や、地形オブジェクトが有する強度(例えば、マテリアル)等に基づいて生成される。例えば、上記更新範囲は、プレイヤキャラクタ201を基準とした所定方向(例えば、前方)に生成される。図32の例では、プレイヤキャラクタ201がパンチアクションを行うことにより判定されたコリジョン位置を中心として、最奥部が半球形状となった釣鐘型の更新範囲が地中に向かって形成されている。なお、上記更新範囲の形状は、他の形状でもよく、球状、楕円球状、キューブ状、円柱状、楔形状、3次元ソフトウエアで生成した形状の他、これらの形状の一部が欠損した形状等でもよい。また、上記更新範囲の位置は、ゲーム空間内においてプレイヤキャラクタ201によるパンチアクションが発生した位置(例えば、プレイヤキャラクタ201が殴る拳が到達した位置)を中心として設定されてもよいし、プレイヤキャラクタ201から見て当該位置から所定の距離前方を中心として設定されてもよい。
【0188】
ゲームシステム1は、上記更新範囲に対応するボクセルの密度を減少させる。これによって、地形オブジェクトは、上記更新範囲に対応する部分が消去されるように変形される。例えば、本実施形態においては、地形オブジェクトにおける各ボクセルのSDFに基づいて、各ボクセルの密度を書き換えることによって各ボクセルの消去が制御される。具体的には、少なくともSDFが負の距離となるボクセルの密度を低く書き換えることにより、地形オブジェクトにおける更新範囲に対応する部分の少なくとも一部が消去される。第1の例として、SDFが負の距離となるボクセルの密度を下限値に書き換えることにより、上記更新範囲内に含まれる地形オブジェクトが消去された状態とし、SDFが正の距離となるボクセルの密度をそのままの値に維持することにより、上記更新範囲外の地形オブジェクトが消去されない状態とする。第2の例として、SDFが負の距離となるボクセルの密度を当該距離の絶対値の大きさが大きいほど低い値に書き換えるとともに、当該絶対値の大きさが所定の値より大きいボクセルの密度を下限値に書き換えることにより、上記更新範囲内に含まれる地形オブジェクトの一部が消去された状態とし、SDFが正の距離となるボクセルの密度をそのままの値に維持することにより、上記更新範囲外の地形オブジェクトが消去されない状態とする。第3の例として、SDFが負の距離となるボクセルの密度を下限値に書き換えることにより、上記更新範囲内に含まれる地形オブジェクトが消去された状態とし、SDFが正の距離となるボクセルの密度を当該距離の絶対値の大きさが小さいほど低い値に書き換えることによって、上記更新範囲外の地形オブジェクトの一部が消去された状態とする。
【0189】
このように、本実施形態においては、地形オブジェクトを破壊するイベント(例えば、プレイヤキャラクタ201がパンチアクションにより地形オブジェクトを破壊しようとするイベント)が発生した場合、当該イベントに応じた更新範囲を生成し、当該更新範囲に対応するボクセルのうち、予め破壊可能と設定された種類のマテリアルIDを有するボクセルであって、かつマテリアル置換フラグがオフのボクセルに対して密度を減少させる。これによって、マテリアル置換フラグをオンに設定することによりボクセルを破壊できない状態に強制的に設定することができ、当該マテリアル置換フラグをオンに解除することにより当該ボクセルを壊せるようになるゲームを提供することができる。
【0190】
また、上述したゲーム例においては、プレイヤキャラクタがパンチアクション等によりマテリアル置換オブジェクト250を破壊するイベント(第1のイベント)が発生することにより、当該破壊されたマテリアル置換オブジェクト250に関連するボクセルのマテリアル置換フラグがオンからオフに変更される。その一方で、マテリアル置換フラグをオンに設定されているボクセルに関連する地形オブジェクトは、当該地形オブジェクトを破壊しようとするパンチアクション等をプレイヤキャラクタが行うイベント(第2のイベント)を発生させても破壊することができない。つまり、上記第1のイベントは、上記第2のイベントによってマテリアル置換オブジェクト250を破壊するイベントとなる。したがって、本実施形態においては、上記第2のイベントを発生させることにより破壊できなかった地形オブジェクトが、同じ第2のイベント発生させることによりキーオブジェクトであるマテリアル置換オブジェクト250を破壊することで、当該地形オブジェクトにおける上記置換範囲内の破壊不可設定を一斉に解除することができるため、上記第2のイベントを発生させることによるゲームの爽快感を得ることができる。
【0191】
なお、上述した実施形態では、地形オブジェクトを破壊しようとするイベントが発生したことによって、特殊マテリアルのポリゴンを有する判定用メッシュとのコリジョン判定が行われた場合、当該コリジョン判定に基づいた更新範囲が生成されないことにより、マテリアル置換フラグをオンに設定することによりボクセルを破壊できない状態に強制的に設定する例を用いたが、当該設定を行う方法は任意である。他の実施形態において、地形オブジェクトを破壊しようとするイベントが発生したことによって、特殊マテリアルのポリゴンを有する判定用メッシュとのコリジョン判定が行われた場合、当該コリジョン判定に基づいた更新範囲を生成し、当該更新範囲に対応するボクセルのうち、マテリアル置換フラグをオンに設定されたボクセルの密度は変化させずにマテリアル置換フラグがオフに設定されたボクセルの密度を減少させることにより、破壊(消去)できないボクセルと破壊(消去)できるボクセルとを設定してもよい。
【0192】
また、ゲームシステム1は、上記更新範囲に対応するボクセルオブジェクトを無条件に変形することに代えて、当該更新範囲に対応するボクセルに設定されるダメージの量をパンチアクションに応じて増加させ、ダメージの量が所定値を超えたことに応じて当該ボクセルにおける密度を減少させるようにしてもよい。
【0193】
また、上記ゲームにおいて地形オブジェクト等を破壊することが可能なイベントは、プレイヤキャラクタ201が行う上記パンチアクションにより発生してもよいし、プレイヤキャラクタ201が行う他のアクションにより発生してもよい。また、上記イベントは、他のキャラクタが行うアクションにより発生してもよいし、プレイヤキャラクタ201の動作制御が伴わないユーザの操作入力に基づいて発生してもよいし、キャラクタの動作には直接関連しないゲーム内の現象を契機として発生してもよい。
【0194】
また、地形オブジェクトのうちで消去された部分に対応する破片オブジェクトが生成される場合、当該破片オブジェクトのマテリアルの少なくとも一部が他のマテリアルに変更されてもよい。この場合、破片オブジェクトは、地形オブジェクトのうちで消去された部分に応じた形状となるように生成されてもよいし、予め定められた形状であってもよい。破片オブジェクトは、ボクセルオブジェクトであってもよいし、ボクセルオブジェクトでなくてもよい。
【0195】
[3.ゲームシステムにおける処理の具体例]
次に、図33および図34を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0196】
図33は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。図33に示す各データは、本体装置2がアクセス可能なメモリ(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。図33に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム処理(例えば、図34に示すゲーム処理)を実行するためのものである。なお、ゲームプログラムには、上述のマテリアルデータ(図12参照)が含まれる。また、上記メモリには、上述のボクセルデータ(図11参照)、更新範囲データ、メッシュデータ、オブジェクトデータ等が記憶される(図33参照)。
【0197】
更新範囲データは、上述の更新範囲を示すデータである。本実施形態においては、上述のSDFによって更新範囲が表される。
【0198】
メッシュデータは、ボクセルオブジェクトのメッシュに関する各種データを含む。図33に示すように、本実施形態においては、メッシュデータは、SVOデータ、表示用メッシュデータ、および判定用メッシュデータを含む。SVOデータは、ボクセルデータから算出される各頂点を、上述のSVO構造で保持するデータである。なお、本実施形態においては、SVOデータには、各頂点の位置を示すデータに加えて、各頂点に設定されるマテリアルを示すデータ(例えば、マテリアルのIDを示すデータや特殊マテリアルを示すデータ)が含まれる。表示用メッシュデータは、表示用メッシュに関する各種データを含む。具体的には、表示用メッシュデータは、表示用メッシュの各頂点を示すデータと、各頂点に設定されるマテリアルを示すデータ(例えば、マテリアルのIDを示すデータや特殊マテリアルを示すデータ)を含む。判定用メッシュデータは、判定用メッシュに関する各種データを含む。具体的には、判定用メッシュデータは、判定用メッシュの各頂点を示すデータと、各頂点に設定されるマテリアルを示すデータ(例えば、マテリアルのIDを示すデータや特殊マテリアルを示すデータ)を含む。
【0199】
オブジェクトデータは、ボクセルオブジェクト以外のオブジェクト(例えば、プレイヤキャラクタ、マテリアル置換オブジェクト250等の仮想オブジェクト等)に関する各種データを含む。オブジェクトデータは、ゲーム空間に登場するオブジェクト毎に記憶される。オブジェクトデータは、例えば、当該オブジェクトの位置、速度、および状態等を示すデータを含む。
【0200】
図34は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。ゲーム処理の実行は、例えば、上記ゲームプログラムの実行中において、プレイヤの指示に応じてゲームが開始されたことに応じて開始される。なお、ステップS1~S17の一連の処理からなる処理ループは、1フレームに1回のサイクルで実行される。
【0201】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、図34に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、図33に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、図34に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0202】
また、プロセッサ81は、図34に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0203】
図34において、プロセッサ81は、初期設定を行って(ステップS1)、次のステップに処理を進める。例えば、上記初期設定において、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化して、各データを更新する。一例として、プロセッサ81は、初期状態のゲーム空間を生成して、ボクセルデータ、メッシュデータ、およびオブジェクトデータを更新し、当該ボクセルデータにおけるマテリアル置換フラグおよび解除後フラグをオフに初期設定する。そして、初期設定されたゲーム空間において、マテリアル置換オブジェクト250が配置されている場合、当該マテリアル置換オブジェクト250に対応する上記置換範囲内のボクセルのボクセルデータにおけるマテリアル置換フラグをオンに初期設定する。
【0204】
次に、プロセッサ81は、プレイヤによる操作入力を示す上記操作データを取得(ステップS2)、次のステップに処理を進める。例えば、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから出力される操作データや本体装置2(例えば、タッチパネル13)から出力される操作データを取得する。
【0205】
次に、プロセッサ81は、処理が必要なゲーム空間のオブジェクトのうち、処理が完了していないいずれかのオブジェクト(固有ボクセル空間により定義されたボクセルオブジェクトを含む)を処理対象として指定し、指定されたオブジェクトについて、速度を算出する処理、および前のフレームにおけるオブジェクト同士の接触の結果を反映する処理を実行し(ステップS3)、次のステップに処理を進める。オブジェクトの速度は、後述するステップS15の処理において、今回のフレームにおけるオブジェクトの位置を算出するために用いられる。例えば、指定されたオブジェクトがプレイヤキャラクタである場合、プレイヤキャラクタの速度は、ステップS2で取得された操作データに基づいて算出される。また、指定されたオブジェクトが、ユーザによって操作されないオブジェクト(例えば、破片オブジェクト)である場合、当該オブジェクトの速度は、ゲームプログラムにおいて予め定められたルールに基づいて算出される。例えば、破片オブジェクトの速度は、地形オブジェクト上に配置されて移動していない場合には0に設定され、プレイヤキャラクタに把持されている場合にはプレイヤキャラクタの速度と同じに設定され、プレイヤキャラクタによる投げるアクションによって放たれた場合には、所定のルールで決められた大きさでプレイヤキャラクタの方向に基づく方向に移動する速度に設定される。具体的には、オブジェクトの速度は、オブジェクト間の相互作用を含めた仮想的な物理演算に基づいて算出される。例えば、オブジェクト同士の衝突による反発や、接触による摩擦等の相互作用、仮想的な重力による落下や仮想的な空気抵抗による減速等が速度決定に反映される。
【0206】
また、前のフレームにおけるオブジェクト同士の接触の結果を反映する処理には、前のフレームにおけるコリジョン判定(後述するステップS14)においてオブジェクト同士が接触したと判定された場合に、当該オブジェクトに対して接触による影響を与える処理が含まれる。上記処理は、例えば次のような処理である。
・前のフレームにおいてパンチアクション等によってプレイヤキャラクタが地形オブジェクトに接触したと判定され、当該地形オブジェクトが破壊可能な状態である場合に、破片オブジェクトを生成する処理
・前のフレームにおいてパンチアクション等によってプレイヤキャラクタがマテリアル置換オブジェクト250に接触したと判定された場合に、当該マテリアル置換オブジェクト250を破壊して消滅させる処理
・前のフレームにおいてプレイヤキャラクタが所定の地形オブジェクト(例えば、溶岩)に接触したと判定された場合に、プレイヤキャラクタの体力を減少させる処理
・前のフレームにおいてオブジェクトが他のオブジェクトに接触したと判定された場合に、当該オブジェクトを消滅させる処理
以上のステップS3の処理においてオブジェクトに関する状態が変更された場合、プロセッサ81は、当該オブジェクトに関してメモリに記憶されているオブジェクトデータを、変更後の内容を示すように更新する。
【0207】
次に、プロセッサ81は、上記ステップS3で指定されたオブジェクトによって、ボクセルオブジェクトを更新させる更新イベントが発生したか否かを判定する(ステップS4)。例えば、上記ステップS4の判定は、前のフレームにおけるコリジョン判定(後述するステップS14)の結果に基づいて行われる。一例として、前のフレームにおいてパンチアクション等によってプレイヤキャラクタが地形オブジェクトに接触したと判定され、当該地形オブジェクトが破壊(消去)可能な状態である場合には、当該地形オブジェクトの一部を消去する(図13図14図32参照)更新イベントが発生したと判定される。なお、プロセッサ81は、前のフレームにおいてパンチアクション等によってプレイヤキャラクタが地形オブジェクトに接触したと判定され、当該地形オブジェクトが破壊(消去)できない状態(例えば、接触した地形オブジェクトにおける判定用メッシュのポリゴンのマテリアルが、上記特殊マテリアルである状態)である場合(図25図29参照)、更新イベントが発生していないと判定される。そして、プロセッサ81は、更新イベントが発生した場合、ステップS5に処理を進める。一方、プロセッサ81は、更新イベントが発生していない場合、ステップS7に処理を進める。
【0208】
ステップS5において、プロセッサ81は、ボクセルオブジェクトの更新を行う更新範囲をゲーム空間に設定して、次のステップに処理を進める。例えば、更新範囲の具体的な内容(例えば、位置、形状、および大きさ)は、ゲームプログラムにおいて更新イベントの種類毎に関連付けられている。上記ステップS5で設定される更新範囲は、上記ステップS4において発生すると判定された更新イベントの種類に関連付けられる内容となるように設定される。上記ステップS5において、プロセッサ81は、設定された更新範囲を示すデータを、更新範囲データとしてメモリに記憶する。
【0209】
次に、プロセッサ81は、上記ステップS5で設定された更新範囲に対応するボクセルについて、更新イベントに応じた変更を行い(ステップS6)、ステップS7に処理を進める。例えば、プロセッサ81は、更新範囲内のボクセルオブジェクトを消去や縮小されたように変形させたり、更新範囲内にボクセルオブジェクトが追加されたように変形させたりする場合には、当該更新範囲に対応するボクセルの密度を変更するように、メモリに記憶されているボクセルデータを更新する(上記[2-2.ボクセルデータの更新]参照)。また、プロセッサ81は、更新範囲内のボクセルオブジェクトのマテリアルを変更する場合には、更新範囲に対応するボクセルの第1マテリアルID、第2マテリアルID、およびマテリアル混合比の少なくとも1つを更新するように、メモリに記憶されているボクセルデータを更新する。
【0210】
ステップS7において、プロセッサ81は、上記ステップS3で指定されたオブジェクトによって、マテリアル置換フラグをオンからオフに変更させるフラグ変更イベントが発生したか否かを判定する。例えば、プロセッサ81は、上記ステップS3において、プレイヤキャラクタのパンチアクション等により、マテリアル置換オブジェクト250を破壊して消滅させる処理が行われた場合(図30参照)、フラグ変更イベントが発生したと判定する。そして、プロセッサ81は、フラグ変更イベントが発生した場合、ステップS8に処理を進める。一方、プロセッサ81は、フラグ変更イベントが発生していない場合、ステップS9に処理を進める。
【0211】
ステップS8において、プロセッサ81は、消滅したマテリアル置換オブジェクト250に対応する上記置換範囲内のボクセルのボクセルデータにおけるマテリアル置換フラグをオフおよび置換後フラグをオンにそれぞれ変更し、ステップS9に処理を進める。ここで、上記ステップS1における初期設定の処理により、上記消滅したマテリアル置換オブジェクト250に対応する上記置換範囲内のボクセルのボクセルデータは、それぞれマテリアル置換フラグがオンに初期設定されている。したがって、上記ステップS8における処理では、フラグ変更イベントが発生した場合に、当該フラグ変更イベントに対応する置換範囲内のマテリアル置換フラグがオンのボクセルに対して、当該マテリアル置換フラグをオフに変更するとともに、当該フラグ変更イベントに応じてマテリアル置換フラグをオンからオフに変更したボクセルに対し、解除後フラグをオンに設定することになる。
【0212】
ステップS9において、プロセッサ81は、処理が必要な全てのオブジェクト(固有ボクセル空間により定義されたボクセルオブジェクトを含む)について上記ステップS3~S8の処理が完了したか否かを判定する。そして、プロセッサ81は、全てのオブジェクトの処理が完了した場合、ステップS10に処理を進める。一方、プロセッサ81は、何れかのオブジェクトの処理が完了していない場合、上記ステップS3に戻って処理を繰り返す。
【0213】
ステップS10において、プロセッサ81は、ゲーム空間におけるボクセルオブジェクトの頂点を更新し、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS6の処理においてボクセルデータが更新された場合には、更新後のボクセルデータに基づいて新たな頂点を算出する。なお、新たな頂点の位置は、上記[2-3.頂点の算出]で述べた方法に従って算出される。また、新たな頂点のマテリアルは、上記[2-4.頂点のマテリアルの決定]で述べた方法に従って算出される。なお、プロセッサ81は、更新後のボクセルデータにおけるマテリアル置換フラグがオンに設定されている場合、当該ボクセルデータを有するボクセルのマテリアルが特殊マテリアルであるとして、上記[2-7.特定のマテリアルに置換する処理]で述べた方法に従って新たな頂点のマテリアルを算出する。
【0214】
次に、プロセッサ81は、頂点の簡略化を行い(ステップS11)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS10の処理による更新後の各頂点について、上記[2-5.頂点の簡略化]で述べた方法に従って簡略化を行う。そして、プロセッサ81は、メモリに記憶されるSVOデータを、上記ステップS10およびステップS11の処理によって得られた各頂点を示すように更新する。なお、上記ステップS10およびステップS11の処理は、ボクセルデータの全体について頂点を算出しなおす必要はなく、上記ステップS6や上記ステップS8の処理においてボクセルの内容が変更された部分についてのみ実行されてもよい。
【0215】
次に、プロセッサ81は、メモリに記憶されるSVOデータに基づいてボクセルオブジェクトの表示用メッシュを更新し(ステップS12)、次のステップに処理を進める。なお、表示用メッシュの各頂点の位置および表示用メッシュの各ポリゴンのマテリアル(例えば、ポリゴンの各頂点に設定されるマテリアル)は、上記[2-6.メッシュの生成]、[2-6-1.表示用メッシュのマテリアルの決定]、および[2-7.特定のマテリアルに置換する処理]で述べた方法に従って算出される。上記ステップS12において、プロセッサ81は、メモリに記憶されている表示用メッシュデータを、更新後の表示用メッシュの各頂点の位置およびマテリアルを示すように更新する。なお、プロセッサ81は、上記ステップS12の完了を待たずに、後述するステップS13以降の処理を開始し、並行して実行するようにしてもよい。その場合、上記ステップS12は、後述するステップS16の開始前に完了している必要がある。
【0216】
次に、プロセッサ81は、メモリに記憶されるSVOデータに基づいてボクセルオブジェクトの判定用メッシュを更新し(ステップS13)、次のステップに処理を進める。なお、判定用メッシュの各頂点の位置および判定用メッシュの各ポリゴンのマテリアル(例えば、ポリゴンの各頂点に設定されるマテリアル)は、上記[2-6.メッシュの生成]お、[2-6-2.判定用メッシュのマテリアルの決定]、および[2-7.特定のマテリアルに置換する処理]で述べた方法に従って算出される。上記ステップS13において、プロセッサ81は、メモリに記憶されている判定用メッシュデータを、更新後の判定用メッシュの各頂点の位置およびマテリアルを示すように更新する。
【0217】
なお、図34に示す例においては、上記ステップS13における判定用メッシュの生成処理を毎フレーム実行するものとしたが、判定用メッシュの生成処理は、毎フレーム実行されなくてもよい。例えば、後述するステップS14のコリジョン判定処理が所定の条件を満たすフレームにおいてのみ実行される場合、プロセッサ81は、当該コリジョン判定を行うフレームで判定用メッシュの生成処理を実行してもよい。また、プロセッサ81は、ゲーム空間のうちで上記ステップS14のコリジョン判定を行う領域内のボクセルについて、判定用メッシュの生成処理を実行してもよい。例えば、ゲーム空間においてプレイヤキャラクタの周囲にはボクセルオブジェクト以外にはコリジョン判定の対象となるオブジェクトが存在しない状況(つまり、プレイヤキャラクタとその周囲のボクセルオブジェクトとのコリジョン判定のみを行えばよい状況)では、プロセッサ81は、プレイヤキャラクタを基準とした所定範囲内のボクセルについて判定用メッシュの生成処理を実行してもよい。
【0218】
次に、プロセッサ81は、メモリに記憶されている判定用メッシュデータとオブジェクトデータとに基づいて、ゲーム空間における各オブジェクトについてコリジョン判定を行い(ステップS14)、次のステップに処理を進める。例えば、プロセッサ81は、ボクセルオブジェクトについては判定用メッシュを用い、ボクセルオブジェクトでないオブジェクトについては当該オブジェクトに設定される所定形状の判定領域を用いて、コリジョン判定を行う。なお、本実施形態においては、上記ステップS3で算出された速度を考慮してステップS14のコリジョン判定が行われる。つまり、プロセッサ81は、各オブジェクトの位置として、上記速度で移動した場合の位置を用いてコリジョン判定を行う。
【0219】
本実施形態においては、上記ステップS14のコリジョン判定によって、例えば次の接触の有無が判定される。
・移動やパンチアクション等のアクションを行うプレイヤキャラクタと、地形オブジェクトとの接触
・移動やパンチアクション等のアクションを行うプレイヤキャラクタと、他のオブジェクトとの接触
・オブジェクトを持ち上げるアクションを行うキャラクタと当該オブジェクトとの接触
・移動するオブジェクトと地形オブジェクトとの接触
なお、上記ステップS14のコリジョン判定においてオブジェクト同士が接触したと判定された場合には、次のフレームにおける上記ステップS3の処理において、オブジェクト同士の接触の結果を反映する処理が実行されたり、次のフレームにおける上記ステップS4の処理において、更新イベントが発生したと判定されたりする。
【0220】
次に、プロセッサ81は、ゲーム空間における各オブジェクトの動作を制御し(ステップS15)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタについては、上記ステップS1において取得された操作データに基づいて、移動や各種アクションを行わせる制御を行う。そして、プロセッサ81は、所定のアクションが発生した場合には、ゲーム空間内に、当該アクションに応じたコリジョン判定のための領域を生成する。なお、1回の上記ステップS15の処理においては、プロセッサ81は、複数フレームにわたって行われる動作(例えば、プレイヤキャラクタによるアクション)については、1フレーム分の動作の進行を行うように各オブジェクトが制御される。これにより、上記ステップS15の処理が複数フレームにわたって繰り返し実行されることで、移動や各種アクションに関する一連の動作を各オブジェクトが行うこととなる。また、オブジェクトの位置は、基本的には、上記ステップS3で算出される速度で移動した後の位置となるように決定される。ただし、上記ステップS14のコリジョン判定によって他のオブジェクトと接触すると判定され、接触した他のオブジェクトによって移動が妨げられる場合には、当該オブジェクトの位置が変化しないように決定されてもよい。一例として、プレイヤキャラクタがパンチアクションを行うことにより、特殊マテリアルで構成されている地形オブジェクトと接触する場合、当該地形オブジェクトによって当該アクションが妨げられる(例えば、繰り出したパンチが地形オブジェクトの表面で跳ね返される)動作が制御されてもよい。そして、上記ステップS15において、プロセッサ81は、メモリに記憶されているオブジェクトデータを、上記ステップS15における制御後のオブジェクトを示す内容となるように更新する。
【0221】
次に、プロセッサ81は、ゲーム画像を生成し(ステップS16)、次のステップに処理を進める。例えば、プロセッサ81は、ボクセルオブジェクトの表示用メッシュの各ポリゴンおよびボクセルオブジェクト以外の各オブジェクトのポリゴンについて、仮想カメラに基づいて描画を行うことでゲーム画像を生成する。なお、表示用メッシュの各ポリゴンは、上記[2-6-1.表示用メッシュのマテリアルの決定]で述べた方法に従って、ポリゴンに設定されるマテリアルに対応するテクスチャ等の描画設定を用いて描画される。また、プロセッサ81は、ボクセルデータにおける解除後フラグがオンに設定されているボクセルがある場合、上記[2-7.特定のマテリアルに置換する処理]で述べた方法に従って、当該ボクセルに基づくゲーム空間における位置(例えば、当該ボクセルに関連する表示用メッシュの表面位置)に解除後エフェクトを表示して描画する(図30参照)。上記ステップS16で生成されたゲーム画像は、1フレームに1回のサイクルで表示装置に出力されて表示される。
【0222】
次に、プロセッサ81は、ゲームを終了するか否かを判定する(ステップS17)。例えば、プロセッサ81は、ゲームを終了するための所定の操作入力がユーザによって行われた場合やゲームを終了する条件が満たされた場合、上記ステップS17において肯定判定する。そして、プロセッサ81は、ゲームを終了する場合、当該フローチャートによる処理を終了する。一方、プロセッサ81は、ゲームを終了しない場合、上記ステップS1に戻って処理を繰り返す。以降、上記ステップS17においてゲームを終了すると判定されるまで、上記ステップS2~S17の一連の処理が繰り返し実行される。
【0223】
このように、本実施形態においては、ボクセルデータにおけるマテリアルに関する情報(例えば、マテリアルID)を保持したまま、ボクセルのマテリアルを所定のマテリアル(例えば、特殊マテリアル)に置換することができる。これによって、ボクセルのマテリアル置換を解除する場合に、上記保持されているマテリアルに関する情報に基づくマテリアルに変更することが容易となる。
【0224】
なお、上述した説明では、マテリアル置換フラグがオンに設定されているボクセルは、マテリアルIDに関わらず当該マテリアル置換フラグに対応したマテリアルのみを有するものとして、表示用メッシュのマテリアルおよび判定用メッシュのマテリアルの両方を決定する例を用いたが、表示用メッシュのマテリアルおよび判定用メッシュのマテリアルの一方が決定されてもよい。この場合、それぞれのメッシュを生成するための頂点のマテリアルデータをそれぞれ算出して管理することにより、当該管理されている頂点のマテリアルデータを用いて表示用メッシュのマテリアルおよび判定用メッシュのマテリアルがそれぞれ決定されてもよい。
【0225】
また、上述した説明では、3次元空間におけるボクセルに設定されるボクセルデータに基づいて、3次元のメッシュが生成されることによりボクセルオブジェクトが規定される例を用いたが、2次元のボクセルに設定されるボクセルデータに基づいて、ボクセルオブジェクトが規定されてもかまわない。
【0226】
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、スマートフォン、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、プレイヤキャラクタ等を動作させるユーザ操作を行うための入力装置は、左コントローラ3、右コントローラ4、またはタッチパネル13等でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
【0227】
また、上述した説明では情報処理をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の情報処理装置、他のゲーム装置、他の携帯端末等)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0228】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0229】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0230】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0231】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0232】
以上のように、本発明は、ボクセルデータに基づくオブジェクトについて、マテリアル情報を保持したまま、マテリアル変化を反映させたゲームを実行できるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法等として利用することができる。
【符号の説明】
【0233】
1…情報処理システム
2…本体装置
3…左コントローラ
4…右コントローラ
11…ハウジング
12…ディスプレイ
13…タッチパネル
32、52…アナログスティック
42、64…端子
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
図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
図29
図30
図31
図32
図33
図34