JP3872032B2 - 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 - Google Patents
画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 Download PDFInfo
- Publication number
- JP3872032B2 JP3872032B2 JP2003097126A JP2003097126A JP3872032B2 JP 3872032 B2 JP3872032 B2 JP 3872032B2 JP 2003097126 A JP2003097126 A JP 2003097126A JP 2003097126 A JP2003097126 A JP 2003097126A JP 3872032 B2 JP3872032 B2 JP 3872032B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- definition data
- motion
- virtual space
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、多関節構造体をベースとして例えばこれにポリゴンを貼り付けてなるオブジェクトを描画し、更にモーションデータに応じて動画像として描画するための技術に関する。
【0002】
【従来の技術】
従来、人物等を模擬的に表すオブジェクトをモニタ画面等にグラフィック表示可能に描画するのに、例えば腰の位置を基準(ROOT)とし、この基準(ROOT)から最初の関節(ノード位置)を定義し、この関節から次の関節を定義するというように順次関節を求め、関節同士を連結してスケルトンを生成し、さらに各スケルトンにポリゴンを貼り付けるといった体系を採用し、描画処理時には、基準(ROOT)から順番に下流側に向けて、ノード、ポリゴン等の座標、回転量を演算して描画する手法がある。そして、オブジェクトに動き(アニメーション)を与える場合、その動き毎に予め準備されたモーション定義データに従って順次演算処理して各時点でのオブジェクトを経時的に変化するように描画することで、オブジェクトをゲーム空間上で移動表示していた。
【0003】
ところで、近年のビデオゲームの分野にあっては画像の高精細化の要求があり、それに伴い特にゲーム空間に描画されるオブジェクトに使用するポリゴンデータ量、特にゲーム空間で移動するオブジェクトの動画像を描画するためのモーション定義データ量が著しく増大する傾向にある。特にゲーム装置の場合、その特質上、描画処理を高速周期で繰り返す必要があり、大容量のメモリを搭載した高速処理のハードウエアを搭載すれば、ある程度の要求は満足できるものの、メモリ、演算処理部の資源は有限であり、ハードウェアを有効利用可能なソフトウェア部分の開発にさらなる工夫が求められている。
【0004】
例えば、仮想カメラ視点、即ちプレイヤーの視点位置に対してゲーム空間内で近接/離反するキャラクタ(オブジェクト)の描画を高速処理する一手法として、近距離用、中距離用及び遠距離用として各々別々のオブジェクトを予め準備したものが提案されている。すなわち、オブジェクトを規定するノードの個数を距離に応じて3種類準備しておき、かつそれに合わせてポリゴンデータ(さらにテクスチャデータ)もそれぞれ準備しておき、仮想カメラ視点との距離に応じて切り替えて使用するようにしたものである。仮想カメラ視点との距離が近距離であれば、最も精細なオブジェクトデータを読み出して描画処理を行い、遠距離であれば、最も粗いオブジェクトデータを読み出して描画処理を行うことで、演算負荷を軽減している。
【0005】
【発明が解決しようとする課題】
しかしながら、上記したような基準(ROOT)から順次スケルトンを定義する方法では、近距離用、中距離用及び遠距離用としてスケルトンを準備する態様の場合、オブジェクトに同一の動き、例えば「歩く」動作についてアニメーション(動画表示)を行わせる場合、近距離用、中距離用及び遠距離用の各動き毎にそれぞれ別のモーション定義データを準備する必要があり、特にオブジェクトに細かな動き、種々の動きが要求される現状のゲーム分野では、アニメーションの種類が著しく多くなり、そのデータ量は無視できない。また、同一の動きを行わせるにも拘わらず、近距離用、中距離用及び遠距離用にそれぞれ別のアニメーション演算プログラムデータを持たせる必要もある。
【0006】
また、距離に無関係に、オブジェクトを1種類の(すなわち高精細の)スケルトンで定義し、アニメーション演算を行うタイプでは、特に遠距離でのアニメーション演算に於いて実際に遊技者には認識できないようなポリゴンについても全て演算を実行する等不要な演算を多量に行っていることとなり、演算負荷の軽減上好ましいとは言い難い。
【0007】
一方、例えば上記基準から各関節に対してベクトルを定義し、このベクトルの端点をノードとしてこれらノードからスケルトンを生成する方法がある。この方法によれば上記基準から順次演算するよりも直接的にスケルトンを生成することができ、オブジェクトの描画をより高速に行うことが可能となるが、依然、上記距離に応じたオブジェクトデータ、モーションデータを用意する場合の問題、一つの精細なオブジェクトを距離と無関係に用いる場合の問題を解決することはできない。
【0008】
尚、仮想カメラ視点からのゲーム空間に於ける距離のみならず、例えば大きさが変化するキャラクタ(オブジェクト)を描画する場合も同様な改善が望まれる。また、低速〜高速で左右等に移動するキャラクタ(オブジェクト)を描画する場合、低速でオブジェクトが移動する場合には精細に描画することが望ましいが、高速で移動するオブジェクトはさほど精細でなくとも問題とならないことから、上記同様な工夫が望まれる。
【0009】
本発明は、上記に鑑みてなされたもので、メモリを大量に必要としたり、不要な演算を多量に行う必要がなく、仮想カメラ視点とオブジェクトとの間の距離、オブジェクトの大きさ、オブジェクトの移動速度等のオブジェクト描画条件に応じた描画を行い、オブジェクトの静止画像、動画像を高速描画を可能とする画像生成装置、画像生成プログラム、画像生成方法及びビデオゲーム装置を提供することを目的とするものである。
【0010】
【課題を解決するための手段】
請求項1記載の発明は、多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画するための画像生成プログラムであって、コンピュータを、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するための モーションデータ記憶手段と、前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成するスケルトン生成手段として機能させるものである。
【0011】
請求項9記載の発明は、多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画する画像生成装置であって、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段と、前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成することを特徴とする画像生成装置である。
【0012】
請求項10記載の発明は、多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画する画像生成方法であって、ノード定義データ記憶手段が、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを予め格納し、モーションデータ記憶手段が、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを予めに格納し、ノード定義データ選定手段が、前記オブジェクト描画条件に応じて使用するノードを選定し、スケルトン生成手段が、選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成することを特徴とする画像生成方法である。
【0013】
請求項11記載の発明は、多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画するビデオゲーム装置であって、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段と、前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成するスケルトン生成手段とを備えたことを特徴とするビデオゲーム装置である。
【0014】
これらの各発明によれば、仮想空間に画像を生成・描画するのに使用され得る全てのノードを定義するためのノード定義データを記憶しておき、例えば仮想カメラ視点に対する距離やオブジェクトの大きさ、オブジェクトの移動速度等のオブジェクト描画条件に応じてオブジェクトの描画に用いるスケルトンを生成するためのノード定義データを選定し、選定されたノード定義データを基にスケルトンを生成し、これに同じくオブジェクト描画条件に応じたポリゴンを貼り付けて例えばモニタ上に描画する。従って、オブジェクト描画条件毎にそれぞれのノード定義データを持つ必要がない分、データ容量が低減化され、演算負荷の軽減が図れる。特に、モーションデータを用いて動画像を生成・描画する場合、オブジェクト描画条件毎にそれぞれモーションデータを持つ必要がなく、一層、データ容量が低減化され、演算負荷の軽減が図れる。
【0015】
ここで、スケルトンは、一般的には関節同士を接続するものであるが、仮想空間の特定位置を基準にしたノード定義データのうち、選定されたノード定義データのみからスケルトンが生成されるので、オブジェクト描画条件に応じて適正なスケルトンが仮想空間上に生成される。
【0016】
例えば、ノード定義データとしては各関節位置をノード番号に割り当てるデータテーブルを用いることができる。
【0017】
さらに、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段としてコンピュータを更に機能させ、前記スケルトン生成手段は、前記選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成することを特徴する。この発明によれば、モーションデータ記憶手段から順次読み出されたモーションデータに従ってスケルトンが仮想空間上に生成され、結果的にオブジェクトが動画像として描画される。
【0018】
モーション定義データとしては、前記仮想空間の特定位置を一端とする標準の位置ベクトル(ノードの位置座標)及び標準の方向ベクトル(角度データ)からなるベクトルデータを用いることが考えられる。
【0019】
ここで、図10を用いて、モーション定義データとしてベクトルデータを含む場合の選定されるベクトルデータと、ノードと、これに貼り付けるポリゴンとの関係を説明する。図10において、(n0)、(n1)、(n2)、(n3)は仮想空間の特定位置Pbを基点としてノード位置を定義するベクトルデータを表し、(N0)、(N1)、(N2)、(N3)はノード番号を表している。図10(a)はベクトルデータ(n0)、(n1)、(n2)、(n3)が全て使用(選定)された場合の図、図10(b)はオブジェクト描画条件に応じたベクトルデータ(n0)、(n1)、(n3)が使用(選定)された場合の図、図10(c)はオブジェクト描画条件に応じたベクトルデータ(n0)、(n3)が使用(選定)された場合の図である。図10(a)では、ベクトルデータ(n0)、(n1)、(n2)、(n3)を夫々使用して(ノード番号(N0)、(N1)、(N2)、(N3)を用いて)スケルトンが生成され、それに対応する、即ちスケルトン生成のオブジェクト描画条件と同じオブジェクト描画条件に応じた形、大きさのポリゴン(P0)、(P1)、(P2)が貼り付けられ、更にテクスチャを貼り付けて画像として描画される。また、図10(b)では、ベクトルデータ(n2)を除いて(ノード番号(N2)を除いて)ノード番号(N1)と、除いたノード番号(N2)以外の、例えばノード番号(N3)との間でスケルトンが生成され、それに対応する形、大きさのポリゴン(P0')、(P1')が貼り付けられ、更にテクスチャが貼り付けられて画像として描画される。また、図10(c)では、ベクトルデータ(n1)、(n2)を除いて(ノード番号(N1)、(N2)を除いて)ノード番号(N0)と、除いたノード番号(N1)、(N2)以外の、例えばノード番号(N3)との間でスケルトンが生成され、それに対応する形、大きさのポリゴン(P0'')が貼り付けられ、更にテクスチャを貼り付けて画像として描画されることとなる。尚、例えば静止画像の場合には上記の通りであり、ベクトルデータの時間変化を表すデータは用いる必要がない。
【0020】
更に、動画像の場合、従来のように基準位置からスケルトンを順番に指定していく手法の場合のように、描画条件毎に定義データ類を準備しておかなくても、1種類分のノード定義データ及び各動作に応じたモーション定義データ(を記憶しておき、オブジェクト描画条件に応じて必要なノードを選定し、選定されたノードとその動作に関するモーション定義データとからモーションデータを生成し、このモーションデータからスケルトンを生成し、オブジェクト描画条件に応じたポリゴンをテクスチャと共に貼り付けて画像として描画される。これにより、データ容量が軽減され、かつ演算負荷の軽減が図れる。
【0021】
すなわち、本発明によれば、一部のノードを不使用としても、残りの(選定された)ノードでスケルトンが容易に生成され、これに応じたポリゴンをテクスチャと共に貼り付けることで画像として描画できる。
【0022】
尚、ノード定義データとしては、全ノードを定義するようなデータであれば良い。また、モーション定義データとしては、例えば或るノードAに対しては特定位置を基準とする直接的な位置ベクトルをもって定義し、そのノードAと関係する複数のノードは、ノードAから各ノードへの方向ベクトル及び標準的なスケルトンの長さのデータを用いても良い。動画像を描画する場合、所定時間分の動きを表す角度データと、スケルトンの長さデータの伸縮の程度を表す係数とを用い、これらから描画する画像のスケルトンを求めることができる。
【0023】
請求項2記載の発明は、請求項1に記載の画像生成プログラムにおいて、前記オブジェクト描画条件は、前記仮想空間に配置された仮想カメラ視点と描画されるオブジェクトとの間の前記仮想空間における距離であることを特徴とする。この発明によれば、描画するオブジェクトの仮想カメラ視点からの距離が近ければ多数のノードを用いることで精細な画像が提供し得る一方、遠ければ、ノードの個数を減らして描画しても不自然さはない。
【0024】
請求項3記載の発明は、請求項2に記載の画像生成プログラムにおいて、前記ノード定義データ選定手段は、仮想カメラ視点と描画されるオブジェクトとの間の距離と、選定すべきノードとをルックアップテーブル形式で対応付けて格納することを特徴とする。この発明によれば、距離情報をルックアップテーブルにて参照することで、出力としてノードの選定結果が得られるので、構成が容易になり、かつ高速処理が可能となる。
【0025】
請求項4記載の発明は、請求項2又は3記載の画像生成プログラムにおいて、前記ノード定義データ選定手段は、仮想カメラ視点と描画されるオブジェクトとの間の距離を複数領域に分け、各領域に応じて使用するノードを選定することを特徴とする。この発明によれば、近い距離領域に含まれるオブジェクトは細かい画像として表示され、遠い距離領域に含まれるオブジェクトは遠距離となってモニタ上での視認が容易でないことから、違和感(不自然さ)のない程度の粗い画像として表示される。
【0026】
請求項5記載の発明は、請求項2乃至4のいずれかに記載の画像生成プログラムにおいて、前記ノード定義データ選定手段は、前記仮想カメラ視点と描画されるオブジェクトとの間の距離に応じて、使用するノードを選定するための情報をマスキング情報として記憶し、前記スケルトン生成手段は、前記マスキング情報を用いてマスキング処理することで、選定されたノードの定義データから前記仮想空間上にスケルトンを生成するようになっていることを特徴とする。この発明によれば、仮想カメラ視点と前記オブジェクトとの間の距離に応じた各ノードの選定状態がマスキング情報として得られるので、このマスキング情報をいわばゲート(乃至はアンド論理処理)的に作用させることで、選定されたノードのみから仮想空間上にスケルトンが生成される。
【0027】
請求項6記載の発明は、請求項1に記載の画像生成プログラムにおいて、前記オブジェクト描画条件は、前記仮想空間に配置された仮想カメラ視点から見た描画されるオブジェクトの画像サイズであることを特徴とする。この発明によれば、仮想空間上での、例えば表示対象となるオブジェクトと仮想カメラ視点との距離とから該対象オブジェクトの表示サイズ、例えば縦、横(あるいは高さ、幅)の少なくとも一方の寸法を、あるいは該対象オブジェクトの描画面積をサイズ算定部で算出し、算出結果の大小によってノード定義データ選定手段がノードの選定処理を実行することとなる。
【0028】
請求項7記載の発明は、請求項1に記載の画像生成プログラムにおいて、前記オブジェクト描画条件は、描画されるオブジェクトの前記仮想空間での移動速度であることを特徴とする。この発明によれば、例えば、モニタ上、仮想カメラ視点の左右に高速でオブジェクトが移動する場合、低速で移動する場合に比較してモニタ上での視認が容易でないことから、違和感(不自然さ)のない程度の粗い画像として表示される。
【0029】
請求項8記載の発明は、請求項1乃至7のいずれかに記載の画像生成プログラムにおいて、前記スケルトン生成手段により生成したスケルトンにポリゴンを貼り付けることによりオブジェクトが描画され、選定されるノードに対応して前記各オブジェクト描画条件毎に異なるポリゴンを記憶するポリゴン記憶手段を有するようになっていることを特徴とすることを特徴とする。この発明によれば、ノード定義データおよび各モーション定義データは1通りで済み、一方、各ポリゴンはオブジェクト描画条件毎に選定されるノードに対応する形で設けられているので、オブジェクト描画条件によっては隣接するノードが選定されない場合でも、それを補うようにポリゴンの数、(1つのノードによって得られる)モデルの形状を設定しておけば、描画された画像上でも不自然さのない画像を描くことが可能となる。
【0030】
【発明の実施の形態】
図1は、本発明が適用されるテレビゲームシステムの一実施形態を示す構成図である。
【0031】
図1に示されるゲームシステムは、ゲーム機本体と、プログラムデータが記録された記録媒体30とからなる。ゲーム機本体は、アドレス、データ及びコントロールバスからなるバス2に接続されたCPU1と、このバス2に接続された、グラフィックスデータ生成プロセッサ3、インターフェース回路4、メインメモリ5、ROM6、伸張回路7、パラレルポート8、シリアルポート9、描画処理プロセッサ10及びバッファ11、音声処理プロセッサ13及びバッファ14、デコーダ17及びバッファ18、インターフェース回路20、及びメモリ21を備えて構成されている。描画処理プロセッサ10にはテレビジョンモニタ12が接続され、音声処理プロセッサ13に増幅回路15を介してスピーカ16が接続され、デコーダ17に記録媒体ドライバ19が接続され、インターフェース回路20にメモリ21及びコントローラ22が接続されている。
【0032】
ここで、上記ゲームシステムは、用途に応じてその形態が異なる。すなわち、上記ゲームシステムが、家庭用として構成されている場合においては、テレビジョンモニタ(以下、モニタという)12及びスピーカ16はゲーム機本体とは別体となる。また、上記ゲームシステムが、業務用として構成されている場合においては、図1に示されている構成要素はすべて一体型となっている1つの筺体に収納される。また、上記ゲームシステムが、パーソナルコンピュータやワークステーションを核として構成されている場合においては、モニタ12は、上記コンピュータ用のディスプレイに対応し、描画処理プロセッサ10、音声処理プロセッサ13、伸張回路7は、それぞれ記録媒体30に記録されているプログラムデータの一部若しくはコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応し、インターフェース回路4、パラレルポート8、シリアルポート9及びインターフェース回路20は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ11、14及び18は、それぞれメインメモリ5若しくは図示しない拡張メモリの各エリアに対応する。本実施の形態では、上記ゲームシステムが、家庭用として構成されている場合を例にして説明する。
【0033】
次に、図1に示した各構成要素について説明する。グラフィックスデータ生成回路3は、CPU1のいわばコプロセッサとしての役割を果たす。すなわち、このグラフィックスデータ生成回路3は、座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を並列処理により行う。このグラフィックスデータ生成回路3の主な処理は、CPU1から供給される画像データの2次元若しくは3次元内における各頂点の座標データ、移動量データ、回転量データ及び仮想カメラ視点データに基づいて処理対象画像の表示エリア上におけるアドレスを求め、当該アドレスデータを、再びCPU1に返す処理や、仮想的に設定された光源からの距離に応じて、画像の輝度を計算する公知の処理等である。
【0034】
上記インターフェース回路4は、周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用である。上記ROM6はゲームシステムのオペレーティングシステムとしてのプログラムデータが、記憶されている。パーソナルコンピュータで言えば、BIOS(Basic Input Output System)に相当する。
【0035】
伸張回路7は、動画に対するMPEG(Moving Picture Engineering Group)や静止画に対するJPEG(Joint Picture Engineering Group)に準拠したイントラ符号化により圧縮された圧縮画像に対し、伸張処理が施される。伸張処理は、デコード処理(vlc:Variable Length Codeによりエンコードされたデータのデコード)、逆量子化処理、IDCT(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等である。
【0036】
描画処理プロセッサ10は、CPU1が発行する描画命令に基づいて、バッファ11に対する描画処理を行う。
【0037】
バッファ11は、表示エリアと非表示エリアとからなり、表示エリアは、モニタ12の表示面上に表示するデータの展開エリアであり、非表示エリア(メモリ)は、メインメモリ5に取り込まれた、以下の各種データに基づいてのデータ展開が行われるエリアである。
【0038】
メインメモリ5は、ノード定義データ(全ノードを定義するデータ)と、ポリゴンを定義するモデルデータと、キャラクタ等を描画するべく各スケルトンに相対的に対応するポリゴンを定義する後述する距離領域毎のモデルデータとを記憶すると共に、キャラクタ等のモデルに動きを行わせるべく各ノード定義データを所定時間(例えばモニタ12のフレーム周期;1/60秒)毎に規定する動き(データ基端の座標データ(位置ベクトル)、スケルトンの延在軸線を中心とする軸回転角、即ちねじれを表す回転角データ(方向ベクトル))データ(モーション定義データ)と、距離領域毎でのノード定義データを選定するための選定データと、選定データに応じて選定されたノードについてのみ仮想空間としての3次元空間にスケルトンの展開生成処理を行わせるためのマスキング処理用のマスキング情報(マスクデータ)とを記憶し、さらに、テクスチャデータと、カラーパレットデータとを記憶する。
【0039】
上記において、時間軸のない静止画の場合のオブジェクトの描画は、ノード定義データを用い、モーション定義データを用いずに生成できる。一方、動画の場合のオブジェクトの描画は、ノード定義データとモーション定義データとからモーションデータ(ノード位置及び角度データ)を生成し、このモーションデータから実際に描画が行われる。動画の場合に、モーション定義データとして持つことで、モーションデータを求める処理が増える一方、各モーションを全てモーションデータとして持つ場合に比して、メモリ容量を、モーションの種類によっては格段に低減できることとなる。なお、モーションデータのまま持つようにした態様であっても構わない。
【0040】
また、テクスチャデータは、2次元の画像データである。カラーパレットデータは、テクスチャデータ等の色を指定するためのデータである。
【0041】
これらのデータは、記録媒体30から一度に、若しくはゲームの進行状況に合わせて複数回に分けて、CPU1により予めメインメモリ5に記録される。
【0042】
描画命令としては、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の2次元画像を描画するための描画命令がある。ここで、ポリゴンは、多角形の2次元画像であり、本実施の形態においては、三角形若しくは四角形が用いられる。
【0043】
ポリゴンを用いて立体的な画像を描画するための描画命令は、バッファ11の表示エリア上におけるポリゴン頂点アドレスデータ、ポリゴンが貼り付けられるテクスチャデータのバッファ11上における記憶位置を示すテクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ11上における記憶位置を示すカラーパレットアドレスデータ並びにテクスチャの輝度を示す輝度データとからなる。
【0044】
これらのデータの内、表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ3が、CPU1からの3次元空間上におけるポリゴン頂点座標データを、対応するスケルトンの3次元空間内でのベクトルデータに基づいて座標変換することによって2次元上でのポリゴン頂点座標データに置換したものである。また、輝度データは、上記グラフィックスデータ生成プロセッサ3が、CPU1からの上記座標変換後のポリゴン頂点座標データが示す位置から、仮想的に配置された光源間での距離に基づいて決定される。
【0045】
上記ポリゴン頂点アドレスデータは、バッファ11の表示エリア上のアドレスを示す。描画処理プロセッサ10は、3若しくは4個のポリゴン頂点アドレスデータで示されるバッファ11の表示エリアの範囲に対応するテクスチャデータを書き込む。
【0046】
コントローラ22の操作により、表示面上でキャラクタ(オブジェクト)を動かす場合、言い換えれば、キャラクタそのものの動きを表現する場合若しくはキャラクタを見ている位置(仮想カメラ視点)を変える場合、次のような処理が行われる。CPU1は、非表示エリア上のノード定義データ内のベクトルデータ(位置データ、回転角データ)を、グラフィックスデータ生成プロセッサ3によって、仮想カメラ視点、3次元空間上で移動量データ及び回転量データに基づき座標変換させ、スケルトンを3次元空間上に展開生成する。各ポリゴンの3次元空間上の座標データは、対応するノードと関連してメインメモリ5に記憶されている。そして、グラフィックスデータ生成プロセッサ3は、CPU1の指令により、それぞれのノードに対応する各ポリゴンの移動後及び回転後の3次元座標データを求める。このようにして求められた各ポリゴンの3次元座標データの内、水平及び垂直方向の座標データが、バッファ11の表示エリア上のアドレスデータ、すなわち、ポリゴン頂点アドレスデータとして、描画処理プロセッサ10に供給される。描画処理プロセッサ10は、3個若しくは4個のポリゴン頂点アドレスデータによって示されるバッファ11の三角形若しくは四角形の表示エリア上に、予め割り当てられているテクスチャアドレスデータが示すテクスチャデータを書き込む。これによって、モニタ12の表示面上には、多数のポリゴンにテクスチャデータの貼り付けられた物体(オブジェクト)が表示される。
【0047】
通常の2次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ11上における記憶位置を示すカラーパレットアドレスデータ並びにテクスチャの輝度を示す輝度データからなる。これらのデータの内、頂点アドレスデータは、グラフィックスデータ生成プロセッサ3がCPU1からの2次元平面上における頂点座標データをCPU1からの移動量データ及び回転量データに基づいて、座標変換して得られる座標データである。以下、描画処理については、「描画命令を発行する」等のように簡略化して記載する。
【0048】
音声処理プロセッサ13は、記録媒体30から読み出されたADPCMデータをバッファ14に記載し、このバッファ14に記憶されたADPCMデータを音源とする。そして、音声処理プロセッサ13は、ADPCMデータを、例えば44.1KHzの周波数のクロックで読み出す。そして、音声処理プロセッサ13は、バッファ14から読み出したADPCMデータに対し、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定、リバーブの付加等の処理を施す。記録媒体30から読み出される音声データがCD−DA(Compact Disk digital Audio)等のPCMデータの場合においては、音声処理プロセッサ13により、ADPCMデータに変換される。また、PCMデータに対するプログラムデータによる処理は、メインメモリ5上において直接行われる。メインメモリ5上において処理されたPCMデータは、音声処理プロセッサ13に供給されてADPCMデータに変換された後に、上述した各種処理が施された後に、音声としてスピーカ16から出力される。
【0049】
記録媒体ドライバ19は、例えばハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等である。記録媒体30は、例えばハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等である。記録媒体ドライバ19は、記録媒体30から画像、音声、プログラムデータを読み出し、読み出したデータを、デコーダ17に供給する。デコーダ17は、記録媒体ドライバ19からの再生データに対し、ECC(Error Correction Code)によるエラー訂正処理を施し、エラー訂正処理を施したデータを、メインメモリ5若しくは音声処理プロセッサ13に供給する。
【0050】
メモリ21は、例えば、ホルダ及びカード型のメモリからなる。カード型のメモリは、例えば終了時点の状態を保持する等のように、ゲーム各種パラメータを保持するためのものである。
【0051】
コントローラ22は、オブジェクトに所要の動きを行わせる操作指示部で、左トリガーボタン22L、右トリガーボタン22R、スタートボタン22a、上キーU、下キーD、左キーL、右キーRからなる十字キー22bと、キャンセルボタン22c、セレクトボタン22d、ボタンユニット22e、アナログスティック22f、図示はしていないがコントローラの裏面には、決定ボタンがさらに設けられている。
【0052】
十字キー22b及びアナログスティック22fは、遊技者がCPU1に対してオブジェクトを画面上で上下左右に動かし、乃至はオブジェクトの一部に動きを行わせるコマンドを与える操作指示部材である。上下の動きとは例えばジャンプ(JUMP)をいい、左右の動きとは例えば歩行動作とか、走行動作をいう。左右における各態様は、例えば、同時に左トリガーボタン22Lや右トリガーボタン22R等の方向指示部材を操作する等すれば、夫々を区別可能に指示することができる。スタートボタン22aは、ゲームプレーヤが、記録媒体30からロードされるゲームプログラムの開始をCPU1に指示するためのものである。また、決定した事項をキャンセルしてその前の段階に戻すキャンセルボタン22c、記録媒体30からメインメモリ5にロードされるゲームプログラムデータに関する各種選定をCPU1に指示するセレクトボタン22d、ゲーム空間内での視点の切り替えをCPU1に指示するボタンユニット22eが設けられている。なお、左トリガーボタン22L、右トリガーボタン22R、裏面の決定ボタンの機能は、記録媒体30からロードされるゲームプログラムによって異なるが、例えば格闘ゲーム等では、攻撃の各種技に対応させている。
【0053】
次に当該ゲームシステムの動作につき説明する。電源スイッチ(図示せず)がオンにされると、ゲームシステムに電源が投入される。この時、記録媒体30が、記録媒体ドライバ19に装填されていると、CPU1が、ROM6に記憶されているオペレーティングシステムに基づいて、記録媒体ドライバ19に対し、記録媒体30からのプログラムデータの読み出しを指示する。これにより、記録媒体ドライバ19は、記録媒体30から画像、音声及びプログラムデータを読み出す。読み出された画像、音声及びプログラムデータは、デコーダ17に供給され、ここで、エラー訂正処理が施される。デコーダ17においてエラー訂正処理の施された画像データは、バス2を介して伸張回路7に供給され、ここで、上述した伸張処理が施された後に、描画処理プロセッサ10に供給され、この描画処理プロセッサ10により、バッファ11の非表示エリアに書き込まれる。なお、デコーダ17においてエラー訂正処理の施された音声データは、メインメモリ5若しくは音声処理プロセッサ13に供給され、メインメモリ5若しくはバッファ14に書き込まれる。
【0054】
また、デコーダ17においてエラー訂正処理の施されたプログラムデータは、メインメモリ5に供給され、このメインメモリ5に書き込まれる。以降、CPU1は、メインメモリ5に記憶されているゲームプログラムデータに基づき実行されるプログラム、並びにゲームプレーヤが、コントローラ22を介して指示する内容に基づいて、ゲームを進行する。即ち、CPU1は、コントローラ22を介してゲームプレーヤから指示される指示内容に基づいて、適宜、画像処理の制御、音声処理の制御、内部処理の制御を行う。画像処理の制御とは、本実施の形態においては、キャラクタに指示される一連の動きに該当するモーションデータや仮想カメラ視点データ等から、グラフィックスデータ生成プロセッサ3での各スケルトンの座標等の計算乃至ポリゴンの頂点座標データの計算の指令、得られた3次元座標データからバッファ11の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等である。音声処理の制御とは、音声処理プロセッサ13に対する音声出力コマンドの発行、レベル、リバーブ等の指定である。内部処理の制御とは、例えばコントローラ22の操作に応じた演算等である。
【0055】
図2は、図1に示したCPU1の有する機能実行部を示す説明図である。CPU1は、図1に示した記録媒体30から読み出され、メインメモリ5に記憶されたプログラムデータを読むことにより、図2に示す機能を持つ。この図2に示されているCPU1の機能は、コントローラ22のいずれのボタンが操作されたかを検出するボタン操作検出部101、3次元ゲーム空間内での仮想カメラ視点を予め準備された所定のルール等に基づいて設定する仮想カメラ視点位置データ設定部102、テレビジョンモニタ12への表示範囲を決める表示範囲情報抽出部103、仮想カメラ視点と前記オブジェクトとの間の距離に応じて使用するノード定義データを選定するノード定義データ選定手段としてのノード定義データ選定部104、ノード定義データを用いてベクトル演算を実行するスケルトン生成演算指令部105の他、ポリゴン演算指令部106、描画命令発行部107、輝度処理部108とを有して構成される。
【0056】
この実施態様においては、以下に説明するように、テレビジョンモニタ12へのキャラクタの表示をノードに対する回転量の制御で行うようにしたものである。
【0057】
図3は、人体を模擬したオブジェクトを規定するノードの連結関係を示す一実施形態を示す図、図4は、図3の各ノードを定義するノード定義データのテーブルの一例を示すものである。
【0058】
図3中、長線はスケルトンを示し、点は関節(スケルトンの基点となる「ノード」)を示す。図3、図4に示すように、ノード番号(N0)がHipsを示し、左足側が、l-hip(N1)、l-hip-roll(N2)、l-knee(N3)、l-knee-roll(N4)、l-ankle(N5)、l-foot(N6)、l-toe(N7)、続いて左足側が、r-hip(N8)、r-hip-roll(N9)、r-knee(N10)、r-knee-roll(N11)、r-ankle(N12)、r-foot(N13)、r-toe(N14)とあり、さらに、上半身側が、spine0(N15)、spine1(N16)、…続いて左腕、さらに右腕の最終のノードまで順次定義される。各ノードには、例えばその親ノード番号と長さ等のデータが含まれる。
【0059】
図5は、ノード定義データ選定部のマスキング情報として記憶されたマスクデータの一例を示す図である。マスクデータAは、仮想カメラ視点と描画するオブジェクトとの間の距離が所定値以下の近距離領域である場合に採用されるもので、mask値のn桁分の“0”、“1”は、その1番目から順番にノード番号に対応している。例えば最初の“1”はノード(N0)を使用することを示す。
【0060】
マスクデータBは、仮想カメラ視点と当該オブジェクトとの間の距離が所定値を超えてある中間距離までの中距離領域である場合に採用されるもので、例えばmask値の3桁目や5桁目の“0”はノード(N2)、(N4)を不使用とすることを示す。
【0061】
マスクデータCは、仮想カメラ視点と当該オブジェクトとの間の距離が中間距離を超えた遠距離領域である場合に採用されるものである。mask値内の“0”がマスクデータA,B,Cの順で増加しているのは、オブジェクトが仮想カメラから遠ざかるに応じて、ある程度のノード定義データ、すなわちこれにより生成されるスケルトンに対応するポリゴンを省略(不使用と)しても、遊技者には粗い画像として認識されることがなくなるからである。スケルトン生成演算指令部105はこのオブジェクトを描画するに際して、ノード番号に従ったノード定義データがマスクデータ上でmask値“0”であれば、処理を省略(スキップ)するゲート処理を施して、次のmask値“1”のノードに対する処理に移行する。なお、Mはモーションデータである。処理手順にもよるが、実際にはモーションデータではなく、モーション定義データの段階でマスクをかければ、不使用のノードの展開処理を省略することができる。
【0062】
図6は、近距離(A)、中距離(B)、遠距離(C)毎に準備されたポリゴンの頂点座標データの一例である。図6に示すように、各ポリゴンはノードに付随して規定されている。
【0063】
近距離(A)では、全ノード定義データを用い、すなわち全ての関節であるノード(N0)〜(Nn)の各々に対して、付随するモデルを構成するための所定数のポリゴンの頂点座標データが規定されている。ノード(N0)にはポリゴンP01、P02、…が、ノード(N1)にはポリゴンP21、P22、…が、ノード(N2)にはポリゴンP21、P22、…が、ノード(N3)にはポリゴンP31、P32、…が、ノード(N7)にはポリゴンP71、P72が、そして、ノード(Nn)にはポリゴンPn1、Pn2、…が対応している。
【0064】
中距離(B)では、全関節、すなわちノード(N0)〜(Nn)のうち、図5の(B)でmask値“1”に対応したノードに対してのみ、付随するモデルを構成するためのポリゴンの頂点座標データが規定されている。ノード(N0)にはポリゴンP01'、P02'、…が、ノード(N1)にはポリゴンP11'、P12'、…が、ノード(N2)はなく、ノード(N3)にはポリゴンP31'、P32'、…が、そして、ノード(Nn)にはポリゴンPn1'、Pn2'、…が対応している。
【0065】
遠距離(C)では、全関節、すなわちノード(N0)〜(Nn)のうち、図5の(C)でmask値“1”に対応したノードに対してのみ、付随するモデルを構成するためのポリゴンの頂点座標データが規定されている。ノード(N0)にはポリゴンP01''、P02''、…が、ノード(N1)、(N2)はなく、ノード(N3)にはポリゴンP31''、P32''、…が、ノード(N4)〜(N6)はなく、ノード(N7)にはポリゴンP71''、P72''、…が、そして、ノード(Nn)にはポリゴンPn1''、Pn2''、…が対応している。
【0066】
なお、遠距離になる程、1つのノードに対応するポリゴン数も少なくて済むから、同じノードであっても、近距離(A)、中距離(B)、遠距離(C)の順で、少しずつポリゴン数が少なくなっているものもある。また、中距離(B)や遠距離(C)では、全てのノード定義データを使用していないことから、使用するノードについて、近距離(A)の場合と同じポリゴンをそのまま用いただけでは描画画像の連続性が不自然となる可能性もある。そこで、抜けたノードに対して少なくとも隣接する一方側のノードに対応するポリゴンとして、この抜けたノードに付随していたポリゴンで描画されていた部分を必要に応じてカバーするようなポリゴンを中距離(B)、遠距離(C)にて規定しておくようにすれば、違和感のない自然な画像として描画することが可能となる。このように、オブジェクト描画条件、例えば近距離(A)、中距離(B)、遠距離(C)に応じてポリゴンを対応設定しておくことで、より適切な画像の描画が可能となる。
【0067】
図7は、オブジェクトに対するモーション定義データの一例を示す図である。図6に示すように、あるオブジェクトに対する動きを定義するものとして複数種類のデータMD1、MD2,…MDmがノード番号に対応付けられて格納されている。動きとしては、例えばジャンプ、歩行、走行、伏せる、泳ぐその他、種々である。また、同じ歩行でも、歩行(タイプ1)、歩行(タイプ2)のようにより細かな歩き方を表現するようにしてもよい。モーション定義データMD1は、ノード番号順に所定時間、ゲームの場合フレーム時間(1/60秒)毎にτ1、τ2、…τn1として定義されている。モーション定義データMD2は、同様にτ1、τ2、…τn2(s1、s2は各モーションのフレーム数)として定義されている。各モーション定義データは、方向ベクトルの変化を表すデータ(rxτi、ryτi、rzτi)(iはフレーム数s中の任意のフレーム番号)である。なお、1つのモーションの所要時間は、モーションの種類毎に設定されており、上記のように、モーション定義データMD1はτs1までであり、モーション定義データMD2はτs2までである。
【0068】
図8は、オブジェクトに対するモーションデータの一例を示す図である。モーションデータM1、M2,…Mmはノード定義データとモーション定義データMD1、MD2,…MDmとから、すなわちモーション定義データMD1、MD2,…MDmの各ノード番号を元にノード定義データを展開させることによって求められるものである。各モーションデータMは、座標データ(txτi、tyτi、tzτi)及びスケルトンの延在方向を表すための回転角データ(r00τi、r01τi、r02τi、r10τi、r11τi、r12τi 、r20τi、r21τi、r22τi)である。このように、モーション定義データMDを利用してモーションデータMを求める方式を採用することで、各モーション毎のモーションデータを持たせておく必要がなくなり、メモリ容量の低減上、好ましい態様となる。
【0069】
なお、ノード定義データとしてスケルトンの標準の長さを表すデータが含まれる態様としても良く、その場合、モーションデータとして回転角データと、スケルトンの長さデータの伸縮の程度を表す係数とを採用すると良く、これによれば、ベクトルデータを用いる場合に比較して演算自体はやや多くなるものの、より少ないデータ量で上記同様のアニメ(動画)表示が可能となる。
【0070】
図9は、CPUが処理するオブジェクトのアニメ表示処理のルーチンを示すフローチャートである。
【0071】
コントローラ22で、あるいはゲームプログラムに従ってオブジェクトにモーションMk(図7に示すモーションMk(k=1,2,…mのいずれか))の指定が発行されると(ステップST1)、次いで、現在の仮想カメラ視点と当該オブジェクトの特定位置Pbとのゲーム空間内での距離が算出され、距離が遠、中、近のいずれであるかが判別され(ステップST3)、近距離であれば、図5に示すマスクデータAが指定され(ステップST5)、中距離であればマスクデータBが指定され(ステップST7)、遠距離であればマスクデータCが指定される(ステップST9)。
【0072】
次いで、指定されたモーションMkのモーション定義データ(時間τ1)が読み出され、このデータを展開することによりモーションデータが求められ、指定されたマスクデータを介してスケルトン生成演算指令部105に導かれ、即ち使用するノードが選定され、スケルトン生成演算の指令が行われ(ステップST11)、グラフィックスデータプロセッサ3によってスケルトン生成演算処理が行われる。
【0073】
この処理の終了乃至は処理中に、ステップST3での距離判別結果に対応して、図6に示す近距離用(A)、中距離用(B)、遠距離用(C)の内の1つのポリゴンデータの指定が行われる(ステップST13)。次いで、スケルトン生成演算の結果と、指定された距離用のポリゴンデータとを用いて、ポリゴン演算の指令が発行される(ステップST15)。このポリゴン演算処理はグラフィックスデータプロセッサ3によって行われる。そして、演算が終了すると、その結果をバッファ11に一時的に記憶するべく送出し(ステップST17)、モーションMkに残りの時間τのモーションデータが有るか否かが判断され(ステップST19)、残りが有れば、所定時間経過した後(ステップST21)、ステップST11に戻って、次の所定時間τの(例えば直前がτ1であれば、次にτ2)のモーションデータの読み出しが指令される。一方、アニメーションを表現するための全ての時間のデータ読み出しが終了していれば、本フローを終了する。なお、上記したようにモーションデータを求める前にモーション定義データの段階でマスクをかければ、不使用のノードの展開処理を省略することができる。
【0074】
本発明は、以下の態様を採用することも可能である。
(1)ノード定義データ選定部104は、ソフトウエアで実行してもよいが、仮想カメラ視点と特定位置Pbとの距離判定を行い、その結果である遠、中、近にアドレスを対応付けておいて、それらのアドレスに、図5に示すMask値の情報を加味(ゲート乃至はアンド論理処理)させることで、各ノードに対する使用、不使用を設定するマスキング処理を行わせてもよい。
(2)本実施形態では、ノード定義データの選定条件として仮想カメラ視点と注目オブジェクトとの距離、即ち遠近を採用したが、本発明は、これに限定されず、仮想カメラ視点から見て描画されたとしたときの画像のサイズすなわち、注目オブジェクトの縦、横(高さ、幅)寸法の少なくとも一方、乃至は注目オブジェクトの描画面積の大小を判定する手段を備え、この判定結果から採用するべきノードを選定するようにしたものであってもよい。
【0075】
この場合、予め基準の乃至は標準のノードのデータ及びそれに付随するポリゴンデータを用いてグラフィックスデータ生成プロセッサ3により各モデルの各ポリゴンのバッファ11の表示エリア上のアドレスデータを求め、このデータからCPU1の機能として採用する描画寸法算定部乃至は描画面積算定部等を利用して寸法あるいは面積を求める。この算出値は、仮想カメラ視点に対するオブジェクト描画条件、例えば描画横(あるいは幅)寸法の画像全体の横方向寸法に対する比率であり、この比率が高い程より多くのノード定義データが選定されるようにすればよい。面積の場合も同様にノード定義データが選定されるようにすればよい。
(3)ノード定義データの選定条件、即ちオブジェクト描画条件としてオブジェクトの移動速度を採用しても良い。例えば、オブジェクトの移動速度を移動速度検出手段で検出し、停止しているオブジェクトを描画する場合、最も精細になるように、即ち最も多くのノード定義データが選定されるようにし、オブジェクトの移動速度が高速になるほど粗く描画するように、即ち選定されるノード定義データが少なくなるようにしても良い。
【0076】
このように、本発明は、注目オブジェクトの仮想カメラ視点との距離、描画サイズ(比率)、移動速度等の仮想カメラ視点に対するオブジェクト描画条件でノード定義データの選定処理を行わせる態様が採用可能である。
(4)本実施形態では、近距離用としてノード定義データを全て持ち、そこから中距離、遠距離を順次、いわば間引く形式でノード定義データを選定するようにしたが、これに限定されず、以下の態様も採用可能である。例えば採用される全オブジェクト描画条件に応じて採用される全ノード定義データを、基本のノード定義データとして予め準備しておき、それぞれの距離乃至は描画面積サイズ等のオブジェクト描画条件毎に、相応しい所要の乃至は異なるノード定義データの選定がなされるように予め選定方法を設定しておくという、間引き形式とは異なる選定態様としてもよい。これにより、それぞれのオブジェクト描画条件に適した最良のオブジェクトの描画が可能となる。また、オブジェクト描画条件と選定されるノード定義データとは固定化された対応関係に設定されている必要はなく、オブジェクト描画条件の入力を受けてノード定義データ選定部により所定の選定演算を実行するなどの柔軟性、変化性を付与して、必要なノード定義データの選定を行うようにしてもよい。更に、いずれの選定を行う場合でもオブジェクト描画条件に加えて、ゲームシーン(場面)、ゲーム時間、プレイヤの操作状況等の情報を利用することも可能である。例えば、マスクを利用する形態では、これらの情報に応じて予め用意した、または演算して得られたマスクを用いることが考えられる。このような構成にすることで、各場面に応じた演算負荷で適正な精度の描画を行うことができる。
(5)本発明は、オブジェクトとして人間を模したキャラクタの例で示したが、本発明はこれに限定されず、動きのある種々のオブジェクトに適用可能であり、特にゲーム空間上を移動するキャラクタに適用して好適である。
(6)本実施形態では、図6に示すように、近距離(A)、中距離(B)、遠距離(C)毎に準備されたポリゴンの頂点座標データを持たせたが、オブジェクトによっては、1通りのポリゴンで描画する態様としてもよい。ノードの選定条件に対応させてポリゴンを定義する場合には、より好適な不自然さの少ない画像を提供できるという利点がある。また、必ずしもノード定義データの選定条件と対応させる必要はなく、例えばノード定義データの選定条件分と後者の2区分についてポリゴンのデータを持たせるようにしてもよい。
(7)本実施形態では、間引き形式において、ノード定義データ選定部104としてマスクを採用した例で示したが、図11、図12に示すようなカウンタ方式を採用することも可能である。
【0077】
図11は、動作原理及び動作に必要なデータテーブルを示すもので、(a)はオブジェクト描画条件とノード定義データの順番を示すノード番号とからなるマスクテーブルの一例を示す表、(b)は(a)の例に対して、採用するノード定義データの個数を示す個数テーブル、(c)は(a)の例に対して、近〜遠の順で採用されるノード定義データの多い順にカウンタ値を付したノード番号対応テーブルを示す。より詳細に説明すれば、図11(a)は、採用可能なノード定義データがノード番号0からノード番号8までの合計9個ある例(実際には多数あるが、ここでは説明の便宜上、9個で説明する。)であって、近距離では、全てのノード定義データ、つまり9個が採用され、中距離ではノード番号0,1,3,4,7,8の6個が採用され、遠距離ではノード番号0,4,8の3個が採用される例である。そこで、(b)のような個数テーブル1041が作成できる。
【0078】
次に、図11(c)に示すように、近〜遠の順で採用されるノード定義データの多い順のノード番号を取り出す。ここでは、ノード番号0が近、中、遠距離の全ての(オブジェクト描画)条件で採用されるから、このノード番号0がテーブルのカウント値1に対応して記憶される。同様に、ノード番号4,8が全ての条件で採用されるから、この順にカウント値2,3に対応して記憶される。次に、近、中距離の条件で採用されるノード番号は、小さい順からノード番号1,3,7であるから、これらがカウント値4,5,6に対応して記憶される。最後に、遠距離の条件で採用されるノード番号は、小さい順からノード番号2,5,6であるから、これらがカウント値7,8,9に対応して記憶される。この結果、(c)に示すノード番号対応テーブルが作成される。
【0079】
図12は、カウンタ方式によるノード定義データ選定部の構成図の一例を示す。オブジェクト描画条件が決定されると、決定されたオブジェクト描画条件が個数テーブル1041に入力され、条件に対応した値がカウンタ1042に出力される。カウンタ1042は出力された値をセットしてカウント動作を開始し、セット値に達するまでノード番号対応テーブル1043の対応するカウント値に対応して記憶されたノード番号対応データを順次読み出す読出用として機能する。並び替え部1044はノード番号対応テーブル1043から出力されたノード番号を昇順に並び替えて順番にスケルトン演算指令部105(図2参照)に出力する。
【0080】
一例を示して動作を説明する。今、中距離がオブジェクト描画条件として決定されたとすると、個数テーブル1041から値6が出力される。この値6がカウンタ1042にセットされると、カウンタ1042は値1から6までのカウント動作を行う。このカウント動作によって、ノード番号対応テーブル1043からカウント値1,2,3,4,5,6に対応するノード番号0,4,8,1,3,7が並び替え部1044に出力される。並び替え部1044はノード番号0,4,8,1,3,7を昇順に、すなわち0,1,3,4,7,8と並び替えて、スケルトン演算指令部105に出力する。
(8)本実施形態では、予め準備されたモーションによる描画を例にして説明したが、本発明はこれに限定されず、操作部によって、あるいはゲームプログラムによってオブジェクトに動きを行わせる場合にも同様に適用可能である。
【0081】
【発明の効果】
請求項1、9、10、11記載の発明によれば、全ノードを定義するデータを記憶しておき、オブジェクト描画条件に応じて必要なノードを選定し、これを使用して描画すれば良く、これによって使用するノードに関する処理のみを行えばよいことから、処理負荷および記憶データ容量を軽減でき、かつ演算負荷の軽減を図ることができる。しかも、従来のようなノードを順番に指定していく手法の場合に必要な、アニメーション毎のオブジェクトに関するモーションデータを準備しておかなくても、1種類分のモーション定義データを記憶しておくだけで済み、データ容量を軽減できる。
【0082】
請求項2記載の発明によれば、描画するオブジェクトの仮想カメラ視点からの距離が近ければ多数のノードを用いることで精細な画像が提供でき、遠ければノードの個数を減らして描画しても不自然さのない画像を提供できる。
【0083】
請求項3記載の発明によれば、距離情報をルックアップテーブルにて参照することで、出力としてノード定義データの選定結果が得られるので、構成容易かつ高速処理が実現できる。
【0084】
請求項4記載の発明によれば、遠い距離領域に含まれるオブジェクトは遠距離となってモニタ上での視認が容易でないことから、違和感(不自然さ)のない程度の粗い画像として表示できる。
【0085】
請求項5記載の発明によれば、仮想カメラ視点と前記オブジェクトとの間の距離に応じた各ノードの選定状態がマスキング情報として得られるので、このマスキング情報をいわばゲート(乃至はアンド論理処理)的に作用させることで、選定されたノードからのスケルトンのみを仮想空間上に生成することができる。
【0086】
請求項6記載の発明によれば、対象のオブジェクトと、該オブジェクトと仮想カメラ視点との距離とからオブジェクトの表示サイズ、すなわち縦、横(あるいは高さ、幅)の少なくとも1方の描画寸法を算出し、あるいはオブジェクトの描画面積を算出することで、この算出結果の大小によってノード定義データ選定手段でノード定義データの選定処理を実行できる
請求項7記載の発明によれば、モニタ上、例えば仮想カメラ視点の左右に高速でオブジェクトが移動する場合、低速で移動する場合に比較してモニタ上での視認が容易でないことから、違和感(不自然さ)のない程度の粗い画像として表示可能となる。
【0087】
請求項8記載の発明によれば、各ノード定義データが1通りで済み、一方、各ポリゴンをオブジェクト描画条件毎に選定されるノードに対応する形で設けたので、オブジェクト描画条件によっては隣接するノードが選定されない場合でも、それを補うようにポリゴンの数、(1つのノードによって得られる)モデルの形状を設定しておけば、描画された画像上でも不自然さのない画像を描くことが可能となる。
【図面の簡単な説明】
【図1】 本発明が適用されるテレビゲームシステムの一実施形態を示す構成図である。
【図2】 図1に示したCPUの有する機能実行部を示す説明図である。
【図3】 人体を模擬したオブジェクトを規定するノードの連結関係を示す一実施形態を示す図である。
【図4】 図3のノードを定義するノード定義データの一例を示すものである。
【図5】 ノード定義データ選定手段として機能するマスクデータの一例を示す図である。
【図6】 近距離(A)、中距離(B)、遠距離(C)毎に準備されたポリゴンの頂点座標データの一例である。
【図7】 オブジェクトに対するモーション定義データの一例を示す図である。
【図8】 オブジェクトに対するモーションデータの一例を示す図である。
【図9】 CPUが処理するオブジェクトのアニメ表示処理のルーチンを示すフローチャートである。
【図10】 選定されるノードと生成されるスケルトンとの関係を説明するための図で、(a)はベクトルデータ(n0)、(n1)、(n2)、(n3)が使用(選定)された場合の図、(b)はベクトルデータ(n0)、(n1)、(n3)が使用(選定)された場合の図、(c)はベクトルデータ(n0)、(n3)が使用(選定)された場合の図である。
【図11】 動作原理及び動作に必要なデータテーブルを示すもので、(a)はオブジェクト描画条件とノード定義データの順番を示すノード番号とからなるマスクテーブルの一例を示す表、(b)は(a)の例に対して、採用するノード定義データの個数を示す個数テーブル、(c)は(a)の例に対して、近〜遠の順で採用されるノード定義データの多い順にカウンタ値を付したノード番号対応テーブルを示す図である。
【図12】 カウンタ方式によりノード定義データ選定部の構成図を示す。
【符号の説明】
1 CPU
3 グラフィックスデータ生成プロセッサ
10 描画処理プロセッサ
11 バッファの非表示エリア
12 テレビジョンモニタ
101 ボタン操作検出部
102 仮想カメラ視点位置データ設定部
103 表示範囲情報抽出部
104 ノード定義データ選定部
105 スケルトン生成演算指令部
106 ポリゴン演算指令部
107 描画命令発行部
Claims (11)
- 多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画するための画像生成プログラムであって、
コンピュータを、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、
動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段と、
前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、
選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成するスケルトン生成手段として機能させることを特徴とする画像生成プログラム。 - 前記オブジェクト描画条件は、前記仮想空間に配置された仮想カメラ視点と描画されるオブジェクトとの間の前記仮想空間における距離であることを特徴とする請求項1に記載の画像生成プログラム。
- 前記ノード定義データ選定手段は、前記仮想カメラ視点と描画されるオブジェクトとの間の距離と、選定すべきノードとをルックアップテーブル形式で対応付けて格納することを特徴とする請求項2記載の画像生成プログラム。
- 前記ノード定義データ選定手段は、前記仮想カメラ視点と描画されるオブジェクトとの間の距離を複数領域に分け、各領域に応じて使用するノード定義データを選定することを特徴とする請求項2又は3記載の画像生成プログラム。
- 前記ノード定義データ選定手段は、前記仮想カメラ視点と描画されるオブジェクトとの間の距離に応じて、使用するノードを選定するための情報をマスキング情報として記憶し、前記スケルトン生成手段は、前記マスキング情報を用いてのマスキング処理を実行することで、選定されたノードの定義データのみから前記仮想空間上にスケルトンを生成することを特徴とする請求項2乃至4のいずれかに記載の画像生成プログラム。
- 前記オブジェクト描画条件は、前記仮想空間に配置された仮想カメラ視点から見た描画されるオブジェクトの画像サイズであることを特徴とする請求項1に記載の画像生成プログラム。
- 前記オブジェクト描画条件は、描画されるオブジェクトの前記仮想空間での移動速度であることを特徴とする請求項1に記載の画像生成プログラム。
- 前記スケルトン生成手段により生成したスケルトンにポリゴンが貼り付けられることによりオブジェクトが描画され、選定されるノードに対応して前記各オブジェクト描画条件毎に異なるポリゴンを記憶するポリゴン記憶手段を更に有することを特徴とする請求項1乃至7のいずれかに記載の画像生成プログラム。
- 多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画する画像生成装置であって、
前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、
動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段と、
前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、
選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空 間上に生成することを特徴とする画像生成装置。 - 多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画する画像生成方法であって、
ノード定義データ記憶手段が、前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを予め格納し、
モーションデータ記憶手段が、動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを予めに格納し、
ノード定義データ選定手段が、前記オブジェクト描画条件に応じて使用するノードを選定し、
スケルトン生成手段が、選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成することを特徴とする画像生成方法。 - 多関節構造のオブジェクトを、関節に対応するノードを用いてオブジェクト描画条件に応じて3次元仮想空間に描画するビデオゲーム装置であって、
前記仮想空間の特定位置を基準として前記仮想空間で使用され得る全てのノードを定義するノード定義データを格納するノード定義データ記憶手段と、
動画像を生成するべく、前記ノード定義データ及び前記オブジェクトの所定時間分のモーションを定義するモーション定義データから生成されるモーションデータを格納するためのモーションデータ記憶手段と、
前記オブジェクト描画条件に応じて使用するノードを選定するノード定義データ選定手段と、
選定された前記ノードに関する前記モーションデータに従ってスケルトンを順次仮想空間上に生成するスケルトン生成手段とを備えたことを特徴とするビデオゲーム装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003097126A JP3872032B2 (ja) | 2003-03-31 | 2003-03-31 | 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003097126A JP3872032B2 (ja) | 2003-03-31 | 2003-03-31 | 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004303063A JP2004303063A (ja) | 2004-10-28 |
JP3872032B2 true JP3872032B2 (ja) | 2007-01-24 |
Family
ID=33408998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003097126A Expired - Fee Related JP3872032B2 (ja) | 2003-03-31 | 2003-03-31 | 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3872032B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3348964A1 (de) * | 2017-01-13 | 2018-07-18 | Carrosserie Hess AG | Verfahren zur vorhersage zukünftiger fahrbedingungen für ein fahrzeug |
US10916059B2 (en) * | 2017-12-06 | 2021-02-09 | Universal City Studios Llc | Interactive video game system having an augmented virtual representation |
KR102110760B1 (ko) * | 2018-08-07 | 2020-05-15 | 매트릭스테크 주식회사 | 멀티 쓰레드 기반의 3차원 모델링 데이터 처리 장치 및 이의 동작 방법 |
KR102769927B1 (ko) * | 2018-08-31 | 2025-02-19 | 주식회사 넥슨코리아 | 인공지능을 이용하여 게임 데이터를 생성하기 위한 컴퓨터-구현 방법, 장치, 및 컴퓨터 프로그램 |
CN112891947B (zh) * | 2021-04-02 | 2024-02-23 | 网易(杭州)网络有限公司 | 跳跃动画处理方法、装置、电子设备及计算机可读介质 |
CN114816156B (zh) * | 2022-05-12 | 2024-12-03 | 网易(杭州)网络有限公司 | 模型检测方法、装置、终端设备及存储介质 |
-
2003
- 2003-03-31 JP JP2003097126A patent/JP3872032B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004303063A (ja) | 2004-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3133299B2 (ja) | ゲーム装置、動画像表示方法及び記録媒体 | |
US6468161B1 (en) | Video game device and method of displaying images of game, and storage medium storing programs for causing a computer to execute the method | |
JP3625184B2 (ja) | ゲーム用3次元画像処理方法、装置、ゲーム用3次元画像処理プログラムを記録した可読記録媒体及びビデオゲーム装置 | |
US6781592B2 (en) | Image generating device, image generating method, readable storage medium storing image generating program, and video game device | |
KR100543153B1 (ko) | 3차원 화상 처리 프로그램, 3차원 화상 처리 장치, 3차원화상 처리 방법 및 비디오 게임 장치 | |
JP3872032B2 (ja) | 画像生成プログラム、画像生成装置、画像生成方法及びビデオゲーム装置 | |
JP4530314B2 (ja) | ゲームシステム、情報記憶媒体及び圧縮データの生成方法 | |
JP3990258B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3597792B2 (ja) | 3次元画像処理方法、装置、3次元画像処理プログラム及びビデオゲーム装置 | |
JP4447000B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3809294B2 (ja) | ゲーム装置、ゲーム方法、コンピュータ読取可能な記録媒体 | |
US6972766B2 (en) | Recording medium storing dynamic picture image generation program, dynamic picture image generation program, dynamic picture image generation method, and device for the same | |
JP3737784B2 (ja) | 3次元画像処理プログラム、3次元画像処理方法及びビデオゲーム装置 | |
JP3643036B2 (ja) | 透視変換する装置及び方法 | |
JP2003288609A (ja) | 3次元画像処理プログラム、3次元画像処理装置、3次元画像処理方法及びビデオゲーム装置 | |
EP1249791B1 (en) | 3-D game image processing method and device for drawing border lines | |
JP2006277772A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、記録媒体、及び情報提供装置 | |
JP3621663B2 (ja) | 音声出力プログラム、音声出力方法及びビデオゲーム装置 | |
JP3105817B2 (ja) | 画像表示処理装置,画像表示処理方法,及びコンピュータプログラムを記録した機械読取り可能な記録媒体 | |
JP3326128B2 (ja) | ゲーム装置、画像表示方法、及び、プログラムを記録した機械読み取り可能な情報記録媒体 | |
JP3706545B2 (ja) | 画像の生成方法及びそれに用いるプログラム | |
JP4391633B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP3629453B2 (ja) | ゲーム進行制御プログラム、ゲーム進行制御方法及びビデオゲーム装置 | |
JP4624527B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2006268103A (ja) | プログラム、情報記憶媒体、モデルデータ構造及び画像生成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060418 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20060427 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20060522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060616 |
|
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: 20061017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061018 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3872032 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091027 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: 20091027 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: 20101027 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: 20101027 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111027 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: 20121027 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: 20131027 Year of fee payment: 7 |
|
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 |
|
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 |