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

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

7857981情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2026-04-30
(45)【発行日】2026-05-13
(54)【発明の名称】情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法
(51)【国際特許分類】
   A63F 13/69 20140101AFI20260501BHJP
   A63F 13/58 20140101ALI20260501BHJP
   A63F 13/55 20140101ALI20260501BHJP
   G06T 13/40 20110101ALI20260501BHJP
【FI】
A63F13/69 520
A63F13/58
A63F13/55
G06T13/40
【請求項の数】 17
(21)【出願番号】P 2024011601
(22)【出願日】2024-01-30
(65)【公開番号】P2025113078
(43)【公開日】2025-08-01
【審査請求日】2025-05-20
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】上野 篤史
(72)【発明者】
【氏名】吉田 茜
【審査官】岸 智史
(56)【参考文献】
【文献】特開2008-033521(JP,A)
【文献】特開2004-046793(JP,A)
【文献】特開2023-103281(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータを、
複数のパーツの各々について、位置、回転、および、スケールの各パラメータを決定するパラメータ決定手段と、
前記各パラメータに基づいて仮想空間において配置される前記複数のパーツを組み合わせた形状を有する第1部分と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分とを有する合成オブジェクトを生成するオブジェクト生成手段として機能させ、
前記パラメータ決定手段は、前記合成オブジェクトの既定の基準方向側において前記基準位置が前記第1部分により遮蔽されないように、前記各パラメータを決定する、情報処理プログラム。
【請求項2】
前記パラメータ決定手段は、前記基準位置が前記第1部分の表面に位置するように前記各パラメータを決定する、請求項1に記載の情報処理プログラム。
【請求項3】
前記仮想空間は3次元空間であり、
前記複数のパーツはそれぞれ、平らな面部分を有し、
前記パラメータ決定手段は、前記基準位置を含む平面と前記複数のパーツの各前記面部分とが同一面内に位置するように前記位置のパラメータおよび前記スケールのパラメータを決定するとともに、前記面部分が前記基準方向に垂直で当該基準方向側に面するように前記回転のパラメータを決定する、請求項1に記載の情報処理プログラム。
【請求項4】
前記パラメータ決定手段は、前記複数のパーツの各々について、前記合成オブジェクトの前記基準方向側において前記基準位置が前記第1部分により遮蔽されないように予め設定された範囲内で、前記各パラメータを決定する、請求項1に記載の情報処理プログラム。
【請求項5】
前記パラメータ決定手段は、前記各パラメータの少なくとも1つを確率に基づいて決定する、請求項1から請求項4のいずれか1項に記載の情報処理プログラム。
【請求項6】
前記パラメータ決定手段は、前記合成オブジェクトの前記基準方向側において前記基準位置が前記第1部分により遮蔽されないような前記各パラメータが決定されるまで、当該各パラメータを確率に基づいて決定する処理を繰り返す、請求項1に記載の情報処理プログラム。
【請求項7】
前記パラメータ決定手段は、ゲームの実行中に前記各パラメータを決定し、
前記オブジェクト生成手段は、前記ゲームの実行中に前記合成オブジェクトを前記仮想空間に配置する、請求項1に記載の情報処理プログラム。
【請求項8】
前記複数のパーツと、前記合成オブジェクトのうち前記第1部分とは、ボクセルデータに基づいて生成されるボクセルオブジェクトである、請求項1に記載の情報処理プログラム。
【請求項9】
前記合成オブジェクトはノンプレイヤキャラクタである、請求項1に記載の情報処理プログラム。
【請求項10】
前記基準方向が前記ノンプレイヤキャラクタからプレイヤキャラクタへの方向を向くように当該ノンプレイヤキャラクタを制御するキャラクタ制御手段として前記コンピュータをさらに機能させる、請求項9に記載の情報処理プログラム。
【請求項11】
プレイヤキャラクタによる動作に応じて前記合成オブジェクトの一部を消去するオブジェクト消去手段として前記コンピュータをさらに機能させる、請求項9に記載の情報処理プログラム。
【請求項12】
前記合成オブジェクトの一部が消去された場合、時間経過に応じて当該合成オブジェクトの形状を元の形状に戻すオブジェクト復元手段として前記コンピュータをさらに機能させる、請求項11に記載の情報処理プログラム。
【請求項13】
前記第2部分は、前記ノンプレイヤキャラクタの目を表すオブジェクトである、請求項9から請求項12のいずれか1項に記載の情報処理プログラム。
【請求項14】
前記合成オブジェクトは、前記ノンプレイヤキャラクタの足を表すオブジェクトをさらに有する、請求項9から請求項12のいずれか1項に記載の情報処理プログラム。
【請求項15】
複数のパーツの各々について、位置、回転、および、スケールの各パラメータを決定するパラメータ決定手段と、
前記各パラメータに基づいて仮想空間において配置される前記複数のパーツを組み合わせた形状を有する第1部分と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分とを有する合成オブジェクトを生成するオブジェクト生成手段とを備え、
前記パラメータ決定手段は、前記合成オブジェクトの既定の基準方向側において前記基準位置が前記第1部分により遮蔽されないように、前記各パラメータを決定する、情報処理システム。
【請求項16】
複数のパーツの各々について、位置、回転、および、スケールの各パラメータを決定するパラメータ決定手段と、
前記各パラメータに基づいて仮想空間において配置される前記複数のパーツを組み合わせた形状を有する第1部分と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分とを有する合成オブジェクトを生成するオブジェクト生成手段とを備え、
前記パラメータ決定手段は、前記合成オブジェクトの既定の基準方向側において前記基準位置が前記第1部分により遮蔽されないように、前記各パラメータを決定する、情報処理装置。
【請求項17】
情報処理システムによって実行される情報処理方法であって、
複数のパーツの各々について、位置、回転、および、スケールの各パラメータを決定するパラメータ決定ステップと、
前記各パラメータに基づいて仮想空間において配置される前記複数のパーツを組み合わせた形状を有する第1部分と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分とを有する合成オブジェクトを生成するオブジェクト生成ステップとを備え、
前記パラメータ決定ステップにおいては、前記合成オブジェクトの既定の基準方向側において前記基準位置が前記第1部分により遮蔽されないように、前記各パラメータを決定する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間に配置するオブジェクトを生成するための情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【0002】
従来、複数のパーツを組み合わせてキャラクタを生成することで、複数種類のキャラクタを生成する技術がある。例えば、顔の輪郭、目、鼻、口といったパーツを用意し、パーツを組み合わせることで複数種類のキャラクタを生成する技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2006-119788号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術においては、輪郭に対して定められた位置に目、鼻、口といったパーツを配置するだけであったため、生成されるキャラクタのパターンが限られていた。
【0005】
それ故、本発明の目的は、複数のパーツを用いて多様なオブジェクトを生成することができる情報処理プログラム、情報処理システム、情報処理装置、および、情報処理方法を生成することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(14)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、コンピュータを、パラメータ決定手段と、オブジェクト生成手段として機能させる。パラメータ決定手段は、複数のパーツの各々について、位置、回転、および、スケールの各パラメータを決定する。オブジェクト生成手段は、各パラメータに基づいて仮想空間において配置される複数のパーツを組み合わせた形状を有する第1部分と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分とを有する合成オブジェクトを生成する。パラメータ決定手段は、合成オブジェクトの基準方向側において基準位置が第1部分により遮蔽されないように、各パラメータを決定する。
【0008】
上記(1)の構成によれば、上記各パラメータを様々な値に変化させたパーツを用いて第1部分を生成することで、多様なオブジェクトを生成することができる。
【0009】
(2)
上記(1)の構成において、パラメータ決定手段は、基準位置が第1部分の表面に位置するように各パラメータを決定してもよい。
【0010】
上記(2)の構成によれば、第2部分が第1部分に埋もれて見えなくなったり、あるいは、第2部分が第1部分から離れて配置されたりすることによってオブジェクトが不自然な見た目となる可能性を低減することができる。
【0011】
(3)
上記(1)または(2)の構成において、仮想空間は3次元空間であってもよい。複数のパーツはそれぞれ、平らな面部分を有していてもよい。パラメータ決定手段は、基準位置を含む平面と複数のパーツの各面部分とが同一面内に位置するように位置のパラメータおよびスケールのパラメータを決定するとともに、面部分が基準方向に垂直で当該基準方向側に面するように回転のパラメータを決定してもよい。
【0012】
上記(3)の構成によれば、各パーツの面部分により形成される面に第2部分を配置することができるので、オブジェクトが不自然な見た目となる可能性を低減することができる。
【0013】
(4)
上記(1)または(2)の構成において、パラメータ決定手段は、複数のパーツの各々について、合成オブジェクトの基準方向側において基準位置が第1部分により遮蔽されないように予め設定された範囲内で、各パラメータを決定してもよい。
【0014】
上記(4)の構成によれば、オブジェクトが不自然な見た目となる可能性を低減することができる。
【0015】
(5)
上記(1)から(4)のいずれかの構成において、パラメータ決定手段は、各パラメータの少なくとも1つを確率に基づいて決定してもよい。
【0016】
上記(5)の構成によれば、第1部分の形状がランダムに変化するオブジェクトを生成することができる。
【0017】
(6)
上記(1)または(2)の構成において、パラメータ決定手段は、合成オブジェクトの基準方向側において基準位置が第1部分により遮蔽されないような各パラメータが決定されるまで、当該各パラメータを確率に基づいて決定する処理を繰り返してもよい。
【0018】
上記(6)の構成によれば、オブジェクトが不自然な見た目となる可能性を低減することができるとともに、第1部分の形状がランダムに変化するオブジェクトを生成することができる。
【0019】
(7)
上記(1)から(6)のいずれかの構成において、パラメータ決定手段は、ゲームの実行中に各パラメータを決定してもよい。オブジェクト生成手段は、ゲームの実行中に合成オブジェクトを仮想空間に配置してもよい。
【0020】
上記(7)の構成によれば、ゲーム実行の度に異なる形状のオブジェクトを生成することができる。
【0021】
(8)
上記(1)から(7)のいずれかの構成において、複数のパーツと、合成オブジェクトのうち第1部分とは、ボクセルデータに基づいて生成されるボクセルオブジェクトであってもよい。
【0022】
上記(8)の構成によれば、パーツに基づいて第1部分を生成する処理を、ボクセルデータを用いて容易に実行することができる。
【0023】
(9)
上記(1)から(8)のいずれかの構成において、合成オブジェクトはノンプレイヤキャラクタであってもよい。
【0024】
上記(9)の構成によれば、1つずつに個性を有するノンプレイヤキャラクタをゲームに登場させることができる。
【0025】
(10)
上記(9)の構成において、情報処理プログラムは、基準方向がノンプレイヤキャラクタからプレイヤキャラクタへの方向を向くように当該ノンプレイヤキャラクタを制御するキャラクタ制御手段としてコンピュータをさらに機能させてもよい。
【0026】
上記(10)の構成によれば、プレイヤキャラクタから見てオブジェクトが正面を向くように動作させることができる。
【0027】
(11)
上記(9)または(10)の構成において、情報処理プログラムは、プレイヤキャラクタによる動作に応じて合成オブジェクトの一部を消去するオブジェクト消去手段としてコンピュータをさらに機能させてもよい。
【0028】
上記(11)の構成によれば、プレイヤは、プレイヤキャラクタを操作することでオブジェクトの形状を変化させることができる。
【0029】
(12)
上記(11)の構成において、情報処理プログラムは、合成オブジェクトの一部が消去された場合、時間経過に応じて当該合成オブジェクトの形状を元の形状に戻すオブジェクト復元手段としてコンピュータをさらに機能させてもよい。
【0030】
上記(12)の構成によれば、プレイヤは、オブジェクトを繰り返し変形させて楽しむことができる。
【0031】
(13)
上記(9)から(12)のいずれかの構成において、第2部分は、ノンプレイヤキャラクタの目を表すオブジェクトであってもよい。
【0032】
上記(13)の構成によれば、オブジェクトの目が不自然な配置となるオブジェクトが生成される可能性を低減することができる。
【0033】
(14)
上記(9)から(13)のいずれかの構成において、合成オブジェクトは、ノンプレイヤキャラクタの足を表すオブジェクトをさらに有していてもよい。
【0034】
なお、本発明の別の一例は、上記(1)~(14)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(14)における処理を実行する情報処理方法であってもよい。
【発明の効果】
【0035】
上記情報処理プログラム、情報処理システム、情報処理装置、または、情報処理方法によれば、複数のパーツを用いて多様なオブジェクトを生成することができる。
【図面の簡単な説明】
【0036】
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
図3】本体装置の一例を示す六面図
図4】左コントローラの一例を示す六面図
図5】右コントローラの一例を示す六面図
図6】本体装置の内部構成の一例を示すブロック図
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
図8】ボクセルオブジェクトである地形オブジェクトの一例を示す図
図9図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
図10図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図
図11】ボクセルデータの内容の一例を示す図
図12】マテリアルの性質を示す性質情報の一例を示す図
図13】マテリアルのテクスチャを示すテクスチャ情報の一例を示す図
図14】メッシュの生成方法の一例を示す図
図15】地形オブジェクトを含むゲーム画像の一例を示す図
図16】ノンプレイヤキャラクタを生成する処理の概要の一例を示す図
図17】生成される体オブジェクトの例を示す図
図18】3つのパーツの例を示す図
図19】各パラメータに基づいて配置される各パーツの例を示す図
図20図19に示す各パーツに基づいて生成される体オブジェクトの一例を示す図
図21】生成されたノンプレイヤキャラクタの一例を示す図
図22】ゲームシステム1における情報処理に用いられる各種データの一例を示す図
図23】ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャート
図24図23に示すステップS4のキャラクタ生成処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0037】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0038】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0039】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0040】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0041】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0042】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0043】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0044】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0045】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0046】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0047】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0048】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0049】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0050】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0051】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0052】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0053】
右コントローラ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を備える。
【0054】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0055】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0056】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0057】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0058】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0059】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0060】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0061】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0062】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0063】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0064】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0065】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0066】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0067】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0068】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0069】
左コントローラ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(登録商標)の規格に従って行われる。
【0070】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0071】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0072】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0073】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0074】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0075】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0076】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0077】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0078】
[2.ゲームシステムにおける処理の概要]
次に、図8図21を参照して、ゲームシステム1において実行される処理の概要について説明する。本実施形態においては、ゲームシステム1は、3次元の仮想空間であるゲーム空間に地形オブジェクトやキャラクタ(例えば、プレイヤによって操作されるプレイヤキャラクタ)が配置されたゲーム画像を生成し、表示装置に表示させる。なお、本実施形態において、ゲーム画像が表示される表示装置は、上述のディスプレイ12であってもよいし、据置型モニタであってもよい。
【0079】
[2-1.ボクセル]
本実施形態では、ゲーム空間におけるいくつかのオブジェクトについては、ボクセルデータによって形状が規定される。ここで、ボクセルとは、ゲーム空間に格子状に並べられた直方体状(より具体的には、立方体状)の領域であり、ボクセルデータとは各ボクセルに設定されたデータである。以下では、ボクセルデータによって形状が規定されるオブジェクトを、「ボクセルオブジェクト」と呼ぶ。本実施形態においては、ゲームシステム1は、ゲーム空間内に設定される複数のボクセルについてそれぞれ、ボクセルオブジェクトをゲーム空間内において生成するためのデータとして、ボクセルデータを記憶する。
【0080】
図8は、ボクセルオブジェクトである地形オブジェクトの一例を示す図である。図8に示すように、本実施形態においては、地面等の地形を表す地形オブジェクトは、ボクセルデータによって形状が規定される(つまり、ボクセルオブジェクトである)。図8に示す各立方体は、地形オブジェクトを示す。なお、図8においては、地形オブジェクトの辺となる部分を太線で示しているが、この太線は図面を見やすくする目的で付したものであり、実際には地形オブジェクトの辺が太く表示される必要はない。
【0081】
また、図8に示す地形オブジェクトは、例えば、「ボクセルに設定されるボクセルデータに含まれるパラメータが所定値より大きい場合は当該ボクセルの位置に立方体を配置し、所定値以下の場合は当該ボクセルの位置に何も配置しない」というルールで生成されたものである。図8に示す地形オブジェクトは、ボクセルとボクセルオブジェクトとの関係をわかりやすく例示する目的で示されるものである。本実施形態においては、実際には、例えば後述する図15に示す地形オブジェクトのように、ボクセルの1辺の長さと比べて複雑な形状となるようなルールで(ボクセルデータに基づいて)ボクセルオブジェクトが生成される。なお、ボクセルデータに基づいてボクセルオブジェクトの形状を決定するルールは任意である。他の実施形態においては、ゲームシステム1は、オブジェクトデータに基づいて、図8に示すようなボクセルオブジェクトを生成してもよいし、図15に示すようなボクセルオブジェクトを生成してもよい。
【0082】
ボクセルオブジェクトについては、各ボクセルのボクセルデータを変更することで、形状を変化させることができる。図9および図10は、図8に示す地形オブジェクトの一部が削除される前後の様子の一例を示す図である。すなわち、図9に示す地形オブジェクトのうちの斜線部分が破壊される場合、地形オブジェクトは図10に示すような形状に変化する。このとき、ゲームシステム1は、上記斜線部分のボクセルについて、地形オブジェクトが存在しないことを示すように、後述のボクセルデータを書き換えることで、地形オブジェクトを容易に消去することができる。なお、ゲームシステム1は、地形オブジェクトを追加する場合も、地形オブジェクトを消去する場合と同様に、各ボクセルのボクセルデータを変更することで、地形オブジェクトの形状を容易に変化させることができる。
【0083】
このように、ゲームシステム1は、ボクセルデータを書き換えることによって、ボクセルオブジェクトの形状を自由に変化させることができる。例えば、ゲームにおいて地形オブジェクトが何らかの理由(例えば、プレイヤキャラクタが地形オブジェクトに打撃を加える等)で破壊される結果として当該地形オブジェクトの形状を変化させる場合、ゲームシステム1は、地形オブジェクトの外形形状を示すデータ(すなわち、後述するメッシュ)を直接変更するのではなく、地形オブジェクトの生成に用いられるボクセルデータを変更することで、地形オブジェクトの形状を自由に変化させることができる。
【0084】
図11は、ボクセルデータの内容の一例を示す図である。ここで、本実施形態においては、ゲーム空間は、格子状に配置された複数のボクセルに区分することができる。ゲームシステム1は、ゲーム空間における各ボクセルについてそれぞれボクセルデータを関連付けて記憶する。ボクセルデータは、当該ボクセルデータに対応するボクセルにおけるボクセルオブジェクトの有無等を示す。
【0085】
図11に示すように、ボクセルデータは、密度データを含む。密度データは、ボクセルデータに対応するボクセルにおけるボクセルオブジェクトの形状(具体的には、後述するメッシュで規定される形状)を規定するために用いられる指標である密度を示す。詳細は後述するが、ボクセルオブジェクトの表面(すなわち、後述するメッシュ)の位置および形状は、上記の密度に基づいて決定される。つまり、本実施形態においては、上記密度は、ボクセルオブジェクトの表面を規定するメッシュを作成するために用いられる。
【0086】
本実施形態においては、密度は、下限値(例えば、0)から上限値(例えば、255)までの範囲の整数値をとり得る。本実施形態においては、ゲームシステム1は、ボクセルに設定される密度の値が高いと、当該ボクセル内においてボクセルオブジェクトが占める体積の割合が大きくなりやすく、当該密度の値が低いと当該割合が小さくなりやすいように、密度に基づいてボクセルオブジェクトの形状を決定する。このように、密度は、ボクセル内においてボクセルオブジェクトが占める体積の割合に影響を与える指標である。密度は、各ボクセルが定義される領域内にオブジェクトが含まれている度合いを示す指標であるとも言える。例えば、密度が0である場合には当該ボクセル内にボクセルオブジェクトが存在せず、密度が255の場合には当該ボクセル内の全てがボクセルオブジェクトであり、密度が0と255の間の値の場合には値に応じた割合で当該ボクセル内をボクセルオブジェクトが占めるものとすることができる。そして、上記密度に基づいて、メッシュの形状、すなわちボクセルオブジェクトの形状を決定することができる。ただし、上記密度に基づいて生成されたボクセルオブジェクトは、密度が示す割合と厳密に一致する体積になる必要はない。例えば、図8のようなボクセルオブジェクトを生成する手法と、図15のようなボクセルオブジェクトを生成する手法とでは、同じ密度に基づいてもボクセルオブジェクトの体積が異なることもある。
【0087】
他の実施形態においては、密度は、ボクセル内の領域の全体をボクセルオブジェクトが占める状態と、ボクセル内の領域にボクセルオブジェクトが含まれない状態とのいずれかを示すものであってもよい。例えば、密度データは、0または1のみをとり得るデータであってもよい。
【0088】
図11に示すように、ボクセルデータは、マテリアルデータを含む。マテリアルデータは、ボクセルデータにより生成されるボクセルオブジェクトのマテリアル(換言すれば、物質)を示す。ここで、本実施形態においては、ボクセルオブジェクトには、例えば、砂、岩、および、土といったマテリアルが設定される。すなわち、本実施形態においては、ボクセルオブジェクトに設定され得るマテリアルとして複数種類のマテリアルが用意されており、ボクセルオブジェクトには、複数種類のマテリアルのいずれかが設定される。
【0089】
図11に示すように、本実施形態においては、マテリアルデータは、マテリアルの識別情報(「マテリアルID」と呼ぶ)を示す。また、本実施形態においては、ゲームシステム1は、ゲームにおいて用意されるマテリアル毎に、マテリアルの性質およびテクスチャを示すマテリアル情報を記憶する。本実施形態においては、マテリアル情報は、マテリアルIDと、当該マテリアルの性質と、当該マテリアルの見た目(具体的には、テクスチャ)とを関連付ける。具体的には、マテリアル情報は、マテリアルIDと、当該マテリアルの性質の識別情報(「性質ID」と呼ぶ)と、当該マテリアルのテクスチャの識別情報(「テクスチャID」と呼ぶ)とを関連付ける情報である(図11参照)。
【0090】
図12は、マテリアルの性質を示す性質情報の一例を示す図である。図12に示すように、ゲームシステム1は、上記の性質IDと、当該性質IDが示す性質の内容を示す情報とを関連付けた性質情報を記憶する。マテリアルの性質とは、当該マテリアルが設定されるボクセルオブジェクトがゲームにおいて有する性質であり、例えば、図12に示す重さや滑りやすさといった情報である。なお、性質の具体的な内容は任意であり、例えば、マテリアルの性質として下記の情報が設定されてもよい。
・温度
・壊れやすさ(例えば、ボクセルオブジェクトに衝撃が加えられた場合に当該ボクセルオブジェクトが壊れるまでの回数)
・ボクセルオブジェクトに他のオブジェクトが接着されるか否か
・プレイヤキャラクタがボクセルオブジェクトを破壊した場合におけるプレイヤキャラクタの体力の回復量
・プレイヤキャラクタがボクセルオブジェクトを破壊した場合にプレイヤキャラクタが取得するゲーム内通貨の量
なお、マテリアルに設定される性質の具体的な内容は任意である。他の実施形態においては、マテリアルの性質を示す情報として、上記とは異なる情報が設定されてもよい。
【0091】
図13は、マテリアルのテクスチャを示すテクスチャ情報の一例を示す図である。図13に示すように、ゲームシステム1は、上記のテクスチャIDと、当該テクスチャIDが示すテクスチャとを関連付けたテクスチャ情報を記憶する。
【0092】
なお、ボクセルオブジェクトの見た目を規定するデータとして、テクスチャの情報に加えて、色彩および/または模様に関する任意の情報が設定されてもよい。例えば、ボクセルオブジェクトの見た目に関する情報として、ひび割れのパターンが設定されてもよい。このようなパターンを用いることによって、ゲームシステム1は、ひび割れが入っている見た目を表すボクセルオブジェクトの画像を生成することができる。
【0093】
以上のように、本実施形態においては、マテリアルデータは、マテリアルIDによって、ボクセルオブジェクトの性質と、ボクセルオブジェクトに用いるテクスチャとを規定する。例えば、ボクセルデータに含まれるマテリアルデータが示すマテリアルIDが「002」である場合、マテリアル情報において当該マテリアルIDに関連付けられる「001」の性質IDが示す性質が、当該ボクセルデータに対応するボクセルオブジェクトの性質として設定される(図11に示す矢印参照)。また、上記の場合、マテリアル情報において当該マテリアルIDに関連付けられる「002」のテクスチャIDが示すテクスチャが、当該ボクセルデータに対応するボクセルオブジェクトに適用される(図11に示す矢印参照)。
【0094】
上記のように、本実施形態においては、ゲームシステム1は、マテリアルの性質とテクスチャとを別々に管理する。そのため、本実施形態においては、性質は同じであるが見た目(すなわち、テクスチャ)が異なる複数種類のマテリアルや、性質は異なるが見た目は同じである複数種類のマテリアルを容易に設定することができる。
【0095】
なお、マテリアルデータは、マテリアルの性質および/またはテクスチャを特定可能な任意のデータであってよい。例えば、他の実施形態においては、マテリアルデータは、上記性質IDおよびテクスチャIDを示すものであってもよいし、マテリアルの性質およびテクスチャを示すデータを実際に含むデータ構造を有していてもよい。
【0096】
また、マテリアルデータは、マテリアルに関する情報であって、上記の性質およびテクスチャとは異なる他の情報をさらに示すものであってもよい。例えば、マテリアルデータは、ボクセルオブジェクトに設定されるエフェクト発生条件(例えば、ボクセルオブジェクトの一部が破壊されたこと、あるいは、キャラクタがボクセルオブジェクトを踏んだこと)が満たされた場合に発生されるエフェクトを示すエフェクトデータを含んでいてもよい。なお、エフェクトデータは、エフェクト画像(例えば、ボクセルオブジェクトが破壊されたことを表現するエフェクト画像)を示すデータであってもよいし、エフェクト音(ボクセルオブジェクトの上をキャラクタが歩くときの足音)を示すデータであってもよい。
【0097】
図11に示すように、ボクセルデータは、ボクセルオブジェクトの状態を示す状態データを含む。状態データの具体的な内容は任意である。例えば、状態データは、ボクセルオブジェクトが濡れた状態であるか否かを示すデータであってもよいし、ボクセルオブジェクトに加えられたダメージの量を示すデータであってもよい。状態データの内容は、ゲーム中において更新されることがあってもよい。
【0098】
[2-2.メッシュ]
本実施形態においては、ボクセルオブジェクトの表面は、メッシュによって表される。メッシュとは、ゲーム空間に配置される複数の面(具体的には、ポリゴン)の集合である。本実施形態においては、ゲームシステム1は、ゲーム空間に設定される各ボクセルのボクセルデータに基づいて、ボクセルオブジェクトのメッシュを生成する。以下、ボクセルデータに基づいてメッシュを生成する一例について説明する。
【0099】
図14は、メッシュの生成方法の一例を示す図である。なお、図14では、図面を見やすくし、説明を分かりやすくする目的で、ボクセルおよびメッシュを2次元で表現しているが、実際には3次元空間におけるボクセルに基づいて3次元のメッシュが生成される。
【0100】
上述のように、本実施形態においては、ボクセルに設定される密度は、0~255の範囲で設定される。また、本実施形態においては、密度が基準しきい値以上のボクセルをオブジェクト内とし、密度が基準しきい値未満のボクセルをオブジェクト外であるとする。密度が0のボクセルのみをオブジェクト外と定義(すなわち基準しきい値=1)する必要はなく、当該基準しきい値は、たとえば128とする。図14に示す例においては、ボクセル201および外側の他のボクセルにおいては密度が0、ボクセル202は密度が基準しきい値未満である100、ボクセル203、204においては密度が基準しきい値以上である150、200と設定されているものとする。本実施形態においては、ゲームシステム1は、密度が基準しきい値以上のボクセルと基準しきい値未満のボクセルとの間に頂点を生成する。具体的には、隣接する8個(図面では4個)のボクセルに跨った領域(図面では点線に囲まれた領域)ごとに、頂点を生成するか否かの判定を行う。つまり、密度が基準しきい値以上のボクセルと基準しきい値未満のボクセルの両方に跨る領域に頂点を生成する。さらに、隣接する頂点間(それぞれの頂点を含む上述の領域の境界)が、密度が基準しきい値以上のボクセルと基準しきい値未満のボクセルとの間を通る場合に、それらの頂点を結ぶことでポリゴンメッシュが生成される。頂点の座標は、XYZの軸ごとに、隣接するボクセル同士の密度を比較し、密度の差に基づいた補間によって決定される。このとき、さらに法線情報に基づいて座標計算をすることができるが、法線情報は、少なくとも一部のボクセルについて予め保持しておくようにしてもよいし、保持されていない場合は法線情報も隣接するボクセル同士の密度に基づいて算出されてもよい。なお、図14において、ボクセル202の密度は基準しきい値未満であるので、頂点の有無の判定においては、ボクセル202はオブジェクト外として扱われるが、ボクセル202の密度の値自体は生成される頂点の座標計算に用いられる。仮にボクセル202の密度よりも低い値に基準しきい値を設定した場合は、図14のボクセル202における右上側と左上側に頂点がさらに増える結果となる。
【0101】
上述のようにポリゴンメッシュを生成することで、ボクセルごとの密度をある程度反映した体積を有する形状を生成することができる。ただし、隣接ボクセルとの関係によっては、密度0のボクセルが一部オブジェクト内の領域を含むことや、密度255のボクセルが一部オブジェクト外の領域を含むようなこともあり得る。また、本実施形態では、基準しきい値未満のボクセルはオブジェクト外として処理するため、オブジェクト内として処理する場合に比べて頂点が少なくなる分、体積も小さくなる。すなわち、厳密に密度の値に対応する体積となるようにポリゴンメッシュを算出する必要は無い。
【0102】
図15は、地形オブジェクトを含むゲーム画像の一例を示す図である。本実施形態においては、上記のようにメッシュを生成することによって、ボクセルオブジェクトを、例えば、ボクセルの一辺の長さと比べて複雑な凹凸がある形状とすることができる。
【0103】
なお、ボクセルデータに基づいてメッシュを生成する方法は任意である。例えば、他の実施形態においては、ボクセルデータの密度が所定値より大きい場合に、当該ボクセルに立方体が配置されるようにメッシュが生成されてもよい(図8参照)。
【0104】
ゲームシステム1は、上記のように生成されたメッシュの各面について、上記ボクセルデータによって特定されるマテリアルに応じて当該各面の見た目(すなわち、色彩および/または模様)を決定する。具体的には、ゲームシステム1は、メッシュの各面の描画に用いるテクスチャを上記ボクセルデータに基づいて決定し、決定されたテクスチャを各面にマッピングすることで、ボクセルオブジェクトの画像を生成する。なお、メッシュの各面にマッピングされるテクスチャは、ボクセルオブジェクトが存在するボクセルのうちで、当該面を生成するために用いられたボクセル(対象ボクセルと呼ぶ)のボクセルデータに基づいて決定される。なお、対象ボクセルとは、メッシュの生成方法にも依るが、例えば、当該面の周囲に配置される1以上のボクセルである。つまり、メッシュの面にマッピングされるテクスチャは、当該面の周囲に配置される1以上のボクセルに設定されるマテリアルに対応するテクスチャとなるように決定される。
【0105】
なお、他の実施形態においては、1つのボクセルデータには複数種類(例えば、2種類)のマテリアルデータが含まれていてもよい。このとき、ボクセルデータは、複数種類のマテリアルデータに関する比率データを含む。比率データは、ボクセルオブジェクトに用いるテクスチャを決定するためのデータであり、上記複数種類のマテリアルデータが示す各マテリアル(具体的には、マテリアルに対応するテクスチャ)が、ボクセルオブジェクトの見た目(具体的には、色および/模様)に影響を与える比率を示す。また、メッシュの各面にマッピングされるテクスチャを決定する際には、上記対象ボクセルのボクセルデータに含まれる各種データ(具体的には、密度データ、複数種類のマテリアルデータ、および、比率データ)に基づいてテクスチャが決定される。例えば、1つの面に対応する対象ボクセルに複数種類のマテリアルが設定される場合には、上記比率を考慮して影響度合いが最も大きい(1種類の)マテリアルに対応するテクスチャが用いられてもよいし、複数種類のマテリアルに対応する各テクスチャが上記比率を考慮して用いられてもよい。
【0106】
また、他の実施形態においては、1種類のマテリアルデータを含むボクセルデータが用いられるボクセルオブジェクトと、2種類のマテリアルデータを含むボクセルデータが用いられるボクセルオブジェクトとの両方があってもよい。
【0107】
[2-3.ボクセルオブジェクトの生成]
以下、ゲーム空間に登場するノンプレイヤキャラクタをボクセルオブジェクトとして生成する方法について説明する。本実施形態においては、ゲームシステム1は、生成の度に形状が異なるようにノンプレイヤキャラクタを生成する。また、生成の度に形状が異なるように複数のノンプレイヤキャラクタを生成することで、各ノンプレイヤキャラクタが画一的なものではなく、それぞれ個性を有するキャラクタである印象をプレイヤに抱かせることができる。詳細は後述するが、本実施形態においては、ゲームシステム1は、ゲーム中における適宜のタイミングで、ノンプレイヤキャラクタを自動的に(具体的には、プロシージャル技術によって)生成する。
【0108】
図16は、ノンプレイヤキャラクタを生成する処理の概要の一例を示す図である。図16に示すように、本実施形態におけるノンプレイヤキャラクタは、岩のような見た目の体に目と足とを有するキャラクタである。本実施形態においては、ノンプレイヤキャラクタの体を生成するために用いられる複数のパーツが用意される。図16(a)に示すように、本実施形態においては、3つのパーツ211~213が用意される。なお、用意されるパーツの数は2以上の任意の数でよい。
【0109】
図16(b)に示すように、ゲームシステム1は、上記複数のパーツ211~213を組み合わせることでノンプレイヤキャラクタの体を表すオブジェクト(体オブジェクトと呼ぶ)214を生成する。このとき、ゲームシステム1は、3つのパーツ211~213の位置および姿勢(傾きとも言う)をランダムに決定し、当該3つのパーツ211~213を合成することで1つの体オブジェクト214を生成する。そのため、体オブジェクト214は種々の形状となり得る。つまり、本実施形態においては、生成処理の度に異なる形状の体オブジェクト214が生成される。
【0110】
図17は、生成され得る体オブジェクトの例を示す図である。本実施形態においては、上記のように複数のパーツ211~213をランダムに組み合わせて体オブジェクト214を生成することによって、図17に示す例1~例3のように、形状が異なる複数のノンプレイヤキャラクタを生成することができる。
【0111】
図16(c)に示すように、ゲームシステム1は、生成された体オブジェクト214に目オブジェクト215と足オブジェクト216を追加する。これによって、ノンプレイヤキャラクタが完成する。なお、本実施形態においては、目オブジェクト215および足オブジェクト216は、予め定められた位置に設置される。
【0112】
本実施形態においては、上記パーツ211~213および体オブジェクト214はボクセルオブジェクトである。なお、本実施形態においては、ノンプレイヤキャラクタに含まれるボクセルオブジェクトであるパーツ211~213および体オブジェクト214は、上述した地形オブジェクトとは異なるボクセルに関するボクセルデータによって形状が規定される。すなわち、ノンプレイヤキャラクタに関するボクセル空間(「副ボクセル空間」と呼ぶ。)は、地形オブジェクトに関するボクセル空間(「主ボクセル空間」と呼ぶ。)とは別に設定されるボクセル空間である。副ボクセル空間は、ゲーム空間の一部(主ボクセル空間の一部とも言える)に設定され、ノンプレイヤキャラクタは、副ボクセル空間内に配置される。副ボクセル空間におけるボクセルの大きさおよび向き(すなわち、ボクセルの各辺の向き)は、主ボクセル空間におけるボクセルの大きさおよび向きと異なっていてもよい。例えば、主ボクセル空間におけるボクセルよりも一辺の長さが短いボクセルを規定する副ボクセル空間を設定することによって、ノンプレイヤキャラクタの形状を、主ボクセル空間に基づく地形オブジェクトよりも細かく表現することができる。また、ゲームシステム1は、ゲーム空間における副ボクセル空間の位置または姿勢を変更することで、ノンプレイヤキャラクタの位置または姿勢(より正確には、ゲーム空間における位置または姿勢)を変更する。複数のノンプレイヤキャラクタが生成される場合、ゲームシステム1は、ノンプレイヤキャラクタ毎に副ボクセル空間を設定する。
【0113】
なお、他の実施形態においては、体オブジェクト214に加えて目オブジェクト215および足オブジェクト216も(つまり、ノンプレイヤキャラクタの全体が)ボクセルオブジェクトであってもよい。また、他の実施形態においては、ノンプレイヤキャラクタは、上述した主ボクセル空間のボクセルデータによって形状が規定されるものであってもよい。また、他の実施形態においては、ノンプレイヤキャラクタはボクセルオブジェクトでなくてもよい。
【0114】
次に、図18図21を参照して、ノンプレイヤキャラクタの生成処理の詳細について説明する。図18は、3つのパーツの例を示す図である。上述のように、本実施形態においてはノンプレイヤキャラクタは岩のような見た目を有する。そのため、各パーツ211~213は、図18に示すような岩を模したオブジェクトである。
【0115】
なお、図18および図19においては、生成処理の概念をわかりやすくする目的で、メッシュが生成された各パーツ211~213を示しているが、本実施形態においては、各パーツ211~213についてはボクセルデータが用意されればよく、ゲームシステム1は各パーツ211~213についてメッシュを生成しなくてもよい。
【0116】
各パーツ211~213は、ノンプレイヤキャラクタに関する上記副ボクセル空間に配置される。この副ボクセル空間の座標系(図18に示すxyz座標系)のx軸方向は、水平方向であり、かつ、後述の前後方向に垂直な方向(すなわち、左右方向)である。x軸方向は、副ボクセル空間(換言すれば、ノンプレイヤキャラクタ)がゲーム空間において基準の姿勢で配置される場合には、ゲーム空間における水平方向に平行となる。上記座標系のy軸方向は、鉛直方向(上下方向とも言える。)であり、副ボクセル空間がゲーム空間において基準の姿勢で配置される場合には、ゲーム空間における鉛直方向に対応する。また、上記座標系のz軸方向は、ノンプレイヤキャラクタの前後方向に対応する。具体的には、z軸正方向側がノンプレイヤキャラクタの背面側となり、z軸負方向側がノンプレイヤキャラクタの正面側となる。本実施形態においては、ノンプレイヤキャラクタの生成は上記副ボクセル空間において行われ、副ボクセル空間がゲーム空間に設定されることでノンプレイヤキャラクタがゲーム空間に配置される。
【0117】
なお、図18においては、各パーツ211~213を見やすくする目的で、各パーツ211~213が互いに離れて配置される状態を示しているが、実際には後述する図19に示すように、各パーツ211~213は、それぞれの一部が互いに重複するように配置される。
【0118】
図18に示すように、本実施形態においては、各パーツ211~213はそれぞれ、平らな面部分221~223を有する。本実施形態においては、面部分221~223は平面である。ただし、上記「平らな」とは、厳密に平面であることを指す意味ではない。詳細は後述するが、パーツ211~213に基づいて体オブジェクト214が生成された後、目オブジェクト215は、面部分221~223によって形成される面に配置される。このとき、上記面に配置された目オブジェクト215の一部または全部が体オブジェクト214に隠れて見えなくなるといった不都合が生じない程度であれば、平らな面部分221~223は、その程度の小さな凹凸を有していてもよい。
【0119】
本実施形態においては、各パーツ211~213には、当該パーツの位置を示す位置パラメータと、回転(姿勢とも言える)を示す回転パラメータと、大きさを示すスケールパラメータとが設定されている。位置パラメータは、副ボクセル空間における位置座標を示すパラメータであり、回転パラメータは、副ボクセル空間において、基準となる姿勢に対する回転角度を示すパラメータであり、スケールパラメータは、副ボクセル空間において、基準に対する大きさの比率(例えば、基準となる大きさを1としたときのパーツの大きさ)を示すパラメータである。なお、スケールパラメータは、上記比率を軸毎に示すパラメータであってもよい。
【0120】
本実施形態においては、ゲームシステム1は、パーツ毎に、上記の各パラメータ(すなわち、位置パラメータ、回転パラメータ、および、スケールパラメータ)の組をランダムに決定する。なお、本明細書において「ランダムに決定する」とは、決定結果(すなわち、各パラメータの組)が等しい確率で得られる方法に限らず、例えば乱数を用いて複数回の試行による結果が毎回同じにならないように決定される(つまり、ランダム性を有する)任意の方法を含む意味である。例えば、複数のノンプレイヤキャラクタを生成する場合において、ゲームシステム1は、生成される各ノンプレイヤキャラクタの形状が似たような形状となることを避けるべく、各ノンプレイヤキャラクタ間で上記各パラメータの値に偏りが生じないように、当該各パラメータの組をランダムに決定してもよい。
【0121】
本実施形態においては、ゲームシステム1は、各面部分221~223が、基準位置225aおよび225bを含み前後方向に垂直な基準平面226内に位置し、かつ、正面側(すなわち、z軸負方向側)を向くように、上記各パラメータの組をランダムに決定する。ここで、基準位置225aおよび225bは、副ボクセル空間内において予め定められた位置であり、目オブジェクト215が配置される位置である。具体的には、基準位置225aに右目の目オブジェクト215aが配置され、基準位置225bに左目の目オブジェクト215bが配置される(図21参照)。本実施形態においては、基準位置225aおよび225bは、前後方向に関して同じ位置に設定される(つまり、基準位置225aおよび225bのz座標値は同じ値である。)。
【0122】
なお、基準位置の組(上記の例では、基準位置225aおよび225b)は、上記各パラメータを決定する際に1組に定められていればよく、ゲームシステム1は、用意された複数の候補のうちから1つの組を選出した後で、選出された基準位置の組に応じて上記各パラメータを決定するようにしてもよい。これによれば、目オブジェクト215の位置に関するバリエーションを増やすことができ、ノンプレイヤキャラクタの見た目のバリエーションをより増やすことができる。なお、複数の候補から基準位置の1つの組を選出する方法は任意である。例えば、ゲームシステム1は、ランダムに1つの組を選出してもよいし、定められたルールに従って1つの組を選出してもよい。
【0123】
本実施形態においては、位置パラメータは、左右方向(すなわち、x軸方向)および上下方向(すなわち、y軸方向)については可変であり、前後方向(すなわち、z軸方向)については固定値となるように、ランダムに決定される。この固定値は、具体的には、位置パラメータが示す位置がパーツの面部分上の位置に対応する場合には、上記基準位置225aおよび225bの前後方向に関する座標値(すなわち、z軸座標値)と等しい値に設定される。このように、各パーツ211~213は、左右方向および上下方向については当該位置パラメータを決定する度に変化し得るが、前後方向については固定的に配置される(図18に示す破線矢印参照)。
【0124】
例えば、ゲームシステム1は、位置パラメータについて初期座標を設定しておき、左右方向および上下方向について初期座標からの変化量をランダムに決定することで、位置パラメータを決定する。なお、初期座標は、パーツ211~213毎に異なる値に設定されてもよい。また、位置パラメータをランダムに決定する際において位置パラメータを初期座標から変化させ得る範囲が設定されてもよい。例えば、ゲームシステム1は、各パーツ211~213の面部分221~223が基準位置225aおよび225bを含む範囲内で位置パラメータを初期座標から変化させるようにしてもよい。これによれば、面部分221~223が(基準平面226内の位置ではあるものの)基準位置225aおよび225bを含まない位置に配置されることを防止することができる。
【0125】
また、回転パラメータは、前後方向の軸回りの角度については可変であり、左右方向の軸および上下方向の軸回りの角度については固定値となるように、ランダムに決定される。この固定値は、具体的には、各面部分221~223が、前後方向に垂直となり、かつ、正面側を向くような値に設定される。このように、各パーツ211~213は、前後方向の軸回りの角度については当該回転パラメータを決定する度に変化し得るが、左右方向の軸および上下方向の軸回りには固定の角度となるように配置される(図18に示す点線矢印参照)。
【0126】
例えば、ゲームシステム1は、回転パラメータについて初期角度を設定しておき、前後方向の軸回りの角度について初期角度からの変化量をランダムに決定することで、回転パラメータを決定する。なお、初期角度は、パーツ211~213毎に異なる値に設定されてもよい。
【0127】
また、本実施形態においては、スケールパラメータは、予め定められた固定値に設定される。ただし、他の実施形態においては、ゲームシステム1は、スケールパラメータについても変化し得るようにランダムに決定してもよい。このとき、ゲームシステム1は、各面部分221~223が向く方向(すなわち、正面方向)と、前後方向に関する位置とが変化しないように、各パラメータを調整しつつスケールパラメータを変化させてもよい。例えば、スケールパラメータが変化することによってパーツの面部分の位置が前後方向に変化するおそれがあるので、ゲームシステム1は、スケールパラメータの変化による面部分の位置の変化を相殺するように位置パラメータを変化させることで、前後方向に関して面部分の位置が結果的に変化しないようにしてもよい。なお、左右方向および上下方向については、上記のようにスケールパラメータを変化させる場合であっても位置パラメータの調整は不要であるので、左右方向および上下方向については位置パラメータを変化させやすいと言うことができる。
【0128】
上記のように、本実施形態においては、ゲームシステム1は、上記各パラメータの少なくとも1つを確率に基づいて(例えば、乱数を用いて)決定する。これによれば、多様な形状を有するノンプレイヤキャラクタを生成することができる。なお、確率に基づいてランダム性を有するように決定されるパラメータは、上記各パラメータのうち1種類のパラメータであってもよいし、2種類以上のパラメータであってもよい。
【0129】
図19は、上記のようにして決定された各パラメータに基づいて配置される各パーツの例を示す図である。各パーツ211~213は、基準位置225aおよび225bを含むように配置されるので、図19に示すように、少なくとも他の1つのパーツと一部が重複するように配置される。ただし、他の実施形態においては、各パーツ211~213は、他のパーツと重複しないように配置されてもよい。また、上述のように、各面部分221~223が向く方向と、前後方向に関する位置とが固定的に設定されるので、各面部分221~223は、基準位置225aおよび225bを含む基準平面226内に位置するように配置される。
【0130】
各パーツ211~213を配置すると、ゲームシステム1は、各パーツ211~213を組み合わせることによって体オブジェクト214を生成する。図20は、図19に示す各パーツ211~213に基づいて生成される体オブジェクトの一例を示す図である。図20に示すように、ゲームシステム1は、各パーツ211~213を一体とした形状となるように(具体的には、各パーツ211~213の表面のうち他のパーツと重複しない部分の表面が、体オブジェクト214の表面となるように)、体オブジェクト214を生成する。体オブジェクト214は、各パーツ211~213の各面部分221~223によって形成される面と一致し、基準位置225aおよび225bを含むように位置する面部分224を有する。
【0131】
上述のように、本実施形態においては、複数のパーツ211~213と、プレイヤキャラクタのうちの体オブジェクト214とは、ボクセルデータに基づいて生成されるボクセルオブジェクトである。そのため、例えば、ゲームシステム1は、各パーツ211~213の各ボクセルデータにおける密度をボクセル毎に加算することで、体オブジェクト214のボクセルデータを得ることができる。このように、本実施形態においては、パーツ211~213を合成することで体オブジェクト214を得る処理を、ボクセルデータを用いて容易に行うことができる。また、ボクセルデータを用いて体オブジェクト214を生成する場合には、生成される体オブジェクト214のメッシュの頂点数が生成処理毎に変化し得るので、形状のバリエーションに富んだ体オブジェクトを生成しやすくなる。なお、他の実施形態においては、上記パーツ211~213および体オブジェクト214はボクセルオブジェクトでなくてもよく、プレイヤキャラクタはボクセルオブジェクトでなくてもよい。
【0132】
なお、各パーツ211~213を組み合わせて体オブジェクト214を生成するための具体的な方法は任意である。例えば、ゲームシステム1は、メッシュで構成される各パーツを組み合わせることで、メッシュで構成される体オブジェクトを生成するようにしてもよい。また、各パーツ211~213により規定される形状と、体オブジェクト214の形状とは厳密に一致しなくてもよい。具体的には、各パーツ211~213の表面のうち他のパーツと重複しない部分の表面と、体オブジェクト214の表面とが厳密に一致しなくてもよい。例えば、ゲームシステム1は、あるパーツと他のパーツとの境界部分について角が滑らかになるように形状を変化させて体オブジェクトを生成するようにしてもよい。
【0133】
なお、本実施形態においては、各パーツ211~213に設定されるマテリアル(具体的には、性質およびテクスチャ)は同じであるとする。ただし、他の実施形態においては、各パーツ211~213に設定されるマテリアルは任意であり、パーツ毎に異なるマテリアルが設定されてもよい。このとき、体オブジェクト214については、元になったパーツに対応する部分毎に異なるマテリアルが設定されてもよいし、各パーツのマテリアルに基づくマテリアル(例えば、各パーツのマテリアルを合成したような性質のマテリアル)が設定されてもよいし、いずれかの1つのパーツのマテリアルが設定されてもよい。
【0134】
図21は、生成されたノンプレイヤキャラクタの一例を示す図である。図21に示すように、ゲームシステム1は、生成された体オブジェクト214に目オブジェクト215を追加する。本実施形態においては、2つの目オブジェクトのうち右目の目オブジェクト215aが基準位置225aに配置され、左目の目オブジェクト215bが基準位置225bに配置される。上述のように、体オブジェクト214の面部分224は基準位置225aおよび225bを含む位置に配置される。したがって、図21に示すように、目オブジェクト215は面部分224の表面に配置される。
【0135】
なお、基準位置は、当該基準位置に配置されるオブジェクト(ここでは、目オブジェクト215)のいずれかの部分が配置される位置であればよく、当該オブジェクトの中心位置に限らない。つまり、目オブジェクト215は、基準位置にその一部が位置するように配置されればよく、他の一部が体オブジェクト214に埋もれて配置されてもよい。
【0136】
以上のように、本実施形態においては、ゲームシステム1は、基準位置225aおよび225bがノンプレイヤキャラクタの表面に位置するように各パラメータ(すなわち、位置パラメータ、回転パラメータ、および、スケールパラメータ)を決定する。これによって、目オブジェクト215が体オブジェクト214に埋もれて見えなくなったり、あるいは、体オブジェクト214から離れて配置されたりすることによってノンプレイヤキャラクタが不自然な見た目となる可能性を低減することができる。なお、他の実施形態においては、上記各パラメータは、基準位置がノンプレイヤキャラクタの表面から離れて配置される(例えば、ノンプレイヤキャラクタの表面から前方に少し離れた位置に基準位置が配置される)ような値に決定されてもよい。
【0137】
上記のように、本実施形態においては、3次元の仮想空間において、複数のパーツ211~213はそれぞれ、平らな面部分221~223を有する。ゲームシステム1は、基準位置225aおよび225bを含む平面(本実施形態では、基準平面226)と複数のパーツ211~213の各面部分221~223とが同一面内に位置するように位置パラメータおよびスケールパラメータを決定する。また、ゲームシステム1は、面部分221~223が基準方向(本実施形態では、z軸負方向)に垂直で当該基準方向側に面するように回転パラメータを決定する。上記によれば、各パーツ211~213の面部分に基づいて形成される面(すなわち、体オブジェクト214の面部分224)に目オブジェクト215を配置することができるので、ノンプレイヤキャラクタが不自然な見た目となる可能性を低減することができる。なお、他の実施形態においては、パーツは平らな面部分を複数有していてもよく、このとき、ゲームシステム1は、複数の面部分のいずれか1つが基準方向に垂直で当該基準方向側に面するように、当該パーツについての回転パラメータを決定してもよい。
【0138】
また、上記のように、本実施形態においては、ゲームシステム1は、複数のパーツ211~213の各々について、ノンプレイヤキャラクタの基準方向側において基準位置が体オブジェクトにより遮蔽されないように予め設定された範囲内で、各パラメータを決定する。具体的には、位置パラメータは、パーツの面部分が基準位置を含む範囲内で決定され、回転パラメータは、左右方向の軸および上下方向の軸回りについては固定値となるように決定される。これによって、ノンプレイヤキャラクタが不自然な見た目となる可能性を低減することができる。なお、他の実施形態においては、上記「予め設定された範囲」の具体的な内容は、上記実施形態の例に限らず、他の範囲であってもよい。例えば、他の実施形態においては、ゲームシステム1は、回転パラメータのとり得る値を、左右方向の軸または上下方向の軸回りについても可変な範囲としつつ、当該範囲内における回転パラメータの値に応じて、基準位置が体オブジェクトにより遮蔽されないように、他のパラメータ(すなわち、位置パラメータおよびスケールパラメータ)の範囲を調整するようにしてもよい。
【0139】
また、ゲームシステム1は、体オブジェクト214に足オブジェクト216を追加する。本実施形態においては、足オブジェクト216は、予め定められた位置に配置される。なお、本実施形態においては、足オブジェクト216については目オブジェクト215とは異なり、足オブジェクト216の位置に関して体オブジェクト214の生成に制限を設けないものとする。そのため、足オブジェクト216の一部が体オブジェクト214に埋まったり、あるいは、足オブジェクト216が体オブジェクト214から離れたりして配置されるケースもあり得る。なお、本実施形態におけるノンプレイヤキャラクタ211は体(顔とも言える)が全体の大半を占める形態であるので、体オブジェクト214における目オブジェクト215の位置が、ノンプレイヤキャラクタ211の見た目の不自然さに影響を与えると考えられる。これに対して、足オブジェクト216については上記のようなケースでもノンプレイヤキャラクタの見た目の不自然さは(目オブジェクト215の場合と比べて)小さいと考えられる。そのため、本実施形態においては、体オブジェクト214の形状にかかわらず、足オブジェクト216を固定的に配置するものとする。
【0140】
なお、他の実施形態においては、ゲームシステム1は、体オブジェクト214によって一部が隠されないように、足オブジェクト216を配置するようにしてもよい。例えば、ゲームシステム1は、定められた基準位置に足オブジェクト216を配置した状態では、足オブジェクト216の一部が体オブジェクト214に埋まったり、足オブジェクト216が体オブジェクト214から離れたりする場合には、足オブジェクト216における少なくとも一方の足の上端が体オブジェクト214に接するように、当該基準位置から上下方向(すなわち、y軸方向)に足オブジェクト216を移動するようにしてもよい。
【0141】
上記のように、本実施形態においては、ノンプレイヤキャラクタは、足オブジェクト216を有するが、ノンプレイヤキャラクタの形態は任意である。例えば、他の実施形態においては、ノンプレイヤキャラクタは、足オブジェクト216を有していなくてもよいし、足オブジェクト216に加えて(または、足オブジェクト216に代えて)手オブジェクトを有していてもよい。
【0142】
上記のようにして生成されたノンプレイヤキャラクタは、ゲーム空間に配置される。本実施形態においては、ゲームシステム1は、ノンプレイヤキャラクタの副ボクセル空間をゲーム空間に配置することによってノンプレイヤキャラクタをゲーム空間に配置する。
【0143】
本実施形態においては、ノンプレイヤキャラクタの生成処理は、ゲーム中において生成条件が満たされた場合に実行される。本実施形態においては、生成条件は、ゲーム中において新たなゲームステージが生成される(例えば、プレイヤキャラクタが新たなゲームステージへと移動したことに応じて、移動先である新たなゲームステージのデータがDRAM85に読み込まれる)ことである。生成条件が満たされる場合、ゲームシステム1は、当該新たなステージに登場するノンプレイヤキャラクタを生成するための生成処理を実行する。なお、上記生成条件は、ゲーム中に満たされ得る任意の条件であってよい。例えば、ゲームシステム1は、ノンプレイヤキャラクタが表示されるタイミング(例えば、仮想カメラからノンプレイヤキャラクタまでの距離が所定距離内となったことに応じてノンプレイヤキャラクタを描画するタイミング)となったことを生成条件としてもよい。
【0144】
以上より、本実施形態においては、ゲームシステム1は、ゲームの実行中に各パラメータ(すなわち、位置パラメータ、回転パラメータ、および、スケールパラメータ)を決定し、決定された各パラメータに基づくノンプレイヤキャラクタをゲームの実行中に仮想空間(すなわち、ゲーム空間)に配置する。これによれば、ゲームシステム1は、ゲームを実行する度に異なる形状のノンプレイヤキャラクタを生成することができる。なお、上記「ゲームの実行中」とは、ゲームの開始時を含む意味である。つまり、ゲームシステム1は、ゲームの開始時に上記生成処理を実行するようにしてもよい。また、他の実施形態においては、ゲームの実行中ではないタイミングで上記生成処理が実行されてもよい。
【0145】
ゲームシステム1は、ゲーム空間に配置されたノンプレイヤキャラクタの動作を制御する。本実施形態においては、ゲームシステム1は、ノンプレイヤキャラクタの向きをゲーム状況に応じて変化させる。具体的には、ゲームシステム1は、ノンプレイヤキャラクタの基準方向(すなわち、正面方向)がノンプレイヤキャラクタからプレイヤキャラクタへの方向を向くように当該ノンプレイヤキャラクタを制御する。これによって、プレイヤキャラクタから見てノンプレイヤキャラクタが正面を向くように動作させることができる。なお、他の実施形態においては、ゲームシステム1は、ノンプレイヤキャラクタの動作の制御を行わなくてもよく、ノンプレイヤキャラクタは動作を行わないオブジェクト(つまり、ゲーム空間に単に配置されるだけのオブジェクト)であってもよい。
【0146】
また、本実施形態においては、ノンプレイヤキャラクタ(具体的には、体オブジェクト214)はボクセルオブジェクトであるので、上述の地形オブジェクトと同様、ゲーム中においてノンプレイヤキャラクタは消去(破壊とも言う)され得る。具体的には、ゲームシステム1は、ノンプレイヤキャラクタに対して何らかの衝撃が加えられた場合、体オブジェクト214のボクセルデータ(より具体的には、上述の密度データ)を更新することによって体オブジェクト214の一部を消去する。例えば、ゲームシステム1は、プレイヤキャラクタによる動作に応じて(例えば、プレイヤキャラクタがノンプレイヤキャラクタをパンチしたり、ノンプレイヤキャラクタに他のオブジェクトをぶつけたりする動作に応じて)、ノンプレイヤキャラクタの一部を消去する。これによれば、プレイヤは、プレイヤキャラクタを操作することでノンプレイヤキャラクタの形状を変化させることができる。本実施形態においては、ノンプレイヤキャラクタは様々な形状をとり得ることから、プレイヤキャラクタによる破壊動作が同じであっても、破壊されたノンプレイヤキャラクタは種々の形状をとり得るので、ノンプレイヤキャラクタを破壊する操作の興趣性をより向上することができる。
【0147】
上記のようにノンプレイヤキャラクタ(具体的には、体オブジェクト214)の一部が消去された場合、ゲームシステム1は、ノンプレイヤキャラクタの形状を時間経過に応じて元の形状に戻す。具体的には、ゲームシステム1は、体オブジェクト214のボクセルデータ(より具体的には、密度データ)を、更新前の値に戻るように時間経過に応じて次第に変化させる。したがって、ノンプレイヤキャラクタは、プレイヤキャラクタによる動作によって破壊された場合であっても、次第に元の形状に戻る。上記によれば、プレイヤは、ノンプレイヤキャラクタを繰り返し変形させて楽しむことができる。
【0148】
なお、上述の地形オブジェクトと同様に、ノンプレイヤキャラクタに他のオブジェクトを追加することが可能であってもよい。具体的には、ノンプレイヤキャラクタの体オブジェクト214に所定のオブジェクト(例えば、体オブジェクト214と同じマテリアルである岩のオブジェクト)が接触した場合、ゲームシステム1は、当該オブジェクトを体オブジェクト214と一体化する。つまり、上記の場合、ゲームシステム1は、体オブジェクト214の元の形状に当該オブジェクトが付いた形状を、新たな体オブジェクト214の形状とする。また、ノンプレイヤキャラクタに他のオブジェクトが追加された場合も消去された場合と同様、ゲームシステム1は、ノンプレイヤキャラクタの形状を時間経過に応じて元の形状に戻すようにしてもよい。
【0149】
[3.ゲームシステムにおける処理の具体例]
次に、図22図24を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0150】
図22は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。図22に示すように、ゲームシステム1は、ゲームプログラム、パーツデータ、および、ノンプレイヤキャラクタデータを記憶する。ゲームプログラムおよびパーツデータは、ゲーム処理の実行前に予めゲームシステム1において記憶されるデータである。ゲームプログラムおよびパーツデータは、例えば、本体装置2のスロット23に装着された記憶媒体に記憶される。また、ノンプレイヤキャラクタデータは、ゲーム処理の実行中に生成されるデータである。ノンプレイヤキャラクタデータは、例えば、本体装置2のDRAM85に記憶される。
【0151】
ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、図23に示すゲーム処理)を実行するためのゲームプログラムである。
【0152】
パーツデータは、上述の各パーツ211~213に関するデータである。具体的には、パーツデータは、各パーツ211~213の形状を示すデータを含む。
【0153】
ノンプレイヤキャラクタデータは、ノンプレイヤキャラクタに関するデータである。ノンプレイヤキャラクタデータは、ボクセル空間データ、ボクセルオブジェクトデータ、メッシュデータ、および、部分オブジェクトデータを含む。本実施形態においては、ノンプレイヤキャラクタデータはノンプレイヤキャラクタ毎に生成されて記憶される。なお、ノンプレイヤキャラクタデータは、上記のデータの他に、ノンプレイヤキャラクタの体勢や状態を示すデータを含んでいてもよい。
【0154】
ボクセル空間データは、ノンプレイヤキャラクタに関する副ボクセル空間を規定するデータである。具体的には、ボクセル空間データは、副ボクセル空間におけるボクセルの1辺の長さを示すデータを含む。また、ボクセル空間データは、ゲーム空間における副ボクセル空間の位置、姿勢、および、大きさを示すデータを含む。
【0155】
ボクセルオブジェクトデータは、ノンプレイヤキャラクタに関するボクセルデータ、すなわち、上記副ボクセル空間におけるボクセル毎のボクセルデータを含む。ボクセルオブジェクトデータは、副ボクセル空間におけるノンプレイヤキャラクタの形状を規定するデータである。
【0156】
メッシュデータは、ノンプレイヤキャラクタに設定されるメッシュを示すデータである。メッシュデータは、例えば、メッシュにおける各頂点の位置を示すデータを含む。
【0157】
部分オブジェクトデータは、ノンプレイヤキャラクタのうち、ボクセルオブジェクト以外の部分である部分オブジェクト(本実施形態においては、目オブジェクトおよび足オブジェクト)に関するデータである。具体的には、部分オブジェクトデータは、部分オブジェクトの形状、位置、および、姿勢を示すデータを含む。
【0158】
また、ゲームシステム1は、図22に示すデータの他に、ゲーム空間に設定される主ボクセル空間を規定するデータや、主ボクセル空間に配置されるボクセルオブジェクト(ここでは、地形オブジェクト)を示すデータや、当該ボクセルオブジェクトに設定されるメッシュ(すなわち、地形オブジェクトのメッシュ)を示すデータ等を記憶する。
【0159】
図23は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。図23に示すゲーム処理は、例えば、上記ゲームプログラムの実行中においてゲームを開始する指示がプレイヤによって行われたことに応じて開始される。
【0160】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、図23に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、図23に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、図23に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0161】
また、プロセッサ81は、図23に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0162】
図23に示すステップS1において、プロセッサ81は、ゲーム空間にボクセル空間を設定する。具体的には、プロセッサ81は、上記ボクセル空間データを取得してDRAM85に記憶する(換言すれば、書き込む)。なお、以降のゲーム処理において、プロセッサ81は、ボクセルオブジェクトに関する処理(例えば、ステップS2の処理等)を実行する際にボクセル空間データを参照する場合がある。この場合、プロセッサ81は、DRAM85に記憶されたボクセル空間データを参照する。ステップS1の次にステップS2の処理が実行される。
【0163】
ステップS2において、プロセッサ81は、ゲーム空間に、主ボクセル空間におけるボクセルオブジェクト(具体的には、地形オブジェクト)を設定する。具体的には、プロセッサ81は、初期状態における地形オブジェクトの配置を示すボクセルデータを取得し、取得したボクセルデータの一部または全部をDRAM85に記憶する(換言すれば、書き込む)。なお、初期状態における地形オブジェクトの配置を示すボクセルデータは、例えば、本体装置2のスロット23に装着された記憶媒体に記憶されている。ステップS2の次にステップS3の処理が実行される。
【0164】
ステップS3において、プロセッサ81は、ノンプレイヤキャラクタを生成するための上述の生成条件が満たされたか否かを判定する。例えば、ゲームが開始された場合、あるいは、プレイヤキャラクタが新たなゲームステージへと移動した場合に、生成条件が満たされたと判定される。ステップS3の判定結果が肯定である場合、ステップS4の処理が実行される。一方、ステップS3の判定結果が否定である場合、ステップS4の処理がスキップされてステップS5の処理が実行される。
【0165】
ステップS4において、プロセッサ81は、ノンプレイヤキャラクタを生成するためのキャラクタ生成処理を実行する。以下、図24を参照して、キャラクタ生成処理の詳細な流れについて説明する。
【0166】
図24は、図23に示すステップS4のキャラクタ生成処理の詳細な流れの一例を示すサブフローチャートである。キャラクタ生成処理においては、まずステップS11において、プロセッサ81は、ノンプレイヤキャラクタの生成に用いる複数のパーツを副ボクセル空間に配置する(図19参照)。具体的には、プロセッサ81は、上述の“[2-3.ボクセルオブジェクトの生成]”で述べた方法に従って、各パラメータ(すなわち、位置パラメータ、回転パラメータ、および、スケールパラメータ)の組をランダムに決定する。さらに、プロセッサ81は、DRAM85に記憶されているパーツデータを読み出し、当該パーツデータと、決定された各パラメータとに基づいて副ボクセル空間に配置された各パーツを示す各ボクセルデータを算出する。ステップS11の次にステップS12の処理が実行される。
【0167】
ステップS12において、プロセッサ81は、副ボクセル空間に配置されたパーツに基づいてノンプレイヤキャラクタの体オブジェクトを生成する(図20参照)。具体的には、プロセッサ81は、上述の“[2-3.ボクセルオブジェクトの生成]”で述べた方法に従って、ステップS11で算出された各ボクセルデータに基づいて体オブジェクトのボクセルデータを算出する。算出されたボクセルデータは、ノンプレイヤキャラクタに関する上記ボクセルオブジェクトデータとしてDRAM85に記憶される。ステップS12の次にステップS13の処理が実行される。
【0168】
ステップS13において、プロセッサ81は、ステップS12で生成された体オブジェクトに目オブジェクトを追加する。具体的には、プロセッサ81は、上述の基準位置に目オブジェクトを配置する。このとき、ノンプレイヤキャラクタに関してDRAM85に記憶される部分オブジェクトデータは、追加された目オブジェクトに関するデータを含むように更新される。ステップS13の次にステップS14の処理が実行される。
【0169】
ステップS14において、プロセッサ81は、ステップS12で生成された体オブジェクトに足オブジェクトを追加する。具体的には、プロセッサ81は、予め定められた位置に足オブジェクトを配置する。このとき、ノンプレイヤキャラクタに関してDRAM85に記憶される部分オブジェクトデータは、追加された足オブジェクトに関するデータを含むように更新される。ステップS14の次にステップS15の処理が実行される。
【0170】
ステップS15において、プロセッサ81は、ステップS11~S14の処理によって生成されたノンプレイヤキャラクタをゲーム空間に配置する。具体的には、当該ノンプレイヤキャラクタの副ボクセル空間をゲーム空間に設定することで、当該ノンプレイヤキャラクタをゲーム空間に配置する。このとき、ノンプレイヤキャラクタに関してDRAM85に記憶されるボクセル空間データは、当該副ボクセル空間の、ゲーム空間における位置、姿勢、および、大きさを示すデータを含むように更新される。ステップS15の次にステップS16の処理が実行される。
【0171】
上記ステップS11~S15の処理によってDRAM85に記憶されるボクセル空間データおよびボクセルオブジェクトデータによって、ゲーム空間におけるノンプレイヤキャラクタの位置、姿勢、および、形状が規定されたこととなる。なお、後述するステップS8の処理によって、当該ボクセルオブジェクトデータに基づいてノンプレイヤキャラクタのメッシュが生成される。
【0172】
ステップS16において、プロセッサ81は、上記ステップS3において満たされたと判定された生成条件に関して生成すべき全てのノンプレイヤキャラクタが生成されたか否かを判定する。例えば、新たなゲームステージが生成されることに応じて生成条件が満たされる場合は、プロセッサ81は、当該新たなゲームステージに登場するノンプレイヤキャラクタのうち、本キャラクタ生成処理で生成される全てのノンプレイヤキャラクタが生成されたか否かを判定する。ステップS16の判定結果が否定である場合、ステップS11の処理が再度実行される。以降、ステップS16において全てのノンプレイヤキャラクタが生成されたと判定されるまで、ステップS11~S16の一連の処理が繰り返し実行される。一方、ステップS16の判定結果が肯定である場合、プロセッサ81は、図24に示すキャラクタ生成処理を終了する。ステップS4のキャラクタ生成処理の次に、ステップS5の処理が実行される。
【0173】
ステップS5において、プロセッサ81は、ゲーム空間に登場する各種キャラクタ(具体的には、プレイヤキャラクタ、および、上記ノンプレイヤキャラクタ)の動作を制御する。プロセッサ81は、例えば、各コントローラ3または4から受信した操作データに基づいてプレイヤオブジェクトの動作を制御する。また、プロセッサ81は、プレイヤキャラクタの方を向くようにノンプレイヤキャラクタを制御する。ステップS5の次にステップS6の処理が実行される。
【0174】
ステップS6において、プロセッサ81は、上記ステップS5の処理に応じて各種キャラクタを動作させた結果、ノンプレイヤキャラクタについて変化イベントが発生したか否かを判定する。変化イベントとは、ノンプレイヤキャラクタを変化させる(例えば、一部を消去させたり、他のオブジェクトを追加したり、変化したノンプレイヤキャラクタを元に戻したりする)ゲームイベントである。例えば、ノンプレイヤキャラクタに対して何らかの衝撃が加えられた場合、プロセッサ81は、当該ノンプレイヤキャラクタについて変化イベントが発生したと判断する。ステップS6の判定結果が肯定である場合、ステップS7の処理が実行される。一方、ステップS6の判定結果が否定である場合、ステップS7の処理がスキップされてステップS8の処理が実行される。
【0175】
ステップS7において、プロセッサ81は、変化イベントが発生したノンプレイヤキャラクタを当該変化イベントに応じて変化させる。すなわち、プロセッサ81は、ノンプレイヤキャラクタの一部を消去したり、ノンプレイヤキャラクタに他のオブジェクトを追加したり、あるいは、これらの消去または追加によって変形したノンプレイヤキャラクタを元の形状に戻したりする。本実施形態においては、プロセッサ81は、当該変化イベントが発生したノンプレイヤキャラクタに関するボクセルデータの少なくともいくつかについて、ボクセルデータが示す密度を変更する。これによって、当該変化イベントが発生したノンプレイヤキャラクタが変形することとなる。また、プロセッサ81は、変更後の密度を示すように、DRAM85に記憶されているボクセルオブジェクトデータを更新する。ステップS7の次にステップS8の処理が実行される。
【0176】
なお、上記ステップS6およびS7において、プロセッサ81は、ノンプレイヤキャラクタ以外の他のボクセルオブジェクト(例えば、地形オブジェクト)についてもノンプレイヤキャラクタと同様に、変化イベントが発生したか否かを判定し、他のボクセルオブジェクトについて変化イベントが発生したと判定される場合には、当該他のボクセルオブジェクトを変化させるようにしてもよい。
【0177】
ステップS8において、プロセッサ81は、ボクセルオブジェクトについてメッシュを生成する。ボクセルオブジェクトについてのメッシュは、上記“[2-2.メッシュ]”で述べた方法に従って生成される。なお、ステップS8においては、プロセッサ81は、前回までのステップS8の処理において生成されているメッシュについて再度生成する必要はなく、ステップS4において新たに生成されたノンプレイヤキャラクタのボクセルデータ(すなわち、図22に示すボクセルオブジェクトデータ)、および、ステップS7において更新されたボクセルデータについてメッシュを再度生成するようにしてもよい。ステップS8の処理によって、ボクセルオブジェクトのメッシュをゲーム中において動的に変化させることができる。なお、プロセッサ81は、DRAM85に記憶されているメッシュデータを、新たに生成されたメッシュを示す内容に更新する。ステップS8の次にステップS9の処理が実行される。
【0178】
ステップS9において、プロセッサ81は、ゲーム空間を表すゲーム画像を生成して表示装置に表示させる。具体的には、プロセッサ81は、ボクセルオブジェクトおよびその他のオブジェクトを含むゲーム空間を表すゲーム画像を生成する。なお、ボクセルオブジェクトの画像は、DRAM85に記憶されているボクセルオブジェクトデータおよびメッシュデータを用いて、上記“[2-2.メッシュ]”で述べた方法に従って生成される。プロセッサ81は、生成されたゲーム画像を表示装置に表示させる。なお、ゲーム中において、ステップS9の処理は、所定時間(例えば、1フレーム時間)に1回の割合で繰り返し実行される。ステップS9の次にステップS10の処理が実行される。
【0179】
ステップS10において、プロセッサ81は、ゲームを終了するか否かを判定する。例えば、プロセッサ81は、ゲームを終了する指示がユーザによって行われたか否かを判定する。ステップS10の判定結果が否定である場合、ステップS3の処理が再度実行される。以降、ステップS10においてゲームを終了すると判定されるまで、ステップS3~S10の一連の処理が繰り返し実行される。一方、ステップS10の判定結果が肯定である場合、プロセッサ81は、図23に示すゲーム処理を終了する。
【0180】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成である。
・複数のパーツ(具体例としては、図16等に示すパーツ211~213)の各々について、位置、回転、および、スケールの各パラメータを決定するパラメータ決定手段(ステップS11)
・各パラメータに基づいて仮想空間において配置される複数のパーツを組み合わせた形状を有する第1部分(具体例としては、体オブジェクト214)と、当該仮想空間における基準位置に配置され、当該第1部分と異なる部分である第2部分(具体例としては、目オブジェクト215)とを有する合成オブジェクト(具体例としては、ノンプレイヤキャラクタ)を生成するオブジェクト生成手段(ステップS12,S13)
上記パラメータ決定手段は、合成オブジェクトの基準方向側(具体的としては、正面方向側)において基準位置が第1部分により遮蔽されないように、各パラメータを決定する。
【0181】
上記の構成によれば、上記各パラメータを様々な値に変化させたパーツを用いて第1部分を生成することで、様々な形状を有する合成オブジェクトを生成することができる。また、上記の構成によれば、基準位置が第1部分により遮蔽されないように各パラメータが決定されるので、例えば第2部分が第1部分によって隠される等の不自然な形態の合成オブジェクトが生成される可能性を低減することができる。
【0182】
なお、「基準位置が第1部分により遮蔽される」とは、第1部分の内部に基準位置が位置することを指し、第1部分の表面に基準位置が位置することは含まない意味である。また、基準位置に配置される第2部分は、その全体が第1部分により遮蔽されないように配置される必要はなく、少なくとも一部が第1部分により遮蔽されないように配置されればよい。なお、例えば、第1部分が、底面部分および側面部分を有し上側が開口した箱状の形状である場合において、箱の側面部分における内側の面上に基準位置が位置する状態では、正面方向(この例では、正面方向が基準方向であるとする)から見ると基準位置は第1部分により遮蔽されていると言うこともできる。そのため、上記の場合、ゲームシステム1は、第1部分のうち、箱の前側の側面部分における外側の面上に基準位置が位置するように上記各パラメータを設定する。
【0183】
上記実施形態においては、ゲームシステム1は、予め定められた制限下で各パラメータを決定することで、基準位置が第1部分により遮蔽されることがないようにしたが、各パラメータの決定方法はこれに限らない。例えば、他の実施形態においては、ゲームシステム1は、合成オブジェクトの基準方向側において基準位置が第1部分により遮蔽されないような各パラメータが決定されるまで、当該各パラメータを確率に基づいて決定する処理を繰り返すようにしてもよい。これによっても上記実施形態と同様の効果を奏することができる。
【0184】
上記実施形態においては、合成オブジェクトは、プレイヤによって操作されないノンプレイヤキャラクタであった。他の実施形態においては、合成オブジェクトは、ゲームに登場する任意のオブジェクトであってよく、プレイヤキャラクタであってもよいし、ゲーム空間に配置され、動作を行わないオブジェクトであってもよい。例えば、合成オブジェクトは、地形オブジェクトであってもよいし、岩オブジェクトや木オブジェクトであってもよい。
【0185】
上記実施形態においては、基準位置に配置されるオブジェクト(すなわち、上記第2部分)は、ノンプレイヤキャラクタの目を表す目オブジェクトであった。ここで、他の実施形態においては、基準位置に配置されるオブジェクトはこれに限らない。第2部分は、オブジェクトの一部を表す任意のオブジェクトであってよく、キャラクタの鼻や口や手や足を表すオブジェクトであってもよい。また、合成オブジェクトが砲台のオブジェクトである場合においては、第2部分は大砲の筒の部分のオブジェクトであってもよいし、合成オブジェクトが時計のオブジェクトである場合においては、第2部分は文字盤の部分のオブジェクトであってもよい。
【0186】
上記実施形態においては、3次元の合成オブジェクトを生成する場合を例として説明したが、上記実施形態における生成処理は、2次元の合成オブジェクトを生成する場合にも適用可能である。すなわち、ゲームシステム1は、2次元のパーツを用いて第1部分を生成する際に、2次元平面における基準方向側において基準位置が第1部分の内部とならないように、各パーツの各パラメータを決定してもよい。
【0187】
また、他の実施形態においては、ゲームシステム1は、ゲーム中において合成オブジェクトの形状を変化させてもよい。例えば、ゲームシステム1は、リズムに合わせて合成オブジェクトの形状を変化させたり、ゲーム状況の変化に応じて合成オブジェクトの形状を変化させたりしてもよい。このとき、変化後の合成オブジェクトの形状は、上記生成処理において合成オブジェクトの形状を決定する場合と同様にして決定される。これによって、合成オブジェクトの形状をランダムに変化させることができる。
【0188】
なお、上記の実施形態において、ある情報処理装置においてデータ(プログラムを含む意味である)を用いて処理が実行される場合、当該処理に必要なデータの一部が、当該ある情報処理装置とは異なる他の情報処理装置から送信されてもよい。このとき、当該ある情報処理装置は、他の情報処理装置から受信されたデータと、自身に記憶されているデータとを用いて上記処理を実行してもよい。
【0189】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0190】
上記実施形態は、複数のパーツを用いて多様なオブジェクトを生成すること等を目的として、例えばゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0191】
1 ゲームシステム
2 本体装置
81 プロセッサ
211~213 パーツ
214 体オブジェクト
215 目オブジェクト
216 足オブジェクト
221~224 面部分
225a,225b 基準位置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24