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

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

Info

Publication number
JP2006285511A
JP2006285511A JP2005102904A JP2005102904A JP2006285511A JP 2006285511 A JP2006285511 A JP 2006285511A JP 2005102904 A JP2005102904 A JP 2005102904A JP 2005102904 A JP2005102904 A JP 2005102904A JP 2006285511 A JP2006285511 A JP 2006285511A
Authority
JP
Japan
Prior art keywords
shadow
texture
image
nth
generated
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
JP2005102904A
Other languages
English (en)
Other versions
JP3748451B1 (ja
Inventor
Ryoji Takahashi
亮二 高橋
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 JP2005102904A priority Critical patent/JP3748451B1/ja
Application granted granted Critical
Publication of JP3748451B1 publication Critical patent/JP3748451B1/ja
Publication of JP2006285511A publication Critical patent/JP2006285511A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Abstract

【課題】演算負荷及びデータ量を増大させることなく、リアルタイムに移動動作する多関節オブジェクトのリアルな影表現を行うこと。
【解決手段】 本発明は複数のパーツが関節で連結された第1のオブジェクトについて、各パーツの影画像の影画像を生成し、生成された各パーツの影画像を合成して第1のオブジェクトの影テクスチャを生成する影テクスチャ生成部122を含む。影テクスチャ生成部122は、第nのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成し、生成された第nのパーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する。
【選択図】 図16

Description

本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
このような画像生成システムでは、プレーヤの仮想現実感の向上のためよりリアルな画像を生成することが重要な技術的課題となっている。従ってオブジェクトの影についても、よりリアルに表現できることが望まれる。
従来より影を表現する手法として、影を作り出すオブジェクトを光源方向からみた形状をレンダリングして影テクスチャを生成し、影の影響を受けるオブジェクトに影テクスチャをマッピングするシャドウマップという手法がある。
シャドウマップを行う際には、例えば第1のオブジェクトを光線ベクトルの方向に投影して影テクスチャ領域に第1のオブジェクトの影テクスチャを生成する。そして生成された影テクスチャを地形等のオブジェクトにマッピングすることにより、第1のオブジェクトの影がマッピングされた地形の画像を生成する。
しかし例えば第1のオブジェクトの影テクスチャを生成するためには、第1のオブジェクトを投影面にレンダリングする作業が必要となるため、影作成用の簡易なオブジェクトを用いたとしても処理負荷が高くなり、データ量も増大する。
簡易な演算で影を生成する手法もいろいろ提案されているが、リアリティを損なうような影画像が生成されるという問題点があった。
このような影生成を実現する技術としては例えば特開2000−353251号公報に開示される従来技術がある。
特開2000−353251号公報
特に第1のオブジェクトがリアルタイムに移動動作する多関節オブジェクトである場合には、第1のオブジェクトの移動動作に応じて影の形状もリアルタイムに変化するため影画像生成のための演算負荷が増大する。
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、演算負荷及びデータ量を増大させることなく、リアルタイムに移動動作する多関節オブジェクトのリアルな影表現を行うことが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
(1)本発明は、
第1〜第n(n≧2)のパーツを含む複数のパーツが関節で連結された第1のオブジェクトについて、第1〜第nのパーツの影画像を生成し、生成された各パーツの影画像を合成して第1のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
影テクスチャ生成部は、
第nのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成し、生成された第nのパーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
なお生成された影テクスチャを第1のオブジェクトの影として光源方向からオブジェクト空間に存在する第2のオブジェクトに投影マッピングする影マッピング処理部を含むようにしてもよい。
また影テクスチャ生成部は、第nのパーツに関連付けられた関節又はボーンを所定の投影面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成するようにしてもよい。
ここにおいて第1のオブジェクトとは多関節構造のスケルトンモデル等で構成され移動動作するオブジェクトである。第2のオブジェクトとは影が落ちるオブジェクトであり、例えば地面等の地形オブジェクトである。
関節やボーンとは、コンピュータグラフィックスで人や動物などのキャラクタを扱う際に多関節構造のスケルトンモデルを用いる場合の関節やボーンである。スケルトンモデルではオブジェクト(キャラクタ)を、幾つかの骨とそれらの骨を連結する関節点とで表す。例えば人体モデルでは、頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツを関節で連結したスケルトンモデルを作成する。第nのパーツに関連付けられた関節とは第nのパーツを接続するための関節である。第nのパーツに関連付けられたボーンとは、パーツに関連づけられた骨(例えば関節を連結する骨)である。
多関節オブジェクトはパーツ単位で配置が変化するが、本発明によれば各パーツ単位でパーツの投影面における位置情報を反映させて各パーツ影画像を生成して、それを合成して第1のオブジェクトの影画像を生成するので、各パーツの動きに応じて変化する各パーツの影をリアル近似した影を生成することができる。しかも各パーツの投影面における位置情報に基づき(予め用意された)パーツ用影基準テクスチャを変形して描画するだけでよいため、例えば第1のオブジェクトの影用のオブジェクトを投影面に投影して影画像を生成する通常のシャドウマップを行う場合に比べ、演算負荷を大幅に削減することができる。
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
影テクスチャ生成部は、
第nのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第nのパーツに対応した第nの影生成用仮想オブジェクトの形状を決定し、決定された形状の第nの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成することを特徴とする。
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
所定のパーツ用影基準テクスチャは、第1の領域と第2の領域とを含み、第1の領域と第2の領域の境界付近が半透明になるように半透明情報設定されていることを特徴とする。
第1の領域とは例えば影領域であり、第2の領域とは例えば影以外の領域である。第1の領域(影領域)と第2の領域(影以外の領域)の境界付近が半透明になるように半透明情報を設定するとは、例えば境界付近のピクセルのα値の透明度を半透明となるように設定することで実現してもよい。このようにすると周囲のぼやけた影を生成することができるので影の周囲のシャギー等が目立たず、見栄えのよい影を生成することができる。
なお第1の領域の外延に行くほど透明度が高くなるように設定するようにしてもよい。
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
生成された影テクスチャを第2のオブジェクトに投影マッピングする影マッピング処理部を含み、
影マッピング処理部は、
前記第1のオブジェクトの位置に基づいて所定の領域を描画領域として特定し、特定された描画領域に含まれる第2のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とする。
影テクスチャの地面への貼り付けにシャドウマップの手法を用いる場合、シャドウマップは検出した地面全てに描画を行ってしまうため、描画範囲がひろくなり処理負荷が増大する。
そこで、本発明によれば、第2のオブジェクトに影テクスチャのマッピングを行う場合、第1のオブジェクトの位置に基づいて特定された描画領域に対応する第2のオブジェクトに対して、影テクスチャのマッピングを行う。従って、地面全てに描画を行う処理と比べて、大幅にピクセルフィルを稼ぐことができ、結果的に描画コストを大きく抑えることが出来る。
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
影マッピング処理部は、
前記第1のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき、所定の矩形領域を前記所定の描画領域として特定することを特徴とする。
例えば第1のオブジェクトが正面向き(キャラクタオブジェクトの正面方向と仮想カメラの視線方向が一致する又は角度差が小さい(角度差が0又は180にちかい))場合は、描画領域を、生成した影テクスチャの影部分を含む正方形に近い矩形領域として特定し、第1のオブジェクトが横向き(キャラクタオブジェクトの正面方向と仮想カメラの視線方向が直角に近い(角度差が90又は270にちかい))場合は、描画領域をより横長の長方形として特定するようにしてもよい。
矩形の描画領域の中心(対角線の交差点等)を例えば投影面に置ける第1のオブジェクトの代表点等に設定矩形の形状を決定するようにしてもよい。
また矩形の縦、横の長さを前記第1のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき決定するようにしてもよい。
本発明によれば、第1のオブジェクトの向き、仮想カメラの向きに応じて、描画領域として特定する矩形領域を変化させる。従って、生成した影テクスチャの影部分を含む領域を、必要最小限の矩形領域により特定することができる。
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第nのパーツに関連づけて、第nのパーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報(変形パラメータ、スケール、変形演算に用いる値等)が定義されていることを特徴とする。
パーツ用影基準テクスチャの変形演算に用いる情報とは例えば変形パラメータ、変形時のスケール情報、その他の変形演算に用いる値等である。
本発明によればパーツ用影基準テクスチャの変形演算に用いる情報を用いて、1つのパーツ用影基準テクスチャからヴァリエーションに富んだ影画像を生成することができる。またパーツ用影基準テクスチャに各パーツに応じた適切な値を設定しておくことにより、よりリアルな影画像を生成することができる。
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第nのパーツに関連づけて、第nの影生成用仮想オブジェクトの形状を決定するための情報が定義されていることを特徴とする。
第nの影生成用仮想オブジェクトの形状を決定するための情報とは、第nの影生成用仮想オブジェクトの形状決定演算に用いる値等である。
(8)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1のキャラクタオブジェクト、第2のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
前記第1のキャラクタオブジェクトと前記第2のキャラクタオブジェクトが同じ動作を行う場合には、第1のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第2のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第2のキャラクタオブジェクトの影画像を生成することを特徴とする。
各キャラクタオブジェクトに関連づけて補正情報を定義する場合には、各キャラクタオブジェクトの種類や属性に関連づけて補正情報(スケール等)を定義する場合も含む。
補正情報はキャラクタ単位に持たせても良いし、キャラクタのパーツ単位にもたせてもよい。
本発明によれば、同じ関節構造を有する複数のキャラクタオブジェクトが同じ動作を行っている場合には、1つのキャラクタオブジェクト(第1のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクト)について影画像を生成し、各キャラクタオブジェクトに対応して設定されている補正情報を用いてその影画像を補正するだけで、複数のキャラクタオブジェクトの影を生成することができるので、演算不可を大幅に軽減することができる。
(9)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とする。
各パーツの形状に合わせて用意することができるので、よりリアルな影画像を生成することができる。
(10)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では
影テクスチャ生成部は、
第nのパーツに関連付けられた関節又はボーンを第1軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成することを特徴とする。
例えば第1軸をY軸とする第1軸に垂直な平面とはXZ平面である。
平行光源とは、光源を表現する手法の一つであり、照らし出された物体の、どの面にも常に同じ方向にワールド座標系方向から光が当たる光源である。太陽光などの超遠方光等の場合、被写体とカメラ近辺では光はほぼ平行に走っているため距離による減衰や拡散が見た目上発生しない事になる。平行光源はこれをシミュレーションしたものである。
本発明では前記第1の軸方向に並行光源がある場合の画像を生成するので、影画像の演算負荷が軽くなる。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD(液晶表示装置)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部110は、キャラクタ、車、戦車、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
移動・動作処理部112は、オブジェクト(キャラクタ、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を描画バッファ172(フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
描画部120は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
ここでテクスチャマッピング処理は、テクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部174からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
また隠面消去処理は、例えば、各ピクセルのZ値(奥行き情報)が格納されるZバッファ176(奥行きバッファ)を用いるZバッファ法(奥行き比較法、Zテスト)により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Zバッファ176に格納されるZ値を参照する。そして参照されたZバッファ176のZ値と、プリミティブ面の描画対象ピクセルでのZ値とを比較し、描画対象ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、そのピクセルの描画処理を行うと共にZバッファ176のZ値を新たなZ値に更新する。
またαブレンディング処理は、α値(A値)に基づいて行う処理であり、通常αブレンディング、α加算ブレンディング或いはα減算ブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
RQ=(1−α)×R1+α×R2
GQ=(1−α)×G1+α×G2
BQ=(1−α)×B1+α×B2
一方、加算αブレンディングの場合には下式の処理を行う。
RQ=R1+α×R2
GQ=G1+α×G2
BQ=B1+α×B2
ここで、R1、G1、B1は、描画バッファ172に既に描画されている画像(元画像)のRGB成分であり、R2、G2、B2は、描画バッファ172に描画すべき画像のRGB成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像のRGB成分である。なおα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
描画部120は、影テクスチャ生成部122,影マッピング処理部124とを含む。
影テクスチャ生成部122は、第1のパーツ、第2のパーツ、・・・、第nのパーツを含む複数のパーツが関節で連結された第1のオブジェクトについて、第1のパーツの影画像、第2のパーツの影画像、・・・、第nのパーツの影画像を生成し、生成された各影画像を合成して第1のオブジェクトの影テクスチャを生成する処理を行う。ここにおいて影テクスチャ生成部122は、第nのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成し、生成された第nのパーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する。
また影テクスチャ生成部122は、第nのパーツに関連付けられた関節又はボーンを所定の投影面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成するようにしてもよい。
また影テクスチャ生成部122は、第nのパーツに関連付けられた関節又はボーンを第1軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成するようにしてもよい。
また影テクスチャ生成部122は、第nのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第nのパーツに対応した第nの影生成用仮想オブジェクトの形状を決定し、決定された形状の第nの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成するようにしてもよい。
影マッピング処理部124は、生成された影テクスチャを第1のオブジェクトの影として光源方向からオブジェクト空間に存在する第2のオブジェクトに投影マッピングする処理を行う。
影マッピング処理部124は、第1のオブジェクトの位置に基いて、生成した影テクスチャの影部分をふくむ所定の領域を描画領域として特定し、特定された描画領域に含まれる第2のオブジェクトをシザリングして影テクスチャをマッピングするようにしてもよい。また、第1のオブジェクトの位置に基いて、フレーム画像(二次元の画像)において影部分を含む描画領域を、影テクスチャのマッピング対象として特定するようにしてもよい。この場合、特定した描画領域をシザリングして、その描画領域において、第1のオブジェクト用の影テクスチャがマッピングされた第2のオブジェクトを描画するようにしてもよい。
また、影マッピング処理部124は、第1のオブジェクトの位置、向き及び仮想カメラの向きの少なくとも一方に基づき、生成した影テクスチャの影部分をふくむ所定の矩形領域を所定の描画領域として特定するようにしてもよい。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
2−1:本実施の形態の特徴
次に本実施形態の特徴と手法について図面を用いて説明する。
図2は、本実施の形態の特徴について説明するため図である。
プレーヤキャラクタPK(移動動作するオブジェクトの一例)は、頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツ(第1のパーツ、第2のパーツ、・・・、第nのパーツ)を含む複数のパーツが関節で連結された多関節構造(スケルトンモデルを用いた)オブジェクト(第1のオブジェクト)である。
本実施の形態ではこのようなプレーヤキャラクタPKについて、各第1のパーツの光線方向に投影した影を生成するための第1のパーツの影画像、各第2のパーツの光線方向に投影した影を生成するための第2のパーツの影画像、・・・、第nのパーツの光線方向に投影した影を生成するための第nのパーツの影画像を生成し、生成された各影画像を合成して第1のオブジェクトの影テクスチャ210を生成する。
そして生成された影テクスチャ210を光源方向からオブジェクト空間に存在する第2のオブジェクト(地形オブジェクト)220に投影マッピングして(シャドウマッピングして)、第1のオブジェクトPKの影230を生成する。
2−2:多関節構造の第1のオブジェクト
本実施の形態の第1のオブジェクトは、多関節構造のスケルトンモデルを用いて構成される。スケルトンモデルでは、第1のオブジェクトを、幾つかの骨とそれらの骨を連結する関節点とで表し、第1のオブジェクトのポーズ(形状)やモーション(アニメーション)のデータは、例えばSoftImage(マイクロソフト社製CGツールの商品名)などの市販のCGツールのインバースキネマティクス(IK)の機能を用いて作成される。
またボーンとはキャラクターアニメーションを容易にするために組み込まれた骨組みである。例えば中心となる骨を設定して骨のアニメーションをIKで行い、骨とその周辺のバーテックスとの関係を変形アニメーションで操作することも行われる(別名スケルトン)。
IK(Inverse Kinematics)とはインバースキネマティクス階層構造をもつオブジェクトに対し、階層の下位のオブジェクトから片方の端が固定されたチェーンのように、上位のオブジェクトまでを連鎖的に運動させる手法である。これをボーンなどのデフォーマと組み合わせてキャラクターアニメーションに利用する。通常IKでアニメーションを行う場合、IKの移動用ターゲット(アプリケーションによって呼び名は様々だがエンドエフェクタやIKハンドルと呼ばれる)を使用してターゲットにキーフレームを設定する場合と、ターゲットを持たずにIKのみによる階層の連動のみを行って、その後階層中の各オブジェクトの回転情報に対してキーフレームを設定する方法等がある。
図3は、本実施の形態の第1のオブジェクトの構造について説明するための図である。
200は、第1のオブジェクトの骨格構造を示すスケルトンモデルの例である。P(1)〜P(10)は、第1のオブジェクト(ここでは人体)の頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツを表す。複数のパーツは関節K1〜K15で連結され、関節の動きに連動して動作する。
各関節から伸びた線分が骨B(1)〜B(10)を示す。SoftImageなどのCGツールにより図3のような骨格を作成し、さらに作成した骨格の骨や関節の位置を指定して、キャラクタのポーズやモーションのデータを作成していくことができる。
そして関節や骨を与えられたモーションデータによって回転(又は移動)させることにより、ローカル座標系における第1のオブジェクトの移動動作を制御する事ができる。例えば蹴る動作に対応付けられたモーションデータに従って関節K1〜K15を回転(又は移動)させることにより図2に示すような第1のオブジェクトが蹴る動作を行う画像を生成することができる。
2−3:影テクスチャの作成
図4(A)、(B)は、本実施の形態の各パーツの影画像生成の原理について説明するための図である。
図4(A)は、複数のパーツをXZ平面に投影する様子をZ軸方向から見た図である。
パーツP(1)とパーツP(2)は関節K4で連結され連動して動作するパーツである、ここでは投影した場合の形状の変化をわかりやすくするためにパーツP(1)とパーツP(2)を同じ大きさの同じ形状であると仮定して説明する。
B(1)はパーツP(1)に対応したボーンであり、B(2)はパーツP(2)に対応したボーンである。
図4(B)は、パーツP(1)とパーツP(2)をY軸方向250からXZ平面に投影した場合の投影面における図であり、パーツP’(1)とパーツP’(2)、ボーンB’(1)とボーンB’(2)、K’3、K’4、K’5は、パーツP(1)とパーツP(2)、ボーンB(1)とボーンB(2)、K3、K4、K5に対応している。
パーツP(1)とパーツP(2)は同じ大きさの同じ形状であるが、投影方向(ここではY軸方向250)に対する配置関係が異なるため、投影面(ここではXZ平面)260における形状は異なっている。
ここで投影方向を並行光源からの光線方向とすると投影面におけるパーツP’(1)とパーツP’(2)は、パーツP(1)とパーツP(2)の影に該当する。このように複数のパーツが関節で連結された多関節構造の1のオブジェクトを構成する各パーツの影は、各パーツの投影方向に対する位置関係に応じて変化する。本実施の形態では、以下に示す手法で各パーツに対応する影画像を生成することで、投影方向に対する位置関係に応じて変化する各パーツの影画像に近似した影画像を生成している。
すなわち第nのパーツに関連付けられた関節(例えばK3、K4、K5)又はボーン(B(1)、B(2))を所定の投影面(XZ平面)260に投影した場合の投影面260における関節(例えばK’3、K’4、K’5)又はボーン(B’(1)、B’(2))の位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成する。
図5(A)(B)は、パーツ用影基準テクスチャの一例を示した図である。
図5(A)のパーツ用影基準テクスチャ300は、第1の領域(影領域)310と第2の領域(影以外の領域)320とを含む。
第1の領域310が影に対応する部分であり、ピクセルの色値(例えばRGB値)として白が設定されている。第2の領域320は、影以外の部分であり、マッピングされたら透明になるように透明情報が設定されている(例えば黒い部分のピクセルに対応したα値が透明度100%等に設定されている)。当該テクスチャを地面等に減算合成でマッピングすると、白い部分がマッピングされるピクセルについては、地面の色値から白が減算され黒くなり、黒い部分がマッピングされるピクセルについては、地面の色値となる。従って図5(A)に示すようなパーツ用影基準テクスチャ300を地形オブジェクトにマッピングすることにより。白い部分に対応した黒い影が地面に落ちた画像を生成することができる。
ここで図5(B)に示すように、第1の領域(影領域)と第2の領域(影以外の領域)の境界付近が半透明になるように半透明情報(α値が)を設定しておき、パーツ用影基準テクスチャを用いるようにしてもよい。
このようにすると外延(周囲)がぼやけた影を生成できるので、外延のシャギー等が目立たずに見栄えの良い影画像を生成することができる。
なおパーツ用影基準テクスチャは、各パーツ単位で用意するようにしてもよい。このようにすると各パーツの形状に合わせて用意することができ、よりオブジェクトの実際の影に近似した精度の高い影画像を生成することができる。
図6は、影生成用仮想オブジェクトを用いたパーツ用影基準テクスチャの変形について説明するための図である。
340、350は第nのパーツに関連付けられた関節を投影面に投影した点である。また330は第nのパーツに関連付けられたボーンを投影面に投影した線分である。
本実施の形態では、第nのパーツに関連付けられた関節又はボーンを所定の投影面(XZ平面)に投影した場合の投影面における位置情報に基づき、第nのパーツに対応した第nの影生成用仮想オブジェクトの形状を決定する。
ここでは投影面におけるボーン330又は投影面における関節340と350を結ぶ線分に対し所定のアルゴリズムに従って幅wを設定する(360参照)。これにより長手方向(長さ)がlで幅wの長方形の板ポリゴン382が生成される。ここにおいて幅wを設定する幅方向は、ボーン330に対応したベクトルbv(例えば投影されたボーン330の方向をもつベクトル)と投影面に垂直な軸(ここではY軸)方向の基準ベクトルとの外積から求め、求めた幅方向に所定の長さの幅を追加するようにしてもよい。
また求めた板ポリゴン382の両端に所定の長さΔlを追加する補正370を行うようにしてもよい。このようにすると、各パーツの影画像を合成した場合接続部分(関節の付近)では関節を共有する2つの影画像が重複するので、つなぎ目の目立たない見栄えの良い影画像を生成することができる(図8(B)参照)。
このように投影面に投影された各パーツの関節又はボーンの位置情報に基づいて板ポリゴン(影生成用仮想オブジェクト)の形状を決定し、決定された形状の板ポリゴン(影生成用仮想オブジェクト)に例えば図5(A)に示すようなパーツ用影基準テクスチャをマッピングして変形させると、影領域に対応する第1の領域の形状は390のように変形する。従って、投影方向に対する位置関係に応じて変化する各パーツの影画像に近似した影画像を生成することができる。
図7は、各パーツ(またボーンや関節)に関連づけて定義されている情報の一例を示した図である。
本実施の形態のパーツ情報テーブル500には、第1のオブジェクトを構成する各パーツやボーン510に関連づけて、パーツやボーンに関連した関節1(520)、関節2(530)の座標値の情報や各パーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報(変形パラメータ、スケール、変形演算に用いる値等)が記憶されている。パーツ用影基準テクスチャの変形演算に用いる情報としては、例えば太さ1(540)、太さ2(550)、長さ1(560)、長さ2(570)等の情報が記憶されている。
太さ1(540)は、関節1に関連した太さを設定するための情報であり、太さ2(550)は、関節2に関連した太さを設定するための情報である。
投影面における関節1がK1、関節2がK2である場合に太さ1(540)としてw1、太さ2(550)としてw2が設定されているとする。この場合には例えば図8(A)に示すように、関節K1に関連付けて幅w1を設定し、関節K2に関連付けて幅w2を設定して、580に示すような板ポリゴン(影生成用仮想オブジェクト)を生成することができる。
また長さ1(560)は、関節1に関連した長さの補正値の情報であり、長さ2(570)は、関節2に関連した長さの補正値の情報である。
投影面における関節1がK1、関節2がK2である場合に長さ1(560)としてl1、長さ2(570)としてl2が設定されているとする。この場合には例えば図8(B)に示すように、関節K1に関連付けて長さl1だけのばす補正を行い、関節K2に関連付けて長さl2だけのばす補正を行い、590に示すような板ポリゴン(影生成用仮想オブジェクト)を生成することができる。
このように前記第nのパーツに関連づけて、第nの影生成用仮想オブジェクトの形状を決定するための情報(形状決定演算に用いる値等)が定義するようにしてもよい。
図9(A)、(B)は、生成された各パーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する様子を示した図である。
600は第1のオブジェクトの影テクスチャエリアである。S(1)は第1のパーツの影画像であり、S(2)は第2のパーツの影画像である。このように第1のオブジェクトを構成する各パーツの画像を影テクスチャエリア600に描画することで、各パーツの影画像を合成した影テクスチャを生成することができる。
ここで図6又は図8(B)で説明したようにボーンを長くする補正を行うと、図9(B)のS(1)、S(2)のように長手方向にボーンB’(1)、B’(2)よりも大きな影が生成され610に示すような影の重複エリアが生じる。従って各パーツ毎の影のつなぎ目の目立たない見栄えの良い影画像を生成することができる(図8(B)参照)。
図10は同じ関節構造を有するキャラクタオブジェクトの影画像について説明するための図である。
第1のキャラクタオブジェクトKO1と第2のキャラクタオブジェクトKO2は、大きさや容姿(絵柄)は異なるが同じ関節構造を有するキャラクタオブジェクトであり、620、630はそれぞれ第1のキャラクタオブジェクトKO1の影画像、第2のキャラクタオブジェクトKO2の影画像であり、622と632はそれぞれ第1のキャラクタオブジェクトKO1の影、第2のキャラクタオブジェクトKO2の影である。
個々のパーツの太さと長さがキャラクターのスケールに合わせ伸縮し、この結果620、630に示すようにキャラクターごとにシャドウのサイズが変わる。またキャラクターごとにある関節とある関節までの長さが変わるのでそれらも結果に反映される。
本実施の形態では、第1のキャラクタオブジェクトKO1、第2のキャラクタオブジェクトKO2を含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合には各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報(スケール等)を定義しておく。
そして、第1のキャラクタオブジェクトKO1と前記第2のキャラクタオブジェクトKO2が同じ動作を行う場合には、第1のキャラクタオブジェクトKO1及び第2のキャラクタオブジェクトKO2について1つの影画像を生成し(第1のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて1つ影画像を生成する)、生成された影画像を各キャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して、各キャラクタオブジェクトの影画像620,630を生成するようにしてもよい。
補正情報は例えば仮想的な基準オブジェクトの影画像に対する値(例えばスケール値)が定義されていてもよい。そして基準オブジェクトの影画像を各キャラクタオブジェクトの補正値に基づき補正して各キャラクタの影画像を生成するようにしてもよい。
または第1のキャラクタオブジェクトKO1と前記第2のキャラクタオブジェクトKO2のいずれか一方の影画像を生成し、生成された影画像を第1のキャラクタオブジェクトKO1と前記第2のキャラクタオブジェクトKO2の少なくとも一方について定義されている補正情報を用いて補正して他方の影画像を求めるようにしてもよい。例えば2つの補正情報の比を求め、求めた比に応じて一方の影画像を補整して他方の影画像を生成するようにしてもよい。
第1のオブジェクトに関連づけて設定されているスケール値をsk1、第2のオブジェクトに関連づけて設定されているスケール値をsk2とすると、図10のように第1のキャラクタオブジェクトKO1が前記第2のキャラクタオブジェクトKO2より大きい場合には、sk1>sk2となるように設定しておくと良い。
なお影画像の補整は、例えば板ポリゴン(影生成用仮想オブジェクト)を生成する際に、補正情報を用いて板ポリゴン(影生成用仮想オブジェクト)の大きさ又は形状を補正することで実現してもよい、各パーツの影画像を図9(A)、(B)に示す影描画テクスチャエリアに描画するときに補正情報を用いてスケールを変更することで実現してもよい。
このようにすると、同じ関節構造を有する複数のキャラクタオブジェクトが同じ動作を行っている場合には、1つのキャラクタオブジェクトについて影画像を生成し、各キャラクタに対応して設定されている補正情報を用いてその影画像を補正するだけで、複数のキャラクタオブジェクトの影を生成することができるので、演算不可を大幅に軽減することができる。
2−4:シャドウマッピング
本実施の形態では、生成された影テクスチャを第1のオブジェクトの影として光源方向からオブジェクト空間に存在する第2のオブジェクト(地形オブジェクト)に投影マッピングする。ここで投影マッピングはシャドウマップの手法で実現することができる。
シャドウマッピングとは、影を落とす物体をあらかじめ光源方向から見てレンダリングし、それを影用のテクスチャマッピング素材として光源方向から投影マッピングする手法であり、マッピングされた部分の色を暗くするような効果を与え影の表現を行う事が出来る。
図11、図12は一般的なシャドウマップの手法について説明するための図である。
図11は、シャドウマップを行う際に生成する影テクスチャについて説明するための図である。
シャドウマップを行う際には、図11に示すように、椅子オブジェクト810を光線ベクトル820の方向に投影して影テクスチャ領域840に椅子オブジェクトの影テクスチャ830を生成する。
図12はシャドウマップの手法により椅子オブジェクトの影を床壁オブジェクトにつける場合について説明するための図である。810は椅子オブジェクトであり、850は床壁オブジェクトである。また830は椅子オブジェクト810を光線ベクトル820の方向に投影して生成した影テクスチャである。
同図に示すように影テクスチャ830を床壁オブジェクト850にマッピングすることにより、椅子オブジェクトの影がマッピングされた床壁オブジェクト850’の画像を生成することができる。
本実施の形態では図2〜図10で説明した手法により生成した影テクスチャを光源ベクトルの方向に投影することで、第1のオブジェクトの影がマッピングされた第2のオブジェクト(地形オブジェクト)の画像を生成することができる。
2−5:影テクスチャのシザリング
本実施の形態では第1のオブジェクトの位置、向き及び仮想カメラの向きの少なくとも一方に基づき、生成した影テクスチャの影部分をふくむ所定の矩形領域を特定し、特定した矩形領域をシザリングして第2のオブジェクトに描画する。
図13は、マッピングエリアとシザリング範囲の関係について説明するための図である。
影テクスチャの地面への貼り付けにシャドウマップの手法を用いる場合、シャドウマップは検出した地面全てに描画を行ってしまう。例えば、影テクスチャと地面のヒットをとって、地面のHITポリゴン上に影テクスチャをマッピングする場合ポリゴンP1からP4がヒットポリゴンであるとすると、P1〜P4のヒットポリゴンのエリアは全て影テクスチャ描画の対象になってしまう。例えば、図13の影部分以外の部分には、影テクスチャが描画されてないように見えるが、実際には影部分の周りには透明のテクスチャが伸ばされて貼られているのである。
従ってポリゴン割りが粗く大きいほど、画面に対して描画範囲が大きくなってしまうので処理負荷が多くなってしまう。特に地面等の地形はポリゴン割りが粗いので、描画領域が広くなり処理負荷が増加する傾向になる。
そこで本実施の形態では、地形に影テクスチャのマッピングを行う場合、影テクスチャの不要部分(影の入っていない透明な部分)に対応する第2のオブジェクト(地面のヒットポリゴン)のシザリングを行う。
例えば図13では実際に描画されているのは、青い線に囲まれたシザリング用矩形領域(所定の描画領域)650だけである。このように影テクスチャの描画を指定する際に、第2のオブジェクト(地面のヒットポリゴン)の矩形領域650をシザリングして影テクスチャをマッピングすることにより大幅にピクセルフィルを稼ぐことが出来、結果的に描画コストを大きく抑えることが出来る。
このシザリングは矩形で処理されており、キャラクターとカメラの向きにより変形する。図14〜図15は、矩形領域(描画領域)の形状とキャラクターと仮想カメラの向きの関係について説明するための図である。
例えば図14に示すようにキャラクタオブジェクトPKが正面向き(キャラクタオブジェクトの正面方向と仮想カメラの視線方向が一致する又は角度差が小さい(角度差が0又は180にちかい))場合は、シザリング用矩形領域650がより正方形に近い矩形として特定され、図15に示すようにキャラクタオブジェクトPKが横向き(キャラクタオブジェクトの正面方向と仮想カメラの視線方向が直角に近い(角度差が90又は270にちかい))場合は、シザリング用矩形領域650がより横長の長方形として特定される。
2−6:本実施の形態の処理の流れ
図16は本実施の形態の影画像を生成する処理の流れについて説明するための図である。
まず頭上からの視点を生成すべく、カメラマトリックスを作成する(ステップS10)。
次に生成されたシャドウをシャドウマップのテクスチャとして使用するために、シャドウの描画先を任意のテクスチャエリア(影テクスチャエリア)に切り替える。また描画範囲の大きさを決める(ステップS20)。
影テクスチャエリアにシャドウ描画時にスケールを合わせるために、スクリーンマトリックスを生成する(ステップS30)。この処理はプログラム中1回だけでよく便利上ここにおく。
シャドウの描画先の影テクスチャエリアを黒で塗り潰し初期化を行う(ステップS40)。
投影面におけるパーツのボーン(関節)の座標、長さ、法線ベクトルを取得する(ステップS50)。
ボーンベクトル(ボーンの端の関節を繋ぐベクトル)に、取得したベクトルとY初期化ベクトルとの外積から太さを追加する。このときキャラクター固有のスケール値と太さパラメーターを掛け最終的に太さを決定する(ステップS60)なお標準の太さパラメーターは、例えば図7に示すようにデータとして存在している。
取得した長さもそのままでは足りないので、取得したボーンベクトル方向とその逆にそれぞれ長さを追加する。また太さと同じくキャラクター固有のスケール値と長さパラメーターを掛け最終的に長さを決定する(ステップS70)。なお図7に示すようにキャラクター固有のスケール値と長さパラメーターデータが存在する。
このようにしてできあがった太さと長さを持った1枚板のポリゴンは、影テクスチャを目一杯の大きさで参照し、この1枚板ポリゴンを設定された描画先に対して任意のスケールで描画を行う(ステップS80)。
ステップS40〜S80の処理を各パーツの数分行う。すべてのパーツについて処理が終了したら(ステップS90)、最後のパーツである頭の部分に関しては特別な計算は行わず、頭のボーン座標に単なる板ポリゴン生成し、設定された描画先に対して任意のスケールで描画を行う(ステップS100)。
次に影テクスチャのマッピング面のシザリング用の矩形座標、幅、高さ(シザリング情報)をカメラとキャラクターの位置、向きから計算しておく(ステップS110)。
そしてシザリング情報に基づき第2のオブジェクトをシザリングし、影テクスチャをシャドウマップする(ステップS120)。
3.ハードウェア構成
図17に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース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転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(描画領域、ピクセル値、変換テーブル等)として引用された用語(フレームバッファ・ワークバッファ、α値、ルックアップテーブル等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また上記実施の形態では、真上に並行光源がある場合の影を生成する場合を例にとり説明したが是に限られず、光源が真上以外にある場合でもよい。
また上記実施の形態では複数のキャラクタで格闘を行うアクションゲームを例にとり説明したがこれに限られない。例えばサッカーやラグビー等の球技ゲームでもよいし、その他のゲームでもよい。
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
本実施形態の画像生成システムの機能ブロック図の例。 本実施の形態の特徴について説明するため図。 第1のオブジェクトの構造について説明するための図。 第1のオブジェクトの骨格構造を示すスケルトンモデルの例。 図5(A)(B)は、パーツ用影基準テクスチャの一例を示した図。 影生成用仮想オブジェクトを用いたパーツ用影基準テクスチャの変形について説明するための図。 各パーツ(またボーンや関節)に関連づけて定義されている情報の一例を示した図。 影生成用仮想オブジェクトの形状決定の一例を示す図。 図9(A)(B)は、各パーツの影画像を影テクスチャエリアに描画して影テクスチャを生成する様子を示した図。 同じ関節構造を有するキャラクタオブジェクトの影画像について説明するための図。 シャドウマップの手法について説明するための図。 シャドウマップの手法について説明するための図。 マッピングエリアとシザリング範囲の関係について説明するための図。 矩形領域(描画領域)の形状とキャラクターと仮想カメラの向きの関係について説明するための図。 矩形領域(描画領域)の形状とキャラクターと仮想カメラの向きの関係について説明するための図。 本実施の形態の影画像を生成する処理の流れについて説明するための図。 ハードウェア構成例。
符号の説明
PK プレーヤキャラクタ、K1〜K15 関節、B(1)〜B(10) ボーン、P(1)〜P(10) パーツ、100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、120 描画部、122 影テクスチャ生成部、124 影マッピング処理部、130 音生成部、160 操作部、170 記憶部、172 描画バッファ、174 テクスチャ記憶部、176 Zバッファ、180 情報記憶媒体、190 表示部、192 音出力部、194 携帯型情報記憶装置、196 通信部

Claims (12)

  1. 画像を生成するためのプログラムであって、
    第1〜第n(n≧2)のパーツを含む複数のパーツが関節で連結された第1のオブジェクトについて、第1〜第nのパーツの影画像を生成し、生成された各パーツの影画像を合成して第1のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、してコンピュータを機能させ、
    影テクスチャ生成部は、
    第nのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成し、生成された第nのパーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成することを特徴とするプログラム。
  2. 請求項1において、
    影テクスチャ生成部は、
    第nのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第nのパーツに対応した第nの影生成用仮想オブジェクトの形状を決定し、決定された形状の第nの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成することを特徴とするプログラム。
  3. 請求項1乃至2のいずれかにおいて、
    所定のパーツ用影基準テクスチャは、第1の領域と第2の領域とを含み、第1の領域と第2の領域の境界付近が半透明になるように半透明情報設定されていることを特徴とするプログラム。
  4. 請求項1乃至3のいずれかにおいて、
    生成された影テクスチャを第2のオブジェクトに投影マッピングする影マッピング処理部を含み、
    影マッピング処理部は、
    前記第1のオブジェクトの位置に基づき所定の領域を描画領域として特定し、特定された描画領域に含まれる第2のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とするプログラム。
  5. 請求項4において、
    影マッピング処理部は、
    前記第1のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき、所定の矩形領域を前記所定の描画領域として特定することを特徴とするプログラム。
  6. 請求項1乃至5のいずれかにおいて、
    前記第nのパーツに関連づけて、第nのパーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報が定義されていることを特徴とするプログラム。
  7. 請求項2乃至6のいずれかおいて、
    前記第nのパーツに関連づけて、第nの影生成用仮想オブジェクトの形状を決定するための情報が定義されていることを特徴とするプログラム。
  8. 請求項1乃至7のいずれかおいて、
    第1のキャラクタオブジェクト、第2のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
    前記第1のキャラクタオブジェクトと前記第2のキャラクタオブジェクトが同じ動作を行う場合には、第1のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第2のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第2のキャラクタオブジェクトの影画像を生成することを特徴とするプログラム。
  9. 請求項1乃至8のいずれかにおいて、
    所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とするプログラム。
  10. 請求項1乃至9のいずれかにおいて、
    影テクスチャ生成部は、
    第nのパーツに関連付けられた関節又はボーンを第1軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成することを特徴とするプログラム。
  11. コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至10のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
  12. 画像を生成するための画像生成システムであって、
    第1〜第n(n≧2)のパーツを含む複数のパーツが関節で連結された第1のオブジェクトについて、第1〜第nのパーツの影画像を生成し、生成された各パーツの影画像を合成して第1のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
    前記影テクスチャ生成部は、
    第nのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第nのパーツの影画像を生成し、生成された第nのパーツの影画像を第1のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成することを特徴とする画像生成システム。
JP2005102904A 2005-03-31 2005-03-31 プログラム、情報記憶媒体、及び画像生成システム Expired - Fee Related JP3748451B1 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP3748451B1 JP3748451B1 (ja) 2006-02-22
JP2006285511A true JP2006285511A (ja) 2006-10-19

Family

ID=36032094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005102904A Expired - Fee Related JP3748451B1 (ja) 2005-03-31 2005-03-31 プログラム、情報記憶媒体、及び画像生成システム

Country Status (1)

Country Link
JP (1) JP3748451B1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305241A (ja) * 2007-06-08 2008-12-18 Samii Kk 画像生成装置および画像生成プログラム
JPWO2007029568A1 (ja) * 2005-09-08 2009-03-19 株式会社セガ 画像処理プログラム及び,これを用いた画像処理システム
JP2009176244A (ja) * 2008-01-28 2009-08-06 Sammy Corp 画像作成装置及びプログラム
CN107230249A (zh) * 2017-07-04 2017-10-03 北京像素软件科技股份有限公司 阴影渲染方法和装置
JP2020537201A (ja) * 2017-10-04 2020-12-17 グーグル エルエルシー 挿入される画像コンテンツについての影生成

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111612071B (zh) * 2020-05-21 2024-02-02 北京华睿盛德科技有限公司 一种从曲面零件阴影图生成深度图的深度学习方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007029568A1 (ja) * 2005-09-08 2009-03-19 株式会社セガ 画像処理プログラム及び,これを用いた画像処理システム
JP4930373B2 (ja) * 2005-09-08 2012-05-16 株式会社セガ 画像処理プログラム及び,これを用いた画像処理システム
JP2008305241A (ja) * 2007-06-08 2008-12-18 Samii Kk 画像生成装置および画像生成プログラム
JP2009176244A (ja) * 2008-01-28 2009-08-06 Sammy Corp 画像作成装置及びプログラム
CN107230249A (zh) * 2017-07-04 2017-10-03 北京像素软件科技股份有限公司 阴影渲染方法和装置
JP2020537201A (ja) * 2017-10-04 2020-12-17 グーグル エルエルシー 挿入される画像コンテンツについての影生成
JP2020537200A (ja) * 2017-10-04 2020-12-17 グーグル エルエルシー 画像に挿入される画像コンテンツについての影生成
JP7008730B2 (ja) 2017-10-04 2022-01-25 グーグル エルエルシー 画像に挿入される画像コンテンツについての影生成
JP7008733B2 (ja) 2017-10-04 2022-01-25 グーグル エルエルシー 挿入される画像コンテンツについての影生成

Also Published As

Publication number Publication date
JP3748451B1 (ja) 2006-02-22

Similar Documents

Publication Publication Date Title
JP3748451B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4804122B2 (ja) プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム
JP4717622B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4610748B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4305903B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4734137B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4749198B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4754384B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4229319B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4743770B2 (ja) 画像生成システム、プログラム、及び情報記憶媒体
JP4073031B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4528008B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2001229403A (ja) ゲームシステム及び情報記憶媒体
JP4707078B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4574058B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2011215724A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4592087B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4754385B2 (ja) プログラム、情報記録媒体および画像生成システム
US7724255B2 (en) Program, information storage medium, and image generation system
JP4786389B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4662260B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2007164651A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2009140371A (ja) プログラム、情報記憶媒体、画像生成システム
JP2007164736A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006252291A (ja) プログラム、情報記憶媒体及び画像生成システム

Legal Events

Date Code Title Description
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: 20051124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051125

R150 Certificate of patent or registration of utility model

Ref document number: 3748451

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

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

Free format text: PAYMENT UNTIL: 20081209

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20081209

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20091209

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20091209

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091209

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101209

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20101209

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111209

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111209

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131209

Year of fee payment: 8

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

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

LAPS Cancellation because of no payment of annual fees