説明

プログラム、情報記憶媒体及び画像生成システム

【課題】 本発明は、上記課題に鑑みたものであり、デザインに自由度がある複数のパーツオブジェクトを組み合わせてモデルオブジェクトのカスタマイズを行う場合に、自然なモデルオブジェクトの画像を生成するプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【解決手段】選択されたパーツオブジェクトが、既に構成要素となっているパーツオブジェクトと、互いに指定される関係となるカテゴリ同士である場合に、同時にモデルオブジェクトの構成要素として設定しないように処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来から、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実感を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、ゲームをプレイするプレーヤの好みに応じてプレーヤキャラクタをカスタマイズできるものが存在する(特許文献1)。
【0004】
しかし、従来の画像生成システムは、パーツオブジェクトの形状を特殊なものにしようとすると、一のパーツオブジェクトを構成するポリゴンと、他のパーツオブジェクトを構成するポリゴンとが重なり合い、モデルオブジェクトの画像が不自然なものに見える場合がある。
【0005】
特に、頭部分、首部分、腕部分など、モデルオブジェクトを構成する部位に応じて決められる複数のカテゴリにパーツオブジェクトを分類し、各カテゴリから、1つのパーツオブジェクトの選択を受け付けるようにしても、複数の異なるカテゴリのパーツオブジェクトが他のカテゴリに干渉するような大きいものや長いものである場合には、各パーツオブジェクトを構成するポリゴンが重なりあってしまい、不自然な画像が生成されてしまいかねない。しかし、パーツオブジェクトのデザインを、カテゴリに対応する部位に収まるものにすると、カテゴリ内の各パーツオブジェクトのデザインが画一的になってしまい、形状が異なる複数種類のパーツオブジェクトを用意することができなくなる。
【特許文献1】特開2006−268406号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、上記課題に鑑みたものであり、デザインに自由度がある複数のパーツオブジェクトを組み合わせてモデルオブジェクトのカスタマイズを行う場合に、自然なモデルオブジェクトの画像を生成するプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成するプログラムであって、複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、前記モデルオブジェクトの画像を生成する描画部として、コンピュータを機能させ、前記記憶部が、所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、前記設定部が、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定するプログラムに関する。
【0008】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関係する。
【0009】
本発明によれば、選択されたパーツオブジェクトと他のカテゴリのパーツオブジェクトと組み合わせた場合に、モデルオブジェクトの画像が不自然になるおそれがある場合には、予め、その各パーツオブジェクトに、組み合わせ対象のカテゴリを、画像が不自然になる可能性のあるカテゴリとして、カテゴリの指定情報を対応付けることによって、モデルオブジェクトの画像が不自然になる事態を回避することができる。
【0010】
本発明によれば、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されていない場合や、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されていない場合には、選択されたパーツオブジェクトと、当該設定されているパーツオブジェクトとの両方をモデルオブジェクトの構成要素として設定するので、必要最小限で、パーツオブジェクトの組み合わせを制限することができる。
【0011】
要するに、本発明によれば、一方のカテゴリのパーツオブジェクトが、他方のカテゴリの所与のパーツオブジェクトに干渉するおそれがある場合であっても、他方のカテゴリのパーツオブジェクトが一方のカテゴリの所与のパーツオブジェクトに干渉するおそれがない場合には、双方のパーツオブジェクトを設定する。また、一方のカテゴリのパーツオブジェクトが、他方のカテゴリの所与のパーツオブジェクトに干渉するおそれがあり、更に、他方のカテゴリのパーツオブジェクトが一方のカテゴリの所与のパーツオブジェクトに干渉するおそれがある場合には、いずれかのパーツオブジェクトを設定する。したがって、本発明によれば、双方のパーツオブジェクトが干渉し合うおそれがある関係の場合に、いずれかのパーツオブジェクトを設定しないようにしているので、必要最小限でパーツオブジェクトの組み合わせを制限でき、なるべく多くのパーツオブジェクトの組み合わせができるようにしている。
【0012】
(2)また、本発明のプログラム、情報記憶媒体、画像生成システムは、前記設定部が、選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定してもよい。
【0013】
本発明によれば、第1のカテゴリのパーツオブジェクトと、第2のカテゴリのパーツオブジェクトとが既にモデルオブジェクトの構成要素として設定されている場合に、第3のカテゴリのパーツオブジェクトが選択された場合において、第1のカテゴリのパーツオブジェクトと第3のパーツオブジェクトとの双方のパーツオブジェクトが干渉し合うおそれがある関係の場合であって、第2のカテゴリのパーツオブジェクトと第3のパーツオブジェクトとの双方のパーツオブジェクトが干渉し合うおそれがない関係の場合には、選択された第3のカテゴリのパーツオブジェクト、又は、第1のカテゴリのパーツオブジェクトが設定され、第2のカテゴリのパーツオブジェクトの設定は維持することができる。したがって、本発明によれば、必要最小限でパーツオブジェクトの組み合わせを制限でき、なるべく多くのパーツオブジェクトの組み合わせができるようにしている。
【発明を実施するための最良の形態】
【0014】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0015】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0016】
操作部160は、プレーヤがプレーヤオブジェクト(プレーヤが操作するプレーヤキャラクタ)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0017】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0018】
スロット状態データ記憶部177には、スロット状態データが記憶される。ここで、スロット状態データとは、スロットにパーツオブジェクトデータの配置の有無や、配置されているパーツオブジェクトデータの種類を特定するためのデータである。ここで、「パーツオブジェクト」は1又は複数の「パーツオブジェクトデータ」で構成されており、この「パーツオブジェクトデータ」それぞれが、いずれか1つの「スロット」に対応付けられている。すなわち、スロット状態データは、スロット単位でパーツオブジェクトデータの配置設定を管理するための情報である。
【0019】
オブジェクトデータ記憶部179は、オブジェクトデータが記憶される。本実施形態のオブジェクトデータ記憶部179は、モデルオブジェクトデータ記憶部179a、パーツオブジェクトデータ記憶部179bとを有する。
【0020】
モデルオブジェクトデータ記憶部179aには、複数のパーツオブジェクトによって構成されるモデルオブジェクトデータが記憶される。本実施形態のモデルオブジェクトデータ記憶部179aは、複数のモデルオブジェクトを記憶するために、複数のバッファを設け、各バッファにモデルオブジェクトデータを記憶する。
【0021】
パーツオブジェクトデータ記憶部179bには、複数のパーツオブジェクトが記憶される。この複数のパーツオブジェクトは、複数のカテゴリのいずれかのカテゴリに分類してパーツオブジェクトデータ記憶部179bに記憶される。
【0022】
ここで、カテゴリとは、頭部分、首部分、腕部分など、モデルオブジェクトを構成する部位に応じて決められる属性である。
【0023】
また、パーツオブジェクトデータ記憶部179bに記憶される複数のパーツオブジェクトのうち、所与のパーツオブジェクトについては、パーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶する。
【0024】
ここで、「パーツオブジェクトのカテゴリ」とは、そのパーツオブジェクトが属するカテゴリである。また、「指定情報」とは、画像が不自然になる可能性のあるパーツオブジェクトのカテゴリである。つまり、指定情報は、同時設定が制限される可能性のある制限対象のカテゴリである。
【0025】
また、本実施形態では、プレーヤの入力情報(例えば、操作部160からの操作情報)に基づいて、サーバからパーツオブジェクトをダウンロードして、パーツオブジェクトデータ記憶部179b、情報記憶媒体180に記憶させる処理を行ってもよい。
【0026】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)、メモリカードなどにより実現できる。
【0027】
処理部100は、情報記憶媒体180に入力されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
【0028】
即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。また、情報記憶媒体180に、プレーヤの個人データやゲームのセーブデータなどを記憶してもよい。
【0029】
なお、本実施形態では、情報記憶媒体180に、モデルオブジェクトデータや、パーツオブジェクトデータを記憶させ、必要に応じて、モデルオブジェクトデータ記憶部179a、パーツオブジェクトデータ記憶部179bにロードしてもよい。
【0030】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0031】
通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0032】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)を、ネットワークを介してサーバからダウンロードし、記憶部170や、情報記憶媒体180に記憶するようにしてもよい。このようなサーバの記憶部に記憶されているプログラムも本発明の範囲内に含めることができる。
【0033】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0034】
処理部100は、オブジェクト空間設定部110、移動・動作処理部111、仮想カメラ制御部112、受け付け部113、設定部114、スロット状態更新部115、モデルオブジェクトデータ更新部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0035】
オブジェクト空間設定部110は、モデルオブジェクト、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0036】
移動・動作処理部111は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0037】
仮想カメラ制御部112は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0038】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部111で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0039】
受け付け部113は、カテゴリ毎に、パーツオブジェクトの選択を受け付ける処理を行う。具体的には、プレーヤの入力情報に基づいて、画面に表示された複数のカテゴリの中から1のカテゴリの選択を受け付け、選択されたカテゴリについて複数のパーツオブジェクトの中から1つのパーツオブジェクトの選択を受け付ける。つまり、本実施形態では、プレーヤの入力情報に基づいて、1つのカテゴリについて1つのパーツオブジェクトの選択を受け付ける。
【0040】
設定部114は、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【0041】
本実施形態の設定部114は、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該既に設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該既に設定されているパーツオブジェクトを設定する。要するに、本実施形態の設定部114は、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該既に設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクトと、当該既に設定されているパーツオブジェクトとを、モデルオブジェクトの構成要素として、同時に設定できないようにしている。
【0042】
また、本実施形態の設定部114は、選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記既に設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記既に設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記既に設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定する。
【0043】
スロット状態更新部115は、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定される場合には、選択されたパーツオブジェクトを構成する1又は複数のパーツオブジェクトデータそれぞれに対応するスロットに、他のパーツオブジェクトデータが配置されている場合に、各パーツオブジェクトデータの配置優先順位を決定するパーツオブジェクトの優先順位情報に基づいて、スロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データ記憶部177に記憶されているスロット状態データを更新する処理を行う。すなわち各スロットに対してパーツオブジェクトデータを配置設定する処理を行う。
【0044】
優先順位情報は、配置優先順位が上位であるパーツオブジェクトデータ(上位パーツオブジェクトデータ)を、そのパーツオブジェクトデータより配置優先順位が下位であるパーツオブジェクトデータ(下位パーツオブジェクトデータ)に優先してスロットに配置設定するための情報である。また優先順位情報は、カテゴリ単位で設定される。
【0045】
モデルオブジェクトデータ更新部116は、スロット状態データ記憶部177に記憶されているスロット状態データに基づいて、モデルオブジェクトデータ記憶部179aに記憶されるモデルオブジェクトデータを更新する処理を行う。
【0046】
具体的には、モデルオブジェクトデータ更新部116は、スロット状態データが更新されたスロットに配置されるパーツオブジェクトデータを、パーツオブジェクトデータ記憶部179bから読み込み、モデルオブジェクトデータ記憶部179aの第1のバッファ(更新バッファ)に読み込み、モデルオブジェクトデータ更新部116は、既に配置されているモデルオブジェクトデータが記憶されているモデルオブジェクトデータ記憶部179aの第2のバッファから、スロット状態データが更新されていないスロットに既に配置されているパーツオブジェクトデータを、第1のバッファへコピーする処理を行うようにしてもよい。なお、スロット状態データが更新されていないスロットに既に配置されているパーツオブジェクトデータを、パーツオブジェクトデータ記憶部179bから、第1のバッファに読み込むようにしてもよい。
【0047】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(オブジェクトデータ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数のプリミティブ)を画像バッファ173(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように描画処理を行う。
【0048】
描画部120は、ジオメトリ処理部122、シェーディング処理部124、αブレンディング部126、陰面消去部128を含む。
【0049】
ジオメトリ処理部122は、オブジェクトに対してジオメトリ処理を行う。具体的には、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部179に保存される。
【0050】
シェーディング処理部124は、オブジェクトに対して陰影付けをするシェーディング処理を行う。具体的には、ジオメトリ処理部122で行われた光源計算の結果(陰影情報)に基づき、オブジェクトの描画ピクセルの輝度を調整する。必要に応じて、ジオメトリ処理部122で光源計算を行わずに、シェーディング処理部124で光源計算を行わせてもよい。シェーディング処理としては、例えば、フラットシェーディング(flat Shading)、あるいはグローシェーディング(Gourand Shading)やフォンシェーディング(Phong Shading)などのスムーズシェーディングをオブジェクトに対して行うことができる。
【0051】
αブレンディング部126は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。例えば通常αブレンディングの場合には下式(1)〜(3)の処理を行う。
【0052】
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
また、加算αブレンディングの場合には下式(4)〜(6)の処理を行う。
【0053】
=R+α×R (4)
=G+α×G (5)
=B+α×B (6)
また、減算αブレンディングの場合には下式(7)〜(9)の処理を行う。
【0054】
=R−α×R (7)
=G−α×G (8)
=B−α×B (9)
ここで、R、G、Bは、画像バッファ173に既に描画されている画像(元画像)のRGB成分であり、R、G、Bは、画像バッファ173に描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0055】
隠面消去部128は、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ175(奥行きバッファ)を用いて、Zバッファ法(奥行き比較法、Zテスト)により隠面消去処理を行う。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ175に格納されるZ値を参照する。そして参照されたZバッファ175のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ175のZ値を新たなZ値に更新する。
【0056】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0057】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0058】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよい。
【0059】
また、本実施形態の画像生成システムでは、ネットワーク(伝送ライン、通信回線)を介して接続された他の1又は複数の画像生成システムと、データ(例えば入力情報)を送受信する処理を行い、オンラインゲームを実現できるようにしてもよい。
【0060】
2.本実施形態の手法の概要
(1)スロット
本実施形態では、モデルオブジェクトを構成する複数のスロットそれぞれに、パーツオブジェクトデータの配置設定を行う手法を採用する。
【0061】
スロットは、モデル座標系に設定されるパーツオブジェクトデータの配置空間のことであり、モデルオブジェクトの構成部位に相当するものである。本実施形態では、図2に示すように人体の構成部位に対応する素体系スロットA1〜A14(広義には、第1のスロット)と、図3に示すように人体に装着される装飾物の構成部位に対応するアイテム系スロットB1〜B10(広義には、第2のスロット)とを設定している。
【0062】
例えば、図2では、人体の構成部位を14の素体系スロットA1〜A14に対応させており、例えば、腕を例に採ると、腕は、A4〜A7の4の素体系スロットからなり、A4は上腕部、A5は肘、A6は前腕部、A7は手というように人体の構成部位に対応している。素体系スロットA1〜A14には、実際の人体の構成部位に対応するパーツオブジェクトのみならず、シャツやジャケットなどのパーツオブジェクトをも配置設定することができる。例えば、Tシャツを例に採ると、半袖Tシャツならば、A3、A4、A8及びA9の素体系スロットを用いてパーツを構成することができ、長袖Tシャツならば、A3〜A6、A8及びA9の素体系スロットを用いてパーツを構成することができる。
【0063】
また、例えば、図3では、1又は複数の素体系スロットとオーバーラップしてアイテム系スロットB1〜B10が設定されている。このアイテム系スロットB1〜B10は、服を重ね着する場合など複数のパーツオブジェクトデータを重ねて配置する必要がある場合に用いられるスロットである。言い換えれば、重ね着用のスロットということができる。例えば、B2は、顔にひげをつける場合に用いられるスロットである。またB1、B3〜B6、及びB8〜B10を用いると、全身鎧などが設定できる。このアイテム系スロットB1〜B10は、基本的に、素体系スロットA1〜A14に配置設定されるパーツオブジェクトデータよりも配置優先順位が上位のパーツオブジェクトデータが配置設定される。またアイテム系スロット内でも配置優先順位がより上位のパーツオブジェクトデータが配置設定されるものがある。例えば、B7などは、道着の上から帯を締めている場合やスカートにベルトをつける場合などに用いられ、B8に配置されるパーツオブジェクトデータよりも配置優先順位が上位のパーツオブジェクトデータが配置設定される。
【0064】
本実施形態のように素体系スロットA1〜A14と、アイテム系スロットB1〜B10とを設定して、各スロットにパーツオブジェクトデータを配置して1体のモデルオブジェクトを構築することにより、複数のパーツオブジェクトを重ね着したように見えるモデルオブジェクトの画像を生成することができる。またアイテム系スロットB1〜B10に配置されるパーツオブジェクトデータと素体系スロットA1〜A14に配置されるパーツオブジェクトデータとの重ね合わせにより、例えば、鎧の隙間から関節が見えるといった表現ができるようになる。
【0065】
(2)カテゴリに分類する手法
本実施形態では、複数のカテゴリを設け、複数のパーツオブジェクトをいずれかの1つのカテゴリに対応づけて、パーツオブジェクトデータ記憶部179bに記憶する。
【0066】
より具体的に説明すると、本実施形態では、1又は複数の素体系スロットあるいはアイテム系スロットに配置される1又は複数のパーツオブジェクトデータ(スロット単位のパーツオブジェクトデータ)を、1つのカテゴリに対応づけて、パーツオブジェクトデータ記憶部179bに記憶する。
【0067】
図4を用いて、パーツオブジェクトの対応関係について説明する。例えば、本実施形態では、複数のカテゴリのうち、例えば、「兜」、「ブルゴネット」、「シルクハット」のパーツオブジェクトは、モデルオブジェクトの頭の上部分を決める「Head」カテゴリに分類され、素体系スロットA1に配置される。
【0068】
また、「オペラマスク」は、モデルオブジェクトのマスクを決めるための「Mask」に分類され、素体系スロットA2に配置される。
【0069】
また、図4に示すように、本実施形態では、カテゴリそれぞれに配置優先順位を示す優先順位情報を予め設定している。この優先順位情報は、素体系スロットA1〜A14あるいはアイテム系スロットB1〜B10に配置設定すべきパーツオブジェクトデータを決定するスロット状態データの更新処理に用いられる情報である。なお、例外的に、優先順位情報を無視してスロット状態データの更新処理が行われる場合もある。
【0070】
また、図4に示すように、本実施形態では、パーツオブジェクトデータ記憶部179bに、パーツオブジェクトの各スロットに対応するパーツオブジェクトデータ(スロット単位のパーツオブジェクトデータ)を記憶する。例えば、カテゴリ「Inner」の「Tシャツ」は、スロットA3に対応するパーツオブジェクトデータInner_A3_1と、スロットA4に対応するパーツオブジェクトデータInner_A4_1と、スロットA8に対応するパーツオブジェクトデータInner_A8_1と、スロットA9に対応するパーツオブジェクトデータInner_A9_1とを、パーツオブジェクトデータ記憶部179bに記憶する。
【0071】
本実施形態では、配置優先順位が上位のパーツオブジェクトデータを配置設定する際に、配置優先順位が下位のパーツオブジェクトデータに対応するスロットの配置設定をクリアするための配置設定クリア情報を記憶してもよい。
【0072】
配置設定クリア情報は、パーツオブジェクトデータが素体系スロット(例えば、A8)と、アイテム系スロット(例えば、B3)とにオーバーラップして配置設定される場合に、アイテム系スロットに配置されたパーツオブジェクトデータに隠れて見えなくなることにより、配置設定する必要のないスロットを特定するための情報である。スロット状態データの更新の際には、配置設定クリア情報に基づいて、設定されたスロットについてパーツオブジェクトデータの配置設定を行わない、あるいは、既に配置設定されているパーツオブジェクトデータの配置設定をクリアする更新処理が行われる。
【0073】
(3)パーツオブジェクトの選択
本実施形態では、プレーヤの入力情報に基づいて、各カテゴリからパーツオブジェクトの選択を受け付け、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【0074】
図5は、パーツオブジェクトの選択画面の一例である。例えば、本実施形態では、複数のカテゴリのうち、いずれか1つのカテゴリの選択を受け付け、受け付けたカテゴリ内の複数のパーツオブジェクトのうち、いずれか1つのパーツオブジェクトの選択を受け付ける。例えば図5は、複数のカテゴリのうちカテゴリ「Head」が選択され、カテゴリ「Head」に属する複数のパーツオブジェクトから「ブルゴネット」のパーツオブジェクトが選択された画像の一例である。
【0075】
なお、本実施形態の各パーツオブジェクトには、ゲーム演算で用いられるパラメータ(パワースキル値、インパクトスキル値などのパラメータ)が設定され、このパラメータに基づいて、プレーヤに有利に働くスキルを設定可能としている。このようにすれば、モデルオブジェクトにパーツオブジェクトの着せ替えを行うだけでなく、ゲームの戦略性を考慮した着せ替えを行うことができる。
【0076】
(4)スロット状態データの更新処理
本実施形態では、スロット状態データの更新処理によりモデルオブジェクトを構成するパーツオブジェクトのパーツオブジェクトデータを、スロットに配置設定する手法を採用する。
【0077】
本実施形態では、プレーヤが選択したカテゴリのパーツオブジェクトと同一のカテゴリであって、他のパーツオブジェクトがスロットに配置されていない場合には、プレーヤが選択したカテゴリのパーツオブジェクトのパーツオブジェクトデータに対応するスロットのスロット状態データを更新すべきであると判断し、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0078】
例えば、プレーヤが「Head」カテゴリに属する複数のパーツオブジェクトから、パーツオブジェクト「シルクハット」を選択した場合であって、「Head」カテゴリのパーツオブジェクトが配置されていない場合には、「シルクハット」のパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0079】
また、本実施形態では、プレーヤが選択したカテゴリと同一のカテゴリの他のパーツオブジェクトのパーツオブジェクトデータが既に配置されている場合には、当該他のパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0080】
例えば、プレーヤが「Head」カテゴリから、パーツオブジェクト「シルクハット」を選択した場合であって、既にモデルオブジェクトに「Head」カテゴリのパーツオブジェクトである「兜」のパーツオブジェクトのパーツオブジェクトデータがスロットに配置されている場合には、パーツオブジェクト「兜」に替えて、パーツオブジェクト「シルクハット」のパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0081】
また、本実施形態では、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に、選択したカテゴリとは異なるカテゴリの他のパーツオブジェクトのパーツオブジェクトデータが配置されている場合には、優先順位情報に基づいて決定される各カテゴリの配置優先順位をスロット単位で比較して、スロット状態データを更新する。
【0082】
なお、パーツオブジェクトに複数のスロットが指定されている場合であっても、パーツオブジェクトのパーツオブジェクトデータに対応するスロット単位でスロット状態データを更新すべきか否かを判断し、スロット単位でスロット状態データを更新している。このようにすることによって、モデルオブジェクトを構成するオブジェクトデータのデータ量を最小限に抑えることができ、モデルオブジェクトに対して自然な重ね着を表現できる。
【0083】
具体的には、以下の(A)〜(C)のようにスロット状態データの更新を行うことができる。
【0084】
(A)プレーヤが、カテゴリから選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト(選択したカテゴリとは異なるカテゴリのパーツオブジェクト)のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータが、他のパーツオブジェクトよりも配置優先順位が上位である場合には、スロット状態データを更新すべきであると判断し、該スロットに他のパーツオブジェクトのパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0085】
(B)プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト(選択したカテゴリとは異なるカテゴリのパーツオブジェクト)のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータが、他のパーツオブジェクトのパーツオブジェクトデータよりも配置優先順位が下位である場合には、スロット状態データを更新すべきでないと判断する。この場合には、そのスロットのスロット状態データを更新せずに、他のパーツオブジェクトのパーツオブジェクトデータについての配置設定を維持する。
【0086】
(C)プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト(選択したカテゴリとは異なるカテゴリのパーツオブジェクト)のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータと、他のパーツオブジェクトのパーツオブジェクトデータとの配置優先順位が同位である場合には、該スロットに他のパーツオブジェクトのパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【0087】
3.パーツオブジェクトの設定手法
(1)互いに異なるカテゴリの複数のパーツオブジェクトを、モデルオブジェクトの構成要素とした場合における問題点
本実施形態では、形状や大きさの異なる複数のパーツオブジェクトを用意し、モデルオブジェクトの部位に応じたカテゴリに、パーツオブジェクトを分類している。しかし、このカテゴリは、プレーヤがパーツオブジェクトを選択しやすいように分類したものであるので、カテゴリに応じたオブジェクトの部位に関わらず、形状や大きさにデザインのあるパーツオブジェクトが存在する場合がある。その結果、互いに異なるカテゴリの複数のパーツオブジェクトを、モデルオブジェクトに同時に設定した場合に、不自然な画像を生成してしまう場合がある。
【0088】
図6(A)は、モデルオブジェクトに「Mask」カテゴリのパーツオブジェクトである「オペラマスク」が設定されたときに生成される画像の一例である。
【0089】
また図6(B)は、モデルオブジェクトに「Head」カテゴリの「ブルゴネット」が設定されたときに生成される画像の一例である。
【0090】
そして、図6(C)は、「Mask」カテゴリの「オペラマスク」と、「Head」カテゴリの「ブルゴネット」とが設定されたときに生成される画像の一例である。
【0091】
例えば、「オペラマスク」のパーツオブジェクトデータは、スロットA2に対応し、「ブルゴネット」のパーツオブジェクトデータは、スロットA1に対応している場合であっても、「オペラマスク」のパーツオブジェクトデータが、スロットA1に干渉するようなデザインでモデリングされ、「ブルゴネット」のパーツオブジェクトデータがスロットA2に干渉するようなデザインでモデリングされている場合には、「オペラマスク」を構成するポリゴンと、「ブルゴネット」を構成するポリゴンとが重なり合い、結果的に図6(C)に示すような不自然な画像が生成されてしまう。
【0092】
(2)複数のパーツオブジェクトの同時設定を制限する手法
そこで、本実施形態では、互いに異なるカテゴリの複数のパーツオブジェクトが、同時に、モデルオブジェクトの構成要素となった場合に、不自然な画像が生成されてしまう場合には、予めこれらの各パーツオブジェクトに対応付けて、同時設定を制限するための指定情報を記憶し、この指定情報を用いて、これら複数のパーツオブジェクトの同時設定を制限する手法を採用している。このようにすれば、画像が不自然に見える事態を防ぐことができる。
【0093】
ここで、パーツオブジェクトに対応づけて記憶される指定情報とは、画像が不自然になる可能性のあるパーツオブジェクトのカテゴリである。つまり、指定情報は、同時設定が制限される可能性のある対象カテゴリである。
【0094】
例えば、パーツオブジェクトの一例である「オペラマスク」が「Mask」カテゴリに属している場合に、「オペラマスク」と、「Head」カテゴリの一部のパーツオブジェクトとを同時にモデルオブジェクトに設定すると、画像が不自然になる場合には、「オペラマスク」に、「Head」カテゴリを、指定情報として記憶する。
【0095】
具体的に説明すると、本実施形態では、図4に示すように、「Mask」カテゴリの「オペラマスク」は、「Head」カテゴリの一部のパーツオブジェクト(例えば、ブルゴネット)と同時にモデルオブジェクトに設定すると画像が不自然になるので、「オペラマスク」に対応づけて、予め「Head」カテゴリを指定情報として記憶する。
【0096】
なお、図4に示すように、「Head」カテゴリに属する「兜」のパーツオブジェクトは、指定情報がない。つまり、いずれのカテゴリのパーツオブジェクトと同時設定しても問題ないパーツオブジェクトについては、指定情報がNULLとなる。
【0097】
そして、本実施形態では、選択されたパーツオブジェクトに対応付けて、既にモデルオブジェクトに設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、その指定先カテゴリのパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、指定先カテゴリの既にモデルオブジェクトに設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。つまり、本実施形態では、選択されたパーツオブジェクトに対応付けて、既にモデルオブジェクトに設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、その指定先カテゴリのパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクトと、指定先カテゴリの既にモデルオブジェクトに配置されているパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定しないように処理を行っている。
【0098】
具体的に、図7(A)を用いて説明する。例えば、「Mask」カテゴリのパーツオブジェクトの「オペラマスク」に、「Head」カテゴリを指定情報として記憶し、この「オペラマスク」が、既にモデルオブジェクトの構成要素として設定されているとする。そして、「Head」カテゴリのパーツオブジェクトの「ブルゴネット」に、「Mask」カテゴリを指定情報として記憶し、この「ブルゴネット」が、選択されたとする。
【0099】
本実施形態では、まず、選択されたパーツオブジェクトの指定情報を参照する。例えば、選択されたパーツオブジェクトの指定情報がない場合(NULL)である場合には、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。
【0100】
一方、選択されたパーツオブジェクトの指定情報がある場合には、その指定情報のカテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されているか否かを判断する。例えば、図7(A)に示すように、選択されたパーツオブジェクトの「ブルゴネット」の指定情報である「Mask」カテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されているか否かを判断する。
【0101】
選択されたパーツオブジェクトの指定情報のカテゴリのパーツオブジェクトが、モデルオブジェクトの構成要素として設定されていない場合には、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。
【0102】
一方、選択されたパーツオブジェクトの指定情報のカテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されている場合には、その設定されているパーツオブジェクトの指定情報を参照する。例えば、図7(A)に示すように、選択されたパーツオブジェクトの「ブルゴネット」の指定情報のカテゴリ「Mask」のパーツオブジェクトである「オペラマスク」が既に、モデルオブジェクトの構成要素として設定されている場合には、「オペラマスク」の指定情報を参照する。
【0103】
そして、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリであるか否かを判断する。例えば、図7(A)の例では、「オペラマスク」の指定情報が、選択されたパーツオブジェクトである「ブルゴネット」の「Head」カテゴリか否かを判断する。
【0104】
そして、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリである場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断する。例えば、図7(A)に示すように、選択されたパーツオブジェクトである「ブルゴネット」の指定先カテゴリ「Mask」のパーツオブジェクトの「オペラマスク」の指定情報が「Head」カテゴリであるので、「ブルゴネット」と「オペラマスク」とを、同時に設定できないと判断する。要するに、本実施形態では、選択されたパーツオブジェクトが、既に構成要素となっているパーツオブジェクトと、互いに指定される関係となるカテゴリ同士である場合に、同時にモデルオブジェクトの構成要素とすることはできないと判断する。
【0105】
本実施形態では、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断されると、表示部190に、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとのうち、いずれのパーツオブジェクトをモデルオブジェクトに設定するかを選択させる画像を表示させ、プレーヤの入力情報に基づいて、いずれかのパーツオブジェクトの選択を受け付ける処理を行う。そして、プレーヤが選択したパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。例えば、図7(A)の例によれば、プレーヤが「オペラマスク」を選択した場合には、「オペラマスク」をモデルオブジェクトの構成要素として維持したまま設定する。一方、プレーヤが「ブルゴネット」を選択した場合には、「オペラマスク」をモデルオブジェクトの構成要素から削除する処理を行い(取り外す処理を行い)、既にモデルオブジェクトの構成要素として設定されているパーツオブジェクトに加えて、「ブルゴネット」を設定する処理を行う。
【0106】
一方、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリでない場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できると判断し、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。つまり、選択されたパーツオブジェクトを、新たなモデルオブジェクトの構成要素として設定する。
【0107】
例えば、図7(B)に示すように、カテゴリ「Mask」の「シートマスク」が、既にモデルオブジェクトの構成要素として設定されており、この「シートマスク」が「Neck」カテゴリを指定情報として対応付けられている場合であるとする。つまり、「シートマスク」は「Head」カテゴリを指定していない場合であるとする。すると、「ブルゴネット」が選択された場合には、選択された「シートマスク」は、「Head」カテゴリを指定していないので、「シートマスク」と「ブルゴネット」とをモデルオブジェクトの構成要素として同時に設定できる。つまり、「シートマスク」と「ブルゴネット」とは、互いに指定される関係となるカテゴリ同士でないので、モデルオブジェクトの構成要素として同時に設定できる。
【0108】
このようにすれば、不自然な画像を生成する可能性のある複数のパーツオブジェクトの組み合わせを排除しつつ、パールオブジェクトの組み合わせのバリエーションをできる限り多くすることができ、様々なカスタマイズを可能にすることができる。
【0109】
(3)複数の指定情報を有する場合の処理
本実施形態では、選択されたパーツオブジェクトの指定情報に、複数のカテゴリが指定されている場合には、選択されたパーツオブジェクトの指定先カテゴリ毎に、指定先カテゴリのパーツオブジェクトが既にモデルオブジェクトの構成要素として設定されているか否かを判断し、指定先カテゴリのパーツオブジェクトが既にモデルオブジェクトの構成要素として設定されている場合には、指定先カテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられているか否かを判断する。
【0110】
そして、選択されたパーツオブジェクトの複数の指定先カテゴリのうち、少なくとも1つの指定先カテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられている場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられているパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断する。
【0111】
例えば、図8に示すように、選択されたパーツオブジェクトが、「Neck」カテゴリの「マント」である場合について説明すると、「マント」の指定先カテゴリの1つである「Head」のパーツオブジェクトは「シルクハット」として既に設定され、「シルクハット」が、選択された「Neck」カテゴリを指定情報として対応付けられていない。一方、「マント」の指定先カテゴリの1つである「Mask」のパーツオブジェクトは「オペラマスク」として既に設定され、「オペラマスク」が、選択された「Neck」カテゴリを指定情報として対応付けられている。すると、本実施形態では、選択された「マント」又は、「オペラマスク」をモデルオブジェクトの構成要素として同時に設定できないと判断し、表示部190にいずれのパーツオブジェクトをモデルオブジェクトに設定するかを、選択させる画像を表示させ、プレーヤの入力情報に基づいて、「マント」又は、「オペラマスク」の選択を受け付け、プレーヤが選択したパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【0112】
3.本実施形態の処理
本実施形態の処理について説明する。
【0113】
まず、所与のカテゴリからパーツオブジェクトが選択されたか否かを判断する(ステップS10)。所与のカテゴリの中からパーツオブジェクトが選択されたと判断されると(ステップS10のY)、選択されたパーツオブジェクトが他のカテゴリを指定しているか否かを判断する(ステップS20)。選択されたパーツオブジェクトが他のカテゴリを指定している場合には(ステップS20のY)、指定された他のカテゴリのパーツオブジェクトが既に設定されているか否かを判断する(ステップS30)。指定された他のカテゴリのパーツオブジェクトが既に設定されている場合には(ステップS30のY)、指定された他のカテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定しているか否かを判断する(ステップS40)。指定された他のカテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定している場合には(ステップS40のY)、選択されたパーツオブジェクト、又は、指定された他のカテゴリのパーツオブジェクトの選択を受け付ける(ステップS50)。そして、受け付けたパーツオブジェクトをモデルオブジェクトの構成要素として設定する処理を行う(ステップS60)。
【0114】
一方、ステップS20のN、ステップS30のN、ステップS40のNである場合には、選択されたパーツオブジェクトをモデルオブジェクトの構成要素として設定する処理を行う(ステップS70)。以上で処理が終了する。
【図面の簡単な説明】
【0115】
【図1】本実施形態の画像生成システムの機能ブロック図。
【図2】スロットの説明図。
【図3】スロットの説明図。
【図4】カテゴリ、パーツオブジェクト等の対応関係図。
【図5】本実施形態のパーツオブジェクトの選択画面の一例。
【図6】図6(A)(B)(C)は、画像の一例。
【図7】図7(A)(B)は、パーツオブジェクトの指定関係の説明図。
【図8】パーツオブジェクトの指定関係の説明図。
【図9】本実施形態の処理例を示すフローチャート。
【符号の説明】
【0116】
100 処理部、
110 オブジェクト空間設定部、111 移動・動作処理部、
112 仮想カメラ制御部、113 受け付け部、114 設定部、
115 スロット状態更新部、116 モデルオブジェクトデータ更新部、
120 描画部、122 ジオメトリ処理部、124 シェーディング処理部、
126 αブレンディング部、128 隠面消去部、
130 音生成部、160 操作部、
170 記憶部、171 主記憶部、173 画像バッファ、
175 Zバッファ、177 スロット状態データ記憶部、
179 オブジェクトデータ記憶部、
179a モデルオブジェクトデータ記憶部、
179b パーツオブジェクトデータ記憶部、
180 情報記憶媒体、
190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成するプログラムであって、
複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、
カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、
選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、
前記モデルオブジェクトの画像を生成する描画部として、コンピュータを機能させ、
前記記憶部が、
所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定することを特徴とするプログラム。
【請求項2】
請求項1において、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定することを特徴とするプログラム。
【請求項3】
コンピュータにより読取可能な情報記憶媒体であって、請求項1又は2に記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項4】
複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成する画像生成システムであって、
複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、
カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、
選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、
前記モデルオブジェクトの画像を生成する描画部とを含み、
前記記憶部が、
所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−33298(P2010−33298A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−194220(P2008−194220)
【出願日】平成20年7月28日(2008.7.28)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】