(57)【要約】【課題】  本発明は、上記課題に鑑みたものであり、デザインに自由度がある複数のパーツオブジェクトを組み合わせてモデルオブジェクトのカスタマイズを行う場合に、自然なモデルオブジェクトの画像を生成するプログラム、情報記憶媒体及び画像生成システムを提供することにある。【解決手段】選択されたパーツオブジェクトが、既に構成要素となっているパーツオブジェクトと、互いに指定される関係となるカテゴリ同士である場合に、同時にモデルオブジェクトの構成要素として設定しないように処理を行う。【選択図】図９
2010033298.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成するプログラムであって、
複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、
カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、
選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、
前記モデルオブジェクトの画像を生成する描画部として、コンピュータを機能させ、
前記記憶部が、
所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定することを特徴とするプログラム。
【請求項３】
コンピュータにより読取可能な情報記憶媒体であって、請求項１又は２に記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項４】
複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成する画像生成システムであって、
複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、
カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、
選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、
前記モデルオブジェクトの画像を生成する描画部とを含み、
前記記憶部が、
所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、
前記設定部が、
選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来から、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実感を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、ゲームをプレイするプレーヤの好みに応じてプレーヤキャラクタをカスタマイズできるものが存在する（特許文献１）。
【０００４】
しかし、従来の画像生成システムは、パーツオブジェクトの形状を特殊なものにしようとすると、一のパーツオブジェクトを構成するポリゴンと、他のパーツオブジェクトを構成するポリゴンとが重なり合い、モデルオブジェクトの画像が不自然なものに見える場合がある。
【０００５】
特に、頭部分、首部分、腕部分など、モデルオブジェクトを構成する部位に応じて決められる複数のカテゴリにパーツオブジェクトを分類し、各カテゴリから、１つのパーツオブジェクトの選択を受け付けるようにしても、複数の異なるカテゴリのパーツオブジェクトが他のカテゴリに干渉するような大きいものや長いものである場合には、各パーツオブジェクトを構成するポリゴンが重なりあってしまい、不自然な画像が生成されてしまいかねない。しかし、パーツオブジェクトのデザインを、カテゴリに対応する部位に収まるものにすると、カテゴリ内の各パーツオブジェクトのデザインが画一的になってしまい、形状が異なる複数種類のパーツオブジェクトを用意することができなくなる。
【特許文献１】特開２００６−２６８４０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記課題に鑑みたものであり、デザインに自由度がある複数のパーツオブジェクトを組み合わせてモデルオブジェクトのカスタマイズを行う場合に、自然なモデルオブジェクトの画像を生成するプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、複数のパーツオブジェクトによって構成されるモデルオブジェクトの画像を生成するプログラムであって、複数のパーツオブジェクトを、複数のカテゴリのいずれかのカテゴリに分類して記憶する記憶部と、カテゴリ毎に、パーツオブジェクトの選択を受け付ける受け付け部と、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する設定部と、前記モデルオブジェクトの画像を生成する描画部として、コンピュータを機能させ、前記記憶部が、所与のパーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶し、前記設定部が、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定するプログラムに関する。
【０００８】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関係する。
【０００９】
本発明によれば、選択されたパーツオブジェクトと他のカテゴリのパーツオブジェクトと組み合わせた場合に、モデルオブジェクトの画像が不自然になるおそれがある場合には、予め、その各パーツオブジェクトに、組み合わせ対象のカテゴリを、画像が不自然になる可能性のあるカテゴリとして、カテゴリの指定情報を対応付けることによって、モデルオブジェクトの画像が不自然になる事態を回避することができる。
【００１０】
本発明によれば、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されていない場合や、当該設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されていない場合には、選択されたパーツオブジェクトと、当該設定されているパーツオブジェクトとの両方をモデルオブジェクトの構成要素として設定するので、必要最小限で、パーツオブジェクトの組み合わせを制限することができる。
【００１１】
要するに、本発明によれば、一方のカテゴリのパーツオブジェクトが、他方のカテゴリの所与のパーツオブジェクトに干渉するおそれがある場合であっても、他方のカテゴリのパーツオブジェクトが一方のカテゴリの所与のパーツオブジェクトに干渉するおそれがない場合には、双方のパーツオブジェクトを設定する。また、一方のカテゴリのパーツオブジェクトが、他方のカテゴリの所与のパーツオブジェクトに干渉するおそれがあり、更に、他方のカテゴリのパーツオブジェクトが一方のカテゴリの所与のパーツオブジェクトに干渉するおそれがある場合には、いずれかのパーツオブジェクトを設定する。したがって、本発明によれば、双方のパーツオブジェクトが干渉し合うおそれがある関係の場合に、いずれかのパーツオブジェクトを設定しないようにしているので、必要最小限でパーツオブジェクトの組み合わせを制限でき、なるべく多くのパーツオブジェクトの組み合わせができるようにしている。
【００１２】
（２）また、本発明のプログラム、情報記憶媒体、画像生成システムは、前記設定部が、選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定してもよい。
【００１３】
本発明によれば、第１のカテゴリのパーツオブジェクトと、第２のカテゴリのパーツオブジェクトとが既にモデルオブジェクトの構成要素として設定されている場合に、第３のカテゴリのパーツオブジェクトが選択された場合において、第１のカテゴリのパーツオブジェクトと第３のパーツオブジェクトとの双方のパーツオブジェクトが干渉し合うおそれがある関係の場合であって、第２のカテゴリのパーツオブジェクトと第３のパーツオブジェクトとの双方のパーツオブジェクトが干渉し合うおそれがない関係の場合には、選択された第３のカテゴリのパーツオブジェクト、又は、第１のカテゴリのパーツオブジェクトが設定され、第２のカテゴリのパーツオブジェクトの設定は維持することができる。したがって、本発明によれば、必要最小限でパーツオブジェクトの組み合わせを制限でき、なるべく多くのパーツオブジェクトの組み合わせができるようにしている。
【発明を実施するための最良の形態】
【００１４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１５】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１６】
操作部１６０は、プレーヤがプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００１７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００１８】
スロット状態データ記憶部１７７には、スロット状態データが記憶される。ここで、スロット状態データとは、スロットにパーツオブジェクトデータの配置の有無や、配置されているパーツオブジェクトデータの種類を特定するためのデータである。ここで、「パーツオブジェクト」は１又は複数の「パーツオブジェクトデータ」で構成されており、この「パーツオブジェクトデータ」それぞれが、いずれか１つの「スロット」に対応付けられている。すなわち、スロット状態データは、スロット単位でパーツオブジェクトデータの配置設定を管理するための情報である。
【００１９】
オブジェクトデータ記憶部１７９は、オブジェクトデータが記憶される。本実施形態のオブジェクトデータ記憶部１７９は、モデルオブジェクトデータ記憶部１７９ａ、パーツオブジェクトデータ記憶部１７９ｂとを有する。
【００２０】
モデルオブジェクトデータ記憶部１７９ａには、複数のパーツオブジェクトによって構成されるモデルオブジェクトデータが記憶される。本実施形態のモデルオブジェクトデータ記憶部１７９ａは、複数のモデルオブジェクトを記憶するために、複数のバッファを設け、各バッファにモデルオブジェクトデータを記憶する。
【００２１】
パーツオブジェクトデータ記憶部１７９ｂには、複数のパーツオブジェクトが記憶される。この複数のパーツオブジェクトは、複数のカテゴリのいずれかのカテゴリに分類してパーツオブジェクトデータ記憶部１７９ｂに記憶される。
【００２２】
ここで、カテゴリとは、頭部分、首部分、腕部分など、モデルオブジェクトを構成する部位に応じて決められる属性である。
【００２３】
また、パーツオブジェクトデータ記憶部１７９ｂに記憶される複数のパーツオブジェクトのうち、所与のパーツオブジェクトについては、パーツオブジェクトに対応付けて、当該パーツオブジェクトのカテゴリとは異なるカテゴリの指定情報を記憶する。
【００２４】
ここで、「パーツオブジェクトのカテゴリ」とは、そのパーツオブジェクトが属するカテゴリである。また、「指定情報」とは、画像が不自然になる可能性のあるパーツオブジェクトのカテゴリである。つまり、指定情報は、同時設定が制限される可能性のある制限対象のカテゴリである。
【００２５】
また、本実施形態では、プレーヤの入力情報（例えば、操作部１６０からの操作情報）に基づいて、サーバからパーツオブジェクトをダウンロードして、パーツオブジェクトデータ記憶部１７９ｂ、情報記憶媒体１８０に記憶させる処理を行ってもよい。
【００２６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）、メモリカードなどにより実現できる。
【００２７】
処理部１００は、情報記憶媒体１８０に入力されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。
【００２８】
即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。また、情報記憶媒体１８０に、プレーヤの個人データやゲームのセーブデータなどを記憶してもよい。
【００２９】
なお、本実施形態では、情報記憶媒体１８０に、モデルオブジェクトデータや、パーツオブジェクトデータを記憶させ、必要に応じて、モデルオブジェクトデータ記憶部１７９ａ、パーツオブジェクトデータ記憶部１７９ｂにロードしてもよい。
【００３０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３１】
通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３２】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）を、ネットワークを介してサーバからダウンロードし、記憶部１７０や、情報記憶媒体１８０に記憶するようにしてもよい。このようなサーバの記憶部に記憶されているプログラムも本発明の範囲内に含めることができる。
【００３３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３４】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１１、仮想カメラ制御部１１２、受け付け部１１３、設定部１１４、スロット状態更新部１１５、モデルオブジェクトデータ更新部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３５】
オブジェクト空間設定部１１０は、モデルオブジェクト、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３６】
移動・動作処理部１１１は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３７】
仮想カメラ制御部１１２は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３８】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１１で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３９】
受け付け部１１３は、カテゴリ毎に、パーツオブジェクトの選択を受け付ける処理を行う。具体的には、プレーヤの入力情報に基づいて、画面に表示された複数のカテゴリの中から１のカテゴリの選択を受け付け、選択されたカテゴリについて複数のパーツオブジェクトの中から１つのパーツオブジェクトの選択を受け付ける。つまり、本実施形態では、プレーヤの入力情報に基づいて、１つのカテゴリについて１つのパーツオブジェクトの選択を受け付ける。
【００４０】
設定部１１４は、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【００４１】
本実施形態の設定部１１４は、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該既に設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、当該既に設定されているパーツオブジェクトを設定する。要するに、本実施形態の設定部１１４は、選択されたパーツオブジェクトに対応付けて、既に設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、当該既に設定されているパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクトと、当該既に設定されているパーツオブジェクトとを、モデルオブジェクトの構成要素として、同時に設定できないようにしている。
【００４２】
また、本実施形態の設定部１１４は、選択されたパーツオブジェクトに対応付けて、既に設定されている複数のパーツオブジェクトのカテゴリの指定情報が記憶されている場合には、前記既に設定されている複数のパーツオブジェクト毎に、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているか否かを判断し、前記既に設定されている複数のパーツオブジェクトのいずれかに選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されている場合に、選択されたパーツオブジェクト、又は、前記既に設定されている複数のパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリの指定情報が対応付けて記憶されているパーツオブジェクトを設定する。
【００４３】
スロット状態更新部１１５は、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定される場合には、選択されたパーツオブジェクトを構成する１又は複数のパーツオブジェクトデータそれぞれに対応するスロットに、他のパーツオブジェクトデータが配置されている場合に、各パーツオブジェクトデータの配置優先順位を決定するパーツオブジェクトの優先順位情報に基づいて、スロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データ記憶部１７７に記憶されているスロット状態データを更新する処理を行う。すなわち各スロットに対してパーツオブジェクトデータを配置設定する処理を行う。
【００４４】
優先順位情報は、配置優先順位が上位であるパーツオブジェクトデータ（上位パーツオブジェクトデータ）を、そのパーツオブジェクトデータより配置優先順位が下位であるパーツオブジェクトデータ（下位パーツオブジェクトデータ）に優先してスロットに配置設定するための情報である。また優先順位情報は、カテゴリ単位で設定される。
【００４５】
モデルオブジェクトデータ更新部１１６は、スロット状態データ記憶部１７７に記憶されているスロット状態データに基づいて、モデルオブジェクトデータ記憶部１７９ａに記憶されるモデルオブジェクトデータを更新する処理を行う。
【００４６】
具体的には、モデルオブジェクトデータ更新部１１６は、スロット状態データが更新されたスロットに配置されるパーツオブジェクトデータを、パーツオブジェクトデータ記憶部１７９ｂから読み込み、モデルオブジェクトデータ記憶部１７９ａの第１のバッファ（更新バッファ）に読み込み、モデルオブジェクトデータ更新部１１６は、既に配置されているモデルオブジェクトデータが記憶されているモデルオブジェクトデータ記憶部１７９ａの第２のバッファから、スロット状態データが更新されていないスロットに既に配置されているパーツオブジェクトデータを、第１のバッファへコピーする処理を行うようにしてもよい。なお、スロット状態データが更新されていないスロットに既に配置されているパーツオブジェクトデータを、パーツオブジェクトデータ記憶部１７９ｂから、第１のバッファに読み込むようにしてもよい。
【００４７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（オブジェクトデータ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数のプリミティブ）を画像バッファ１７３（フレームバッファや中間バッファ（ワークバッファ）などのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように描画処理を行う。
【００４８】
描画部１２０は、ジオメトリ処理部１２２、シェーディング処理部１２４、αブレンディング部１２６、陰面消去部１２８を含む。
【００４９】
ジオメトリ処理部１２２は、オブジェクトに対してジオメトリ処理を行う。具体的には、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理を行う。そして、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７９に保存される。
【００５０】
シェーディング処理部１２４は、オブジェクトに対して陰影付けをするシェーディング処理を行う。具体的には、ジオメトリ処理部１２２で行われた光源計算の結果（陰影情報）に基づき、オブジェクトの描画ピクセルの輝度を調整する。必要に応じて、ジオメトリ処理部１２２で光源計算を行わずに、シェーディング処理部１２４で光源計算を行わせてもよい。シェーディング処理としては、例えば、フラットシェーディング（flat Shading）、あるいはグローシェーディング（Gourand Shading）やフォンシェーディング（Phong  Shading）などのスムーズシェーディングをオブジェクトに対して行うことができる。
【００５１】
αブレンディング部１２６は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００５２】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。
【００５３】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。
【００５４】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、画像バッファ１７３に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、画像バッファ１７３に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５５】
隠面消去部１２８は、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７５（奥行きバッファ）を用いて、Ｚバッファ法（奥行き比較法、Ｚテスト）により隠面消去処理を行う。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７５に格納されるＺ値を参照する。そして参照されたＺバッファ１７５のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７５のＺ値を新たなＺ値に更新する。
【００５６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５７】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５８】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよい。
【００５９】
また、本実施形態の画像生成システムでは、ネットワーク（伝送ライン、通信回線）を介して接続された他の１又は複数の画像生成システムと、データ（例えば入力情報）を送受信する処理を行い、オンラインゲームを実現できるようにしてもよい。
【００６０】
２．本実施形態の手法の概要
（１）スロット
本実施形態では、モデルオブジェクトを構成する複数のスロットそれぞれに、パーツオブジェクトデータの配置設定を行う手法を採用する。
【００６１】
スロットは、モデル座標系に設定されるパーツオブジェクトデータの配置空間のことであり、モデルオブジェクトの構成部位に相当するものである。本実施形態では、図２に示すように人体の構成部位に対応する素体系スロットＡ１〜Ａ１４（広義には、第１のスロット）と、図３に示すように人体に装着される装飾物の構成部位に対応するアイテム系スロットＢ１〜Ｂ１０（広義には、第２のスロット）とを設定している。
【００６２】
例えば、図２では、人体の構成部位を１４の素体系スロットＡ１〜Ａ１４に対応させており、例えば、腕を例に採ると、腕は、Ａ４〜Ａ７の４の素体系スロットからなり、Ａ４は上腕部、Ａ５は肘、Ａ６は前腕部、Ａ７は手というように人体の構成部位に対応している。素体系スロットＡ１〜Ａ１４には、実際の人体の構成部位に対応するパーツオブジェクトのみならず、シャツやジャケットなどのパーツオブジェクトをも配置設定することができる。例えば、Ｔシャツを例に採ると、半袖Ｔシャツならば、Ａ３、Ａ４、Ａ８及びＡ９の素体系スロットを用いてパーツを構成することができ、長袖Ｔシャツならば、Ａ３〜Ａ６、Ａ８及びＡ９の素体系スロットを用いてパーツを構成することができる。
【００６３】
また、例えば、図３では、１又は複数の素体系スロットとオーバーラップしてアイテム系スロットＢ１〜Ｂ１０が設定されている。このアイテム系スロットＢ１〜Ｂ１０は、服を重ね着する場合など複数のパーツオブジェクトデータを重ねて配置する必要がある場合に用いられるスロットである。言い換えれば、重ね着用のスロットということができる。例えば、Ｂ２は、顔にひげをつける場合に用いられるスロットである。またＢ１、Ｂ３〜Ｂ６、及びＢ８〜Ｂ１０を用いると、全身鎧などが設定できる。このアイテム系スロットＢ１〜Ｂ１０は、基本的に、素体系スロットＡ１〜Ａ１４に配置設定されるパーツオブジェクトデータよりも配置優先順位が上位のパーツオブジェクトデータが配置設定される。またアイテム系スロット内でも配置優先順位がより上位のパーツオブジェクトデータが配置設定されるものがある。例えば、Ｂ７などは、道着の上から帯を締めている場合やスカートにベルトをつける場合などに用いられ、Ｂ８に配置されるパーツオブジェクトデータよりも配置優先順位が上位のパーツオブジェクトデータが配置設定される。
【００６４】
本実施形態のように素体系スロットＡ１〜Ａ１４と、アイテム系スロットＢ１〜Ｂ１０とを設定して、各スロットにパーツオブジェクトデータを配置して１体のモデルオブジェクトを構築することにより、複数のパーツオブジェクトを重ね着したように見えるモデルオブジェクトの画像を生成することができる。またアイテム系スロットＢ１〜Ｂ１０に配置されるパーツオブジェクトデータと素体系スロットＡ１〜Ａ１４に配置されるパーツオブジェクトデータとの重ね合わせにより、例えば、鎧の隙間から関節が見えるといった表現ができるようになる。
【００６５】
（２）カテゴリに分類する手法
本実施形態では、複数のカテゴリを設け、複数のパーツオブジェクトをいずれかの１つのカテゴリに対応づけて、パーツオブジェクトデータ記憶部１７９ｂに記憶する。
【００６６】
より具体的に説明すると、本実施形態では、１又は複数の素体系スロットあるいはアイテム系スロットに配置される１又は複数のパーツオブジェクトデータ（スロット単位のパーツオブジェクトデータ）を、１つのカテゴリに対応づけて、パーツオブジェクトデータ記憶部１７９ｂに記憶する。
【００６７】
図４を用いて、パーツオブジェクトの対応関係について説明する。例えば、本実施形態では、複数のカテゴリのうち、例えば、「兜」、「ブルゴネット」、「シルクハット」のパーツオブジェクトは、モデルオブジェクトの頭の上部分を決める「Ｈｅａｄ」カテゴリに分類され、素体系スロットＡ１に配置される。
【００６８】
また、「オペラマスク」は、モデルオブジェクトのマスクを決めるための「Ｍａｓｋ」に分類され、素体系スロットＡ２に配置される。
【００６９】
また、図４に示すように、本実施形態では、カテゴリそれぞれに配置優先順位を示す優先順位情報を予め設定している。この優先順位情報は、素体系スロットＡ１〜Ａ１４あるいはアイテム系スロットＢ１〜Ｂ１０に配置設定すべきパーツオブジェクトデータを決定するスロット状態データの更新処理に用いられる情報である。なお、例外的に、優先順位情報を無視してスロット状態データの更新処理が行われる場合もある。
【００７０】
また、図４に示すように、本実施形態では、パーツオブジェクトデータ記憶部１７９ｂに、パーツオブジェクトの各スロットに対応するパーツオブジェクトデータ（スロット単位のパーツオブジェクトデータ）を記憶する。例えば、カテゴリ「Ｉｎｎｅｒ」の「Ｔシャツ」は、スロットＡ３に対応するパーツオブジェクトデータＩｎｎｅｒ＿Ａ３＿１と、スロットＡ４に対応するパーツオブジェクトデータＩｎｎｅｒ＿Ａ４＿１と、スロットＡ８に対応するパーツオブジェクトデータＩｎｎｅｒ＿Ａ８＿１と、スロットＡ９に対応するパーツオブジェクトデータＩｎｎｅｒ＿Ａ９＿１とを、パーツオブジェクトデータ記憶部１７９ｂに記憶する。
【００７１】
本実施形態では、配置優先順位が上位のパーツオブジェクトデータを配置設定する際に、配置優先順位が下位のパーツオブジェクトデータに対応するスロットの配置設定をクリアするための配置設定クリア情報を記憶してもよい。
【００７２】
配置設定クリア情報は、パーツオブジェクトデータが素体系スロット（例えば、Ａ８）と、アイテム系スロット（例えば、Ｂ３）とにオーバーラップして配置設定される場合に、アイテム系スロットに配置されたパーツオブジェクトデータに隠れて見えなくなることにより、配置設定する必要のないスロットを特定するための情報である。スロット状態データの更新の際には、配置設定クリア情報に基づいて、設定されたスロットについてパーツオブジェクトデータの配置設定を行わない、あるいは、既に配置設定されているパーツオブジェクトデータの配置設定をクリアする更新処理が行われる。
【００７３】
（３）パーツオブジェクトの選択
本実施形態では、プレーヤの入力情報に基づいて、各カテゴリからパーツオブジェクトの選択を受け付け、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【００７４】
図５は、パーツオブジェクトの選択画面の一例である。例えば、本実施形態では、複数のカテゴリのうち、いずれか１つのカテゴリの選択を受け付け、受け付けたカテゴリ内の複数のパーツオブジェクトのうち、いずれか１つのパーツオブジェクトの選択を受け付ける。例えば図５は、複数のカテゴリのうちカテゴリ「Ｈｅａｄ」が選択され、カテゴリ「Ｈｅａｄ」に属する複数のパーツオブジェクトから「ブルゴネット」のパーツオブジェクトが選択された画像の一例である。
【００７５】
なお、本実施形態の各パーツオブジェクトには、ゲーム演算で用いられるパラメータ（パワースキル値、インパクトスキル値などのパラメータ）が設定され、このパラメータに基づいて、プレーヤに有利に働くスキルを設定可能としている。このようにすれば、モデルオブジェクトにパーツオブジェクトの着せ替えを行うだけでなく、ゲームの戦略性を考慮した着せ替えを行うことができる。
【００７６】
（４）スロット状態データの更新処理
本実施形態では、スロット状態データの更新処理によりモデルオブジェクトを構成するパーツオブジェクトのパーツオブジェクトデータを、スロットに配置設定する手法を採用する。
【００７７】
本実施形態では、プレーヤが選択したカテゴリのパーツオブジェクトと同一のカテゴリであって、他のパーツオブジェクトがスロットに配置されていない場合には、プレーヤが選択したカテゴリのパーツオブジェクトのパーツオブジェクトデータに対応するスロットのスロット状態データを更新すべきであると判断し、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００７８】
例えば、プレーヤが「Ｈｅａｄ」カテゴリに属する複数のパーツオブジェクトから、パーツオブジェクト「シルクハット」を選択した場合であって、「Ｈｅａｄ」カテゴリのパーツオブジェクトが配置されていない場合には、「シルクハット」のパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００７９】
また、本実施形態では、プレーヤが選択したカテゴリと同一のカテゴリの他のパーツオブジェクトのパーツオブジェクトデータが既に配置されている場合には、当該他のパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００８０】
例えば、プレーヤが「Ｈｅａｄ」カテゴリから、パーツオブジェクト「シルクハット」を選択した場合であって、既にモデルオブジェクトに「Ｈｅａｄ」カテゴリのパーツオブジェクトである「兜」のパーツオブジェクトのパーツオブジェクトデータがスロットに配置されている場合には、パーツオブジェクト「兜」に替えて、パーツオブジェクト「シルクハット」のパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００８１】
また、本実施形態では、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に、選択したカテゴリとは異なるカテゴリの他のパーツオブジェクトのパーツオブジェクトデータが配置されている場合には、優先順位情報に基づいて決定される各カテゴリの配置優先順位をスロット単位で比較して、スロット状態データを更新する。
【００８２】
なお、パーツオブジェクトに複数のスロットが指定されている場合であっても、パーツオブジェクトのパーツオブジェクトデータに対応するスロット単位でスロット状態データを更新すべきか否かを判断し、スロット単位でスロット状態データを更新している。このようにすることによって、モデルオブジェクトを構成するオブジェクトデータのデータ量を最小限に抑えることができ、モデルオブジェクトに対して自然な重ね着を表現できる。
【００８３】
具体的には、以下の（Ａ）〜（Ｃ）のようにスロット状態データの更新を行うことができる。
【００８４】
（Ａ）プレーヤが、カテゴリから選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト（選択したカテゴリとは異なるカテゴリのパーツオブジェクト）のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータが、他のパーツオブジェクトよりも配置優先順位が上位である場合には、スロット状態データを更新すべきであると判断し、該スロットに他のパーツオブジェクトのパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００８５】
（Ｂ）プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト（選択したカテゴリとは異なるカテゴリのパーツオブジェクト）のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータが、他のパーツオブジェクトのパーツオブジェクトデータよりも配置優先順位が下位である場合には、スロット状態データを更新すべきでないと判断する。この場合には、そのスロットのスロット状態データを更新せずに、他のパーツオブジェクトのパーツオブジェクトデータについての配置設定を維持する。
【００８６】
（Ｃ）プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータに対応するスロットに、既に他のパーツオブジェクト（選択したカテゴリとは異なるカテゴリのパーツオブジェクト）のパーツオブジェクトデータが配置されている場合であって、プレーヤが選択したパーツオブジェクトのパーツオブジェクトデータと、他のパーツオブジェクトのパーツオブジェクトデータとの配置優先順位が同位である場合には、該スロットに他のパーツオブジェクトのパーツオブジェクトデータに替えて選択されたパーツオブジェクトのパーツオブジェクトデータを配置設定してスロット状態データを更新する。
【００８７】
３．パーツオブジェクトの設定手法
（１）互いに異なるカテゴリの複数のパーツオブジェクトを、モデルオブジェクトの構成要素とした場合における問題点
本実施形態では、形状や大きさの異なる複数のパーツオブジェクトを用意し、モデルオブジェクトの部位に応じたカテゴリに、パーツオブジェクトを分類している。しかし、このカテゴリは、プレーヤがパーツオブジェクトを選択しやすいように分類したものであるので、カテゴリに応じたオブジェクトの部位に関わらず、形状や大きさにデザインのあるパーツオブジェクトが存在する場合がある。その結果、互いに異なるカテゴリの複数のパーツオブジェクトを、モデルオブジェクトに同時に設定した場合に、不自然な画像を生成してしまう場合がある。
【００８８】
図６（Ａ）は、モデルオブジェクトに「Ｍａｓｋ」カテゴリのパーツオブジェクトである「オペラマスク」が設定されたときに生成される画像の一例である。
【００８９】
また図６（Ｂ）は、モデルオブジェクトに「Ｈｅａｄ」カテゴリの「ブルゴネット」が設定されたときに生成される画像の一例である。
【００９０】
そして、図６（Ｃ）は、「Ｍａｓｋ」カテゴリの「オペラマスク」と、「Ｈｅａｄ」カテゴリの「ブルゴネット」とが設定されたときに生成される画像の一例である。
【００９１】
例えば、「オペラマスク」のパーツオブジェクトデータは、スロットＡ２に対応し、「ブルゴネット」のパーツオブジェクトデータは、スロットＡ１に対応している場合であっても、「オペラマスク」のパーツオブジェクトデータが、スロットＡ１に干渉するようなデザインでモデリングされ、「ブルゴネット」のパーツオブジェクトデータがスロットＡ２に干渉するようなデザインでモデリングされている場合には、「オペラマスク」を構成するポリゴンと、「ブルゴネット」を構成するポリゴンとが重なり合い、結果的に図６（Ｃ）に示すような不自然な画像が生成されてしまう。
【００９２】
（２）複数のパーツオブジェクトの同時設定を制限する手法
そこで、本実施形態では、互いに異なるカテゴリの複数のパーツオブジェクトが、同時に、モデルオブジェクトの構成要素となった場合に、不自然な画像が生成されてしまう場合には、予めこれらの各パーツオブジェクトに対応付けて、同時設定を制限するための指定情報を記憶し、この指定情報を用いて、これら複数のパーツオブジェクトの同時設定を制限する手法を採用している。このようにすれば、画像が不自然に見える事態を防ぐことができる。
【００９３】
ここで、パーツオブジェクトに対応づけて記憶される指定情報とは、画像が不自然になる可能性のあるパーツオブジェクトのカテゴリである。つまり、指定情報は、同時設定が制限される可能性のある対象カテゴリである。
【００９４】
例えば、パーツオブジェクトの一例である「オペラマスク」が「Ｍａｓｋ」カテゴリに属している場合に、「オペラマスク」と、「Ｈｅａｄ」カテゴリの一部のパーツオブジェクトとを同時にモデルオブジェクトに設定すると、画像が不自然になる場合には、「オペラマスク」に、「Ｈｅａｄ」カテゴリを、指定情報として記憶する。
【００９５】
具体的に説明すると、本実施形態では、図４に示すように、「Ｍａｓｋ」カテゴリの「オペラマスク」は、「Ｈｅａｄ」カテゴリの一部のパーツオブジェクト（例えば、ブルゴネット）と同時にモデルオブジェクトに設定すると画像が不自然になるので、「オペラマスク」に対応づけて、予め「Ｈｅａｄ」カテゴリを指定情報として記憶する。
【００９６】
なお、図４に示すように、「Ｈｅａｄ」カテゴリに属する「兜」のパーツオブジェクトは、指定情報がない。つまり、いずれのカテゴリのパーツオブジェクトと同時設定しても問題ないパーツオブジェクトについては、指定情報がＮＵＬＬとなる。
【００９７】
そして、本実施形態では、選択されたパーツオブジェクトに対応付けて、既にモデルオブジェクトに設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、その指定先カテゴリのパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクト、又は、指定先カテゴリの既にモデルオブジェクトに設定されているパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。つまり、本実施形態では、選択されたパーツオブジェクトに対応付けて、既にモデルオブジェクトに設定されているパーツオブジェクトのカテゴリの指定情報が記憶されている場合であって、その指定先カテゴリのパーツオブジェクトに対応付けて、選択されたパーツオブジェクトのカテゴリの指定情報が記憶されている場合に、選択されたパーツオブジェクトと、指定先カテゴリの既にモデルオブジェクトに配置されているパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定しないように処理を行っている。
【００９８】
具体的に、図７（Ａ）を用いて説明する。例えば、「Ｍａｓｋ」カテゴリのパーツオブジェクトの「オペラマスク」に、「Ｈｅａｄ」カテゴリを指定情報として記憶し、この「オペラマスク」が、既にモデルオブジェクトの構成要素として設定されているとする。そして、「Ｈｅａｄ」カテゴリのパーツオブジェクトの「ブルゴネット」に、「Ｍａｓｋ」カテゴリを指定情報として記憶し、この「ブルゴネット」が、選択されたとする。
【００９９】
本実施形態では、まず、選択されたパーツオブジェクトの指定情報を参照する。例えば、選択されたパーツオブジェクトの指定情報がない場合（ＮＵＬＬ）である場合には、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。
【０１００】
一方、選択されたパーツオブジェクトの指定情報がある場合には、その指定情報のカテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されているか否かを判断する。例えば、図７（Ａ）に示すように、選択されたパーツオブジェクトの「ブルゴネット」の指定情報である「Ｍａｓｋ」カテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されているか否かを判断する。
【０１０１】
選択されたパーツオブジェクトの指定情報のカテゴリのパーツオブジェクトが、モデルオブジェクトの構成要素として設定されていない場合には、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。
【０１０２】
一方、選択されたパーツオブジェクトの指定情報のカテゴリのパーツオブジェクトが、既にモデルオブジェクトの構成要素として設定されている場合には、その設定されているパーツオブジェクトの指定情報を参照する。例えば、図７（Ａ）に示すように、選択されたパーツオブジェクトの「ブルゴネット」の指定情報のカテゴリ「Ｍａｓｋ」のパーツオブジェクトである「オペラマスク」が既に、モデルオブジェクトの構成要素として設定されている場合には、「オペラマスク」の指定情報を参照する。
【０１０３】
そして、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリであるか否かを判断する。例えば、図７（Ａ）の例では、「オペラマスク」の指定情報が、選択されたパーツオブジェクトである「ブルゴネット」の「Ｈｅａｄ」カテゴリか否かを判断する。
【０１０４】
そして、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリである場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断する。例えば、図７（Ａ）に示すように、選択されたパーツオブジェクトである「ブルゴネット」の指定先カテゴリ「Ｍａｓｋ」のパーツオブジェクトの「オペラマスク」の指定情報が「Ｈｅａｄ」カテゴリであるので、「ブルゴネット」と「オペラマスク」とを、同時に設定できないと判断する。要するに、本実施形態では、選択されたパーツオブジェクトが、既に構成要素となっているパーツオブジェクトと、互いに指定される関係となるカテゴリ同士である場合に、同時にモデルオブジェクトの構成要素とすることはできないと判断する。
【０１０５】
本実施形態では、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断されると、表示部１９０に、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとのうち、いずれのパーツオブジェクトをモデルオブジェクトに設定するかを選択させる画像を表示させ、プレーヤの入力情報に基づいて、いずれかのパーツオブジェクトの選択を受け付ける処理を行う。そして、プレーヤが選択したパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。例えば、図７（Ａ）の例によれば、プレーヤが「オペラマスク」を選択した場合には、「オペラマスク」をモデルオブジェクトの構成要素として維持したまま設定する。一方、プレーヤが「ブルゴネット」を選択した場合には、「オペラマスク」をモデルオブジェクトの構成要素から削除する処理を行い（取り外す処理を行い）、既にモデルオブジェクトの構成要素として設定されているパーツオブジェクトに加えて、「ブルゴネット」を設定する処理を行う。
【０１０６】
一方、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトの指定情報が、選択されたパーツオブジェクトのカテゴリでない場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できると判断し、選択されたパーツオブジェクトを、モデルオブジェクトの構成要素として設定する。つまり、選択されたパーツオブジェクトを、新たなモデルオブジェクトの構成要素として設定する。
【０１０７】
例えば、図７（Ｂ）に示すように、カテゴリ「Ｍａｓｋ」の「シートマスク」が、既にモデルオブジェクトの構成要素として設定されており、この「シートマスク」が「Ｎｅｃｋ」カテゴリを指定情報として対応付けられている場合であるとする。つまり、「シートマスク」は「Ｈｅａｄ」カテゴリを指定していない場合であるとする。すると、「ブルゴネット」が選択された場合には、選択された「シートマスク」は、「Ｈｅａｄ」カテゴリを指定していないので、「シートマスク」と「ブルゴネット」とをモデルオブジェクトの構成要素として同時に設定できる。つまり、「シートマスク」と「ブルゴネット」とは、互いに指定される関係となるカテゴリ同士でないので、モデルオブジェクトの構成要素として同時に設定できる。
【０１０８】
このようにすれば、不自然な画像を生成する可能性のある複数のパーツオブジェクトの組み合わせを排除しつつ、パールオブジェクトの組み合わせのバリエーションをできる限り多くすることができ、様々なカスタマイズを可能にすることができる。
【０１０９】
（３）複数の指定情報を有する場合の処理
本実施形態では、選択されたパーツオブジェクトの指定情報に、複数のカテゴリが指定されている場合には、選択されたパーツオブジェクトの指定先カテゴリ毎に、指定先カテゴリのパーツオブジェクトが既にモデルオブジェクトの構成要素として設定されているか否かを判断し、指定先カテゴリのパーツオブジェクトが既にモデルオブジェクトの構成要素として設定されている場合には、指定先カテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられているか否かを判断する。
【０１１０】
そして、選択されたパーツオブジェクトの複数の指定先カテゴリのうち、少なくとも１つの指定先カテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられている場合には、選択されたパーツオブジェクトと、選択されたパーツオブジェクトの指定先カテゴリのパーツオブジェクトのうち、選択されたパーツオブジェクトのカテゴリを指定情報として対応付けられているパーツオブジェクトとを、モデルオブジェクトの構成要素として同時に設定できないと判断する。
【０１１１】
例えば、図８に示すように、選択されたパーツオブジェクトが、「Ｎｅｃｋ」カテゴリの「マント」である場合について説明すると、「マント」の指定先カテゴリの１つである「Ｈｅａｄ」のパーツオブジェクトは「シルクハット」として既に設定され、「シルクハット」が、選択された「Ｎｅｃｋ」カテゴリを指定情報として対応付けられていない。一方、「マント」の指定先カテゴリの１つである「Ｍａｓｋ」のパーツオブジェクトは「オペラマスク」として既に設定され、「オペラマスク」が、選択された「Ｎｅｃｋ」カテゴリを指定情報として対応付けられている。すると、本実施形態では、選択された「マント」又は、「オペラマスク」をモデルオブジェクトの構成要素として同時に設定できないと判断し、表示部１９０にいずれのパーツオブジェクトをモデルオブジェクトに設定するかを、選択させる画像を表示させ、プレーヤの入力情報に基づいて、「マント」又は、「オペラマスク」の選択を受け付け、プレーヤが選択したパーツオブジェクトを、モデルオブジェクトの構成要素として設定する処理を行う。
【０１１２】
３．本実施形態の処理
本実施形態の処理について説明する。
【０１１３】
まず、所与のカテゴリからパーツオブジェクトが選択されたか否かを判断する（ステップＳ１０）。所与のカテゴリの中からパーツオブジェクトが選択されたと判断されると（ステップＳ１０のＹ）、選択されたパーツオブジェクトが他のカテゴリを指定しているか否かを判断する（ステップＳ２０）。選択されたパーツオブジェクトが他のカテゴリを指定している場合には（ステップＳ２０のＹ）、指定された他のカテゴリのパーツオブジェクトが既に設定されているか否かを判断する（ステップＳ３０）。指定された他のカテゴリのパーツオブジェクトが既に設定されている場合には（ステップＳ３０のＹ）、指定された他のカテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定しているか否かを判断する（ステップＳ４０）。指定された他のカテゴリのパーツオブジェクトが、選択されたパーツオブジェクトのカテゴリを指定している場合には（ステップＳ４０のＹ）、選択されたパーツオブジェクト、又は、指定された他のカテゴリのパーツオブジェクトの選択を受け付ける（ステップＳ５０）。そして、受け付けたパーツオブジェクトをモデルオブジェクトの構成要素として設定する処理を行う（ステップＳ６０）。
【０１１４】
一方、ステップＳ２０のＮ、ステップＳ３０のＮ、ステップＳ４０のＮである場合には、選択されたパーツオブジェクトをモデルオブジェクトの構成要素として設定する処理を行う（ステップＳ７０）。以上で処理が終了する。
【図面の簡単な説明】
【０１１５】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】スロットの説明図。
【図３】スロットの説明図。
【図４】カテゴリ、パーツオブジェクト等の対応関係図。
【図５】本実施形態のパーツオブジェクトの選択画面の一例。
【図６】図６（Ａ）（Ｂ）（Ｃ）は、画像の一例。
【図７】図７（Ａ）（Ｂ）は、パーツオブジェクトの指定関係の説明図。
【図８】パーツオブジェクトの指定関係の説明図。
【図９】本実施形態の処理例を示すフローチャート。
【符号の説明】
【０１１６】
１００  処理部、
１１０  オブジェクト空間設定部、１１１  移動・動作処理部、
１１２  仮想カメラ制御部、１１３  受け付け部、１１４  設定部、
１１５  スロット状態更新部、１１６  モデルオブジェクトデータ更新部、
１２０  描画部、１２２  ジオメトリ処理部、１２４  シェーディング処理部、
１２６  αブレンディング部、１２８  隠面消去部、
１３０  音生成部、１６０  操作部、
１７０  記憶部、１７１  主記憶部、１７３  画像バッファ、
１７５  Ｚバッファ、１７７  スロット状態データ記憶部、
１７９  オブジェクトデータ記憶部、
１７９ａ  モデルオブジェクトデータ記憶部、
１７９ｂ  パーツオブジェクトデータ記憶部、
１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2010033298.tif 000003
【図２】
2010033298.tif 000004
【図３】
2010033298.tif 000005
【図４】
2010033298.tif 000006
【図５】
2010033298.tif 000007
【図６】
2010033298.tif 000008
【図７】
2010033298.tif 000009
【図８】
2010033298.tif 000010
【図９】
2010033298.tif 000011