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