(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2026-02-10
(45)【発行日】2026-02-19
(54)【発明の名称】情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法
(51)【国際特許分類】
A63F 13/577 20140101AFI20260212BHJP
A63F 13/52 20140101ALI20260212BHJP
A63F 13/60 20140101ALI20260212BHJP
G06T 15/04 20110101ALI20260212BHJP
G06T 17/10 20060101ALI20260212BHJP
G06T 19/00 20110101ALI20260212BHJP
【FI】
A63F13/577
A63F13/52
A63F13/60
G06T15/04
G06T17/10
G06T19/00 A
(21)【出願番号】P 2024011587
(22)【出願日】2024-01-30
【審査請求日】2025-05-20
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】栗原 竜矢
【審査官】三田村 陽平
(56)【参考文献】
【文献】国際公開第2022/243626(WO,A1)
【文献】特開2004-062666(JP,A)
【文献】国際公開第2019/123729(WO,A1)
【文献】特開2005-032140(JP,A)
【文献】特開2010-033285(JP,A)
【文献】特開2018-197973(JP,A)
【文献】特開2010-033300(JP,A)
【文献】特開2010-113548(JP,A)
【文献】米国特許出願公開第2023/0274519(US,A1)
【文献】中国特許出願公開第116485969(CN,A)
【文献】まるで『マイクラ』?ボクセル地形を生み出す無料アセット「VoxelPlugin Free」で”地形を掘ったり積み重ねたり”して遊んでみよう,[online],2022年08月02日,[2026年1月9日検索], <URL:https://gamemakers.jp/article/2022_08_02_13357/>
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
A63F 13/00 -13/98
G06T 1/00
G06T 11/00 -19/20
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの色彩および/または模様を前記ボクセル毎に規定するマテリアルデータとして、第1マテリアルデータと、第2マテリアルデータとを取得するマテリアルデータ取得手段と、
(a)前記オブジェクトの見た目を変化させる変化イベントが発生する前においては、前記第1マテリアルデータに基づいて前記オブジェクトのメッシュの色彩および/または模様を設定し、(b)前記変化イベントが発生した後においては、当該変化イベントが発生した位置のボクセルである変化対象ボクセルに設定される前記第1マテリアルデータに前記第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記オブジェクトの表面の一部に対応する前記メッシュの色彩および/または模様を設定する見た目設定手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段として前記コンピュータを機能させる、情報処理プログラム。
【請求項2】
前記オブジェクト生成手段は、前記オブジェクトの少なくとも一部を消去する消去イベントが発生した場合、当該消去イベントが発生した消去対象ボクセルにおいて前記オブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新し、
前記消去対象ボクセルの周囲のボクセルのうち少なくとも1つのボクセルにおいて前記変化イベントが発生したと判定する変化イベント判定手段として前記コンピュータをさらに機能させる、請求項1に記載の情報処理プログラム。
【請求項3】
前記見た目設定手段は、前記変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記消去イベントの前後で位置が変化していない少なくとも1つのメッシュについて、前記第2マテリアルデータに基づいて色彩および/または模様を設定する、請求項2に記載の情報処理プログラム。
【請求項4】
前記オブジェクトに対して衝撃を付与する衝撃付与イベントが発生した場合、当該衝撃付与イベントが発生した位置に基づく位置のボクセルについて前記変化イベントが発生したと判定する変化イベント判定手段として前記コンピュータをさらに機能させる、請求項1に記載の情報処理プログラム。
【請求項5】
前記見た目設定手段は、前記変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記衝撃付与イベントの前後で位置が変化していない少なくとも1つのメッシュについて、前記第2マテリアルデータに基づいて色彩および/または模様を設定する、請求項4に記載の情報処理プログラム。
【請求項6】
前記変化イベント判定手段は、前記オブジェクトに対して第1の回数の前記衝撃付与イベントが発生した場合、当該オブジェクトのうちで当該衝撃付与イベントに応じた範囲のボクセルについて前記変化イベントが発生したと判定し、
前記情報処理プログラムは、
前記オブジェクトに対して前記第1の回数よりも多い第2の回数の前記衝撃付与イベントが発生した場合、当該オブジェクトのうちで当該衝撃付与イベントに応じた範囲に基づく位置の消去対象ボクセルにおいて前記オブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新するボクセル更新手段として前記コンピュータをさらに機能させ、
前記変化イベント判定手段は、前記オブジェクトに対して前記第2の回数の前記衝撃付与イベントが発生した場合、前記消去対象ボクセルの周囲のボクセルのうち少なくともいくつかのボクセルにおいて前記変化イベントが発生したと判定する、請求項
4に記載の情報処理プログラム。
【請求項7】
前記マテリアルデータ取得手段は、第
3マテリアルデータを取得し、
前記見た目設定手段は、
1回目の前記変化イベントが発生したことに応じて、当該1回目の変化イベントが発生した位置の前記変化対象ボクセルに設定される前記第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記オブジェクトのメッシュの色彩および/または模様を設定し、
当該変化対象ボクセルについて2回目の前記変化イベントが発生したことに応じて、当該2回目の変化イベントが発生した位置の当該変化対象ボクセルに設定される前記第2マテリアルデータに前記第3マテリアルデータが関連付けられている場合、当該第3マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記オブジェクトのメッシュの色彩および/または模様を設定する、請求項1から請求項6のいずれか1項に記載の情報処理プログラム。
【請求項8】
前記マテリアルデータは、前記オブジェクトの性質をボクセル毎に規定する性質データに関連付けられ、前記第1マテリアルデータに関連付けられた前記性質データと、前記第2マテリアルデータに関連付けられた前記性質データは同じであり、
前記性質データに基づいて当該オブジェクトの性質を設定する性質設定手段として前記コンピュータをさらに機能させる、請求項1から請求項
6のいずれか1項に記載の情報処理プログラム。
【請求項9】
前記マテリアルデータは、テクスチャを示すデータを含み、
前記ボクセルデータに基づいて生成されるメッシュに対して、当該ボクセルデータに対応するボクセルに設定される前記マテリアルデータにより示されるテクスチャを適用することで前記オブジェクトの画像を生成する画像生成手段として前記コンピュータをさらに機能させる、請求項1から請求項
6のいずれか1項に記載の情報処理プログラム。
【請求項10】
前記画像生成手段は、前記変化対象ボクセルのボクセルデータと、前記変化対象ボクセルとは異なるボクセルのボクセルデータとに基づいて生成されるメッシュに対して、前記第1マテリアルデータが示すテクスチャから、前記第2マテリアルデータが示すテクスチャへのグラデーションとなるように描画を行うことで前記オブジェクトの画像を生成する、請求項9に記載の情報処理プログラム。
【請求項11】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様を当該オブジェクトのメッシュに対して描画する描画手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段として前記コンピュータを機能させ、
前記オブジェクト生成手段は、前記消去イベントが発生した後においては、前記オブジェクトの一部が消去されるように、前記ボクセルデータを更新し、
前記描画手段は、前記オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、前記第1の色彩および/または模様とは異なる第2の色彩および/または模様を描画する、情報処理プログラム。
【請求項12】
前記描画手段は、前記露出部分のメッシュの周囲の少なくとも一部のメッシュであって、前記消去イベントの前後で位置が変化していない少なくとも1つのメッシュに対して、前記第2の色彩および/または模様を描画する、請求項11に記載の情報処理プログラム。
【請求項13】
前記オブジェクトの性質を前記ボクセル毎に規定する性質データを取得する性質データ取得手段と、
前記第1の色彩および/または模様、あるいは、前記第2の色彩および/または模様がメッシュに描画される前記オブジェクトに対して、前記性質データに基づいて性質を設定する性質設定手段として前記コンピュータをさらに機能させ、
前記第1の色彩および/または模様のメッシュに対応する前記性質データと、前記第2の色彩および/または模様のメッシュに対応する前記性質データは同じである、請求項11または請求項12に記載の情報処理プログラム。
【請求項14】
前記描画手段は、前記ボクセルデータに基づいて生成されるメッシュに対して、当該ボクセルデータに対応するボクセルに関連付けられるテクスチャを用いて当該メッシュの描画を行う、請求項11
または請求項
12のいずれか1項に記載の情報処理プログラム。
【請求項15】
前記描画手段は、前記露出部分のメッシュの周囲の少なくとも一部のメッシュに対して、前記第1の色彩および/または模様から、前記第2の色彩および/または模様へのグラデーションとなるように描画を行う、請求項11
または請求項
12のいずれか1項に記載の情報処理プログラム。
【請求項16】
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの色彩および/または模様を前記ボクセル毎に規定するマテリアルデータとして、第1マテリアルデータと、第2マテリアルデータとを取得するマテリアルデータ取得手段と、
(a)前記オブジェクトの見た目を変化させる変化イベントが発生する前においては、前記第1マテリアルデータに基づいて前記オブジェクトのメッシュの色彩および/または模様を設定し、(b)前記変化イベントが発生した後においては、当該変化イベントが発生した位置のボクセルである変化対象ボクセルに設定される前記第1マテリアルデータに前記第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記オブジェクトの表面の一部に対応する前記メッシュの色彩および/または模様を設定する見た目設定手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段とを備える、情報処理システム。
【請求項17】
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様を当該オブジェクトのメッシュに対して描画する描画手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段とを備え、
前記オブジェクト生成手段は、前記消去イベントが発生した後においては、前記オブジェクトの一部が消去されるように、前記ボクセルデータを更新し、
前記描画手段は、前記オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、前記第1の色彩および/または模様とは異なる第2の色彩および/または模様を描画する、情報処理システム。
【請求項18】
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの色彩および/または模様を前記ボクセル毎に規定するマテリアルデータとして、第1マテリアルデータと、第2マテリアルデータとを取得するマテリアルデータ取得手段と、
(a)前記オブジェクトの見た目を変化させる変化イベントが発生する前においては、前記第1マテリアルデータに基づいて前記オブジェクトのメッシュの色彩および/または模様を設定し、(b)前記変化イベントが発生した後においては、当該変化イベントが発生した位置のボクセルである変化対象ボクセルに設定される前記第1マテリアルデータに前記第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記オブジェクトの表面の一部に対応する前記メッシュの色彩および/または模様を設定する見た目設定手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段とを備える、情報処理装置。
【請求項19】
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段と、
前記オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様を当該オブジェクトのメッシュに対して描画する描画手段と、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力手段とを備え、
前記オブジェクト生成手段は、前記消去イベントが発生した後においては、前記オブジェクトの一部が消去されるように、前記ボクセルデータを更新し、
前記描画手段は、前記オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、前記第1の色彩および/または模様とは異なる第2の色彩および/または模様を描画する、情報処理装置。
【請求項20】
情報処理システムによって実行される情報処理方法であって、
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成ステップと、
前記オブジェクトの色彩および/または模様を前記ボクセル毎に規定するマテリアルデータとして、第1マテリアルデータと、第2マテリアルデータとを取得するマテリアルデータ取得ステップと、
(a)前記オブジェクトの見た目を変化させる変化イベントが発生する前においては、前記第1マテリアルデータに基づいて前記オブジェクトのメッシュの色彩および/または模様を設定し、(b)前記変化イベントが発生した後においては、当該変化イベントが発生した位置のボクセルである変化対象ボクセルに設定される前記第1マテリアルデータに前記第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成される前記メッシュであって、前記オブジェクトの表面の一部に対応する前記メッシュの色彩および/または模様を設定する見た目設定ステップと、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力ステップとを備える、情報処理方法。
【請求項21】
情報処理システムによって実行される情報処理方法であって、
仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成ステップと、
前記オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様を当該オブジェクトのメッシュに対して描画する描画ステップと、
前記仮想空間における前記オブジェクトのメッシュの画像を表示装置に出力する画像出力ステップとを備え、
前記オブジェクト生成ステップにおいては、前記消去イベントが発生した後においては、前記オブジェクトの一部が消去されるように、前記ボクセルデータを更新し、
前記描画ステップにおいては、前記オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、前記第1の色彩および/または模様とは異なる第2の色彩および/または模様を描画する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボクセルデータを用いて仮想空間におけるオブジェクトを生成するための情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【0002】
従来、ボクセルデータを用いてオブジェクトを管理し、ボクセルデータに基づいて仮想空間においてオブジェクトのメッシュを生成することが行われている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】“Marchingcubes:A highresolution 3D surface construction algorithm”、Computer Graphics, Volume 21, Number 4、WE Lorensen,HE Cline、1987年
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、ボクセルデータを用いて仮想空間にオブジェクトを生成する場合に、オブジェクトの表面に対応するボクセルと、当該オブジェクトの内部に対応するボクセルとで別の見た目(例えば、テクスチャ等)を用いたとしても、当該オブジェクトの表面にボクセルの一辺の長さよりも薄い外殻部分があるような表現を行うことが難しかった。
【0005】
それ故、本発明の目的は、オブジェクトの薄い外殻部分を表現することができる情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(15)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、オブジェクト生成手段と、マテリアルデータ取得手段と、見た目設定手段と、画像出力手段としてコンピュータを機能させる。オブジェクト生成手段は、仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成する。マテリアルデータ取得手段は、オブジェクトの色彩および/または模様をボクセル毎に規定するマテリアルデータとして、第1マテリアルデータと、第2マテリアルデータとを取得する。見た目設定手段は、(a)オブジェクトの見た目を変化させる変化イベントが発生する前においては、第1マテリアルデータに基づいてオブジェクトのメッシュの色彩および/または模様を設定し、(b)変化イベントが発生した後においては、当該変化イベントが発生した位置のボクセルである変化対象ボクセルに設定される第1マテリアルデータに第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるメッシュであって、オブジェクトの表面の一部に対応するメッシュの色彩および/または模様を設定する。画像出力手段は、仮想空間におけるオブジェクトのメッシュの画像を表示装置に出力する。
【0008】
上記(1)の構成によれば、変化イベントによってオブジェクトの薄い表面が剥がれた様子を表現することできるので、オブジェクトの薄い表面を表現することができる。
【0009】
(2)
オブジェクト生成手段は、オブジェクトの少なくとも一部を消去する消去イベントが発生した場合、当該消去イベントが発生した消去対象ボクセルにおいてオブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新してもよい。情報処理プログラムは、変化イベント判定手段としてコンピュータをさらに機能させてもよい。変化イベント判定手段は、消去対象ボクセルの周囲のボクセルのうち少なくとも1つのボクセルにおいて変化イベントが発生したと判定する。
【0010】
上記(2)の構成によれば、オブジェクトの一部が消去されてその内部が露出した場合に、当該オブジェクトの薄い表面を表現することができる。
【0011】
(3)
見た目設定手段は、変化対象ボクセルに関するボクセルデータに基づいて生成されるメッシュであって、消去イベントの前後で位置が変化していない少なくとも1つのメッシュについて、第2マテリアルデータに基づいて色彩および/または模様を設定してもよい。
【0012】
上記(3)の構成によれば、オブジェクトのうち上記のメッシュの部分について、メッシュを変更することなく、オブジェクトの薄い表面が剥がされたように見せることができる。
【0013】
(4)
情報処理プログラムは、変化イベント判定手段としてコンピュータをさらに機能させてもよい。変化イベント判定手段は、オブジェクトに対して衝撃を付与する衝撃付与イベントが発生した場合、当該衝撃付与イベントが発生した位置に基づく位置のボクセルについて変化イベントが発生したと判定する。
【0014】
上記(4)の構成によれば、オブジェクトのうち上記のメッシュの部分について、オブジェクトの薄い表面が剥がされたように見せることができる。
【0015】
(5)
情報処理プログラムは、変化イベント判定手段としてコンピュータをさらに機能させてもよい。変化イベント判定手段は、オブジェクトに対して衝撃を付与する衝撃付与イベントが発生した場合、当該衝撃付与イベントが発生した位置に基づく位置のボクセルについて変化イベントが発生したと判定する。
【0016】
上記(5)の構成によれば、オブジェクトのうち上記のメッシュの部分について、メッシュを変更することなく、オブジェクトの薄い表面が剥がされたように見せることができる。
【0017】
(6)
変化イベント判定手段は、オブジェクトに対して第1の回数の衝撃付与イベントが発生した場合、当該オブジェクトのうちで当該衝撃付与イベントに応じた範囲のボクセルについて変化イベントが発生したと判定してもよい。情報処理プログラムは、ボクセル更新手段としてコンピュータをさらに機能させてもよい。ボクセル更新手段は、オブジェクトに対して第1の回数よりも多い第2の回数の衝撃付与イベントが発生した場合、当該オブジェクトのうちで当該衝撃付与イベントに応じた範囲に基づく位置の消去対象ボクセルにおいてオブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新する。変化イベント判定手段は、オブジェクトに対して第2の回数の衝撃付与イベントが発生した場合、消去対象ボクセルの周囲のボクセルのうち少なくともいくつかのボクセルにおいて変化イベントが発生したと判定してもよい。
【0018】
上記(6)の構成によれば、衝撃付与イベントによってオブジェクトの薄い表面が剥がされ、その後の追加の衝撃付与イベントによって当該オブジェクトの一部が消去される、といった事象を表現することができる。
【0019】
(7)
マテリアルデータ取得手段は、第3内側マテリアルデータを取得してもよい。見た目設定手段は、1回目の変化イベントが発生したことに応じて、当該1回目の変化イベントが発生した位置の変化対象ボクセルに設定される第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるオブジェクトのメッシュの色彩および/または模様を設定してもよい。見た目設定手段は、当該変化対象ボクセルについて2回目の変化イベントが発生したことに応じて、当該2回目の変化イベントが発生した位置の当該変化対象ボクセルに設定される第2マテリアルデータに第3マテリアルデータが関連付けられている場合、当該第3マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるオブジェクトのメッシュの色彩および/または模様を設定してもよい。
【0020】
上記(7)の構成によれば、見た目が異なる3層で構成されるボクセルオブジェクトを表現することができる。
【0021】
(8)
マテリアルデータは、オブジェクトの性質をボクセル毎に規定する性質データに関連付けられ、第1マテリアルデータに関連付けられた性質データと、第2マテリアルデータに関連付けられた性質データは同じであってもよい。情報処理プログラムは、性質データに基づいて当該オブジェクトの性質を設定する性質設定手段としてコンピュータをさらに機能させてもよい。
【0022】
上記(8)の構成によれば、オブジェクトの見た目の影響を受けることなく当該オブジェクトの性質を設定することができる。
【0023】
(9)
マテリアルデータは、テクスチャを示すデータを含んでもよい。情報処理プログラムは、画像生成手段としてコンピュータをさらに機能させてもよい。画像生成手段は、ボクセルデータに基づいて生成されるメッシュに対して、当該ボクセルデータに対応するボクセルに設定されるマテリアルデータにより示されるテクスチャを適用することでオブジェクトの画像を生成する。
【0024】
上記(9)の構成によれば、オブジェクトの色彩および/または模様をボクセル毎に設定することができる。
【0025】
(10)
画像生成手段は、変化対象ボクセルのボクセルデータと、変化対象ボクセルとは異なるボクセルのボクセルデータとに基づいて生成されるメッシュに対して、第1マテリアルデータが示すテクスチャから、第2マテリアルデータが示すテクスチャへのグラデーションとなるように描画を行うことでオブジェクトの画像を生成してもよい。
【0026】
上記(10)の構成によれば、オブジェクトの見た目をより自然なものとすることができる。
【0027】
(11)
本発明の他の一例は、情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、オブジェクト生成手段と、描画手段と、画像出力手段としてコンピュータを機能させる。オブジェクト生成手段は、仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成する。描画手段は、オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様を当該オブジェクトのメッシュに対して描画する。画像出力手段は、仮想空間におけるオブジェクトのメッシュの画像を表示装置に出力する。オブジェクト生成手段は、消去イベントが発生した後においては、オブジェクトの一部が消去されるように、ボクセルデータを更新する。描画手段は、オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、第1の色彩および/または模様とは異なる第2の色彩および/または模様を描画する。
【0028】
上記(11)の構成によれば、オブジェクトの一部が消去されることによって内部が露出した場合に、オブジェクトの薄い表面を表現することができる。
【0029】
(12)
描画手段は、露出部分のメッシュの周囲の少なくとも一部のメッシュであって、消去イベントの前後で位置が変化していない少なくとも1つのメッシュに対して、第2の色彩および/または模様を描画してもよい。
【0030】
上記(12)の構成によれば、オブジェクトのうち上記のメッシュの部分について、メッシュを変更することなく、オブジェクトの薄い表面が剥がされたように見せることができる。
【0031】
(13)
情報処理プログラムは、性質データ取得手段と、性質設定手段としてコンピュータをさらに機能させてもよい。性質データ取得手段は、オブジェクトの性質をボクセル毎に規定する性質データを取得する。性質設定手段は、第1の色彩および/または模様、あるいは、第2の色彩および/または模様がメッシュに描画されるオブジェクトに対して、性質データに基づいて性質を設定する。第1の色彩および/または模様のメッシュに対応する性質データと、第2の色彩および/または模様のメッシュに対応する性質データは同じであってもよい。
【0032】
上記(13)の構成によれば、オブジェクトの見た目の影響を受けることなく当該オブジェクトの性質を変更することができる。
【0033】
(14)
描画手段は、ボクセルデータに基づいて生成されるメッシュに対して、当該ボクセルデータに対応するボクセルに関連付けられるテクスチャを用いて当該メッシュの描画を行ってもよい。
【0034】
上記(14)の構成によれば、ボクセルオブジェクトの色彩および/または模様をボクセル毎に設定することができる。
【0035】
(15)
描画手段は、露出部分のメッシュの周囲の少なくとも一部のメッシュに対して、第1の色彩および/または模様から、第2の色彩および/または模様へのグラデーションとなるように描画を行ってもよい。
【0036】
上記(15)の構成によれば、オブジェクトの見た目をより自然なものとすることができる。
【0037】
なお、本発明の別の一例は、上記(1)~(15)における各手段の全部または一部を備える情報処理装置(例えば、端末装置またはサーバ)または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(15)の各処理を情報処理システムが実行する情報処理方法(具体的には、ゲーム処理方法)であってもよい。
【発明の効果】
【0038】
上記情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法によれば、ボクセルデータを用いて仮想空間にオブジェクトを生成する場合においてオブジェクトの薄い表面を表現することができる。
【図面の簡単な説明】
【0039】
【
図3】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図4】ボクセルオブジェクトである地形オブジェクトの一例を示す図
【
図5】
図4に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
【
図6】
図4に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
【
図7】ボクセルデータの内容とマテリアル情報の内容との一例を示す図
【
図8】マテリアルの性質を示す性質情報の一例を示す図
【
図9】マテリアルのテクスチャを示すテクスチャ情報の一例を示す図
【
図11】地形オブジェクトを含むゲーム画像の一例を示す図
【
図12】木オブジェクトに対してプレイヤオブジェクトがパンチアクションを行った様子の一例を示す図
【
図13】プレイヤオブジェクトによるパンチアクションによって木オブジェクトの一部が破壊された様子の一例を示す図
【
図14】2種類のマテリアルIDを含むマテリアル情報の一例を示す図
【
図15】木オブジェクトの表面および内部の一例を示す図
【
図16】
図15に示す状態から木オブジェクトの一部が消去された状態の一例を示す図
【
図17】表面ボクセルが変化対象ボクセルとして指定されない場合における木オブジェクトの表面および内部の一例を示す図
【
図18】2種類のテクスチャが描画される領域の境界におけるメッシュの一例を示す図
【
図19】衝撃付与イベントによって変化イベントが発生する様子の一例を示す図
【
図20】木オブジェクトが消去されずにテクスチャが変更される場合における、木オブジェクトの表面および内部の一例を示す図
【
図21】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
【
図22】ゲームシステムによって実行されるゲーム処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【0040】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。
図1は、ゲームシステムの一例を示す図である。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0041】
本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0042】
図2は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図1に示す構成の他、
図2に示す各構成要素17,21,23,81~85、および、91を備える。これらの構成要素17,21,23,81~85、および、91のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0043】
本体装置2は、ディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0044】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0045】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0046】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0047】
本体装置2は、スロット23を備える。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。
【0048】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0049】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0050】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0051】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0052】
プロセッサ81は、上述の左側端子17および右側端子21に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。
【0053】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0054】
図3は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図2で示しているため
図3では省略している。
【0055】
左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。また、左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図3に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。
【0056】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0057】
左コントローラ3は、1以上のボタン103を備える。また、左コントローラ3は、アナログスティック(
図3では「スティック」と記載する)32を備える。ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0058】
通信制御部101は、各入力部(具体的には、ボタン103およびアナログスティック32)から、入力に関する情報(具体的には、操作に関する情報)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0059】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、左コントローラ3を動かす操作、および、ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0060】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0061】
図3に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0062】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、右コントローラ4は、ボタン113およびアナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0063】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0064】
[2.ゲームシステムにおける処理の概要]
次に、
図4~
図19を参照して、ゲームシステム1において実行される処理の概要について説明する。本実施形態においては、ゲームシステム1は、3次元の仮想空間であるゲーム空間に地形オブジェクトやキャラクタ(例えば、プレイヤによって操作されるプレイヤオブジェクト)が配置されたゲーム画像を生成し、表示装置に表示させる。なお、本実施形態において、ゲーム画像が表示される表示装置は、上述のディスプレイ12であってもよいし、ディスプレイ12とは異なる表示装置(例えば、ゲームシステム1に接続された据置型モニタ)であってもよい。
【0065】
[2-1.ボクセル]
本実施形態では、ゲーム空間におけるいくつかのオブジェクトについては、ボクセルデータによって形状が規定される。ここで、ボクセルとは、ゲーム空間に格子状に並べられた直方体状(より具体的には、立方体状)の領域であり、ボクセルデータとは各ボクセルに設定されたデータである。以下では、ボクセルデータによって形状が規定されるオブジェクトを、「ボクセルオブジェクト」と呼ぶ。本実施形態においては、ゲームシステム1は、ボクセルオブジェクトをゲーム空間内において生成するためのデータとして、ゲーム空間内に設定される複数のボクセルについてそれぞれ、ボクセルデータを記憶する。
【0066】
図4は、ボクセルオブジェクトである地形オブジェクトの一例を示す図である。
図4に示すように、本実施形態においては、地面等の地形を表す地形オブジェクトは、ボクセルデータによって形状が規定される(つまり、ボクセルオブジェクトである)。
図4に示す各立方体は、地形オブジェクトを示す。なお、
図4においては、ボクセルの境界を細線で示し、地形オブジェクトの辺となる部分を太線で示しているが、これらの線は図面を見やすくする目的で付したものであり、実際には、ボクセルの境界を示す線が表示される必要はないし、地形オブジェクトの辺が太く表示される必要はない。
【0067】
また、
図4に示す地形オブジェクトは、例えば、「ボクセルに設定されるボクセルデータに含まれるパラメータ(具体的には、後述する密度)が所定値より大きい場合は当該ボクセルの位置に立方体を配置し、所定値以下の場合は当該ボクセルの位置に何も配置しない」というルールで生成されたものである。
図4においては、ボクセルとボクセルオブジェクトとの関係をわかりやすく例示する目的で、上記のルールで生成された地形オブジェクトを示している。ただし、本実施形態においては、実際には、例えば後述する
図11に示す地形オブジェクトのように、ボクセルの1辺の長さと比べて複雑な形状となるようなルールでボクセルオブジェクトが生成される。なお、ボクセルデータに基づいてボクセルオブジェクトの形状を決定するルールは任意である。他の実施形態においては、ゲームシステム1は、ボクセルデータに基づいて、
図4に示すようなボクセルオブジェクトを生成してもよいし、
図11に示すようなボクセルオブジェクトを生成してもよい。
【0068】
ボクセルオブジェクトについては、各ボクセルのボクセルデータを変更することで、形状を変化させることができる。
図5および
図6は、
図4に示す地形オブジェクトの一部が消去される前後の様子の一例を示す図である。すなわち、
図5に示す地形オブジェクトのうちの斜線部分が消去される場合、地形オブジェクトは
図6に示すような形状に変化する。このとき、ゲームシステム1は、上記斜線部分のボクセルについて、地形オブジェクトが存在しないことを示すようにボクセルデータを書き換えることで、地形オブジェクトを容易に消去することができる。なお、ゲームシステム1は、地形オブジェクトを追加する場合も、地形オブジェクトを消去する場合と同様に、各ボクセルのボクセルデータを変更することで、地形オブジェクトの形状を容易に変化させることができる。
【0069】
このように、ゲームシステム1は、ボクセルデータを書き換えることによって、ボクセルオブジェクトの形状を自由に変化させることができる。例えば、ゲームにおいて地形オブジェクトが何らかの理由(例えば、プレイヤオブジェクトが地形オブジェクトに打撃を加える等)で破壊される結果として当該地形オブジェクトの形状を変化させる場合がある。このような場合に、ゲームシステム1は、地形オブジェクトの外形形状を示すデータ(すなわち、後述するメッシュ)を直接変更するのではなく、地形オブジェクトの生成に用いられるボクセルデータを変更することで、地形オブジェクトの形状を自由に変化させることができる。
【0070】
図7は、ボクセルデータの内容とマテリアル情報の内容との一例を示す図である。ここで、本実施形態においては、ゲーム空間は、格子状に配置された複数のボクセルに区分することができる。ゲームシステム1は、ゲーム空間における各ボクセルについてそれぞれボクセルデータを関連付けて記憶する。ボクセルデータは、当該ボクセルデータに対応するボクセルにおけるボクセルオブジェクトの有無等を示す。
【0071】
図7に示すように、ボクセルデータは、密度データを含む。密度データは、ボクセルデータに対応するボクセルにおけるボクセルオブジェクトの形状(具体的には、後述するメッシュで規定される形状)を規定するために用いられる指標である密度を示す。詳細は後述するが、ボクセルオブジェクトの表面(すなわち、後述するメッシュ)の位置および形状は、上記の密度に基づいて決定される。つまり、本実施形態においては、上記密度は、ボクセルオブジェクトの表面を規定するメッシュを作成するために用いられる。
【0072】
本実施形態においては、密度は、下限値(例えば、0)から上限値(例えば、255)までの範囲の整数値をとり得る。本実施形態においては、ゲームシステム1は、ボクセルに設定される密度の値が高いと、当該ボクセル内においてボクセルオブジェクトが占める体積の割合が大きくなりやすく、当該密度の値が低いと当該割合が小さくなりやすいように、密度に基づいてボクセルオブジェクトの形状を決定する。このように、密度は、ボクセル内においてボクセルオブジェクトが占める体積の割合に影響を与える指標である。密度は、各ボクセルが定義される領域内にオブジェクトが含まれている度合いを示す指標であるとも言える。例えば、密度が0である場合には当該ボクセル内にボクセルオブジェクトが存在せず、密度が255の場合には当該ボクセル内の全てがボクセルオブジェクトであり、密度が0と255の間の値の場合には値に応じた割合で当該ボクセル内をボクセルオブジェクトが占めるものとすることができる。そして、上記密度に基づいて、メッシュの形状、すなわちボクセルオブジェクトの形状を決定することができる。ただし、上記密度に基づいて生成されたボクセルオブジェクトは、密度が示す割合と厳密に一致する体積になる必要はない。例えば、
図8のようなボクセルオブジェクトを生成する手法と、
図15のようなボクセルオブジェクトを生成する手法とでは、同じ密度に基づいていてもボクセルオブジェクトの体積が異なることもある。
【0073】
他の実施形態においては、密度は、ボクセル内の領域の全体をボクセルオブジェクトが占める状態と、ボクセル内の領域にボクセルオブジェクトが含まれない状態とのいずれかを示すものであってもよい。例えば、密度データは、0または1のみをとり得るデータであってもよい。
【0074】
図7に示すように、ボクセルデータは、マテリアルデータを含む。マテリアルデータは、ボクセルデータにより生成されるボクセルオブジェクトのマテリアル(換言すれば、物質)を示す。ここで、本実施形態においては、ボクセルオブジェクトには、例えば、砂、岩、および、土といったマテリアルが設定される。すなわち、本実施形態においては、ボクセルオブジェクトに設定され得るマテリアルとして複数種類のマテリアルが用意されており、ボクセルオブジェクトには、複数種類のマテリアルのいずれかが設定される。
【0075】
図7に示すように、本実施形態においては、マテリアルデータは、マテリアルの識別情報(「マテリアルID」と呼ぶ)を示す。また、本実施形態においては、ゲームシステム1は、ゲームにおいて用意されるマテリアル毎に、マテリアルの性質およびテクスチャを示すマテリアル情報を記憶する(
図7参照)。本実施形態においては、マテリアル情報は、マテリアルIDと、当該マテリアルの性質と、当該マテリアルの見た目(具体的には、テクスチャ)とを関連付ける。具体的には、マテリアル情報は、マテリアルIDと、当該マテリアルの性質の識別情報(「性質ID」と呼ぶ)と、当該マテリアルのテクスチャの識別情報(「テクスチャID」と呼ぶ)とを関連付ける情報である(
図7参照)。
【0076】
図8は、マテリアルの性質を示す性質情報の一例を示す図である。
図8に示すように、ゲームシステム1は、上記の性質IDと、当該性質IDが示す性質の内容を示す情報とを関連付けた性質情報を記憶する。マテリアルの性質とは、当該マテリアルが設定されるボクセルオブジェクトがゲームにおいて有する性質(ゲームの進行に影響を与え得る性質とも言うことができる。)であり、例えば、
図8に示す重さや滑りやすさといった情報である。なお、本明細書において、マテリアルの性質とは、上記テクスチャ等の見た目に関する情報は含まれない意味である。例えば、マテリアルの性質として下記の情報が設定されてもよい。
・温度
・壊れやすさ(例えば、ボクセルオブジェクトに衝撃が加えられた場合に当該ボクセルオブジェクトが壊れるまでの回数)
・ボクセルオブジェクトに他のオブジェクトが接着されるか否か
・プレイヤオブジェクトがボクセルオブジェクトを破壊した場合におけるプレイヤオブジェクトの体力の回復量
・プレイヤオブジェクトがボクセルオブジェクトを破壊した場合にプレイヤオブジェクトが取得するゲーム内通貨の量
なお、マテリアルに設定される性質の具体的な内容は任意である。他の実施形態においては、マテリアルの性質を示す情報として、上記とは異なる情報が設定されてもよい。
【0077】
図9は、マテリアルのテクスチャを示すテクスチャ情報の一例を示す図である。
図9に示すように、ゲームシステム1は、上記のテクスチャIDと、当該テクスチャIDが示すテクスチャとを関連付けたテクスチャ情報を記憶する。
【0078】
なお、ボクセルオブジェクトの見た目を規定するデータとして、テクスチャの情報に加えて、色彩および/または模様に関する任意の情報が設定されてもよい。例えば、ボクセルオブジェクトの見た目に関する情報として、ひび割れのパターンが設定されてもよい。このようなパターンを用いることによって、ゲームシステム1は、ひび割れが入っている見た目を表すボクセルオブジェクトの画像を生成することができる。
【0079】
以上のように、本実施形態においては、マテリアルデータは、マテリアルIDによって、ボクセルオブジェクトの性質と、ボクセルオブジェクトに用いるテクスチャとを規定する。例えば、ボクセルデータに含まれるマテリアルデータが示すマテリアルIDが「002」である場合、マテリアル情報において当該マテリアルIDに関連付けられる「001」の性質IDが示す性質が、当該ボクセルデータに対応するボクセルオブジェクトの性質として設定される(
図7に示す矢印参照)。また、上記の場合、マテリアル情報において当該マテリアルIDに関連付けられる「002」のテクスチャIDが示すテクスチャが、当該ボクセルデータに対応するボクセルオブジェクトに適用される(
図7に示す矢印参照)。
【0080】
上記のように、本実施形態においては、ゲームシステム1は、マテリアルの性質とテクスチャとを別々に管理する。そのため、本実施形態においては、マテリアル情報において性質とテクスチャとの組を設定することで、性質は同じであるが見た目(すなわち、テクスチャ)が異なる複数種類のマテリアルや、性質は異なるが見た目は同じである複数種類のマテリアルを容易に設定することができる。
【0081】
なお、マテリアルデータは、マテリアルの性質および/またはテクスチャを特定可能な任意のデータであってよい。例えば、他の実施形態においては、マテリアルデータは、上記性質IDおよびテクスチャIDを示すものであってもよいし、マテリアルの性質およびテクスチャを示すデータを実際に含むデータ構造を有していてもよい。
【0082】
また、マテリアルデータは、マテリアルに関する情報であって、上記の性質およびテクスチャとは異なる他の情報をさらに示すものであってもよい。例えば、マテリアルデータは、ボクセルオブジェクトに設定されるエフェクト発生条件(例えば、ボクセルオブジェクトの一部が破壊されたこと、あるいは、キャラクタがボクセルオブジェクトを踏んだこと)が満たされた場合に発生されるエフェクトを示すエフェクトデータを含んでいてもよい。なお、エフェクトデータは、エフェクト画像(例えば、ボクセルオブジェクトが破壊されたことを表現するエフェクト画像)を示すデータであってもよいし、エフェクト音(ボクセルオブジェクトの上をキャラクタが歩くときの足音)を示すデータであってもよい。
【0083】
図7に示すように、ボクセルデータは、ボクセルオブジェクトの状態を示す状態データを含む。状態データの具体的な内容は任意である。例えば、状態データは、ボクセルオブジェクトが濡れた状態であるか否かを示すデータであってもよいし、ボクセルオブジェクトに加えられたダメージの量を示すデータであってもよい。状態データの内容は、ゲーム中において更新されることがあってもよい。
【0084】
[2-2.メッシュ]
本実施形態においては、ボクセルオブジェクトの表面は、メッシュによって表される。メッシュとは、ゲーム空間に配置される複数の面(具体的には、ポリゴン)の集合である。本実施形態においては、ゲームシステム1は、ゲーム空間に設定される各ボクセルのボクセルデータに基づいて、ボクセルオブジェクトのメッシュを生成する。以下、ボクセルデータに基づいてメッシュを生成する一例について説明する。
【0085】
図10は、メッシュの生成方法の一例を示す図である。なお、
図10では、図面を見やすくし、説明を分かりやすくする目的で、ボクセルおよびメッシュを2次元で表現しているが、実際には3次元空間におけるボクセルに基づいて3次元のメッシュが生成される。
【0086】
上述のように、本実施形態においては、ボクセルに設定される密度は、0~255の範囲で設定される。また、本実施形態においては、密度が基準値以上のボクセルをオブジェクト内とし、密度が基準値未満のボクセルをオブジェクト外であるとする。密度が0のボクセルのみをオブジェクト外と定義(すなわち基準値=1)する必要はなく、当該基準値は、たとえば128とする。
図10に示す例においては、ボクセル201および外側の他のボクセルにおいては密度が0、ボクセル202は密度が基準値未満である100、ボクセル203、204においては密度が基準値以上である150、200と設定されているものとする。本実施形態においては、ゲームシステム1は、密度が基準値以上のボクセルと基準値未満のボクセルとの間に頂点を生成する。具体的には、隣接する8個(図面では4個)のボクセルに跨った領域(図面では点線に囲まれた領域)ごとに、頂点を生成するか否かの判定を行う。つまり、密度が基準値以上のボクセルと基準値未満のボクセルの両方に跨る領域に頂点を生成する。さらに、隣接する頂点間(それぞれの頂点を含む上述の領域の境界)が、密度が基準値以上のボクセルと基準値未満のボクセルとの間を通る場合に、それらの頂点を結ぶことでポリゴンメッシュが生成される。頂点の座標は、XYZの軸ごとに、隣接するボクセル同士の密度を比較し、密度の差に基づいた補間によって決定される。このとき、さらに法線情報に基づいて座標計算をすることができるが、法線情報は、少なくとも一部のボクセルについて予め保持しておくようにしてもよいし、保持されていない場合は法線情報も隣接するボクセル同士の密度に基づいて算出されてもよい。なお、
図10において、ボクセル202の密度は基準値未満であるので、頂点の有無の判定においては、ボクセル202はオブジェクト外として扱われるが、ボクセル202の密度の値自体は生成される頂点の座標計算に用いられる。仮にボクセル202の密度よりも低い値に基準値を設定した場合は、
図10のボクセル202における右上側と左上側に頂点がさらに増える結果となる。
【0087】
上述のようにポリゴンメッシュを生成することで、ボクセルごとの密度をある程度反映した体積を有する形状を生成することができる。ただし、隣接ボクセルとの関係によっては、密度0のボクセルが一部オブジェクト内の領域を含むことや、密度255のボクセルが一部オブジェクト外の領域を含むようなこともあり得る。また、本実施形態では、基準値未満のボクセルはオブジェクト外として処理するため、オブジェクト内として処理する場合に比べて頂点が少なくなる分、体積も小さくなる。すなわち、厳密に密度の値に対応する体積となるようにポリゴンメッシュを算出する必要は無い。
【0088】
図11は、地形オブジェクトを含むゲーム画像の一例を示す図である。本実施形態においては、上記のようにメッシュを生成することによって、ボクセルオブジェクトを、例えば、ボクセルの一辺の長さと比べて複雑な凹凸がある形状とすることができる。
【0089】
なお、ボクセルデータに基づいてメッシュを生成する方法は任意である。例えば、他の実施形態においては、ボクセルデータの密度が所定値より大きい場合に、当該ボクセルデータに対応するボクセルに立方体が配置されるようにメッシュが生成されてもよい(
図4参照)。
【0090】
ゲームシステム1は、上記のように生成されたメッシュの各面について、上記ボクセルデータによって特定されるマテリアルに応じて当該各面の見た目(すなわち、色彩および/または模様)を決定する。具体的には、ゲームシステム1は、メッシュの各面の描画に用いるテクスチャを上記ボクセルデータに基づいて決定し、決定されたテクスチャを各面にマッピングすることで、ボクセルオブジェクトの画像を生成する。なお、メッシュの各面にマッピングされるテクスチャは、ボクセルオブジェクトが存在するボクセルのうちで、当該面を生成するために用いられたボクセル(生成対象ボクセルと呼ぶ)のボクセルデータに基づいて決定される。なお、生成対象ボクセルとは、メッシュの生成方法にも依るが、例えば、当該面の周囲に配置される1以上のボクセルである。つまり、メッシュの面にマッピングされるテクスチャは、当該面の周囲に配置される1以上のボクセルに設定されるマテリアルに対応するテクスチャとなるように決定される。
【0091】
なお、他の実施形態においては、1つのボクセルデータには複数種類(例えば、2種類)のマテリアルデータが含まれていてもよい。このとき、ボクセルデータは、複数種類のマテリアルデータに関する比率データを含む。比率データは、ボクセルオブジェクトに用いるテクスチャを決定するためのデータであり、上記複数種類のマテリアルデータが示す各マテリアル(具体的には、マテリアルに対応するテクスチャ)が、ボクセルオブジェクトの見た目(具体的には、色および/模様)に影響を与える比率を示す。なお、上記複数種類のマテリアルデータとは、後述する主マテリアルデータおよび副マテリアルデータとは異なる意味である。また、メッシュの各面にマッピングされるテクスチャを決定する際には、上記生成対象ボクセルのボクセルデータに含まれる各種データ(具体的には、密度データ、複数種類のマテリアルデータ、および、比率データ)に基づいてテクスチャが決定される。例えば、1つの面に対応する生成対象ボクセルに複数種類のマテリアルが設定される場合には、上記比率を考慮して影響度合いが最も大きい(1種類の)マテリアルに対応するテクスチャが用いられてもよいし、複数種類のマテリアルに対応する各テクスチャが上記比率を考慮して用いられてもよい。
【0092】
また、他の実施形態においては、1種類のマテリアルデータを含むボクセルデータが用いられるボクセルオブジェクトと、2種類のマテリアルデータを含むボクセルデータが用いられるボクセルオブジェクトとの両方があってもよい。
【0093】
上記のように、本実施形態においては、ゲームシステム1は、ボクセルオブジェクトの色彩および/または模様をボクセル毎に規定するマテリアルデータとして、テクスチャを示すデータを記憶する。ゲームシステム1は、ボクセルデータに基づいて生成されるメッシュに対して、当該ボクセルデータに対応するボクセルに設定されるマテリアルデータにより示されるテクスチャを適用することでオブジェクトの画像を生成する。これによれば、ボクセルに設定されるテクスチャを用いてボクセルオブジェクトの色彩および/または模様を描画することができるので、ボクセルオブジェクトの色彩および/または模様をボクセル毎に設定することができる。
【0094】
[2-3.オブジェクトの見た目を変化させる処理]
次に、
図12~
図20を参照して、ボクセルオブジェクトの見た目を変化させる処理について説明する。
図12は、木オブジェクトに対してプレイヤオブジェクトがパンチアクションを行った様子の一例を示す図である。また、
図13は、プレイヤオブジェクトによるパンチアクションによって木オブジェクトの一部が破壊された様子の一例を示す図である。なお、
図12および
図13に示す木オブジェクト212は、ボクセルオブジェクトである。
【0095】
図12に示す例において、木オブジェクト212の表面(具体的には、木オブジェクト212のメッシュ)には、木オブジェクトの外殻部分(すなわち、樹皮)の見た目を表すテクスチャを用いて描画が行われる。ここで、本実施形態においては、木オブジェクト212に対してプレイヤオブジェクト211がパンチアクションを行った場合、一定条件下で、
図13に示すように木オブジェクト212の一部が消去されることがある。その結果、木オブジェクト212の内部(すなわち、外殻部分の内側の部分)が露出する。このとき、露出した内部の面212aについては、木オブジェクト212の外殻部分の面とは異なり、木の内部の見た目を表すテクスチャを用いて描画が行われる(
図13参照)。さらに、本実施形態においては、木オブジェクト212の表面のうち、パンチアクションによって消去された部分の周囲の部分212bについても、上記面212aと同様に、木の内部を表すテクスチャを用いて描画が行われる(
図13参照)。上記の部分212bについては、木オブジェクト212の一部の消去が行われる前後において、用いられるテクスチャが変化する。
【0096】
上記のように、本実施形態においては、ボクセルオブジェクトに対してイベントが発生した場合(上記の例では、パンチアクションが行われた場合)、ゲームシステム1は、一定条件下で、ボクセルオブジェクトの見た目(具体的には、テクスチャ)を変化させる。これによって、ボクセルオブジェクトの内部が露出した様子を表現することができる。また、本実施形態においては、後述する方法によって、ボクセルオブジェクトの表面の外殻部分を薄く見せることができる。例えば、
図12および
図13に示す木オブジェクト212については、表面の外殻部分(樹皮)が厚く表現されてしまうと不自然な見た目になってしまうが、本実施形態によれば、外殻部分が薄くあるように表現することができ、内部が露出したときの木オブジェクト212の見た目を自然なものとすることができる。
【0097】
[2-3-1.別のマテリアルIDが設定されるマテリアル情報データ]
ボクセルオブジェクトのテクスチャを変化させる場合、ゲームシステム1は、ボクセルデータに含まれるマテリアルデータが、変化後のテクスチャと変化前のテクスチャとを(切り替えて)指定できるようにする。具体的には、本実施形態においては、ゲームシステム1は、マテリアル情報において、主マテリアルと副マテリアルという2種類のマテリアルを関連付ける。
図14は、2種類のマテリアルが関連付けられるマテリアル情報の一例を示す図である。本実施形態においては、
図14に示すように、マテリアル情報は、主マテリアルに関して、マテリアルID(「主マテリアルID」と呼ぶ。)、性質ID、およびテクスチャIDを含む。これら3つのIDは、
図7に示すマテリアル情報に含まれる3つのIDと同様である。ここで、マテリアル情報は、主マテリアルに関する上記3つのIDとともに、当該主マテリアルに関連付けられる副マテリアルを示すマテリアルID(「副マテリアルID」と呼ぶ。)を含む。ここでは、ボクセルデータに含まれるマテリアルデータのうち、主マテリアルを示す(すなわち、主マテリアルIDを示す)マテリアルデータを「主マテリアルデータ」と呼び、副マテリアルを示す(すなわち、副マテリアルIDを示す)マテリアルデータを「副マテリアルデータ」と呼ぶ。主マテリアルは、変化前のテクスチャに対応するマテリアルであり、副マテリアルは、変化後のテクスチャに対応するマテリアルである。つまり、主マテリアルデータが示す主マテリアルIDは、変化前のマテリアルを示し、副マテリアルデータが示す副マテリアルIDは、変化後のマテリアルを示す。なお、詳細は後述するが、変化前のマテリアルは、主にボクセルオブジェクトの外殻部分を表現するために用いられるマテリアルである。また、変化後のマテリアルは、主にボクセルオブジェクトの内部を表現するために用いられるマテリアルである。例えば、ボクセルデータが表すボクセルオブジェクトが上述の木オブジェクトである場合、主マテリアルデータは、上記マテリアル情報において、木の樹皮を表現する色および模様を表すテクスチャ(例えば、濃い茶色で無数の溝の模様を表すテクスチャ)のテクスチャIDが関連付けられたマテリアルIDを示し、主マテリアルデータに対応するマテリアル設定データにおいて設定された副マテリアルデータは、上記マテリアル情報において、木の内部を表現する色および模様を表すテクスチャ(例えば、薄い茶色で年輪の模様を表すテクスチャ)のテクスチャIDが関連付けられたマテリアルIDを示す。
【0098】
本実施形態においては、主マテリアルに副マテリアルが関連付けられる場合であっても、1つのボクセルデータには1種類の性質が設定されるものとする。例えば
図14に示す例においては、主マテリアルとして「001」を示すマテリアルIDには、副マテリアルとして「002」を示すマテリアルIDが関連付けられているが、マテリアルIDが「001」のマテリアルと、マテリアルIDが「002」のマテリアルとでは、同じ性質IDが関連付けられる。ただし、他の実施形態においては、主マテリアルと副マテリアルとの間で互いに異なる性質が設定されてもよい。例えば、外側が草に覆われ、内側が岩であるようなオブジェクトを表現する場合、主マテリアルが草に設定され、副マテリアルが岩に設定される。このとき、硬さを示す性質として、主マテリアルの性質は軟らかい性質が設定され、副マテリアルの性質は硬い性質が設定されてもよい。
【0099】
なお、変化前と変化後の2種類のマテリアルデータを対応付けるためのデータ構造は任意である。例えば、他の実施形態においては、ボクセルデータに含まれるマテリアルデータが、主マテリアルを示すマテリアルIDと、副マテリアルを示すマテリアルIDとの両方を示すものであってもよい。
【0100】
ゲームシステム1は、仮想空間における全てのボクセルについて、上記のようにマテリアル情報において副マテリアルが関連付けられた主マテリアルを示すマテリアルデータを設定する必要はない。例えば、ボクセルオブジェクトが存在するボクセルのうち、当該ボクセルオブジェクトの表面に位置するボクセル(「表面ボクセル」と呼ぶ。)についてのみ、マテリアル情報において副マテリアルが関連付けられた主マテリアルを示すマテリアルデータが設定され、当該ボクセルオブジェクトの内部に位置するボクセル(「内部ボクセル」と呼ぶ。)については、マテリアル情報において副マテリアルが関連付けられていない主マテリアルを示すマテリアルデータが設定されてもよい。このとき、内部ボクセルのボクセルデータに含まれるマテリアルデータは、ボクセルオブジェクトの内部を表現する色および模様を表すテクスチャ(例えば木のオブジェクトの場合、薄い茶色で年輪の模様を表すテクスチャ)のテクスチャIDが関連付けられたマテリアルを示すものであってもよい。なお、例えば、上記密度が基準値以上となるあるボクセルについて、隣接するボクセルのうちに、上記基準値未満の密度が設定されるボクセルがある場合、当該あるボクセルは表面ボクセルであると判断することができる。一方、密度が基準値以上となるあるボクセルについて、隣接する全てのボクセルの密度も基準値以上である場合、当該あるボクセルは内部ボクセルであると判断することができる。
【0101】
[2-3-2.ボクセルオブジェクトのテクスチャを変更する具体例]
次に、ボクセルオブジェクトのテクスチャを変更する具体例について説明する。本実施形態においては、ボクセルオブジェクトに対して変化イベントが発生した場合、変化イベントが発生した部分についてテクスチャが変更される。変化イベントとは、ボクセルオブジェクトの見た目(具体的には、テクスチャ)を変化させるイベントである。本実施形態においては、ボクセルオブジェクトについて変化条件が満たされた場合、変化イベントが発生する。本実施形態においては、所定のボクセルオブジェクト(例えば、上述の木オブジェクト)について消去条件が満たされることで消去イベントが発生した場合、ゲームシステム1は、変化条件が満たされたと判定する。
【0102】
なお、変化条件の内容は任意であり、消去イベントが発生したことに限らない。詳細は後述するが、本実施形態においては、消去イベントが発生した場合の他、所定のボクセルオブジェクトに対して衝撃付与イベントが発生した場合も、ゲームシステム1は、変化イベントが発生したと判定する(
図19参照)。なお、衝撃付与イベントとは、ボクセルオブジェクトに対して衝撃が付与されるイベントであり、例えば、プレイヤオブジェクトによるパンチアクション等の破壊アクションが当該ボクセルオブジェクトに対して行われるイベント、または、ボクセルオブジェクトに対して他のオブジェクトが衝突するイベントである。
【0103】
図15は、木オブジェクトの表面および内部の一例を示す図である。なお、
図15(
図16、
図17、および
図20についても同様)においては、ボクセルと、そのボクセルに配置されるボクセルオブジェクトとの関係を分かりやすく示す目的で、
図4に示す地形オブジェクトのメッシュが生成される場合と同じルールによってメッシュが生成されるボクセルオブジェクト(具体的には、木オブジェクト212)を示している。つまり、
図15に示すボクセルオブジェクトは、「ボクセルに設定される密度が所定値より大きい場合は当該ボクセルの位置に立方体を配置し、所定値以下の場合は当該ボクセルの位置に何も配置しない」というルールによってメッシュが生成されるものとする。なお、
図15においては、木オブジェクト212の断面が示されており、最右列のボクセル(
図15において一点鎖線で囲まれるボクセル)が上記表面ボクセルであり、それより左側のボクセルが上記内部ボクセルである。
【0104】
図15は、プレイヤオブジェクト211によるパンチアクションによって木オブジェクト212の一部が消去される前の状態を示す図である。ここで、木オブジェクト212の各ボクセルにおけるボクセルデータには、マテリアル情報に副ボクセルデータが設定された主マテリアルデータが設定される。
図15に示す状態においては、木オブジェクト212のメッシュについては、ゲームシステム1は、主マテリアルに対応するテクスチャを用いて描画を行う。そのため、
図15に示す状態においては、木オブジェクト212のメッシュは、木の外殻部分(すなわち、樹皮)を表す見た目となる(
図12参照)。
【0105】
図15に示す点線領域213は、プレイヤオブジェクト211によるパンチアクションによって木オブジェクト212が消去される範囲(「消去範囲」と呼ぶ。)を示す。なお、
図15に示す例においては、プレイヤオブジェクト211によるパンチアクションによって消去条件が満たされ、消去イベントが発生するものとする。消去範囲は、衝撃付与イベントの種類(例えば、プレイヤオブジェクトによるアクションの種類)に基づいて決定される。例えば、パンチアクションによって衝撃付与イベントが発生した場合、プレイヤオブジェクト211のパンチが木オブジェクト212に当たった位置の少し前方を中心とした球形領域が、消去範囲213として決定される。なお、消去範囲の決定方法は任意であり、衝撃付与イベントの種類によらず一定であってもよい。
【0106】
図16は、
図15に示す状態から木オブジェクトの一部が消去された状態の一例を示す図である。なお、
図16に示す例においては、木オブジェクト212のうち、
図15に示す消去範囲213内に含まれるボクセル(「消去対象ボクセル」と呼ぶ。)に対応する部分が消去されるものとする。具体的には、ゲームシステム1は、当該消去対象ボクセルのボクセルデータにおける密度を0に設定する。
図16に示す状態では、消去対象ボクセルにおける木オブジェクト212が消去される結果、内部ボクセルにおける木オブジェクト212の一部が新たに露出することとなる。
【0107】
なお、
図16に示す例においては、消去対象ボクセルの周囲のボクセルであって、そのボクセルの一部が消去範囲213に含まれるボクセルについては、木オブジェクト212が消去されないものとして説明を行う。ただし、実際には、当該ボクセルについては、木オブジェクト212の一部が消去されてもよい。具体的には、ゲームシステム1は、消去対象ボクセルの周囲のボクセルにおける密度を所定のルールに基づいて減算してもよい。なお、このルールの内容は任意である。例えば、ゲームシステム1は、消去範囲213の外周に沿ってメッシュが生成されるように、消去対象ボクセルの周囲のボクセルにおける密度を調整してもよい。
【0108】
本実施形態においては、木オブジェクト212に消去イベントが発生した場合、ゲームシステム1は、木オブジェクト212が存在するボクセルのうち、消去対象ボクセルの周囲のボクセル(
図16において斜線で示されるボクセル)について変化イベントを発生させる。なお、以下では、変化イベントを発生させるボクセルを、「変化対象ボクセル」と呼ぶ。つまり、本実施形態においては、消去対象ボクセルのオブジェクトが消去された場合、ゲームシステム1は、木オブジェクト212が存在するボクセルのうち、消去対象ボクセルの周囲の変化対象ボクセルについては、描画に用いるテクスチャを主マテリアルに対応するテクスチャから副マテリアルに対応するテクスチャに変更する。具体的には、ゲームシステム1は、変化対象ボクセルに対応する面(具体的にはメッシュ)について、当該変化対象ボクセルに設定されるマテリアルデータを主マテリアルデータから副マテリアルデータに変更する。より具体的には、ゲームシステム1は、変化対象ボクセルに設定されていたマテリアルデータが、当該マテリアルデータが示す主マテリアルに代えて、マテリアル情報において当該主マテリアルに関連付けられた副マテリアルを示すように、マテリアルデータを更新する。そして、更新後のマテリアルデータによって指定されるテクスチャを用いて描画を行う(
図16参照)。
【0109】
なお、上記「変化対象ボクセルに対応する面」とは、例えば、変化対象ボクセルのボクセルデータに基づいて生成されるメッシュであり、変化対象ボクセルのボクセルデータが示す密度の影響を受けるメッシュである。具体的には、「変化対象ボクセルに対応する面」とは、少なくとも一部が変化対象ボクセル内に配置されるメッシュであってもよい。
【0110】
なお、変化対象ボクセルのうち、マテリアル情報に副マテリアルデータが設定されないボクセルのマテリアルデータについては、描画に用いるテクスチャは変更されない。例えば、上述のように、内部ボクセルについては、主マテリアルとして、ボクセルオブジェクトの内部を表現する色および模様を表すテクスチャに対応するマテリアルを設定し、副マテリアルを設定しないようにしてもよい。このとき、消去イベントによって、内部ボクセルに対応するメッシュが生成されるようになった場合には、ボクセルオブジェクトの内部を表現する色および模様を表すテクスチャを用いて描画が行われる。結果として、内部ボクセルおよび表面ボクセルの両方を含む変化対象ボクセルに対応するメッシュについては、ボクセルオブジェクトの内部を表現する色および模様を表すテクスチャを用いて描画が行われることとなる。
【0111】
ここで、他の実施形態においては、木オブジェクト212の内部ボクセルのみを変化対象ボクセルとして指定し、表面ボクセルを変化対象ボクセルとして指定しない(つまり、内部ボクセルに対応するメッシュのみ、木オブジェクト212の内部を表現する色および模様を表すテクスチャを用いて描画を行う)方法も考えられる。
図17は、表面ボクセルが変化対象ボクセルとして指定されない場合における木オブジェクトの表面および内部の一例を示す図である。
図17に示す例は、表面ボクセルのボクセルデータについて、(本実施形態とは異なり)テクスチャの変更が行われず、消去前の状態と同様に木オブジェクトの外殻の色や模様を表すテクスチャを用いて描画が行われる場合を示している。この場合、消去によって新たに露出した面のうち、表面ボクセルの面に対応するメッシュの部分については、木オブジェクトの外殻の色や模様を表すテクスチャを用いて描画が行われるので、木の樹皮を表す見た目となる。このとき、消去によって新たに露出した面のうちボクセル1つ分の厚さの部分は、樹皮を表す見た目となるので、樹皮の厚さがボクセル1つ分の厚さとなり、樹皮の厚さをボクセルの厚さよりも薄く表現することができなくなってしまう。
【0112】
これに対して、本実施形態においては、ゲームシステム1は、消去イベントによって新たに露出した面を表すメッシュだけでなく、消去イベント前から変化していないメッシュについても、副マテリアルデータに対応するテクスチャを用いて描画を行う(
図16参照)。つまり、ゲームシステム1は、変化対象ボクセルに関するボクセルデータに基づいて生成されるメッシュであって、変化イベントの前後で変化していないメッシュのテクスチャを、当該変化対象ボクセルに設定される副マテリアルデータに基づいて設定する。これによれば、木オブジェクト212の表面ボクセルに対応するメッシュのうち、消去部分の周囲の領域については、メッシュの位置は消去前と変化していないものの、木の内部を表す見た目に変化する(
図13参照)。これによって、消去部分の周囲の領域は、まるでごく薄い表面が剥がれたかのような見た目となるため、木の外殻部分が薄く形成されているように木オブジェクトを見せることができ、自然な見た目を実現することができる。
【0113】
なお、本実施形態においては、隣接する2つのボクセルについてそれぞれに設定されるテクスチャが互いに異なる場合、2種類のテクスチャが描画される領域の境界がギザギザになるように、描画が行われる(
図13参照)。これによって、衝撃付与イベントによって木オブジェクト212の一部が消去された結果、樹皮の一部が剥がされた様子をリアルに表現することができる。ただし、メッシュの生成方法や描画方法は任意であり、2種類のテクスチャが描画される領域の境界はどのように形成されてもよい。例えば、ゲームシステム1は、上記境界が消去範囲213外周に沿って形成されるように描画を行ってもよいし、当該境界をぼかす処理を行うようにしてもよい。
【0114】
図18は、2種類のテクスチャが描画される領域の境界におけるメッシュの一例を示す図である。なお、
図18では
図10と同様、図面を見やすくし、説明を分かりやすくする目的で、ボクセルおよびメッシュを2次元で表現しているが、実際には3次元空間におけるボクセルに基づいて3次元のメッシュ221が生成される。メッシュ221は、表面ボクセルのボクセルデータに基づいて生成されるメッシュである(変化イベントの前後で位置が変化していないメッシュであると言うこともできる。)。
【0115】
図18において、「a」または「b」と記載された円は、ボクセルの中心位置を示す。具体的には、「a」と記載された円は、主テクスチャ(すなわち、例えば、木の外殻を表現する色および模様を表すテクスチャ)が関連付けられるマテリアルが設定されるボクセルの中心位置であり、「b」と記載された円は、副テクスチャ(すなわち、木の内部を表現する色および模様を表すテクスチャ)が関連付けられるマテリアルが設定されるボクセルの中心位置である。また、メッシュ221の頂点のうち頂点222は、副テクスチャに対応するマテリアルが設定される各ボクセル間に設定される(すなわち、当該各ボクセルのボクセルデータに基づいて設定される)頂点である。メッシュ211の頂点のうち頂点223~225は、主テクスチャに対応するマテリアルが設定されるボクセルと副テクスチャに対応するマテリアルが設定されるボクセルとの間に設定される(すなわち、当該主テクスチャに対応するマテリアルが設定されるボクセルのボクセルデータと、当該副テクスチャに対応するマテリアルが設定されるボクセルのボクセルデータとに基づいて設定される)頂点である。ただし、頂点225は、対応するボクセルに設定されるマテリアルのうちで主テクスチャに対応するマテリアルの割合が、頂点223および224に比べて高くなっている。具体的には、頂点223および224については、対応する各ボクセルに設定される主テクスチャに対応するマテリアルと副テクスチャに対応するマテリアルとの割合が半々(
図18では、前者と後者が2つずつ)であるのに対して、頂点225については、対応する各ボクセルに設定される各マテリアルは、主テクスチャに対応するマテリアルの方が副テクスチャに対応するマテリアルよりも高くなっている(
図18では、主テクスチャに対応するマテリアルが設定されるボクセルが3つで、副テクスチャに対応するマテリアルが設定されるボクセルが1つとなっている)。
【0116】
図18に示すように、周囲のボクセルについてそれぞれに設定されるテクスチャが互いに異なる位置に配置されるメッシュ(すなわち、互いに異なるテクスチャが設定される複数のボクセルのボクセルデータに基づいて生成されるメッシュ)については、補間により、一方のテクスチャから他方のテクスチャへグラデーションがかかるように描画を行ってもよい。なお、
図18に示す例においては、副テクスチャは白色であり、主テクスチャは黒色であるものとする。これによれば、2種類のテクスチャの境界部分において色彩および/または模様の変化を滑らかにすることができ、オブジェクトの見た目をより自然なものとすることができる。
【0117】
上記のように、本実施形態においては、ゲームシステム1は、変化対象ボクセルのボクセルデータと、変化対象ボクセルとは異なるボクセルのボクセルデータとに基づいて生成されるメッシュ(すなわち、上記境界となるメッシュ)に対して、主マテリアルデータが示す主テクスチャから、副マテリアルデータが示す副テクスチャへのグラデーションとなるように描画を行うことで、ボクセルオブジェクトの画像を生成する。ゲームシステム1は、ボクセルオブジェクトのうち、消去イベントによって露出した露出部分のメッシュの周囲の少なくとも一部のメッシュに対して、主テクスチャが表す色彩および/または模様から、副テクスチャが表す色彩および/または模様へのグラデーションとなるように描画を行うと言うこともできる。これによって、オブジェクトの見た目をより自然なものとすることができる。
【0118】
以上のように、本実施形態においては、ゲームシステム1は、ボクセルオブジェクトの少なくとも一部を消去する消去イベントが発生した場合、当該消去イベントが発生した消去対象ボクセルにおいてボクセルオブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新する。そして、ゲームシステム1は、消去対象ボクセルの周囲のボクセル(より具体的には、消去対象ボクセルの周囲のボクセルであって、ボクセルオブジェクトが存在するボクセル)において変化イベントが発生したと判定する(具体的には、当該周囲のボクセルについて設定される副テクスチャを用いて描画を行う)。これによれば、ボクセルオブジェクトの一部が消去されてその内部が露出した場合に、ボクセルオブジェクトの薄い外殻部分を表現することができる。
【0119】
なお、変化対象ボクセルは、消去対象ボクセルの周囲の全てのボクセルである必要はない。例えば、上述のように、内部ボクセルについては1種類のマテリアルデータ(すなわち、ボクセルオブジェクトの内部を表現するために用いられる主マテリアルを示す主マテリアルデータ)のみが設定され、表面ボクセルについて、マテリアル情報において副マテリアルが関連付けられた主マテリアルを示すマテリアルデータが設定されてもよい。このとき、消去対象ボクセルの周囲のボクセルのうち、内部ボクセルについてはテクスチャを変更せずとも、ボクセルオブジェクトの内部を表すテクスチャが適用されるので、ゲームシステム1は、消去対象ボクセルの周囲のボクセルのうち、表面ボクセルのみを消去対象ボクセルとして指定してもよい。これによっても、本実施形態と同様の効果を奏することができる。
【0120】
なお、ゲームシステム1は、消去イベントによるボクセルオブジェクトの消去と、変化イベントによる当該ボクセルの見た目の変化とを、まとめて実行してもよい。すなわち、消去イベントが発生した場合、ゲームシステム1は、消去範囲内の消去対象ボクセルに対して消去処理(具体的には、密度を0とする処理)を実行すると共に、消去範囲よりも一回り大きい範囲内の変化対象ボクセルに対して変化処理(具体的には、描画に用いるマテリアルデータを副マテリアルデータに変更する処理)を実行するようにしてもよい。これによって、消去イベントに応じたボクセルオブジェクトの見た目の変化を応答性良く行うことができる。
【0121】
上記においては、消去イベントに起因して変化イベントが発生する場合を例として説明した。ここで、変化イベントが発生する変化条件は、消去イベントが発生したことに限らない。例えば、ゲームシステム1は、衝撃付与イベントによって消去イベントが発生しない場合でも、当該衝撃付与イベントによって変化イベントを発生させるようにしてもよい。
【0122】
図19は、衝撃付与イベントによって変化イベントが発生する様子の一例を示す図である。
図19に示す例においては、木オブジェクト212に関する変化条件は、当該木オブジェクト212に対して衝撃付与イベントが発生したことである。このとき、ゲームシステム1は、衝撃付与イベントが発生したことに応じて、衝撃付与イベントに応じた範囲に変化イベントを発生させる。つまり、ゲームシステム1は、木オブジェクト212のメッシュのうち、上記範囲内の部分について、描画に用いるテクスチャを、主テクスチャから副テクスチャに変更する。その結果、
図19に示すように、上記範囲内の部分については、木の内部を表す見た目となる。
【0123】
なお、上記「衝撃付与イベントに応じた範囲」とは、衝撃付与イベントの影響範囲である。例えば、プレイヤオブジェクト211によるパンチアクションによって衝撃付与イベントが発生した場合、プレイヤオブジェクト211のパンチが地形オブジェクトに当たった位置を含む所定範囲が上記「衝撃付与イベントに応じた範囲」となる。
【0124】
図20は、木オブジェクトが消去されずにテクスチャが変更される場合における、木オブジェクトの表面および内部の一例を示す図である。
図20に示す点線領域214は、上述の衝撃付与イベントに応じた範囲である。本実施形態においては、衝撃付与イベントによって変化イベントが発生する場合、ゲームシステム1は、表面ボクセルのうち、当該衝撃付与イベントに応じた範囲に含まれるボクセル(
図20において斜線で示されるボクセル)を、変化対象ボクセルとする。ゲームシステム1は、変化対象ボクセルに対応する面(具体的には、メッシュ)212cについて、当該変化対象ボクセルに設定されるマテリアルデータを、主マテリアルデータから副マテリアルデータに更新し、副マテリアルデータによって指定される副テクスチャを用いて描画を行う。これによって、木オブジェクト212のメッシュのうち、衝撃付与イベントに応じた範囲内の部分については、(メッシュの位置は消去前と変化していないものの、)木の内部を表す見た目に変化する(
図19参照)。これによって、衝撃付与イベントによって木の薄い外殻部分(すなわち、樹皮)が剥がされたように見せることができ、木オブジェクト212の見た目を、外殻部分が薄い自然な見た目とすることができる。
【0125】
なお、上記の場合において、変化対象ボクセルは、衝撃付与イベントに応じた範囲に基づく任意の方法で決定されてよい。例えば、他の実施形態においては、ゲームシステム1は、表面ボクセルのうち、当該衝撃付与イベントに応じた範囲に含まれるボクセルと、それに隣接するボクセルとを、変化対象ボクセルとしてもよい。
【0126】
以上のように、本実施形態においては、ゲームシステム1は、ボクセルオブジェクトに対して衝撃を付与する衝撃付与イベントが発生した場合、当該衝撃付与イベントが発生した位置に基づく位置(具体的には、衝撃付与イベントに応じた範囲に含まれる位置)のボクセルについて変化イベントが発生したと判定する(具体的には、当該ボクセルについて設定される副テクスチャを用いて描画を行う)。これによれば、ボクセルオブジェクトに対して衝撃付与イベントが行われた場合に、(ボクセルオブジェクトの一部が消去されない場合であっても、)ボクセルオブジェクトの薄い外殻部分が剥がされたように見せることができる。
【0127】
衝撃付与イベントに応じた変化イベントによってテクスチャを変更する場合、本実施形態においては、ゲームシステム1は、ボクセルオブジェクトのメッシュの位置については変更を行わない。ただし、他の実施形態においては、ゲームシステム1は、上記の場合においてメッシュの位置を変更するようにしてもよい。例えば、ゲームシステム1は、変化イベントが発生するメッシュがボクセルオブジェクトの内側へと若干移動するようにメッシュの位置を変更してもよい。
【0128】
なお、ゲームシステム1は、消去イベントに応じて変化イベントを発生させる処理と、衝撃付与イベントに応じて変化イベントを発生させる処理との両方を実行するようにしてもよい。つまり、変化条件は、「消去イベントが発生したこと」と、「衝撃付与イベントが発生したこと」とのいずれかが満たされたことであってもよい。本実施形態においては、ゲームシステム1は、以下のようにして変化イベントを発生させる。
【0129】
本実施形態においては、上記衝撃付与イベントが行われた場合、ゲームシステム1は、変化条件が満たされたか否か、および、消去条件が満たされたか否かを判定する。ここで、本実施形態においては、ボクセルオブジェクトにはボクセル毎に強度が設定され、衝撃付与イベントにも、衝撃付与イベントの種類に応じて強度が設定される。衝撃付与イベントの種類は、例えば、当該衝撃付与イベントにおいて行われたアクションの種類、または、当該衝撃付与イベントにおいてボクセルオブジェクトに衝突したオブジェクトの種類に応じて異なるように決められる。ゲームシステム1は、変化条件が満たされるか否か、および、消去条件が満たされるか否かを、これらの強度に基づいて判定する。なお、本実施形態においては、ボクセルオブジェクトの強度は、例えば、上述したマテリアルの性質の1つとして設定されているものとする。つまり、上記性質IDは、ボクセルオブジェクトの強度を示すデータであると言うことができる。本実施形態においては、強度は、1から上限値までの整数値をとり得るものとする。
【0130】
また、本実施形態においては、消去条件は、破壊側(すなわち、衝撃付与イベント)の強度Aと、被破壊側(すなわち、ボクセルオブジェクト)の強度Bとの関係に応じて設定される。具体的には、ゲームシステム1は、下記(a)~(c)のように消去条件を判定する。
(a)破壊側の強度Aが、被破壊側の強度B以上である場合(つまり、A≧Bの場合)、消去条件が満たされたと判定する。
(b)破壊側の強度Aに1を加算した値が、被破壊側の強度Bと等しい場合(つまり、A+1=Bの場合)、衝撃付与イベントの種類に応じたダメージをボクセルオブジェクトに与え、ボクセルオブジェクトのダメージが基準値以上となった場合に消去条件が満たされたと判定する。
(c)破壊側の強度Aに1を加算した値が、被破壊側の強度B未満である場合(つまり、A+1<Bの場合)、ボクセルオブジェクトにはダメージを与えない(その結果、消去条件は満たされない)。
なお、本実施形態においては、ボクセルオブジェクトのダメージはボクセル毎に管理される。すなわち、ゲームシステム1は、上記のダメージの値を示すデータを、ボクセルデータに含まれる上述の状態データとしてボクセル毎に記憶する。
【0131】
上記より、本実施形態においては、破壊側の強度Aが被破壊側の強度Bと同じまたは大きい場合(上記(a))には、衝撃付与イベントが発生したことによって消去条件が満たされることとなる。また、破壊側の強度Aが被破壊側の強度Bよりもやや小さい場合(上記(b))には、ボクセルオブジェクトの同じ位置(すなわち、同じボクセル)について衝撃付与イベントが何回か発生することによって消去条件が満たされることとなる。つまり、この場合には、ボクセルオブジェクトのある部分に対してある回数だけ衝撃付与イベントが発生したことに応じて当該部分が消去されることとなる。また、破壊側の強度Aが被破壊側の強度Bよりもかなり小さい場合(上記(c))には、衝撃付与イベントが発生しても消去条件が満たされないこととなる。
【0132】
ゲームシステム1は、消去条件の判定をボクセル毎に行う。具体的には、衝撃付与イベントが行われた場合、衝撃付与イベントに応じた範囲内のボクセル毎に、衝撃付与イベントの強度と、当該ボクセルに設定される強度とに基づく消去条件の判定を行う。
【0133】
なお、上記(a)の場合、消去条件が満たされるので、ゲームシステム1は、変化条件も満たされたと判定する。この場合、消去条件の充足に応じてボクセルオブジェクトの一部が消去されるとともに、当該ボクセルオブジェクトの一部についてテクスチャが変更される(
図13参照)。また、上記(b)の場合、ゲームシステム1は、消去条件が満たされない場合であっても、変化条件が満たされたと判定する。この場合、ボクセルオブジェクトは消去されないものの、当該ボクセルオブジェクトの一部についてテクスチャを変更する処理が実行される(
図19参照)。また、上記(c)の場合、ゲームシステム1は、変化条件は満たされないと判定する。
【0134】
上記より、本実施形態においては、上記(b)の場合には、1回目に衝撃付与イベントが発生したことに応じて、ボクセルオブジェクトは消去されずに、当該衝撃付与イベントに応じた範囲についてボクセルオブジェクトのテクスチャが変更される(
図19参照)。そして、その後に2回目以降の衝撃付与イベントが発生したことに応じて、ボクセルオブジェクトが消去されるとともに、消去された部分の周囲の部分についてボクセルオブジェクトのテクスチャが変更される(
図13参照)。なお、他の実施形態においては、上記(b)の場合において、ゲームシステム1は、1回目の衝撃付与イベントによって変化条件が満たされたと判定することに代えて、ボクセルオブジェクトのダメージが基準値以上となった場合に変化条件が満たされたと判定してもよい。なお、変化条件を判定するための上記基準値は、消去条件を判定するための基準値よりも小さい値に設定される。つまり、ゲームシステム1は、変化条件が満たされるための衝撃付与イベントの回数を、消去条件が満たされるための衝撃付与イベントの回数よりも小さくなるように設定する。
【0135】
以上のように、本実施形態においては、ゲームシステム1は、ボクセルオブジェクトに対して第1の回数(例えば、1回)の衝撃付与イベントが発生した場合、当該ボクセルオブジェクトのうちで当該衝撃付与イベントに応じた範囲のボクセルについて変化イベントが発生したと判定する。また、ゲームシステム1は、ボクセルオブジェクトに対して第1の回数よりも多い第2の回数(例えば、2回以上)の衝撃付与イベントが発生した場合、当該ボクセルオブジェクトのうちで当該衝撃付与イベントに応じた範囲に基づく位置の消去対象ボクセルにおいてボクセルオブジェクトの少なくとも一部が消去されるように、当該消去対象ボクセルに関するボクセルデータを更新する。また、ゲームシステム1は、ボクセルオブジェクトに対して第2の回数の衝撃付与イベントが発生した場合、消去対象ボクセルの周囲のボクセルのうち少なくともいくつかのボクセルにおいて変化イベントが発生したと判定する。これによれば、まず衝撃付与イベントによってボクセルオブジェクトの薄い外殻部分が剥がされたように見せることができるとともに、その後の追加の衝撃付与イベントによってボクセルオブジェクトの一部が消去される(さらに、消去部分の周囲について外殻部分が剥がされる)様子を表現することができる。
【0136】
なお、消去条件および変化条件の内容、ならびに、消去イベントおよび変化イベントの範囲は任意であり、上記に限らない。例えば、消去イベントおよび変化イベントの範囲は、衝撃付与イベントの種類毎に設定されてもよい。
【0137】
また、本実施形態においては、ゲームシステム1は、変化イベントによってボクセルオブジェクトの見た目(具体的には、テクスチャ)を変更する一方、当該ボクセルオブジェクトの性質については変更しない。すなわち、本実施形態においては、マテリアルデータは、オブジェクトの性質をボクセル毎に規定する性質データに関連付けられ、主マテリアルデータに関連付けられた性質データと副マテリアルデータに関連付けられた性質データは同じである。ゲームシステム1は、性質データに基づいて当該オブジェクトの性質を設定する。より具体的には、ゲームシステム1は、ボクセルオブジェクトのメッシュに対して主テクスチャが適用されるか副テクスチャが適用されるかとは独立して、当該ボクセルオブジェクトに設定される性質データに基づいて当該ボクセルオブジェクトの性質を設定する。これによれば、ボクセルオブジェクトの見た目の影響を受けることなく当該ボクセルオブジェクトの性質を設定することができる。
【0138】
[2-3-3.3種類以上のマテリアルが設定される例]
あるボクセルに設定される主マテリアルに副マテリアルが関連付けられている場合に、その副マテリアルにさらに別のマテリアルが関連付けられていてもよい。例えば、
図14に示すマテリアル情報の例においては、マテリアルIDが「001」である主マテリアルには、マテリアルIDが「002」である副マテリアルが関連付けられており、さらに、マテリアルIDが「002」であるマテリアルを主マテリアルとして、マテリアルIDが「012」である副マテリアルが関連付けられている。このように、第1マテリアルデータ(例えば、「001」を示すマテリアルデータ)を含むボクセルデータが設定されるボクセルオブジェクトに対して、最初に変化イベントが発生した場合、ゲームシステム1は、変化対象ボクセルに対応するメッシュについて、第1マテリアルデータに代えて、第2マテリアルデータ(例えば、「002」を示すマテリアルデータ)を用いて描画を行う。この場合、当該変化対象ボクセルのボクセルデータは、第1マテリアルデータに代えて第2マテリアルデータを含むように更新されている。そして、上記ボクセルオブジェクトに対して次に変化イベントが発生した場合、ゲームシステム1は、上記変化対象ボクセルに対応するメッシュについて、第2マテリアルデータに代えて、第3マテリアルデータ(例えば、「012」を示すマテリアルデータ)を用いて描画を行う。この場合、当該変化対象ボクセルのボクセルデータは、第2マテリアルデータに代えて第3マテリアルデータを含むように更新されている。
【0139】
上記のように、本実施形態においては、ゲームシステム1は、1回目の変化イベントが発生したことに応じて、当該1回目の変化イベントが発生した位置の変化対象ボクセルに設定される第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるボクセルオブジェクトのメッシュの色彩および/または模様(具体的には、テクスチャ)を設定する。また、当該変化対象ボクセルについて2回目の変化イベントが発生したことに応じて、当該2回目の変化イベントが発生した位置の当該変化対象ボクセルに設定される第2マテリアルデータに第3マテリアルデータが関連付けられている場合、第3マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるボクセルオブジェクトのメッシュの色彩および/または模様を設定する。このように、マテリアル情報において、あるマテリアルに関連付けられる別のマテリアルを1つ設定できるようにするだけで、当該別のマテリアルに関連付けられるさらに別のマテリアルを1つ設定できることになる。そのため、たとえば第2マテリアルデータに基づいて描画されたメッシュの一部においてさらに変化イベントを起こすことにより、見た目が異なる3層で構成されるボクセルオブジェクトを表現することができる。なお、上記と同様にして、見た目が異なる4層以上で構成されるボクセルオブジェクトを表現することも可能である。そして、本実施形態においては、このような多層の表現が、各ボクセルデータに多数のマテリアルデータを設定することなく実現できるため、ボクセルデータ数が多くなった場合でも必要なメモリ量の増加を極めて少なくすることができる。なお、必要なメモリ量の増加を極めて少なくすることができることは、2層の場合においても同様である。
【0140】
[3.ゲームシステムにおける処理の具体例]
次に、
図21および
図22を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0141】
図21は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。
図21に示すように、ゲームシステム1は、ゲームプログラム、ボクセル空間データ、ボクセルオブジェクトデータ、および、メッシュデータを記憶する。ゲームプログラムおよびボクセル空間データは、ゲーム処理の実行前に予めゲームシステム1において記憶されるデータである。ゲームプログラムおよびボクセル空間データは、例えば、本体装置2のスロット23に装着された記憶媒体に記憶される。また、ボクセルオブジェクトデータおよびメッシュデータは、ゲーム処理の実行中に生成されるデータである。これらのデータは、例えば、本体装置2のDRAM85に記憶される。
【0142】
ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、
図22に示すゲーム処理)を実行するためのゲームプログラムである。
【0143】
ボクセル空間データは、ゲーム空間に設定されるボクセル空間を規定するデータである。具体的には、ボクセル空間データは、ボクセルの1辺の長さ、および、ゲーム空間におけるボクセルの各辺の方向を示す。また、ゲーム空間の一部の領域にのみボクセル空間が設定される場合、ボクセル空間データは、ボクセルが設定される空間(すなわち、ボクセル空間)の位置および大きさを示すデータ(すなわち、ゲーム空間のうちでボクセルが設定される範囲を示すデータ)を含んでいてもよい。
【0144】
ボクセルオブジェクトデータは、ゲーム空間に配置されるボクセルオブジェクト(例えば、上記木オブジェクト)を示すデータである。具体的には、ボクセルオブジェクトデータは、ゲーム空間における一部または全部の範囲内について、単位領域毎のボクセルデータを含む。
【0145】
メッシュデータは、ゲーム空間に配置されるボクセルオブジェクトに設定されるメッシュを示すデータである。メッシュデータは、例えば、メッシュにおける各頂点の位置を示すデータを含む。
【0146】
なお、ゲームシステム1は、
図21に示すデータの他に、ゲーム処理の実行前に予めゲームシステム1において記憶されるデータとして、上述のマテリアル情報、性質情報、および、テクスチャ情報のデータ、ならびに、ゲームに登場する各種キャラクタに関するデータ等を記憶する。
【0147】
図22は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。
図22に示すゲーム処理は、例えば、上記ゲームプログラムの実行中においてゲームを開始する指示がプレイヤによって行われたことに応じて開始される。
【0148】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、
図22に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、
図22に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、
図22に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0149】
また、プロセッサ81は、
図22に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0150】
図22に示すステップS1において、プロセッサ81は、ゲーム空間に、初期状態におけるボクセルオブジェクトを設定する。具体的には、プロセッサ81は、初期状態におけるボクセルオブジェクトの配置を示すボクセルデータを取得し、取得したボクセルデータの一部または全部を、ボクセルオブジェクトデータとしてDRAM85に記憶する(換言すれば、書き込む)。これによって、各ボクセルにおけるメッシュを生成するための密度を示すデータ、メッシュに適用するテクスチャを示すデータ、および、ボクセルオブジェクトの性質を示すデータ等がプロセッサ81に取得されることとなる。なお、初期状態におけるボクセルオブジェクトの配置を示すボクセルデータは、例えば、本体装置2のスロット23に装着された記憶媒体に記憶されている。ステップS1の次にステップS2の処理が実行される。
【0151】
なお、ボクセルオブジェクトデータとしてDRAM85に書き込まれるボクセルデータは、ゲーム空間の全範囲におけるボクセルデータのうちで、ゲーム画像の生成に用いられる一部の範囲のボクセルデータであってよい。プロセッサ81は、例えば、ゲーム空間のうちの一部の範囲(例えば、仮想カメラの位置から所定距離内の範囲)についてのみボクセルデータを用いてオブジェクトの画像を生成するようにしてもよい。このとき、ボクセルオブジェクトデータは、当該範囲内のボクセルデータを含むものであってもよい。また、ゲーム空間のうちの一部の範囲についてのボクセルデータが書き込まれる場合には、後述するステップS3~S12の一連の処理の実行中における適宜のタイミング(例えば、仮想カメラの位置が所定距離以上移動したタイミング)で、上記ステップS1と同様の処理が実行される。
【0152】
ステップS2において、プロセッサ81は、ボクセルオブジェクトについてメッシュを生成する。メッシュは、上記“[2-2.メッシュ]”で述べた方法に従って生成される。ここで、プロセッサ81は、DRAM85に記憶されているボクセルオブジェクトデータに基づいてメッシュを生成し、メッシュデータとしてDRAM85に記憶する。ステップS2の処理によって、メッシュに適用するテクスチャと、性質とが設定されたボクセルオブジェクトがゲーム空間に構築されたこととなる。上記ステップS2の後、ゲームが開始され、ゲーム中においてステップS3~S12の一連の処理が繰り返し実行される。
【0153】
ステップS3において、プロセッサ81は、ゲーム空間に登場する各種オブジェクト(例えば、プレイヤオブジェクトおよび敵オブジェクト)の動作を制御する。プロセッサ81は、例えば、各コントローラ3または4から受信した操作データに基づいてプレイヤオブジェクトの動作を制御したり、ゲームプログラムにおいて定められるアルゴリズムに基づいて敵オブジェクトの動作を制御したりする。ステップS3の次にステップS4の処理が実行される。
【0154】
ステップS4において、プロセッサ81は、上記ステップS3の結果、上述の衝撃付与イベントが発生したか否かを判定する。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、ステップS5~S10の一連の処理がスキップされて、後述するステップS11の処理が実行される。
【0155】
ステップS5において、プロセッサ81は、上記ステップS3の結果、上述の消去条件が満たされたか否かを判定する。なお、上述のように、消去条件の判定はボクセル毎に行われるので、ステップS3の判定においては、少なくとも1つのボクセルについて消去条件が満たされた場合、当該判定結果は肯定となる。ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、ステップS6およびS7の一連の処理がスキップされてステップS8の処理が実行される。
【0156】
ステップS6において、プロセッサ81は、ボクセルオブジェクトの一部を消去するように、DRAM85に記憶されているボクセルオブジェクトデータ内のボクセルデータを更新する。具体的には、プロセッサ81は、上記“[2-3-2.ボクセルオブジェクトのテクスチャを変更する具体例]”で説明した方法で、ボクセルオブジェクトの一部を消去する。ステップS6の次にステップS7の処理が実行される。
【0157】
ステップS7において、プロセッサ81は、ステップS6でボクセルデータが変更されたボクセルオブジェクトについてメッシュを更新する。すなわち、プロセッサ81は、ステップS6による更新後のボクセルオブジェクトデータに基づいて、ボクセルオブジェクトのメッシュを生成する。これによって、ボクセルオブジェクトのメッシュをゲーム中において動的に変化させることができる。なお、プロセッサ81は、DRAM85に記憶されているメッシュデータを、新たに生成されたメッシュを示す内容に更新する。ステップS7の次にステップS8の処理が実行される。
【0158】
ステップS8において、プロセッサ81は、上記ステップS3の結果、上述の変化条件が満たされたか否かを判定する。ステップS8の判定結果が肯定である場合、ステップS9の処理が実行される。一方、ステップS8の判定結果が否定である場合、ステップS9およびS10の処理がスキップされてステップS11の処理が実行される。
【0159】
ステップS9において、プロセッサ81は、変化イベントが発生する変化対象ボクセルを特定する。具体的には、消去イベントが発生したことによって変化条件が満たされた場合、プロセッサ81は、消去対象ボクセルの周囲のボクセルを変化対象ボクセルとして特定する。また、衝撃付与イベントによって変化条件が満たされた場合、プロセッサ81は、衝撃付与イベントに応じた範囲内のボクセルを変化対象ボクセルとして特定する。ステップS9の次にステップS10の処理が実行される。
【0160】
ステップS10において、プロセッサ81は、ステップS9で特定された変化対象ボクセルについて、メッシュを描画するために用いられるテクスチャを、主テクスチャから副テクスチャに変更する。具体的には、プロセッサ81は、変化対象ボクセルのボクセルデータのマテリアルデータを、主マテリアルではなく副マテリアルを示すように変更する。すなわち、以降は当該副マテリアルに対応する副テクスチャが、当該メッシュを描画するために用いられるテクスチャとなる。プロセッサ81は、DRAM85に記憶されているボクセルオブジェクトデータを、上記のように変更されたボクセルデータを示す内容に更新する。ステップS10の次にステップS11の処理が実行される。
【0161】
ステップS11において、プロセッサ81は、ゲーム空間を表すゲーム画像を生成して表示装置に表示させる。具体的には、プロセッサ81は、ボクセルオブジェクトおよびその他のオブジェクト(例えば、プレイヤオブジェクトおよび敵オブジェクト)を含むゲーム空間を表すゲーム画像を生成する。なお、ボクセルオブジェクトの画像は、DRAM85に記憶されているボクセルオブジェクトデータおよびメッシュデータを用いて、上記“[2-2.メッシュ]”で述べた方法に従って生成される。このとき、2種類のマテリアルデータが設定されるボクセルデータについては、プロセッサ81は、当該ボクセルデータに含まれるマテリアルデータにより特定されるテクスチャを用いて、ゲーム画像の生成(具体的には、メッシュの描画)を行う。したがって、上記ステップS10の処理において適用テクスチャデータが変更された場合には、描画に用いられるテクスチャが変更されることとなり、ボクセルオブジェクトの見た目が変更されることとなる。プロセッサ81は、上記のようにして生成されたゲーム画像を表示装置に表示させる。なお、ゲーム中において、ステップS11の処理は、所定時間(例えば、1フレーム時間)に1回の割合で繰り返し実行される。ステップS11の次にステップS12の処理が実行される。
【0162】
ステップS12において、プロセッサ81は、ゲームを終了するか否かを判定する。例えば、プロセッサ81は、ゲームを終了する指示がユーザによって行われたか否かを判定する。ステップS12の判定結果が否定である場合、ステップS3の処理が再度実行される。以降、ステップS12においてゲームを終了すると判定されるまで、ステップS3~S12の一連の処理が繰り返し実行される。一方、ステップS12の判定結果が肯定である場合、プロセッサ81は、
図22に示すゲーム処理を終了する。
【0163】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、情報処理システム(具体的には、ゲームシステム1)は、以下の手段を備える構成である。
・仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクト(すなわち、ボクセルオブジェクト)のメッシュを生成するオブジェクト生成手段(ステップS2)
・オブジェクトの色彩および/または模様(例えば、テクスチャ)をボクセル毎に規定するマテリアルデータとして、第1マテリアルデータ(例えば、主マテリアルデータ)と、第2マテリアルデータ(例えば、副マテリアルデータ)とを取得するマテリアルデータ取得手段(ステップS1)
・(a)オブジェクトの見た目を変化させる変化イベントが発生する前においては合、第1マテリアルデータに基づいてオブジェクトのメッシュの色彩および/または模様を設定し、(b)変化イベントが発生した後においては、第1マテリアルデータに第2マテリアルデータが関連付けられている場合、当該第2マテリアルデータに基づいて、当該変化対象ボクセルに関するボクセルデータに基づいて生成されるメッシュであって、オブジェクトの表面の一部に対応するメッシュの色彩および/または模様を設定する見た目設定手段(ステップS10)
・仮想空間におけるオブジェクトのメッシュの画像を表示装置に出力する画像出力手段(ステップS11)
【0164】
上記の構成によれば、オブジェクトのうちで変化イベントが発生する部分については、変化イベントによってメッシュの色彩および/または模様が変化するので、変化イベントによってオブジェクトの薄い外殻部分が剥がれたように見せることできる。これによって、オブジェクトの薄い外殻部分を表現することができる。
【0165】
また、上記実施形態においては、情報処理システム(具体的には、ゲームシステム1)は、以下の手段を備える構成であると言うこともできる。
・仮想空間に設定されるボクセル空間において規定されるボクセル毎のボクセルデータに基づいて、当該仮想空間にオブジェクトのメッシュを生成するオブジェクト生成手段(ステップS2)
・オブジェクトの一部を消去する消去イベントが発生する前においては、第1の色彩および/または模様(例えば、オブジェクトの外殻部分を表す色彩および/または模様)を当該オブジェクトのメッシュに対して描画する描画手段(ステップS11)
・仮想空間におけるオブジェクトのメッシュの画像を表示装置に出力する画像出力手段(ステップS11)
上記ボクセル生成手段は、消去イベントが発生した後においては、オブジェクトの一部が消去されるように、ボクセルデータを更新する(ステップS6)。描画手段は、オブジェクトのうちで消去によって露出した露出部分のメッシュと、当該露出部分のメッシュの周囲の少なくとも一部のメッシュとに対して、第1の色彩および/または模様とは異なる第2の色彩および/または模様(例えば、オブジェクトの内部を表す色彩および/または模様)を描画する(
図13参照)。
【0166】
上記の構成によれば、オブジェクトの一部が消去された場合に、消去によって露出した露出部分の周囲のメッシュについても、オブジェクトの内側の色彩および/または模様を描画することによって、オブジェクトの薄い外殻部分を表現することができる。
【0167】
なお、上記の構成において、マテリアルデータは、オブジェクトの色彩および/または模様を規定するデータを含んでいればよく、オブジェクトの性質を示すデータを含んでいる必要はない。
【0168】
また、上記実施形態においては、ゲームシステム1は、変化対象ボクセルに関するボクセルデータに基づいて生成されるメッシュであって、変化イベント(消去イベントに基づいて変化イベントが発生する場合は、消去イベントとも言える)の前後で位置が変化していない少なくとも1つのメッシュについて、副マテリアルデータに基づいて色彩および/または模様を設定する(つまり、オブジェクトの内側の色彩および/または模様を描画する)。これによれば、外側の色彩および/または模様が描画される領域と、内側の色彩および/または模様が描画される領域との境界は、変化イベントの前後で変化していないメッシュの上に位置することとなる。これによって、オブジェクトの薄い外殻部分を表現することができる。また、必要以上にメッシュを変更しなくてもよいので、オブジェクトの見た目を変更するための処理負荷を低減することができる。
【0169】
また、上記実施形態においては、外殻と内部で見た目を異ならせるボクセルオブジェクトの一例として、木オブジェクトを挙げて説明を行った。ここで、他の実施形態においては、外殻と内部で見た目を異ならせるボクセルオブジェクトは、仮想空間における任意のオブジェクトであってよい。例えば、上記ボクセルオブジェクトは、地形オブジェクトであってもよいし、プレイヤオブジェクト、敵オブジェクト、あるいは、プレイヤオブジェクト等が搭乗可能な乗り物のオブジェクトのような、仮想空間内において移動可能なオブジェクトであってもよい。なお、ゲームシステム1は、外殻と内部で見た目を異ならせるボクセルオブジェクトと、外殻と内部で見た目を異ならせないボクセルオブジェクトとの両方を仮想空間に配置するようにしてもよい。
【0170】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0171】
上記の実施形態は、オブジェクトの薄い外殻部分を表現すること等を目的として、例えばゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0172】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
211 プレイヤオブジェクト
212 木オブジェクト