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

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

Info

Publication number
JP2006268406A
JP2006268406A JP2005085318A JP2005085318A JP2006268406A JP 2006268406 A JP2006268406 A JP 2006268406A JP 2005085318 A JP2005085318 A JP 2005085318A JP 2005085318 A JP2005085318 A JP 2005085318A JP 2006268406 A JP2006268406 A JP 2006268406A
Authority
JP
Japan
Prior art keywords
slot
data
unit
placement
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005085318A
Other languages
English (en)
Other versions
JP4668655B2 (ja
Inventor
Taichi Tono
太一 東野
Seido Ozawa
勢堂 小澤
Takashi Kumakura
崇 熊倉
Ryo Takahashi
涼 高橋
Sei Nakatani
生 中谷
Shoji Ozaki
省之 尾崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2005085318A priority Critical patent/JP4668655B2/ja
Priority to US11/385,867 priority patent/US7706636B2/en
Publication of JP2006268406A publication Critical patent/JP2006268406A/ja
Application granted granted Critical
Publication of JP4668655B2 publication Critical patent/JP4668655B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • A63F13/10
    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】 少ない処理負荷で多様なモデルオブジェクトのカスタマイズを可能にするプログラム、情報記憶媒体及び画像生成システムを提供する。
【解決手段】 パーツオブジェクトの配置指示を受け付けて、各パーツオブジェクトに対応して設定されるパーツスロットに対するパーツオブジェクトの配置状態を示すスロット状態データを更新することにより、モデルオブジェクトを構成するパーツオブジェクトの配置設定を行う。配置指示されたパーツオブジェクトに対応するパーツスロットに他のパーツオブジェクトが配置されている場合には、各パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、そのパーツスロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データを更新する。
【選択図】 図15

Description

本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実感を体験できるものとして人気が高い。格闘ゲーム(対戦アクションゲーム)を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(コントローラ、レバー、ボタン等)を用いてプレーヤキャラクタ(プレーヤオブジェクト)を操作して、コンピュータや相手プレーヤが操作する敵キャラクタ(敵オブジェクト)と格闘対戦することでゲームを楽しむ。このような画像生成システムでは、ゲームをプレイするプレーヤの好みに応じてプレーヤキャラクタをカスタマイズできることが望まれる。このようにすることでプレーヤにゲームをプレイする強い動機付けを与えることができる。
しかしながら、このようなキャラクタのカスタマイズが可能な画像生成システムでは、モデルを構成するパーツを切り替えることによって、予め用意されたキャラクタモデルの一部のカスタマイズを行うことができるに過ぎなかった。すなわち、カスタマイズのバリエーションに制限があり、ユーザーのニーズに十分に応じることができていなかった。
またパーツを重ねて装着可能なカスタマイズを行わせるような場合には、モデルを構成するパーツを切り替える手法では、複数のパーツを重ねて装着した後のオブジェクトデータを用意する必要がある。しかしながら、カスタマイズの多様性を追求すると、膨大な量のオブジェクトデータを用意する必要があり、処理負荷も大きくなる。
特開2003−67767号公報
本発明は、上記事情を鑑みてなされたものであり、その目的は、少ない処理負荷で多様なモデルオブジェクトのカスタマイズを可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
本発明は、画像を生成するための画像生成システムであって、複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、前記配置指示されたパーツオブジェクトに対応するパーツスロットに他のパーツオブジェクトが配置されている場合に、各パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、該パーツスロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データを更新するスロット状態更新部と、更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部と、を含む画像生成システムに関係する。また、本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
コンピュータとは、プロセッサ(処理部:CPUあるいはGPUなど)、メモリ(記憶部)、入力装置、及び出力装置を基本的な構成要素とする物理的装置をいう。以下においても同様である。
パーツスロットとは、パーツオブジェクトを配置するための入れ物に相当するものである。言い換えると、パーツスロットとは、モデルオブジェクトを構成する部位に相当するものである。
パーツオブジェクトの配置状態とは、パーツオブジェクトの配置の有無や配置されているパーツオブジェクトの種類を示すものである。すなわち、スロット状態データは、パーツスロットにパーツオブジェクトが配置されているか否か、パーツオブジェクトが配置されている場合には、どのパーツオブジェクトが配置されているかを示すパーツオブジェクトの配置設定情報を含むデータである。
本発明によれば、パーツスロットに配置される複数のパーツオブジェクトが競合する場合に、優先順位情報を用いて、あたかも重ね着をしたように複数のパーツを配置したモデルオブジェクトの画像を生成することができる。この場合、配置優先順位の上下関係に応じて必要最小限のパーツオブジェクトのみでモデルオブジェクトを構成することができるため、少ない処理負荷で多様なモデルオブジェクトのカスタマイズを可能にすることができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記スロット状態更新部が、前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトよりも前記配置優先順位が上位である場合に、該パーツスロットのスロット状態データを更新すべきであると判断し、該パーツスロットに前記他のパーツオブジェクトに替えて前記配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新するようにしてもよい。このようにすれば、配置優先順位が下位のパーツオブジェクトに替えて配置優先順位が上位のパーツオブジェクトが配置設定されるため、必要最小限のデータ量で複数のパーツを重ね着したようなモデルオブジェクトの画像を生成することができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記スロット状態更新部が、前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトよりも前記配置優先順位が下位である場合に、該パーツスロットのスロット状態データを更新すべきでないと判断するようにしてもよい。このようにすれば、重ね着したときに外面に現れることのないパーツオブジェクトを配置することなくモデルオブジェクトを構成することができるため、メモリの消費量を節約することができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記スロット状態更新部が、前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトと前記配置優先順位が同位である場合に、該パーツスロットのスロット状態データを更新すべきであると判断し、該パーツスロットに前記他のパーツオブジェクトに替えて前記配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新するようにしてもよい。このようにすれば、配置優先順位が同位のパーツオブジェクトの変更を行う際に、配置優先順位が上位のパーツオブジェクトによって隠されて見えない部分を除いた外面に現れているパーツオブジェクトのみの配置設定を新たに行うだけで、スロット状態データの更新処理が済むので、パーツオブジェクトの変更に伴うモデルオブジェクトの更新処理の処理負荷を低く抑えることができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、1又は複数の前記パーツスロットに配置される1又は複数の前記パーツオブジェクトがパーツセットとして用意され、かつ前記パーツセットに含まれる前記パーツオブジェクトの前記配置優先順位がパーツセット単位で設定され、前記配置指示受付部が、前記パーツセットを指示単位として、前記パーツオブジェクトの配置指示を受け付けるようにしてもよい。このようにすれば、パーツスロット単位ではなく、パーツセット単位でまとめてパーツオブジェクトの配置指示を行うことができるようになるため、ユーザーインターフェース環境の向上を図ることができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記スロット状態更新部が、前記パーツセットに複数の前記パーツオブジェクトが含まれる場合に、該パーツセットに含まれる各パーツオブジェクトに対応するパーツスロット単位で前記スロット状態データを更新すべきか否かを判断し、該パーツスロット単位で前記スロット状態データを更新するようにしてもよい。このようにすれば、パーツセット単位でパーツオブジェクトの配置指示が行われても、パーツスロット単位でスロット状態データの更新を行うことによって、必要最小限のデータ量でモデルオブジェクトを構成することができる。
また本発明は、画像を生成するための画像生成システムであって、複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、1又は複数の前記パーツスロットに配置される1又は複数の前記パーツオブジェクトを含むパーツセットを指示単位として、前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、前記パーツセットに含まれる前記パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、スロット状態データを更新するスロット状態更新部と、更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部と、を含む画像生成システムに関係する。また、本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明によれば、パーツオブジェクトに対応するパーツスロット単位ではなく、パーツセット単位でまとめてパーツオブジェクトの配置指示を行うことができるようになるため、パーツオブジェクトを変更してモデルオブジェクトをカスタマイズするシステムにおおけるユーザーインターフェース環境の向上を図ることができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記配置優先順位が下位の下位パーツオブジェクトが配置される下位パーツスロットと、前記配置優先順位が上位の上位パーツオブジェクトが配置される上位パーツスロットが用意され、かつ下位パーツセットに含まれる1又は複数の前記下位パーツオブジェクトのバリエーションオブジェクトを選択するためのバリエーション選択情報が、1又は複数の前記上位パーツオブジェクトを含む上位パーツセットに対して設定され、前記スロット状態更新部が、配置指示された前記上位パーツセットに対して、前記バリエーション選択情報が設定されている場合に、前記下位パーツスロットのスロット状態データを更新すべきであると判断し、前記上位パーツセットに対して設定されたバリエーション選択情報に基づき、前記下位パーツスロットに対して前記下位パーツオブジェクトのバリエーションオブジェクトを配置設定してスロット状態データを更新するようにしてもよい。このようにすれば、パーツオブジェクトの配置指示に伴い、パーツオブジェクトが変更されて再構築されたモデルオブジェクトの画像が不自然なものに見えるような事態を防止することができる。
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記配置優先順位が下位の下位パーツオブジェクトが配置される下位パーツスロットと、前記配置優先順位が上位の上位パーツオブジェクトが配置される上位パーツスロットが用意され、かつ下位パーツセットに含まれる1又は複数の前記下位パーツオブジェクトに応じて前記上位パーツオブジェクトのバリエーションパーツを選択するためのバリエーション選択情報が、1又は複数の前記上位パーツオブジェクトを含む上位パーツセットに対して設定され、前記スロット状態更新部が、配置指示された前記上位パーツセットに対して、前記バリエーション選択情報が設定されている場合に、前記上位パーツセットに対して設定されたバリエーション選択情報に基づき、前記下位パーツスロットに配置されている前記下位パーツオブジェクトに応じて選択された前記上位パーツオブジェクトのバリエーションオブジェクトを前記上位パーツスロットに対して配置設定してスロット状態データを更新するようにしてもよい。このようにすれば、下位パーツオブジェクトと上位パーオブジェクトとの整合性を取ることができるため、上位パーツオブジェクトの配置に伴って再構築されたモデルオブジェクトの画像が不自然なものに見えるような事態を防止することができる。
また本発明の画像生成システムでは、前記オブジェクトデータ記憶部が、第1の記憶バッファと、第2の記憶バッファとを含み、前記スロット状態データに基づいて、前記第1及び第2の記憶バッファに記憶される前記オブジェクトデータを更新するオブジェクトデータ更新部を含み、前記画像生成部が、前記オブジェクトデータ更新部によって前記第1及び第2の記憶バッファのうち一方の記憶バッファが更新されている期間は、他方の記憶バッファに記憶されているオブジェクトデータに基づいて生成される前記モデルオブジェクトの画像を表示部に出力するようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記オブジェクトデータ記憶部、オブジェクトデータ更新部、及び画像生成部としてコンピュータを機能させるようにしてもよい。このようにすれば、モデルオブジェクトの再構築がフレーム更新に間に合わないような事態を効果的に防止することができる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤがプレーヤオブジェクト(プレーヤが操作するプレーヤキャラクタ)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部111、仮想カメラ制御部112、配置指示受付部113、スロット状態更新部114、オブジェクトデータ更新部115、画像生成部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。オブジェクトを定義するオブジェクトデータは、オブジェクトデータ記憶部179に記憶されている。
移動・動作処理部111は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部112は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部111で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
配置指示受付部113は、モデルオブジェクトを構成するためのパーツオブジェクトを、そのパーツオブジェクトに対応するパーツスロットに配置する指示を受け付ける処理を行う。本実施形態では、1又は複数のパーツスロットに配置される1又は複数のパーツオブジェクトがパーツセットとして用意され、パーツセットを指示単位として、パーツオブジェクトの配置指示を受け付けることができる。具体的には、プレーヤが操作部160を用いて画面に表示されたパーツセット群の中から1のパーツセットを選択すると、その選択されたパーツセットに含まれるパーツオブジェクトの配置指示を受け付ける。
スロット状態更新部114は、配置指示されたパーツオブジェクトに対応するパーツスロットに他のパーツオブジェクトが配置されている場合に、各パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、パーツスロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データ記憶部177に記憶されているスロット状態データを更新する処理を行う。すなわち各パーツスロットに対してパーツオブジェクトを配置設定する処理を行う。
スロット状態データは、パーツスロット単位でパーツオブジェクトの配置の有無、配置されているパーツオブジェクトの種類を特定するためのデータである。すなわちスロット状態データは、パーツオブジェクトの配置設定を管理するための情報である。スロット状態データは、記憶部170に設けられたスロット状態データ記憶部177に格納されているが、スロット状態データ記憶部177は、シングルバッファ構成としてもよいし、ダブルバッファ構成としてもよい。
優先順位情報は、配置優先順位が上位であるパーツオブジェクト(上位パーツオブジェクト)を、そのパーツオブジェクトより配置優先順位が下位であるパーツオブジェクト(下位パーツオブジェクト)に優先してパーツスロットに配置設定するための情報である。また優先順位情報は、パーツセット単位で設定され、同一のパーツセットに含まれるパーツオブジェクトに対しては、同一の配置優先順位が設定される。
オブジェクトデータ更新部115は、スロット状態データに基づいて、オブジェクトデータ記憶部179に記憶されるオブジェクトデータを更新する処理を行う。本実施形態では、オブジェクトデータ記憶部179が、第1の記憶バッファと、第2の記憶バッファとを含むダブルバッファ構成であり、第1の記憶バッファと第2の記憶バッファとは交互に更新される。具体的には、オブジェクトデータ更新部115が、スロット状態データが更新されたパーツスロットに配置されるパーツオブジェクトのオブジェクトデータを更新対象の記憶バッファに新たに読み込む(ロードする)とともに、スロット状態データが更新されていないパーツスロットに既に配置されているパーツオブジェクトのオブジェクトデータを更新済みの記憶バッファから更新対象の記憶バッファへコピーする更新処理を行う。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(オブジェクトデータ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数のプリミティブ)を描画バッファ174(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように描画処理を行う。
画像生成部120は、ジオメトリ処理部122、シェーディング処理部124、αブレンディング部126、陰面消去部128を含む。
ジオメトリ処理部122は、オブジェクトに対してジオメトリ処理を行う。具体的には、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部179(第1の記憶バッファMEM1あるいは第2の記憶バッファMEM2)に保存される。
シェーディング処理部124は、オブジェクトに対して陰影付けをするシェーディング処理を行う。具体的には、ジオメトリ処理部122で行われた光源計算の結果(陰影情報)に基づき、オブジェクトの描画ピクセルの輝度を調整する。必要に応じて、ジオメトリ処理部122で光源計算を行わずに、シェーディング処理部124で光源計算を行わせてもよい。シェーディング処理としては、例えば、フラットシェーディング(flat Shading)、あるいはグローシェーディング(Gourand Shading)やフォンシェーディング(Phong Shading)などのスムーズシェーディングをオブジェクトに対して行うことができる。
αブレンディング部126は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。例えば通常αブレンディングの場合には下式(1)〜(3)の処理を行う。
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
また、加算αブレンディングの場合には下式(4)〜(6)の処理を行う。
=R+α×R (4)
=G+α×G (5)
=B+α×B (6)
また、減算αブレンディングの場合には下式(7)〜(9)の処理を行う。
=R−α×R (7)
=G−α×G (8)
=B−α×B (9)
ここで、R、G、Bは、描画バッファ174に既に描画されている画像(元画像)のRGB成分であり、R、G、Bは、描画バッファ174に描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
隠面消去部128は、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ175(奥行きバッファ)を用いて、Zバッファ法(奥行き比較法、Zテスト)により隠面消去処理を行う。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ175に格納されるZ値を参照する。そして参照されたZバッファ175のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ175のZ値を新たなZ値に更新する。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお本実施形態の手法は、以下において説明するモデルのみならず、種々のモデルの表現に適用できる。
2.1 パーツスロットの説明
本実施形態では、複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するパーツスロットを設定し、パーツスロット単位でパーツオブジェクトの配置設定を行う手法を採用する。
パーツスロットは、モデル座標系に設定されるパーツオブジェクトの配置空間のことであり、モデルオブジェクトの構成部位に相当するものである。本実施形態では、図2に示すように人体の構成部位に対応する人体パーツスロットA1〜A14(広義には、第1のパーツスロット)と、図3に示すように人体に装着される装飾物の構成部位に対応する装飾パーツスロットB1〜B10(広義には、第2のパーツスロット)とを設定している。
例えば、図2では、人体の構成部位を14の人体パーツスロットA1〜A14に対応させており、例えば、腕を例に採ると、腕は、A4〜A7の4の人体パーツスロットからなり、A4は上腕部、A5は肘、A6は前腕部、A7は手というように人体の構成部位に対応している。人体パーツスロットA1〜A14には、実際の人体の構成部位に対応するパーツオブジェクトのみならず、シャツやジャケットなどのパーツオブジェクトをも配置設定することができる。例えば、Tシャツを例に採ると、半袖Tシャツならば、A3、A4、A8及びA9の人体パーツスロットを用いてパーツを構成することができ、長袖Tシャツならば、A3〜A6、A8及びA9の人体パーツスロットを用いてパーツを構成することができる。
また例えば、図3では、1又は複数の人体パーツスロットとオーバーラップしてパーツオブジェクトが配置される装飾パーツスロットB1〜B10が設定されている。この装飾パーツスロットB1〜B10は、服を重ね着する場合など複数のパーツを重ねて配置する必要がある場合に用いられるパーツスロットである。言い換えれば、重ね着用のパーツスロットということができる。例えば、B2は、顔にひげをつける場合に用いられるパーツスロットである。またB1、B3〜B6、及びB8〜B10を用いると、全身鎧などが設定できる。この装飾パーツスロットB1〜B10は、基本的に、人体パーツスロットA1〜A14に配置設定されるパーツオブジェクトよりも配置優先順位が上位のパーツオブジェクトが配置設定される。また装飾パーツスロット内でも配置優先順位がより上位のパーツオブジェクトが配置設定されるものがある。例えば、B7などは、道着の上から帯を締めている場合やスカートにベルトをつける場合などに用いられ、B8に配置されるパーツオブジェクトよりも配置優先順位が上位のパーツオブジェクトが配置設定される。
本実施形態のように人体パーツスロットA1〜A14と、装飾パーツスロットB1〜B10とを設定して、各パーツスロットにパーツオブジェクトを配置して1体のモデルオブジェクトを構築することにより、複数のパーツを重ね着したように見えるモデルオブジェクトの画像を生成することができる。また装飾パーツスロットB1〜B10に配置されるパーツオブジェクトと人体パーツスロットA1〜A14に配置されるパーツオブジェクトとの重ね合わせにより、例えば、鎧の隙間から関節が見えるといった表現や、胸の開いた服から肌着が見えるといった表現を行うことができるようになる。
2.2 パーツセットの説明
本実施形態では、1又は複数の人体パーツスロットあるいは装飾パーツスロットに配置される1又は複数のパーツオブジェクトがパーツセットとして用意されている。そしてパーツセットに含まれるパーツオブジェクトの配置優先順位がパーツセット単位で設定され、パーツセットを指示単位として、パーツオブジェクトの配置指示を受け付ける手法を採用する。
例えば、図4には、図2に示したA1〜A14の人体パーツスロットに配置設定されるパーツオブジェクトをパーツスロット単位で管理する人体パーツセットデータのデータテーブルが示されている。本実施形態では、人体パーツスロットA1にモデルオブジェクトの髪型を決めるためのパーツセット(髪1、髪2、・・・)が設定され、人体パーツスロットA2にモデルオブジェクトの顔を決めるためのパーツセット(顔1、顔2、・・・)が設定され、人体パーツスロットA3〜A14にモデルオブジェクトの肉体部分を決めるためのパーツセット(人体1、人体2、・・・)が用意されている。このデータテーブルでは、パーツセット単位で、各パーツセットに含まれるパーツオブジェクトと人体パーツスロットとの対応関係、各パーツセットに含まれるパーツオブジェクトの配置優先順位を示す優先順位情報、各パーツセットに含まれるパーツオブジェクトのオブジェクトデータやバリエーションオブジェクトデータ等がパーツセットデータに含まれる。
なお、配置優先順位は、パーツセット単位で設定されることにより、同一のパーツセットに含まれるパーツオブジェクトは同じ配置優先順位の優先順位情報が設定される。この優先順位情報は、人体パーツスロットA1〜A14あるいは装飾パーツスロットB1〜B10に配置設定すべきパーツオブジェクトを決定するスロット状態データの更新処理に用いられる情報である。また、バリエーションオブジェクトデータは、装飾パーツスロットB1〜B10に配置される配置優先順位が上位のパーツオブジェクトとの関係に応じて設定されるものであり、必ずしも各人体パーツセットに設定されるものではない。例えば、人体モデルに締め付け感のある服を着せる場合に、服の締め付け感が十分に表現されるようにするために、そのような服パーツオブジェクトが装飾パーツスロットB1〜B10に配置設定される場合に、通常時に配置設定される人体パーツセットよりも引き締まった肉体のパーツオブジェクトをバリエーションオブジェクトとして配置設定するようにしている。このようにすれば、人体パーツオブジェクトの一部が服パーツオブジェクトから不自然にはみ出して見えるような事態を防止することもできる。
また例えば、図5には、図2に示したA1〜A14の人体パーツスロットあるいは図3に示したB1〜B10の装飾パーツスロットのいずれかに配置設定されるパーツオブジェクトをパーツスロット単位で管理する装飾パーツセットデータのデータテーブルが示されている。装飾パーツセットデータでは、パーツセット単位で、パーツセットとパーツスロットとの対応関係、パーツセットに含まれるパーツオブジェクトの配置優先順位を示す
優先順位情報、パーツセットに含まれるパーツオブジェクトのオブジェクトデータおよびバリエーションオブジェクトデータ、配置優先順位が下位のパーツセットが配置設定されている場合にバリエーションオブジェクトを選択するために必要なバリエーション選択情報、配置優先順位が下位のパーツセットに応じてバリエーションオブジェクトを選択するための監視スロット情報、配置優先順位が上位のパーツセットを配置設定する際に、配置優先順位が下位のパーツセットに含まれるパーツオブジェクトに対応するパーツスロットの配置設定をクリアするための配置設定クリア情報等が含まれる。
バリエーション選択情報は、装飾パーツスロットB1〜B10に配置設定されるパーツオブジェクトを含むパーツセットが選択された場合に、人体パーツスロットA1〜A14に配置設定されるパーツオブジェクトのバリエーションオブジェクトを選択してパーツオブジェクトの配置設定を変更するための情報である。また装飾パーツスロットB1〜B10の間においても、配置優先順位が上位のパーツオブジェクトが配置されるスロットと、配置優先順位が下位のパーツオブジェクトが配置されるスロットが存在し、このような場合にも、バリエーションオブジェクトの選択が行うことができる。
監視スロット情報は、配置優先順位が下位のパーツオブジェクトが配置されるパーツスロット(例えば、人体パーツスロットA2)にどのようなパーツオブジェクトが配置されているかを監視することにより、形状の整合性が取れるようにバリエーションオブジェクトを配置設定するための設定情報である。この監視スロット情報が設定されたパーツセットが選択された場合には、監視スロットとして設定されたパーツスロット(例えば、人体パーツスロットA2)に配置設定されたパーツオブジェクトの種類(例えば、顔1(FOB1−A2)、顔2(FOB2−A2))に応じて、デフォルトパターンのパーツオブジェクト(例えば、WOB−B2)を配置設定するのか、あるいはバリエーションオブジェクト(例えば、WOB−B2aあるいはWOB−B2b)を配置設定するのかがバリエーション選択情報を用いて選択される。
配置設定クリア情報は、パーツオブジェクトが人体パーツスロット(例えば、A8)と、装飾パーツスロット(例えば、B3)とにオーバーラップして配置設定される場合に、装飾パーツスロットに配置されたパーツオブジェクトに隠れて見えなくなることにより、配置設定する必要のないパーツスロットを特定するための情報である。スロット状態データの更新の際には、配置設定クリア情報に基づいて、設定されたパーツスロットについては、パーツオブジェクトの配置設定を行わない、あるいは既に配置設定されているパーツオブジェクトの配置設定をクリアする更新処理が行われる。
なおパーツセットデータは、情報記憶媒体180のパーツセットデータ記憶部182に格納されている。オブジェクトデータは、パーツセットデータ記憶部182からオブジェクトデータ記憶部179に読み込まれる。必要に応じて一部のパーツセットデータを記憶部170の主記憶部171に展開しておいてもよい。例えば、読出しが頻繁に必要なパーツセットデータなどを主記憶部171に展開しておくことができる。例えば、人体パーツセットデータが頻繁に読み出されるような場合には、そのパーツセットデータを主記憶部171に常駐的に展開しておくことができる。このようにすれば、情報記憶媒体180へのアクセス頻度を減らすことができ、パーツオブジェクトの変更時にモデルオブジェクトを再構築するための処理時間を短縮することができる。
2.2 スロット状態データの更新手法
本実施形態では、スロット状態データテーブルの更新処理によりモデルオブジェクトを構成するパーツオブジェクトを配置設定する手法を採用する。スロット状態データテーブルは、パーツスロットに対するパーツオブジェクトの配置設定をスロット状態データデータテーブル化したものである。
まず配置指示されたパーツオブジェクトに対応づけられたパーツスロットに他のパーツオブジェクトが配置されていない場合には、そのパーツスロットのスロット状態データを更新すべきであると判断し、そのパーツスロットに配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新する。
また、配置指示されたパーツオブジェクトと、そのパーツオブジェクトに対応するパーツスロットに既に他のパーツオブジェクトが配置されている場合には、優先順位情報に基づいて決定される各パーツオブジェクトの配置優先順位をパーツスロット単位で比較して、スロット状態データを更新する手法を採用する。なお、パーツセットに複数のパーツオブジェクトが含まれる場合であっても、パーツセットに含まれる各パーツオブジェクトに対応するパーツスロット単位でスロット状態データを更新すべきか否かを判断し、パーツスロット単位でスロット状態データを更新している。このようにすることによって、モデルオブジェクトを構成するオブジェクトデータのデータ量を最小限に抑えることができる。
具体的には、以下の(A)〜(C)のようにスロット状態データの更新を行うことができる。
(A)配置指示されたパーツオブジェクトが、そのパーツオブジェクトに対応するパーツスロットに既に配置されている他のパーツオブジェクトよりも配置優先順位が上位である場合には、スロット状態データを更新すべきであると判断し、該パーツスロットに他のパーツオブジェクトに替えて配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新する。
(B)配置指示されたパーツオブジェクトが、そのパーツオブジェクトに対応するパーツスロットに既に配置されている他のパーツオブジェクトよりも配置優先順位が下位である場合には、スロット状態データを更新すべきでないと判断する。この場合には、そのパーツスロットのスロット状態データを更新せずに、他のパーツオブジェクトについての配置設定を維持する。
(C)配置指示されたパーツオブジェクトが、そのパーツオブジェクトに対応するパーツスロットに既に配置されている他のパーツオブジェクトと配置優先順位が同位である場合には、スロット状態データを更新すべきであると判断し、そのパーツスロットに他のパーツオブジェクトに替えて配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新する。
ここで図6(A)〜図6(C)を用いてスロット状態データの更新手法をより詳細に説明する。
まず図6(A)では、人体パーツスロットA1〜A14に髪1(HOB1−A1)、顔1(FOB1−A2)、人体1(NOB1−A3〜NOB1−A14)の各パーツセットに対応するパーツオブジェクトのみが配置設定されており、裸のモデルオブジェクトが構成されている。このとき、裸の状態のモデルオブジェクトに対してTシャツ1(JOB1−A3/−A4/−A8/−A9)を着せる場合には、各パーツセットに設定された配置優先順位に基づいて、スロット単位でパーツオブジェクトの配置設定が行われる。
まずTシャツ1は、人体パーツスロットA3、A4、A8、A9に配置すべきパーツオブジェクト(JOB1−A3/−A4/−A8/−A9)を含み、Tシャツ1のパーツセットに含まれるパーツオブジェクトは、いずれも人体パーツスロットA3、A4、A8、A9に配置設定されている人体1のパーツセットのパーツオブジェクト(NOB1−A3/−A4/−A8/−A9)よりも配置優先順位が上位であるため、スロット状態データの更新すべきであると判断される。そして、図6(B)に示すように、これらの人体パーツスロットA3、A4、A8、A9には、Tシャツ1に含まれるパーツオブジェクト(JOB1−A3/−A4/−A8/−A9)の配置設定が行われる。その他のパーツスロットについては、スロット状態データを更新する必要がないため、図6(A)に示すパーツオブジェクトの配置設定を維持する。
次に、図6(B)のTシャツ1を着た状態のモデルオブジェクトにさらに道着を重ね着させる場合を説明する。この場合には、まず道着のパーツセットに含まれているパーツオブジェクト(JOB4−A4/−A5/−A6/−B3/−B6)に対応する人体パーツスロットA4〜A6及び装飾パーツスロットB3、B6のスロット状態データを更新する。人体パーツスロットA4については、既にTシャツ1のパーツセットに含まれるパーツオブジェクト(JOB1−A4)が配置設定されているが、道着のパーツセットには、Tシャツ1のパーツセットよりも上位の配置優先順位が設定されているため、図6(C)に示すように、道着のパーツセットに含まれるパーツオブジェクト(JOB4−A4)を新たに配置設定してスロット状態データが更新される。また人体パーツスロットA5、A6についても人体1のパーツセットに含まれるパーツオブジェクト(NOB1−A5/−A6)が配置設定されているが、同様に配置優先順位の上下関係に基づいて、道着のパーツセットに含まれるパーツオブジェクト(JOB4−A5/−A6)が新たに配置設定される。また道着のパーツセットには、配置設定クリア情報が設定されており、人体パーツスロットA8〜A10の配置設定をクリアすべきことが設定されている。従って、この配置設定クリア情報に基づいて、人体パーツスロットA8〜A10については、図6(C)に示すように、パーツオブジェクトの配置設定がクリアされる。また装飾パーツスロットB3、B6については、図6(B)の状態では、パーツオブジェクトが配置設定されていないため(NULL)、図6(C)に示すように、配置指示された道着のパーツセットに含まれるパーツオブジェクト(JOB4−B3/−B6)が配置設定されるようにスロット状態データが更新される。
このように本実施形態のスロット状態データの更新手法によれば、配置優先順位の上下関係に応じて必要最小限のパーツオブジェクトのみでモデルオブジェクトを構成することができるため、少ない処理負荷で多様なモデルオブジェクトのカスタマイズを可能にすることができる。
またパーツセットに対してバリエーション選択情報が設定されている場合には、バリエーション選択情報に基づいて、パーツオブジェクトのバリエーションオブジェクトを選択することによって、パーツスロットに配置されるパーツオブジェクトの種類を変更するようにしてもよい。すなわち、配置優先順位が上位のパーツオブジェクトが配置指示されている場合に、配置優先順位が上位のパーツオブジェクトと配置優先順位が下位のパーツオブジェクトとの組み合わせに応じて、配置優先順位が上位のパーツオブジェクトあるいは配置優先順位が下位のパーツオブジェクトについて、一部又は全部の形状の異なるパーツオブジェクトのバリエーションオブジェクトを配置設定することができる。
例えば、配置優先順位が上位のパーツオブジェクトが配置されるパーツセットに対して配置指示が行われ、そのパーツセットに対してバリエーション選択情報が設定されている場合には、そのパーツセットに含まれるパーツオブジェクトよりも配置優先順位が下位のパーツオブジェクトが配置されるパーツスロットのスロット状態データを更新すべきであると判断する。そして、配置優先順位が上位のパーツオブジェクトを含むパーツセットに対して設定されたバリエーション選択情報に基づき、配置優先順位が下位のパーツオブジェクトが配置されていたパーツスロットに対して、そのパーツオブジェクトのバリエーションオブジェクトを配置設定してスロット状態データを更新することができる。
また例えば、配置優先順位が上位のパーツオブジェクトが配置されるパーツセットに対して配置指示が行われ、そのパーツセットに対して、バリエーション選択情報が設定されている場合には、そのパーツセットに対して設定されたバリエーション選択情報に基づき、配置指示されたパーツセットに含まれる配置優先順位が上位のパーツオブジェクトよりも配置優先順位が下位のパーツオブジェクトが配置されるべきパーツスロットに配置設定されているパーツオブジェクトに応じて選択された配置優先順位が上位のパーツオブジェクトのバリエーションオブジェクトを、そのバリエーションオブジェクトに対応するパーツスロットに対して配置設定してスロット状態データを更新することができる。
なおスロット状態データは、同一のパーツスロットにおいて複数のパーツオブジェクトが競合する場合には、各パーツオブジェクトの配置優先順位を比較して、上位のパーツオブジェクトを配置設定するように更新することができる。またスロット状態データは、配置優先順位に従って、順番にパーツオブジェクトの配置設定を行うことにより更新することもできる。例えば、配置優先順位が下位のパーツオブジェクトを含むパーツセットから順に配置設定していく場合は、同一のパーツスロットに下位のパーツオブジェクトが既に配置設定されていても、上位のパーツオブジェクトに配置設定を書き換えることによりスロット状態データを更新することができる。また例えば、配置優先順位が上位のパーツオブジェクトを含むパーツセットから順に配置設定していく場合は、配置設定がなされていないパーツスロットにのみ配置設定を行っていき、配置優先順位が下位のパーツオブジェクトを含むパーツセットの配置設定を行う際に、既に配置優先順位が上位のパーツオブジェクトが配置設定されていた場合には、そのパーツスロットについてのスロット状態データの更新を行わずに、空いているパーツスロットに対してのみ下位のパーツオブジェクトを配置設定するようにしてスロット状態データの更新を行うことができる。
2.3 オブジェクトデータの更新手法
本実施形態では、モデルオブジェクトを構築するためのオブジェクトデータを記憶するメモリ(オブジェクトデータ記憶部179)が、第1の記憶バッファMEM1と、第2の記憶バッファMEM2とを含むダブルバッファ構成となっていて、第1及び第2の記憶バッファMEM1、MEM2に記憶されるオブジェクトデータをスロット状態データに基づいて交互に更新する手法を採用する。
さらに本実施形態では、第1及び第2の記憶バッファMEM1、MEM2のうち一方の記憶バッファが更新されている期間は、他方の記憶バッファに記憶されているオブジェクトデータに基づいて生成されるモデルオブジェクトの画像を表示部に出力するようにしている。
具体的には、図7(A)に示すように、第1及び第2の記憶バッファMEM1、MEM2のうち、一方を更新用バッファとし、他方を描画用バッファとして割り当てておき、これらの設定を交互に切り替えている。さらに、図7(B)に示すように、オブジェクトデータの更新時には、更新されたスロット状態データに基づいて、配置設定が維持されているパーツオブジェクトのオブジェクトデータ(FOB1−A2、NOB1−A3〜NOB1−A14)は、描画用バッファから更新用バッファにコピーしている。これによって、オブジェクトデータの更新時間を短縮することができる。さらに、図7(B)に示すように、更新用バッファにおけるオブジェクトデータの更新処理が完了するまでの間は、更新用バッファと描画用バッファとの切り替えを行わずに、更新前のオブジェクトデータ(HOB1−A1、FOB1−A2、NOB1−A3〜NOB1−A14)に基づいてモデルオブジェクトの画像を生成して、その画像を表示部に出力する。そして、スロット状態データに基づいて、新たに読み込む必要のあるパーツオブジェクトのオブジェクトデータを読み込んで、更新用バッファにおいてオブジェクトデータの更新処理が完了したら、図7(C)に示すように、更新用バッファを描画用バッファに切り替えて、更新後のオブジェクトデータ(FOB−A2、NOB1−A3〜NOB1−A14、COB−A1)に基づいてモデルオブジェクトの画像を生成して、その画像を表示部に出力する。このようにすれば、大量のパーツオブジェクトデータを取り扱う場合でも、モデルオブジェクトの再構築がフレーム更新に間に合わずに、一部のパーツオブジェクトが表示されないような事態を未然に防止することができる。
2.4 本実施形態の手法を用いたパーツオブジェクトの変更例
まず図8(A)、図8(B)に示す例では、裸の人体モデルに対して、Tシャツを着せる場合を考える。裸の人体モデルは、図4に示す髪1(A1)、顔1(A2)、及び人体1(A3〜A14)の各人体パーツセットに含まれるパーツオブジェクト(HOB1−A1、FOB1−A2、NOB1−A3〜NOB1−A14)によって構成されているものと仮定する。以下の各場合においても、裸の人体モデルは、上記人体パーツセットを用いているものとして説明する。
図8(A)では、上述の人体モデルに対して、図5に示すTシャツ1のパーツセットに含まれるパーツオブジェクト(JOB1−A3/−A4/−A8/−A9)の配置指示がされているものとする。スロット状態データの更新時には、パーツスロット単位で、スロット状態データの更新をすべきか否か、言い換えればパーツオブジェクトの配置設定を変更すべきか否かが判断される。このとき、パーツセット単位で設定されたパーツオブジェクトの配置優先順位に基づいて、パーツスロット単位で配置設定の変更をすべきか否かを判断する。例えば、人体パーツスロットA4については、配置優先順位が上位のパーツオブジェクト(JOB1−A4)が配置指示されているため、パーツオブジェクトの配置設定が変更される。同様にして、全てのパーツスロットに対して判断し、配置設定を変更すべきであると判断される人体パーツスロットA3、A4、A8、A9に対しては、スロット状態データを更新して、Tシャツ1のパーツセットに含まれるパーツオブジェクト(JOB1−A3/−A4/−A8/−A9)を配置設定する。すると、図8(B)に示すように、少ないデータ量で人体モデルにTシャツ1を着せたモデルオブジェクトを再構築することができる。
次に、図9(A)に示すように、Tシャツ1を着せたモデルオブジェクトにさらにトレーナーを重ね着させる場合を考える。この場合においても、各パーツスロットに既に配置設定されているパーツオブジェクトの配置優先順位とトレーナーのパーツセットに含まれるパーツオブジェクト(JOB3−A3/−A4/−A5/−A6/−A8/−A9)の配置優先順位とに基づいて、全てのパーツスロットに対して、パーツオブジェクトの配置設定を変更すべきか否かを判断する。図9(A)に示す例では、人体パーツスロットA3〜A6、A8、A9についてパーツオブジェクトの配置設定を変更すべきであると判断され、それらのパーツスロットに対して、トレーナーのパーツセットに含まれるパーツオブジェクト(JOB3−A3/−A4/−A5/−A6/−A8/−A9)が配置設定されることによりスロット状態データが更新される。そして、更新されたスロット状態データに基づいてモデルオブジェクトを構成するパーツオブジェクトに対応するオブジェクトデータを更新することによって、図9(B)に示すように、少ないデータ量でトレーナーを重ね着したモデルオブジェクトを再構築することができる。
次に、図10(A)、図10(B)に示す例では、トレーナーを重ね着したモデルオブジェクトに対して、トレーナーの下に着ているTシャツ1のパーツセットをTシャツ2のパーツセットに着せ替える場合を考える。この場合には、Tシャツ2のパーツセットに含まれるパーツオブジェクト(JOB2−A3/−A4/−A8/−A9)に対応する人体パーツスロットA3、A4、A8、A9について考えると、Tシャツ2のパーツセットに含まれるパーツオブジェクト(JOB2−A3/−A4/−A8/−A9)の配置優先順位は、トレーナーのパーツセットに含まれるパーツオブジェクト(JOB3−A3/−A4/−A5/−A6/−A8/−A9)の配置優先順位より下位であるため、人体パーツスロットA3、A4、A8、A9については、パーツオブジェクトの配置設定は変更されない。すなわち、既に配置されているトレーナーのパーツセットに含まれるパーツオブジェクトの配置設定が維持され、図10(B)に示すように、トレーナーを着たモデルオブジェクトが構築される。
次に、図11(A)、図11(B)に示す例では、Tシャツを着たモデルオブジェクトに対して、道着を重ね着させる場合を考える。この場合においても、各パーツスロットに既に配置設定されているパーツオブジェクトの配置優先順位と配置指示された道着のパーツセットに含まれるパーツオブジェクト(JOB4−A4/−A5/−A6/−B3/−B6)の配置優先順位とに基づいて、全てのパーツスロットに対して、パーツオブジェクトの配置設定を変更すべきか否かを判断することになるが、図5に示すように、道着のパーツセットには、人体パーツスロットA8、A9、A10に対してパーツオブジェクトの配置設定をクリアする(取り消す)配置設定クリア情報が設定されている。これは道着のパーツセットには、装飾パーツスロットB3、B6に配置されるべきパーツオブジェクト(JOB4−B3、JOB4−B6)が含まれており、これらのパーツオブジェクトは、人体パーツスロットA8〜A10に配置されたパーツオブジェクト(JOB1−A8、JOB1−A9、NOB1−A10)とオーバーラップするように配置されるため、外面には現れないパーツオブジェクトが存在することになる。このため、人体パーツスロットA8〜A10には、パーツオブジェクト(JOB1−A8、JOB1−A9、NOB1−A10)を配置しなくても、モデルオブジェクトの画像が不自然になることはないため、これらのパーツスロットに対するパーツオブジェクトの配置設定をクリアすることによって、モデルオブジェクトを構成するためのオブジェクトデータのデータ量を削減することができる。一方で、人体パーツスロットA3に配置されるパーツオブジェクト(JOB1−A3)については、道着のパーツセットに含まれる装飾パーツスロットB3に配置されるパーツオブジェクト(JOB4−B3)の隙間から見えることが自然であるため、この人体パーツスロットA3に対するパーツオブジェクトの配置設定は維持され、図11(B)に示すように、道着の首まわりの部分からTシャツ1のパーツオブジェクトが見えるモデルオブジェクトが再構築される。
次に、図12(A)、図12(B)に示す例では、道着を重ね着したモデルオブジェクトについて、道着の下に着込んだTシャツを着せ替える場合を考える。例えば、Tシャツ1のパーツセットに対応するパーツオブジェクトが配置設定されている場合に、Tシャツ1をTシャツ2に着せ替える場合を考える。この場合には、Tシャツ2のパーツセットに含まれるパーツオブジェクトに対応する人体パーツスロットA3、A4、A8、A9のうち、人体パーツスロットA3についてのみスロット状態データの更新が行われる。人体パーツスロットA4については、Tシャツ2よりも配置優先順位が上位の道着のパーツオブジェクト(JOB4−A4)が配置設定されているため、スロット状態データは更新されない。また、人体パーツスロットA8、A9については、道着のパーツセットに人体パーツスロットA8〜A10についての配置設定クリア情報が設定されているため、スロット状態データの更新は行われない。このようにすることで、図12(B)に示すような、着せ替え後のモデルオブジェクトを構築するためには、Tシャツ2のパーツセットに含まれるパーツオブジェクト(JOB2−A3/−A4/−A8/−A9)のうち、人体パーツスロットA3に配置されるパーツオブジェクト(JOB2−A3)のみの配置設定だけを新たに行えばよいことになる。これによって、モデルオブジェクトを構成するオブジェクトデータのデータ量を最小限に抑えることができ、さらにモデルオブジェクトを再構築するまでの時間を短縮することができる。
次に、図13(A)、図13(B)に示す例では、道着の上から帯を装着する場合を考える。この場合には、装飾パーツスロットB7に配置される帯(BOB−B7)が装着パーツスロットB6に配置される道着の腰部分(JOB4−B6)よりも配置優先順位が上位であって、装飾パーツスロットB7は、装飾パーツスロットB6とオーバーラップする位置関係に設定されている。このとき、道着は帯を装着すると、腰部分が締め付けられているように表現されることが望ましいと考えられる。この場合に、帯をつけていない道着の腰回りのパーツオブジェクトの形状に合わせた帯を配置してしまうと、不自然なモデルオブジェクトができあがってしまう。また一方で、帯を締め付けたような形状とすると、道着と帯との形状が整合せずに、これもまた不自然なモデルオブジェクトができあがってしまう。そこで、帯のパーツセットには、図5に示すように、配置優先順位が下位のパーツセットに含まれるパーツオブジェクトをバリエーションオブジェクトに変更して配置設定を行うための、バリエーション選択情報が設定されていて、このバリエーション選択情報に基づいて、道着のパーツセットに含まれるパーツオブジェクト(JOB4−A4/−A5/−A6/−B3/−B6)に対応する人体パーツスロットA4〜A6及び装飾パーツスロットB3、B6のスロット状態データの更新も行われる。この場合には、図13(A)に示すように、帯の形状に合わせて締め付けた形状のパーツオブジェクトがパーツスロットB5に配置されるように設定された道着のバリエーションオブジェクト(JOB4−A4a/−A5a/−A6a/−B3a/−B6a)が選択されて、道着についてはバリエーションオブジェクトデータを用いてモデルオブジェクトを構築する。このようにすることで、図13(B)に示すように、帯によって道着の腰回りが締め付けられた自然に見えるモデルオブジェクトを再構築することができる。
次に、モデルオブジェクトの顔の部分に髭のパーツオブジェクトを配置設定する場合を考える。例えば、顔のパーツオブジェクトに無精髭のパーツオブジェクトを配置する場合には、無精髭が顔の輪郭に合ったものであることが必要である。このため、本実施形態では、図5に示すように髭のパーツセットには、スロット監視情報が設定されており、スロット監視情報で設定された顔のパーツセットが配置される人体パーツスロットA2に既に配置設定されているパーツオブジェクトの種類に応じて、自らのバリエーションデータを選択するためのバリエーション選択情報が設定されている。例えば、標準的な顔用の髭と細身の顔用の髭と太った顔用の髭とをそれぞれ用意しておき、図14(A)に示すように、標準的な顔(顔1)のパーツオブジェクト(FOB1−A2)が人体パーツスロットA2に配置設定されている場合には、標準的な顔用の髭のパーツオブジェクトのデフォルトオブジェクト(WOB−B2)が装飾パーツスロットB2に配置設定される。また、図14(B)に示すように、細身の顔(顔2)のパーツオブジェクト(FOB2−A2)が人体パーツスロットA2に配置設定されている場合には、細身の顔に合った髭のパーツオブジェクトのバリエーションオブジェクト(WOB−B2a)が装飾パーツスロットB2に配置設定される。また太った顔(顔3)のパーツオブジェクト(FOB3−A2)が人体パーツスロットA2に配置設定されている場合にも、太った顔に合った髭のパーツオブジェクトのバリエーションオブジェクト(WOB−B2b)をバリエーション選択情報に基づいて装飾パーツスロットB2に配置設定する。このようにすることで、パーツオブジェクトを重ね合わせてモデルオブジェクトを構築する場合のパーツオブジェクト間の形状の整合性を保つことができるようになる。
3.本実施形態の処理
以下、本実施形態の詳細な処理例について図15のフローチャートを用いて説明する。
まず、モード選択画面を表示する(ステップS10)。モード選択画面において、着せ替えモードが選択されると(ステップS11でY)、スロット状態データの初期データが読み込まれる(ステップS12)。そして、読み込まれたスロット状態データの初期データに基づいて、ベースとなるモデルオブジェクトを構成するパーツオブジェクトのオブジェクトデータがオブジェクトデータ記憶部に読み込まれる(ステップS13)。
次に、パーツセット選択画面を表示する(ステップS14)。すなわち画像生成部が、オブジェクトデータ記憶部に読み込まれたオブジェクトデータに基づいて、初期状態のモデルオブジェクトを描画バッファに描画し、モデルオブジェクトの画像をパーツセットの選択メニュー画像とともに表示部に出力する。
そしてパーツセットが選択されると(ステップS15でY)、スロット状態データの更新処理を行う(ステップS16)。すなわち、既に配置設定されているパーツオブジェクトの配置優先順位と選択されたパーツセットに含まれるパーツオブジェクトの配置優先順位との上下関係に基づいて、各パーツスロットについてスロット状態データの更新が必要であるかを判断し、パーツスロット単位でパーツオブジェクトの配置設定を行ってスロット状態データを更新する。また、選択されたパーツセットに対してバリエーション選択情報が設定されている場合には、必要に応じてパーツオブジェクトのバリエーションオブジェクトをパーツスロットに配置設定することによりスロット状態データを更新する。また選択されたパーツセットに対して配置設定クリア情報が設定されている場合には、配置設定クリア情報で設定されたパーツスロットについてのパーツオブジェクトの配置設定をクリアすることによってスロット状態データを更新する。
次に、オブジェクトデータの更新処理を行う(ステップS17)。すなわちモデルオブジェクトの再構築を行う。具体的には、更新されたスロット状態データに基づいて、継続して表示するパーツオブジェクトのオブジェクトデータを描画用バッファ(一方の記憶バッファ)から更新用バッファ(他方の記憶バッファ)にコピーし、新たに表示する必要が生じたパーツオブジェクトのオブジェクトデータを更新用バッファに読み込むことによりオブジェクトデータを更新する。これにより表示する必要のないオブジェクトデータ、すなわちスロット状態データの更新によって、パーツオブジェクトの配置設定がクリアされたパーツスロットに配置されていたパーツオブジェクトのオブジェクトデータを切り捨てる(削除する)ことができる。ただし、このオブジェクトデータの更新処理が行われている期間は、画像生成部が、コピー元の記憶バッファである描画用バッファに記憶された更新前のオブジェクトデータに基づいてモデルオブジェクトの画像を生成し、その画像を表示部に出力する。
そして、オブジェクトデータの更新処理が完了すると(ステップS18でY)、描画データ作成用の記憶バッファが切り替えられる(ステップS19)。すなわち描画用バッファを次のオブジェクトデータを更新時に用いられる更新用バッファに設定し、更新用バッファを描画用バッファに設定する。これによって、画像生成部は、更新後のオブジェクトデータを取得し、そのオブジェクトデータに基づいてモデルオブジェクトの画像を生成して、その画像を表示部に出力する。終了指示を受け付けるまでは(ステップS20でN)、ステップS14からステップS19の処理を繰返し行う。そして、終了指示を受け付けた場合には(ステップS20でY)、最新のオブジェクトデータをメモリカード(携帯型情報記憶装置)に保存して(ステップS21)、着せ替えモードを終了する。このようにしてモデルオブジェクトを構成するパーツオブジェクトの変更を行うことができる。なおゲームモードでは、メモリカードに保存したオブジェクトデータを読み出して、読み出されたオブジェクトデータに対応するパーツオブジェクトによって構成されるモデルオブジェクトをプレーヤキャラクタとして用いて、ゲームをプレイすることができるようになる。
4.ハードウェア構成
図17に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明合成処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアス処理、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像(フレーム画像)はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
またスロット状態データの更新手法やオブジェクトデータの更新手法等についても、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
本実施形態の画像生成システムの機能ブロック図。 パーツスロットの説明図。 パーツスロットの説明図。 パーツセットデータの説明図。 パーツセットデータの説明図。 図6(A)〜図6(C)は、本実施形態のスロット状態データの更新手法の説明図。 図7(A)〜図7(C)は、本実施形態のオブジェクトデータの更新手法の説明図。 図8(A)、図8(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 図9(A)、図9(B)は、本実施形態の手法を用いたパーツオブジェクトの変更手例。 図10(A)、図10(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 図11(A)、図11(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 図12(A)、図12(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 図13(A)、図13(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 図14(A)、図14(B)は、本実施形態の手法を用いたパーツオブジェクトの変更例。 本実施形態の処理例を示すフローチャート。 ハードウェア構成例。
符号の説明
100 処理部、
110 オブジェクト空間設定部、111 移動・動作処理部、
112 仮想カメラ制御部、113 配置指示受付部、
114 スロット状態更新部、115 オブジェクトデータ更新部、
120 画像生成部、
122 ジオメトリ処理部、124 シェーディング処理部、
126 αブレンディング部、128 隠面消去部、
130 音生成部、160 操作部、
170 記憶部、171 主記憶部、173 描画バッファ、175 Zバッファ、
177 スロット状態データ記憶部、179 オブジェクトデータ記憶部、
MEM1 第1の記憶バッファ、MEM2 第2の記憶バッファ、
180 情報記憶媒体、182 パーツセットデータ記憶部、
190 表示部、192 音出力部、194 携帯型情報記憶装置、196 通信部

Claims (13)

  1. 画像を生成するためのプログラムであって、
    複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、
    前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、
    前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、
    前記配置指示されたパーツオブジェクトに対応するパーツスロットに他のパーツオブジェクトが配置されている場合に、各パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、該パーツスロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データを更新するスロット状態更新部と、
    更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部として、
    コンピュータを機能させることを特徴とするプログラム。
  2. 請求項1において、
    前記スロット状態更新部が、
    前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトよりも前記配置優先順位が上位である場合に、該パーツスロットのスロット状態データを更新すべきであると判断し、該パーツスロットに前記他のパーツオブジェクトに替えて前記配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新することを特徴とするプログラム。
  3. 請求項1または2において、
    前記スロット状態更新部が、
    前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトよりも前記配置優先順位が下位である場合に、該パーツスロットのスロット状態データを更新すべきでないと判断することを特徴とするプログラム。
  4. 請求項1〜3のいずれかにおいて、
    前記スロット状態更新部が、
    前記配置指示されたパーツオブジェクトが、該パーツオブジェクトに対応するパーツスロットに既に配置されている前記他のパーツオブジェクトと前記配置優先順位が同位である場合に、該パーツスロットのスロット状態データを更新すべきであると判断し、該パーツスロットに前記他のパーツオブジェクトに替えて前記配置指示されたパーツオブジェクトを配置設定してスロット状態データを更新することを特徴とするプログラム。
  5. 請求項1〜4のいずれかにおいて、
    1又は複数の前記パーツスロットに配置される1又は複数の前記パーツオブジェクトがパーツセットとして用意され、かつ
    前記パーツセットに含まれる前記パーツオブジェクトの前記配置優先順位がパーツセット単位で設定され、
    前記配置指示受付部が、
    前記パーツセットを指示単位として、前記パーツオブジェクトの配置指示を受け付けることを特徴とするプログラム。
  6. 請求項5において、
    前記スロット状態更新部が、
    前記パーツセットに複数の前記パーツオブジェクトが含まれる場合に、該パーツセットに含まれる各パーツオブジェクトに対応するパーツスロット単位で前記スロット状態データを更新すべきか否かを判断し、該パーツスロット単位で前記スロット状態データを更新することを特徴とするプログラム。
  7. 画像を生成するためのプログラムであって、
    複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、
    前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、
    1又は複数の前記パーツスロットに配置される1又は複数の前記パーツオブジェクトを含むパーツセットを指示単位として、前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、
    前記パーツセットに含まれる前記パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、スロット状態データを更新するスロット状態更新部と、
    更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部として、
    コンピュータを機能させることを特徴とするプログラム。
  8. 請求項5〜7のいずれかにおいて、
    前記配置優先順位が下位の下位パーツオブジェクトが配置される下位パーツスロットと、前記配置優先順位が上位の上位パーツオブジェクトが配置される上位パーツスロットが用意され、かつ
    下位パーツセットに含まれる1又は複数の前記下位パーツオブジェクトのバリエーションオブジェクトを選択するためのバリエーション選択情報が、1又は複数の前記上位パーツオブジェクトを含む上位パーツセットに対して設定され、
    前記スロット状態更新部が、
    配置指示された前記上位パーツセットに対して、前記バリエーション選択情報が設定されている場合に、前記下位パーツスロットのスロット状態データを更新すべきであると判断し、前記上位パーツセットに対して設定されたバリエーション選択情報に基づき、前記下位パーツスロットに対して前記下位パーツオブジェクトのバリエーションオブジェクトを配置設定してスロット状態データを更新することを特徴とするプログラム。
  9. 請求項5〜7のいずれかにおいて、
    前記配置優先順位が下位の下位パーツオブジェクトが配置される下位パーツスロットと、前記配置優先順位が上位の上位パーツオブジェクトが配置される上位パーツスロットが用意され、かつ
    下位パーツセットに含まれる1又は複数の前記下位パーツオブジェクトに応じて前記上位パーツオブジェクトのバリエーションパーツを選択するためのバリエーション選択情報が、1又は複数の前記上位パーツオブジェクトを含む上位パーツセットに対して設定され、
    前記スロット状態更新部が、
    配置指示された前記上位パーツセットに対して、前記バリエーション選択情報が設定されている場合に、前記上位パーツセットに対して設定されたバリエーション選択情報に基づき、前記下位パーツスロットに配置されている前記下位パーツオブジェクトに応じて選択された前記上位パーツオブジェクトのバリエーションオブジェクトを前記上位パーツスロットに対して配置設定してスロット状態データを更新することを特徴とするプログラム。
  10. 請求項1〜9のいずれかにおいて、
    前記オブジェクトデータ記憶部が、第1の記憶バッファと、第2の記憶バッファとを含み、
    前記スロット状態データに基づいて、前記第1及び第2の記憶バッファに記憶される前記オブジェクトデータを更新するオブジェクトデータ更新部としてコンピュータを機能させ、
    前記画像生成部が、
    前記オブジェクトデータ更新部によって前記第1及び第2の記憶バッファのうち一方の記憶バッファが更新されている期間は、他方の記憶バッファに記憶されているオブジェクトデータに基づいて生成される前記モデルオブジェクトの画像を表示部に出力することを特徴とするプログラム。
  11. コンピュータにより読取可能な情報記憶媒体であって、請求項1〜10のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
  12. 画像を生成するための画像生成システムであって、
    複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、
    前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、
    前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、
    前記配置指示されたパーツオブジェクトに対応するパーツスロットに他のパーツオブジェクトが配置されている場合に、各パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、該パーツスロットのスロット状態データを更新すべきか否かを判断し、その判断結果に基づき、スロット状態データを更新するスロット状態更新部と、
    更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部と、
    を含むことを特徴とする画像生成システム。
  13. 画像を生成するための画像生成システムであって、
    複数のパーツオブジェクトで構成されるモデルオブジェクトの各パーツオブジェクトに対応するオブジェクトデータを記憶するオブジェクトデータ記憶部と、
    前記各パーツオブジェクトに対応して設定されるパーツスロットに対する前記パーツオブジェクトの配置状態をスロット状態データとして記憶するスロット状態データ記憶部と、
    1又は複数の前記パーツスロットに配置される1又は複数の前記パーツオブジェクトを含むパーツセットを指示単位として、前記パーツオブジェクトの配置指示を受け付ける配置指示受付部と、
    前記パーツセットに含まれる前記パーツオブジェクトの配置優先順位を決定する優先順位情報に基づいて、スロット状態データを更新するスロット状態更新部と、
    更新されたスロット状態データに基づいて、前記オブジェクトデータ記憶部からオブジェクトデータを取得し、取得されたオブジェクトデータに基づき、前記モデルオブジェクトの画像を生成する画像生成部と、
    を含むことを特徴とする画像生成システム。
JP2005085318A 2005-03-24 2005-03-24 プログラム、情報記憶媒体及び画像生成システム Active JP4668655B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005085318A JP4668655B2 (ja) 2005-03-24 2005-03-24 プログラム、情報記憶媒体及び画像生成システム
US11/385,867 US7706636B2 (en) 2005-03-24 2006-03-22 Image generation system (game system), image generation method, program and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005085318A JP4668655B2 (ja) 2005-03-24 2005-03-24 プログラム、情報記憶媒体及び画像生成システム

Publications (2)

Publication Number Publication Date
JP2006268406A true JP2006268406A (ja) 2006-10-05
JP4668655B2 JP4668655B2 (ja) 2011-04-13

Family

ID=37035807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005085318A Active JP4668655B2 (ja) 2005-03-24 2005-03-24 プログラム、情報記憶媒体及び画像生成システム

Country Status (2)

Country Link
US (1) US7706636B2 (ja)
JP (1) JP4668655B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008272124A (ja) * 2007-04-26 2008-11-13 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2009104522A (ja) * 2007-10-25 2009-05-14 Copcom Co Ltd ゲーム装置、このゲーム装置を実現するためのプログラム、及び、このプログラムを記録した記録媒体
EP2149394A1 (en) 2008-07-28 2010-02-03 NAMCO BANDAI Games Inc. Image generation device and image generation method.
EP2158950A2 (en) 2008-07-28 2010-03-03 NAMCO BANDAI Games Inc. Image generation device, and image generation method
EP2158949A2 (en) 2008-07-28 2010-03-03 Namco Bandai Games Inc. Image generation device and image generation method.
JP2010061477A (ja) * 2008-09-04 2010-03-18 Square Enix Co Ltd 3次元デザイン支援装置及びプログラム
JP2010134798A (ja) * 2008-12-05 2010-06-17 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲーム装置、及びゲームシステム
JP2011129001A (ja) * 2009-12-19 2011-06-30 Cocone Corp 仮想空間におけるアバター及びアバター作成システム
US11660539B2 (en) 2021-02-10 2023-05-30 Nintendo Co., Ltd. Storage medium storing information processing program, information processing apparatus, information processing system, and information processing method

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4668655B2 (ja) * 2005-03-24 2011-04-13 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム
JP4929061B2 (ja) * 2007-06-04 2012-05-09 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法及びプログラム
JP5390433B2 (ja) * 2010-02-26 2014-01-15 株式会社バンダイナムコゲームス プログラム、情報記憶媒体およびゲーム装置
US8725476B1 (en) * 2010-05-04 2014-05-13 Lucasfilm Entertainment Company Ltd. Applying details in a simulation
JP5241807B2 (ja) * 2010-12-02 2013-07-17 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、及びプログラム
US8970592B1 (en) 2011-04-19 2015-03-03 Lucasfilm Entertainment Company LLC Simulating an arbitrary number of particles
US10120187B2 (en) * 2016-02-18 2018-11-06 Nvidia Corporation Sub-frame scanout for latency reduction in virtual reality applications
CN107491975B (zh) * 2016-06-13 2021-02-23 阿里巴巴集团控股有限公司 用于服务器和用于消费者的数据槽数据处理方法和装置
JP6668511B2 (ja) * 2017-01-23 2020-03-18 アルプスアルパイン株式会社 携帯型操作装置
US10820650B2 (en) * 2018-02-27 2020-11-03 Levi Strauss & Co. Surface projection for apparel in an apparel design system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305872A (ja) * 1995-05-09 1996-11-22 Casio Comput Co Ltd キャラクタ画像装置
JP2002117414A (ja) * 2000-10-11 2002-04-19 Toyobo Co Ltd 衣服衝突処理方法および衣服衝突処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003067767A (ja) * 2001-08-30 2003-03-07 Yukes:Kk ビデオゲーム用キャラクタ編集プログラム、その記録媒体及びビデオゲーム装置
JP2003256862A (ja) * 2002-02-28 2003-09-12 Sony Communication Network Corp キャラクタ表示方法および装置
JP2003342820A (ja) * 2002-05-22 2003-12-03 B's Japan:Kk コーディネートシステム、方法、プログラム記録媒体、およびプログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905147A (en) * 1986-10-15 1990-02-27 Logg George E Collision detection system for video system
US4894774A (en) * 1986-10-15 1990-01-16 Mccarthy Patrick J Lookahead pipeline for processing object records in a video system
US4905168A (en) * 1986-10-15 1990-02-27 Atari Games Corporation Object processing for video system using slips and linked list
US4930074A (en) * 1986-10-15 1990-05-29 Atari Games Corporation Multiple stamp motion objects in a video game system
US5566294A (en) * 1989-09-29 1996-10-15 Hitachi, Ltd. Method for visual programming with aid of animation
JPH03294929A (ja) * 1990-04-12 1991-12-26 Hitachi Ltd 知識処理支援システムおよび知識処理システム
JP3260913B2 (ja) * 1992-06-01 2002-02-25 セイコーエプソン株式会社 画像再生装置
JPH08320949A (ja) * 1995-05-24 1996-12-03 Sega Enterp Ltd 画像処理装置及びそれを用いたゲーム装置
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
EP0842682B9 (en) * 1996-06-05 2005-06-08 Sega Corporation Image processor for games
US6300959B1 (en) * 1998-05-13 2001-10-09 Compaq Computer Corporation Method and system condensing animated images
US20020151360A1 (en) * 1999-09-10 2002-10-17 Durham Timothy J. Gaming machine having a controller for controlling multiple displays
JP4167358B2 (ja) * 1999-09-10 2008-10-15 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
JP2001137538A (ja) * 1999-11-17 2001-05-22 Square Co Ltd ゲーム表示方法、ゲーム表示装置および記録媒体
US6663491B2 (en) * 2000-02-18 2003-12-16 Namco Ltd. Game apparatus, storage medium and computer program that adjust tempo of sound
JP3325253B2 (ja) * 2000-03-23 2002-09-17 コナミ株式会社 画像処理装置、画像処理方法、記録媒体及びプログラム
US20020052235A1 (en) * 2000-10-27 2002-05-02 Hirsch Jeffrey R. Gaming device having animation including multiple sprites
JP3495011B2 (ja) * 2000-11-21 2004-02-09 株式会社ソニー・コンピュータエンタテインメント 情報処理方法及びプログラム実行装置、コンピュータに実行させるための情報処理プログラム及びコンピュータに実行させるための情報処理プログラムを記録した記録媒体
JP3576126B2 (ja) * 2001-07-30 2004-10-13 株式会社ナムコ 画像生成システム、プログラム及び情報記憶媒体
JP3577016B2 (ja) * 2001-08-24 2004-10-13 コナミ株式会社 3次元画像処理プログラム、3次元画像処理方法及びビデオゲーム装置
AU2002343688A1 (en) * 2001-11-15 2003-06-10 Nintendo Software Technology Corporation System and method of simulating and imaging realistic water surface
AU2003901844A0 (en) * 2003-01-17 2003-05-01 Aristocrat Technologies Australia Pty Ltd The generation of images
US20050207617A1 (en) * 2004-03-03 2005-09-22 Tim Sarnoff Digital representation of a live event
JP4668655B2 (ja) * 2005-03-24 2011-04-13 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び画像生成システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305872A (ja) * 1995-05-09 1996-11-22 Casio Comput Co Ltd キャラクタ画像装置
JP2002117414A (ja) * 2000-10-11 2002-04-19 Toyobo Co Ltd 衣服衝突処理方法および衣服衝突処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003067767A (ja) * 2001-08-30 2003-03-07 Yukes:Kk ビデオゲーム用キャラクタ編集プログラム、その記録媒体及びビデオゲーム装置
JP2003256862A (ja) * 2002-02-28 2003-09-12 Sony Communication Network Corp キャラクタ表示方法および装置
JP2003342820A (ja) * 2002-05-22 2003-12-03 B's Japan:Kk コーディネートシステム、方法、プログラム記録媒体、およびプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008272124A (ja) * 2007-04-26 2008-11-13 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2009104522A (ja) * 2007-10-25 2009-05-14 Copcom Co Ltd ゲーム装置、このゲーム装置を実現するためのプログラム、及び、このプログラムを記録した記録媒体
EP2149394A1 (en) 2008-07-28 2010-02-03 NAMCO BANDAI Games Inc. Image generation device and image generation method.
EP2158950A2 (en) 2008-07-28 2010-03-03 NAMCO BANDAI Games Inc. Image generation device, and image generation method
EP2158949A2 (en) 2008-07-28 2010-03-03 Namco Bandai Games Inc. Image generation device and image generation method.
US8624912B2 (en) 2008-07-28 2014-01-07 Namco Bandai Games Inc. Program, image generation device, and image generation method
JP2010061477A (ja) * 2008-09-04 2010-03-18 Square Enix Co Ltd 3次元デザイン支援装置及びプログラム
JP2010134798A (ja) * 2008-12-05 2010-06-17 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲーム装置、及びゲームシステム
JP2011129001A (ja) * 2009-12-19 2011-06-30 Cocone Corp 仮想空間におけるアバター及びアバター作成システム
US11660539B2 (en) 2021-02-10 2023-05-30 Nintendo Co., Ltd. Storage medium storing information processing program, information processing apparatus, information processing system, and information processing method
JP7448497B2 (ja) 2021-02-10 2024-03-12 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法

Also Published As

Publication number Publication date
US20060217008A1 (en) 2006-09-28
US7706636B2 (en) 2010-04-27
JP4668655B2 (ja) 2011-04-13

Similar Documents

Publication Publication Date Title
JP4668655B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2010033298A (ja) プログラム、情報記憶媒体及び画像生成システム
JP6362634B2 (ja) 画像生成システム、ゲーム装置及びプログラム
JP2010029398A (ja) プログラム、情報記憶媒体及び画像生成システム
JP5002103B2 (ja) 画像生成システム、画像生成方法及びプログラム
JP3249955B2 (ja) 画像生成システム及び情報記憶媒体
JP4804122B2 (ja) プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム
JP2005032140A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2010029397A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4743770B2 (ja) 画像生成システム、プログラム、及び情報記憶媒体
JP3297410B2 (ja) 画像生成システム及び情報記憶媒体
JP2001229403A (ja) ゲームシステム及び情報記憶媒体
JP4245356B2 (ja) ゲームシステム及び情報記憶媒体
JP4412692B2 (ja) ゲームシステム及び情報記憶媒体
JP3292713B2 (ja) 画像生成システム及び情報記憶媒体
JP4786389B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4394211B2 (ja) 画像生成システム及び情報記憶媒体
JP4229317B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2010134798A (ja) プログラム、情報記憶媒体、ゲーム装置、及びゲームシステム
JP2010033288A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3431562B2 (ja) ゲームシステム及び情報記憶媒体
JP2006318196A (ja) プログラム、情報記憶媒体及び画像生成システム
JP3420987B2 (ja) ゲームシステム及び情報記憶媒体
JP4624527B2 (ja) ゲームシステム及び情報記憶媒体
JP2005275795A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4668655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250