JP3926307B2 - 3次元画像描画装置及び方法、プログラム、並びに記録媒体 - Google Patents

3次元画像描画装置及び方法、プログラム、並びに記録媒体 Download PDF

Info

Publication number
JP3926307B2
JP3926307B2 JP2003287885A JP2003287885A JP3926307B2 JP 3926307 B2 JP3926307 B2 JP 3926307B2 JP 2003287885 A JP2003287885 A JP 2003287885A JP 2003287885 A JP2003287885 A JP 2003287885A JP 3926307 B2 JP3926307 B2 JP 3926307B2
Authority
JP
Japan
Prior art keywords
skeleton
coordinate system
reference axis
skeletons
collide
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 - Lifetime
Application number
JP2003287885A
Other languages
English (en)
Other versions
JP2005056251A (ja
Inventor
満 紙山
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.)
Square Enix Co Ltd
Original Assignee
Square Enix Co Ltd
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 Square Enix Co Ltd filed Critical Square Enix Co Ltd
Priority to JP2003287885A priority Critical patent/JP3926307B2/ja
Priority to DE602004026666T priority patent/DE602004026666D1/de
Priority to EP04018585A priority patent/EP1505546B1/en
Priority to US10/912,105 priority patent/US20050075557A1/en
Publication of JP2005056251A publication Critical patent/JP2005056251A/ja
Application granted granted Critical
Publication of JP3926307B2 publication Critical patent/JP3926307B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、第1のオブジェクトと、該第1のオブジェクトとの結合点以外において独立して動作する第2のオブジェクトとをモデリングして3次元画像を描画するための技術に関する。
近年のビデオゲームは、仮想3次元空間内でキャラクタ等のオブジェクトを動作させ、これを仮想カメラにより透視変換した画像をモニタ上に表示する3次元ビデオゲームが主流になっている。現実の世界を考えると、仮想3次元空間内に存在するオブジェクトは、様々な外力(例えば、風の力など)の影響を受けて動作させられるはずである。このような外力の影響をオブジェクトの動作に再現して、リアルな画像を作成できるようにすることが3次元ビデオゲームにおける重要な課題となっている。
例えば、ポリゴンの頂点が結合するスケルトン(骨格)に対する結合度と、スケルトン毎に結合する頂点の移動量の最大値である基準移動量を設定しておき、該結合度と基準移動量とに基づいて頂点の移動量及び移動方向を求めることによって、キャラクタの着ている衣服が風を受けて揺動する場合などをリアルに再現できるようにした3次元画像の生成方法がある(例えば、特許文献1参照)。
特開2003−51030号公報
もっとも、風などの外力だけの影響を受けてポリゴンの頂点の位置を算出すると、現実にはあり得ない位置に算出されてしまう場合がある。例えば、衣服を構成するポリゴンがキャラクタの体の中にめり込んでしまうなどということである。これを避けるため、従来からのコンピュータグラフィックスの分野では、衝突判定用のオブジェクトを用いた衝突判定によりポリゴンのめり込みを防ぐ技術が知られている。
しかしながら、この技術による衝突判定は、ポリゴンの各頂点について行わなければならず、非常に多くの計算量を必要とする。ビデオゲームにおいてはリアルタイムで処理を行わなくてはならないため、ポリゴンの数が多いと画像を描画するための計算が間に合わなくなってしまう虞がある。これを避けるためには、ポリゴンの数を少なく抑えればよいが、曲面を表現するはずのものが角張ってしまい、却ってリアルさが失われてしまうこととなる。
また、キャラクタそのものの動作などは、一般に運動学や動力学を用いて計算されるが、キャラクタが壁を突き抜けたり、キャラクタの関節が限界以上に曲がったりしないようにするため、逆運動学や逆動力学といった方法も適用されている。しかし、逆運動学や逆動力学の計算は、運動学や動力学に比べて極めて複雑で、計算量も多くなる。さらに、キャラクタが歩く、走るといった能動的な動作ではなく、風などの外力の影響による受動的な動作は、逆運動学や逆動力学では適切に計算できないという問題点もあった。
本発明は、オブジェクトの動作をリアルにモデリングしつつ、少ない計算量で3次元画像を描画することができる3次元画像描画装置等を提供することを目的とする。
上記目的を達成するため、本発明の第1の観点にかかる3次元画像描画装置は、仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画する3次元画像描画装置であって、前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段と、所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段と、前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段と、前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段と、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段と、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段とを備えることを特徴とする
上記3次元画像描画装置では、骨格位置算出手段により算出された骨格の位置に応じて第2のオブジェクトが第1のオブジェクトと衝突することになるときには、骨格位置補正手段により当該骨格の位置がこのような衝突の生じない位置に補正される。第2のオブジェクトを構成するポリゴンは、このような衝突が生じない位置にある骨格を基準としてその位置を算出して、描画することができる。このように衝突が生じないようにポリゴンを描画できることによって、リアルな画像を描画することができる。また、ポリゴン毎に衝突の判定が必要ないので、少ない計算量で画像を描画することができる。また、第2のオブジェクトに含まれる骨格が基準軸または第1のオブジェクトに近い位置にある骨格に対してなす角度が基準角度の範囲内にあるかを判定することにより、第2のオブジェクトを描画するためには本来必要のない衝突判定用のオブジェクトを用いる必要がない。
ここで、前記第2のオブジェクトは、前記第1のオブジェクトとの結合点から先端に至るまでに関節を介して結合された複数の骨格を含むものであってもよい。この場合には、前記衝突判定手段は、前記第1のオブジェクトと直接結合しない骨格が該骨格よりも前記第1のオブジェクトに近い位置にある骨格に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあることを判定するものとすることができる。
なお、前記骨格位置算出手段は、前記衝突判定手段により前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記基準角度となる位置まで算出し直すものとすることができる。
この場合には、第2のオブジェクトが第1のオブジェクトと衝突する位置にあると判定されたときでも、基準角度となる位置までは第2のオブジェクトに含まれる骨格の位置を動かすことができるので、衝突が生じない範囲で可能な限り第2のオブジェクトの動作を表現することができるようになる。
ここで、前記第2のオブジェクトは、外部から加わる力の影響を動作条件として、受動的に動作させられるものであってもよい。
このように第2のオブジェクトが外部から加わる力により受動的に動作するものであって、逆運動学や逆動力学による計算に適さないものであっても、予め定められた基準角度の範囲内で骨格の位置を決めることによって、その動作を適切にモデリングすることができるようになる。
上記目的を達成するため、本発明の第2の観点にかかる3次元画像描画方法は、仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するための3次元画像描画方法であって、前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定し、所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出し、前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定し、前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直し、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出し、当該算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画することを特徴とする。
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するためのプログラムであって、前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段、所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段としてコンピュータ装置を機能させることを特徴とする。
上記目的を達成するため、本発明の第4の観点にかかるコンピュータ読み取り可能な記録媒体は、仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するためのプログラムを記録した記録媒体であって、前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段、所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段としてコンピュータ装置を機能させるためのプログラムを記録したことを特徴とする。
本発明によれば、第1のオブジェクトと、該第1のオブジェクトとの結合点以外において独立して動作する第2のオブジェクトとをモデリングした3次元画像を、リアルに、且つ少ない計算量で描画することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。ここでは、3次元ビデオゲームにおけるプレイヤキャラクタの画像を描画するために、本発明を適用した場合を例として説明する。
図1は、この実施の形態にかかる3次元ビデオゲームを実行するためのビデオゲーム装置100の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、ビデオゲーム本体101を中心として構築される。このビデオゲーム本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD−ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
このビデオゲーム本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD−ROMドライブ113には、記録媒体(DVD−ROMまたはCD−ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、入力部(コントローラ)161とメモリカード162とが接続されている。
制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、ビデオゲーム装置100の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアである。HDD107は、プログラムやデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ112に画像を展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば30分の1秒とする。DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み書きを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。入力部161は、方向キー及び複数の操作ボタンを備え、方向キーの操作により後述するプレイヤキャラクタを移動させ、操作ボタンの操作により所定の処理を行わせるものである。方向キーは、カーソルの移動やメッセージなどのためにも用いられ、操作ボタンは、所定の指示を入力するために用いられる。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。このプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
この実施の形態にかかる3次元ビデオゲームは、仮想3次元空間に設けられたフィールド上を、プレイヤが入力部161を操作して動作させるキャラクタ(プレイヤキャラクタ)が移動していくことによりゲームが進行していく。このフィールドが形成された仮想3次元空間は、ワールド座標系によって示される。フィールドは、複数の面で構成され、各構成面の頂点の座標を特徴点として表したものである。
図2は、この3次元ビデオゲームにおいて用いられるプレイヤキャラクタの構成を示す図である。図示するように、プレイヤキャラクタ200は、頭202、胴体203、腕204、足205から構成されている。頭202には、ポニーテイルに結んだ髪201が付加されている。プレイヤキャラクタ200の各部位は、複数のポリゴンによって構成されており、その特徴点(ポリゴンの頂点)がローカル座標系によって示される。髪201は、頭202に結合された末端部以外は、先端部まで頭200の動きとは独立して動作することが可能である。
プレイヤキャラクタ200の内部には、仮想的な骨格301〜305、311〜317等が設定されて、これらの骨格301〜305、311〜317等の位置によって、ポリゴンの位置が決定される。髪201以外に設定された骨格311〜317等は、プレイヤキャラクタ200の能動的な動作のみによって位置決めされる。髪201以外に設定された骨格311〜317等の位置は、運動学や動力学などの従来から適用されている方法を用いて決定することができる。
髪201に設定された骨格301〜305は、関節を介して順に結合されており、プレイヤキャラクタ200の能動的な動作によらずに、外力の影響を受けて受動的に動作する。ここで、髪201に加えられる外力としては、少なくとも髪201の重量によって働く重力と、プレイヤキャラクタ200の動作による運動の慣性力と、仮想3次元空間において流れている風の力とが含まれており、部分毎に受ける力が異なる場合がある。骨格301〜305の位置を計算するため、骨格301〜305のそれぞれを単位として髪201の重量が予め設定されている。もっとも、髪201の重量は、プレイヤキャラクタ200の能動的な動作に及ぼす影響を無視できる程度に軽いものとする。
次に、プレイヤキャラクタ300の髪201の動きについて説明する。図3は、髪201の動きを説明する図である。例えば、図3(a)に示すように、プレイヤキャラクタ200が正面から風を受けているときには、この風の影響により髪201が頭202及び胴体203の後側になびくこととなる。また、図3(b)に示すように、プレイヤキャラクタ200が背面から風を受けているときには、髪201が頭202及び胴体203の側になびくこととなる。プレイヤキャラクタ200が走ったり止まったりした場合にも、運動の慣性により受動的に動作する。
髪201に設定された骨格301〜305の位置を、後述するように位置決めするために、プレイヤキャラクタ200について仮想的な基準軸300が設定されている。基準軸300は、例えば、髪201と頭202の結合部の位置から、胴体203の背中側であって結合部から髪201の長さだけ下の所定位置を結ぶ直線に設定される。従って、プレイヤキャラクタ200が動けば、基準軸300の方向も動くものとなる。
上記のようにような受動的な動作をする髪201に設定された骨格301〜305の位置も、運動の慣性や風などにより受動的に受ける力(外力)に基づいて、従来から適用されている方法を用いて計算することで、決定することができる。もっとも、外力に基づいてのみ計算を行うものとすると、外力の大きさによっては、髪201に設定された骨格301〜305が頭202の内部や胴体203の内部までに入り込んでしまう場合(以下、このような場合を衝突という)も生じ得る。
このような衝突が生じた場合には、髪201を構成するポリゴンが頭202や胴体203にめり込んでしまう。そこで、このような衝突を生じさせないものとするため、、基準軸300と骨格301、骨格301と302、302と303、303と304、304と305との間の角は、予め定められた基準角度の範囲内にとなるように定められている。この基準角度の判定のために、基準軸300の方向をx軸方向とし、プレイヤキャラクタ200の後に向く方向をy軸方向、横の方向をz軸方向とした座標系が用いられている。例えば、ベクトルプロセッサを用いて骨格301〜305の位置を行列演算によって求める場合、ワールド座標系のX軸を基準軸に移動させる行列演算を行った上で基準角度の判定を行い、逆行列演算によって元のワールド座標系に戻すことができる。
図4は、骨格301〜305について定められた基準角度を説明する図である。基準軸300の方向をx軸方向とした座標系を用いるため、ここではx成分の判定は必要ない。図4(a)に示すように、基準軸300と骨格301、骨格301と302、302と303、303と304、304と305との間の角のY成分θ1y、θ2y、θ3y、θ4y、θ5yには、それぞれ点線で示す基準角度が定められており、基準角度の範囲を越えれば、基準角度となる位置に骨格301、302、303、304、305の位置が補正されるものとなっている。同様に図4(b)に示すように、それぞれの、それぞれの角のZ成分θ1z、θ2z、θ3z、θ4z、θ5zにも、それぞれ点線で示す基準角度が定められており、基準角度の範囲を越えれば、基準角度となる位置に骨格301、302、303、304、305の位置が補正されるものとなっている。
次に、プレイヤキャラクタ200の髪201に設定された骨格301〜305、311〜317等の位置決めから、髪201、頭202、胴体203、腕204、足205を構成するポリゴンの位置決めまでについて説明する。図5は、骨格301〜305、311〜317等の位置決めから、ポリゴンの位置決めまでを説明する図である。ここでは、説明を簡単にするため、y成分、z成分の区別を付けていないが、実際の計算では各成分に分けられるものとなる。
まず、髪201以外に設定された骨格311〜317等の位置決めを行う。これは、従来から適用されてきたのと同様の方法により行うものであるため、特に図を用いた説明を行っていない。骨格311〜317等の位置が決まれば、頭202、胴体203、手204、足205を構成するポリゴンの位置も自ずと決まることとなる。ここでは、髪201と頭202との結合部、胴体203の背中の所定位置を簡易に求めて、基準軸300を設定する。
基準軸300が決まると、プレイヤキャラクタ200の頭202、胴体203などの存在を無視して、髪201が受ける外力によって頭202に最も近い骨格301がどの位置に位置するかを算出する。さらに、ここで算出した位置での骨格301と基準軸300とがなす角θ1を求める。図5(a)に示すように、算出した角θ1がこれについて定められた基準角度の範囲を越えていれば、図5(b)に示すように、角θ1が基準角度となる位置まで骨格301の位置を補正し、この位置を骨格301の位置として決定する。
次に、決定された位置で骨格301を固定した上で、頭202、胴体203などの存在を無視して、髪201のうちの骨格302よりも先端に近い部分が受ける外力によって骨格302がどの位置に位置するかを算出する。さらに、ここで算出した位置での骨格302とこれより末端側の骨格301とがなす角θ2を求める。図5(c)に示すように、算出した角θ2がこれについて定められた基準角度の範囲を越えていれば、図5(d)に示すように、角θ2が基準角度となる位置まで骨格302の位置を補正し、この位置を骨格302の位置として決定する。
以下同様にして、図5(e)に示すように、骨格305までの位置も順次決定する。これで、プレイヤキャラクタ200の骨格301〜305、311〜317等の全ての位置が決定されたこととなる。そして、図5(f)に示すように、骨格301〜305、311〜317等の位置のみを基準として、プレイヤキャラクタ200の各部位を構成する全てのポリゴンの位置を決定する。
ここで、プレイヤキャラクタ200の骨格301〜305、311〜317等の位置は、ローカル座標系の座標をワールド座標系の座標に変換して定められる。プレイヤキャラクタ200を構成するポリゴンの頂点の位置は、骨格301〜305、311〜317等に対してローカル座標系で位置関係を特定でき、ワールド座標系の座標に変換して定められるものとなる。
プレイヤキャラクタ200が仮想3次元空間内のフィールド上を移動していく様子の画像は、仮想カメラにより仮想3次元空間を透視変換することで表示画面122上に映し出され、プレイヤに認識される。仮想3次元空間内におかれた仮想カメラから仮想スクリーン上に投影される画像が表示画面122として表示される画像となる。仮想スクリーン上に画像を投影するためには、視点座標系が用いられ、ワールド座標系の座標は、視点座標系の座標に変換されるものとなる。
透視変換により仮想スクリーン上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、ここでは、Zバッファ法を用いる。制御部103は、ワールド座標系の座標を視点座標系の座標へ変換すると、各特徴点の座標をグラフィック処理部111に送ると共に、描画命令を出力する。この描画命令に基づいて、グラフィック処理部111は、各特徴点について、前側にある点のデータが残るようにZバッファの内容を更新し、更新の都度、当該特徴点についての画像データをフレームメモリ112に展開する。
以下、この実施の形態にかかる3次元ビデオゲームにおける処理について説明する。ここでは、説明を簡単にするため、仮想3次元空間において動作するオブジェクトとしては、プレイヤキャラクタ200しか存在しないものとし、本発明に特に関わる処理以外は、説明を省略している場合があるものとする。また、実際には骨格301〜303、311〜317等やポリゴンの位置決めにはベクトル演算を用い、角度の判定には正弦、余弦、正接などを用いているが、本質的な処理としては何ら変わりがない。
図6は、この実施の形態にかかる3次元ビデオゲームにおけるメイン処理を示す図である。このメイン処理は、1フレーム分の画像を生成する処理であり、30分の1秒ごとのタイマ割り込みによって行われる。このメイン処理は、1フィールド期間(60分の1秒)毎のタイマ割り込みによって行われるものとしても、処理量によっては2フレーム期間(15分の1秒)毎のタイマ割り込みによって行われるものとしてもよい。
メイン処理においては、制御部103は、プレイヤによりプレイヤキャラクタ200を動作させるための指示が入力部161から入力されているかどうかを判定する(ステップS101)。プレイヤキャラクタ200を動作させるための指示が入力されていない場合には、制御部103は、前回のフレームでのプレイヤキャラクタ200の態様が所定の静止態様にあるかどうかを判定する(ステップS103)。プレイヤキャラクタ200の態様が所定の静止態様にあれば、そのままステップS105の処理に進む。
ステップS101においてプレイヤキャラクタ200を動作させるための指示が入力されている場合には、制御部103は、現在の態様(すなわち、前のフレームで決定された骨格311〜317等に応じた態様)から動作の指示内容に応じて、プレイヤキャラクタ200の髪201以外に設定された骨格311〜317等の位置(ワールド座標系)を移動させる(ステップS102)。ここで、プレイヤキャラクタ200の動きが加速する様子等を表現するため、数フレーム前までの骨格311〜317等の位置を考慮するものとしてもよい。そして、ステップS105の処理に進む。
ステップS102においてプレイヤキャラクタ200の態様が所定の静止態様になければ、制御部103は、現在の態様から所定の静止態様に戻すように、プレイヤキャラクタ200の髪201以外に設定された骨格311〜317等の位置(ワールド座標系)を移動させる(ステップS104)。ここでも、プレイヤキャラクタ200の動きが急激に停止してプレイヤに違和感を感じさせないようにするため、数フレーム前までの骨格311〜317等の位置を考慮するものとしてもよい。そして、ステップS105の処理に進む。
ステップS105では、制御部103は、ステップS102またはS104で移動された、または前のフレームから移動されていないプレイヤキャラクタ200の骨格311、317の位置に基づいて、髪201に設定された骨格301〜305の位置を決定するための基準軸300を設定する。外力の影響を受けない髪201以外に設定された骨格311〜317等の位置と、基準軸300の位置とが決まると、制御部103は、髪201に設定された骨格301〜305の位置を決定する髪骨格位置決定処理を行う(ステップS106)。
図7は、この髪骨格位置決定処理を詳細に示すフローチャートである。ここでも、説明を簡単にするため、プレイヤキャラクタ200の髪201にかかる力は、髪201の重量による重力と、プレイヤキャラクタ200の動作に応じた運動の慣性力と、仮想3次元空間において流れる風の力だけであるものとする。髪骨格位置決定処理では、制御部103は、Nの値を1、2、3、4、5と順次変化させながら、ループ処理を行う(ステップS201−S201’)。
ループ内においては、制御部103は、まず、プレイヤキャラクタ200の髪201のうちで骨格30Nよりも下の部分が受ける重力を算出する(ステップS202)。制御部103は、髪201が結合する頭202の骨格についての今回のフレームでの位置と前回でのフレームでの位置とに基づいて、髪201のうちで骨格30Nよりも下の部分が受ける運動の慣性力を算出する(ステップS203)。制御部103は、髪201のうちで骨格30Nよりも下の部分が仮想3次元空間を流れる風(強さ、方向が経時的に変動)から受ける力を算出する(ステップS204)。
制御部103は、ステップS202〜S204で算出した髪201のうちで骨格30Nよりも下の部分が受ける全ての力に基づいて、骨格30Nの位置(ワールド座標系)を算出する(ステップS205)。そして、制御部103は、骨格30Nが上位(骨格301であれば基準軸300、骨格302〜305であればそれぞれ骨格301〜304)に対してなす角を算出する。この角は、基準軸300の方向をx軸方向とした座標系でのy成分、z成分のそれぞれについて算出する(ステップS206)。
制御部103は、骨格30Nが上位に対してなす角がy成分、z成分ともに基準角度の範囲内にあるかどうかを判定する(ステップS207)。y成分、z成分ともに基準角度の範囲内にある場合であって、Nの値が5まで変化させられていなければ、制御部103は、Nの値を更新して再びループ内の処理を行う。y成分、z成分ともに基準角度の範囲内にある場合であって、既にNの値が5まで変化させられていれば、このフローチャートの処理を終了し、図6のフローチャートに復帰する。
y成分とz成分のいずれかでも基準角度の範囲内にない場合には、制御部103は、骨格30Nが上位に対してなす角のy成分とz成分のいずれもが基準角度の範囲に範囲となるギリギリの位置まで補正した骨格30Nの位置(ワールド座標系)を求める(ステップS208)。そして、Nの値が5まで変化させられていなければ、制御部103は、Nの値を更新して再びループ内の処理を行う。既にNの値が5まで変化させられていれば、このフローチャートの処理を終了し、図6のフローチャートに復帰する。
図6に戻って説明を続けると、制御部103は、ステップS106までで決められたプレイヤキャラクタ200の骨格301〜305、311〜317等の位置を基準として、プレイヤキャラクタ200の各部位201〜205を構成するポリゴンの頂点の位置(ワールド座標系)を算出する。ここで、ローカル座標系で骨格301〜305、311〜317の位置に対して自ずとポリゴンの頂点の位置が決定されるので、これをワールド座標系に変換するものとすればよい(ステップS107)。なお、仮想3次元空間においてプレイヤキャラクタ200以外を構成するポリゴンの頂点の位置(ワールド座標系)は固定であるため、ここで算出する必要はない。
プレイヤキャラクタ200の各部位201〜205を構成するポリゴンの頂点が算出されると、制御部103は、プレイヤキャラクタ200の位置に基づいて、視点の位置と視軸の方向、さらには必要に応じて視角の大きさを決定して、透視変換を行うための仮想カメラの設定を行う。仮想カメラの設定を行うための処理は、従来の方法を適用すればよい(ステップS108)。
仮想カメラが設定され、その視点及び光軸が決まると、制御部103は、仮想カメラからプレイヤキャラクタを含む仮想3次元空間を仮想スクリーン上に透視変換して、表示画面122上に表示すべき2次元画像を生成するための表示処理を行う(ステップS109)。表示処理を終了すると、このメイン処理を終了し、次のフレーム期間の開始タイミングにおいて、再びメイン処理が実行されることとなる。
ステップS109の表示処理について簡単に説明する。制御部103は、プレイヤキャラクタ200を含む仮想3次元空間を構成するポリゴンの頂点の座標のうち、少なくとも仮想スクリーン上に透視変換される範囲に含まれるポリゴンの頂点の座標を、ワールド座標系の座標から視点座標系の座標に変換する。制御部103は、視点座標系にポリゴンの頂点の座標をグラフィック処理部111に送り、グラフィック処理部111に描画命令を出力する。
描画命令を受け取ったグラフィック処理部111は、視点座標系の座標に基づいて、各面を構成する各点について、前側にある点のデータが残るようにZバッファの内容を更新する。Zバッファの内容を更新した場合には、グラフィック処理部111は、当該点についての画像データをフレームメモリ112に展開する。グラフィック処理部111は、展開される画像データに対してシェーディングやテクスチャマッピングなどの処理も行う。
グラフィック処理部111は、フレームメモリ112に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、表示装置121に出力する。表示装置121は、グラフィック処理部111から出力されたビデオ信号に対応した画像を表示画面122上に表示する。1フレーム時間毎に表示画面122上の画像が切り替えられていくことで、プレイヤは、プレイヤキャラクタ200がフィールド上を移動し、外力によって髪201が動く様子を含む画像を見ることができる。
以上説明したように、この実施の形態にかかる3次元ビデオゲームでは、プレイヤキャラクタ200の髪201は、プレイヤキャラクタ200の動作とは別に、外力の影響を受けて動作する、すなわち外力の影響により髪201に設定されている骨格301〜305の位置が変化するものとなる。ここで、骨格301〜305が上位に対してなす角には、衝突を生じさせないものとして予め基準角度が定められている。
ここで、プレイヤキャラクタ200の髪201に加わる外力の大きさによっては、髪201だけについての計算では骨格301〜305が上位に対してなす角としてどのような角度をとることも可能であるが、この実施の形態の3次元ビデオゲームでは、骨格301〜305の位置は、それぞれが上位に対してなす角が基準角度の範囲となるように補正される。これにより、髪201に設定されている骨格301〜305の位置は、必ず衝突の生じ得ない位置に決定されるものとなるので、表示画面122に表示される画像において、髪201を構成するポリゴンが頭202などにめり込んでしまうという現象が生じることがない。
また、髪201に設定されている骨格301〜305が上位に対してなす角が基準角度の範囲を越えているときにおける骨格301〜305の位置は、基準角度の範囲となるギリギリまでしか行われない。このため、髪201に加えられる力が大きいときは、可能な限りその力の大きさに応じた動きを表現することができる。つまり、衝突を生じない範囲で最大限に髪201の動きを表現できるものとなり、透視変換されて表示画面122に表示される画像にリアルさを増すことができるようになる。
また、骨格301〜305が上位に対してなす角を判定するものとしていることにより、オブジェクトを描画するためには本来必要のない衝突判定用のオブジェクトを用いなくても、衝突の判定を行うことができる。頭202に結合する骨格301だけでなく、より先端の骨格302〜305についても、それぞれの上位の骨格301〜304に対してなす角を判定するため、衝突判定用のオブジェクトなしで衝突の判定を行うことができる。
一方、この実施の形態にかかるビデオゲームでは、髪201の衝突を生じないようにするための判定を骨格301〜305のみで行っている。プレイヤキャラクタ200を構成するポリゴンの頂点の位置は、骨格301〜305の位置が決まれば、これのみに基づいて決定することができる。つまり、ポリゴンの頂点毎に衝突を判定することが一切必要ないので、衝突判定に要する計算量を小さくすることができる。
しかも、ポリゴンの頂点毎に衝突を判定するものではないので、透視変換される範囲に含まれるポリゴンの数が多くなっても、これで計算量が大きく増えることはない。これによって、プレイヤキャラクタ200を含む仮想3次元空間に存在するオブジェクトを構成するポリゴンを細かく設定することができ、透視変換されて表示画面122に表示される画像がなめらかなものとなり、リアルさを増すことができるようになる。
さらに、プレイヤキャラクタ200の髪201に設定されている骨格301〜305のそれぞれについて、衝突の生じないような基準角度を予め定めておき、この範囲で骨格301〜305の位置を決定している。このため、外力の影響を受けて動作する髪201のような逆運動学や逆動力学による計算に適さないオブジェクトについても、その動作を適切にモデリングすることができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、プレイヤキャラクタ200の髪201の動作をモデリングするため、本発明を適用した場合について説明した。しかしながら、本発明を用いてモデリング対象とするオブジェクトは、これに限るものではない。末端が他のオブジェクトに結合するとともに、先端が自由に動作するオブジェクトであれば、他の種類のオブジェクトの動作をモデリングする場合にも、本発明を適用することができる。また、適用対象とするオブジェクトは、外力により受動的に動作するものだけでなく、能動的な動作をするもの、能動的な動作とともに外力による受動的な動作をするものにも適用することができる。
上記の実施の形態では、プレイヤキャラクタ200の髪201には、順に関節を介して結合された5本の骨格301〜305が含まれていた。しかしながら、1本以上の任意の数の骨格を含むオブジェクトについて、本発明を適用することができる。また、髪201のような幅の小さいオブジェクトだけでなく、ある程度の幅を持つオブジェクトの動作をモデリングする場合にも本発明を適用することができる。
図8は、このような幅を持つオブジェクトを有するキャラクタの構成を示す図である。このキャラクタ400は、幅を持つオブジェクトとしてマント500をまとっている。このマント500の動作を一連なりの骨格だけで表現するのは困難である。そこで、このマント500には、骨格511〜514からなる骨格組501と、骨格521〜524からなる骨格組502と、骨格531〜534からなる骨格組503と、骨格541〜544からなる骨格組504とが設定されている。骨格組501〜504には、それぞれ別個の基準軸を設定するものとしても、共通の基準軸を設定するものとしてもよい。このように複数の骨格組501〜504を設定することで、マント500のような幅を持つオブジェクトをモデリングするためにも、本発明を適用することができる。
上記の実施の形態では、基準軸300は、プレイヤキャラクタ200の髪201以外に設定された骨格311〜317等とは別に設定されるものとしていた。しかしながら、いずれかの骨格(特に髪201が結合する頭202の骨格311)に基準軸を設定するものとしてもよい。特に髪201の先端がプレイヤキャラクタ200の背中まで達することなく、頭202のある範囲までしか達しないのであれば、基準軸を容易に設定できるため、特に有効なものとなる。
上記の実施の形態では、プレイヤキャラクタ200の髪201は、プレイヤキャラクタ200の動作による運動の慣性力と仮想3次元空間を流れる風の力を受けて動作するものとしていた。しかしながら、プレイヤキャラクタ200の髪201は、他の種類の外力を受けて動作するものとしてもよい。例えば、他のキャラクタが手や武器でプレイヤキャラクタ200の髪201を叩くことで動作することがあってもよい。この場合、他のキャラクタの手や武器との衝突判定を骨格301〜305の位置を基準として行うものとすることができる。
上記の実施の形態では、ビデオゲームを実行するためのプラットフォームとして専用機であるビデオゲーム装置100を適用していた。これに対して、ビデオゲーム本体101と同様の構成要素を備え、3次元画像を描画する機能を有するものであれば、汎用のパーソナルコンピュータなどを適用してもよい。表示装置121及びサウンド出力装置125をビデオゲーム本体101と同一の筐体内に納めた構成を有する携帯ゲーム機を適用するものとしてもよい。
携帯ゲーム機の場合は、記録媒体131として、DVD−ROMやCD−ROMの代わりに半導体メモリカードを適用することができる。携帯ゲーム機には、このメモリカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、ビデオゲーム本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。ビデオゲームのプログラムの一部として適用されるものだけでなく、上記したように3次元画像を描画する機能を含むプログラム全般を、同様の方法により配布するものとすることができる。
本発明は、3次元ビデオゲームを初めとして、3次元画像を描画するためのコンピュータグラフィックス処理の分野において利用することができる。本発明は、リアルタイムで3次元画像を描画する3次元コンピュータグラフィックス処理の分野での利用に、特に適したものである。
本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。 本発明の実施の形態にかかる3次元ビデオゲームにおいて用いられるプレイヤキャラクタの構成を示す図である。 図2のプレイヤキャラクタの髪の動きを説明する図である。 図2のプレイヤキャラクタの髪の骨格に定められた基準角度を説明する図である。 図2のプレイヤキャラクタの髪の骨格の位置決めから各ポリゴンの位置決めまでを説明する図である。 本発明の実施の形態にかかる3次元ビデオゲームにおけるメイン処理を示すフローチャートである。 図6の髪骨格位置決定処理を詳細に示すフローチャートである。 他のキャラクタの構成を示す図である。
符号の説明
100 ビデオゲーム装置
101 ビデオゲーム本体
103 制御部
105 RAM
107 HDD
109 サウンド処理部
111 グラフィック処理部
113 DVD/CD−ROMドライブ
115 通信インターフェイス
117 インターフェイス部
119 内部バス
121 表示装置
122 表示画面
125 サウンド出力装置
131 記録媒体
151 ネットワーク
161 入力部
162 メモリーカード
200 プレイヤキャラクタ
300 基準軸
301〜305 骨格

Claims (7)

  1. 仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画する3次元画像描画装置であって、
    前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段と、
    所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段と、
    前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段と、
    前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段と、
    前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段と、
    前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段と
    を備えることを特徴とする3次元画像描画装置。
  2. 前記第2のオブジェクトは、前記第1のオブジェクトとの結合点から先端に至るまでに関節を介して結合された複数の骨格を含んでおり、
    前記衝突判定手段は、前記第1のオブジェクトと直接結合しない骨格が該骨格よりも前記第1のオブジェクトに近い位置にある骨格に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあることを判定する
    ことを特徴とする請求項に記載の3次元画像描画装置。
  3. 前記骨格位置算出手段は、前記衝突判定手段により前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記基準角度となる位置まで算出し直す
    ことを特徴とする請求項に記載の3次元画像描画装置。
  4. 前記第2のオブジェクトは、外部から加わる力の影響を動作条件として、受動的に動作させられる
    ことを特徴とする請求項1乃至3のいずれか1項に記載の3次元画像描画装置。
  5. 仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するための3次元画像描画方法であって、
    前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定し、
    所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出し、
    前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定し、
    前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直し、
    前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出し、
    当該算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する
    ことを特徴とする3次元画像描画方法。
  6. 仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するためのプログラムであって、
    前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段、
    所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、
    前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、
    前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、
    前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、
    前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段
    としてコンピュータ装置を機能させるためのプログラム。
  7. 仮想3次元空間内において動作する第1のオブジェクトと、該第1のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する1以上の骨格を含み、該第1のオブジェクトとは結合点以外において独立して動作可能な第2のオブジェクトとをモデリングした3次元画像を描画するためのプログラムを記録した記録媒体であって、
    前記第1のオブジェクトを基準として基準軸を設定し、該基準軸を3軸のうちの1軸とした前記仮想3次元空間の座標系とは異なる3次元座標系である基準軸座標系を設定する基準軸座標系設定手段、
    所定の動作条件に従って前記第2のオブジェクトが動作させられるとき、該動作させられた前記第2のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、
    前記基準軸座標系を用いた演算により、前記第2のオブジェクトに含まれる骨格のそれぞれが前記第1のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第1のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、
    前記衝突判定手段により前記第1のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、
    前記第2のオブジェクトが前記第1のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、
    前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第1、第2のオブジェクトをモデリングした画像を描画する画像描画手段
    としてコンピュータ装置を機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003287885A 2003-08-06 2003-08-06 3次元画像描画装置及び方法、プログラム、並びに記録媒体 Expired - Lifetime JP3926307B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003287885A JP3926307B2 (ja) 2003-08-06 2003-08-06 3次元画像描画装置及び方法、プログラム、並びに記録媒体
DE602004026666T DE602004026666D1 (de) 2003-08-06 2004-08-05 Verfahren zum Darstellen eines dreidimensionalen Bildes durch Modellieren eines mit einem ersten Objekt verbundenen zweiten Objektes
EP04018585A EP1505546B1 (en) 2003-08-06 2004-08-05 Method for drawing a three-dimensional image by modeling a second object connected to a first object
US10/912,105 US20050075557A1 (en) 2003-08-06 2004-08-06 Method for drawing three-dimensional image by modeling second object connected to first object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003287885A JP3926307B2 (ja) 2003-08-06 2003-08-06 3次元画像描画装置及び方法、プログラム、並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2005056251A JP2005056251A (ja) 2005-03-03
JP3926307B2 true JP3926307B2 (ja) 2007-06-06

Family

ID=33550032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003287885A Expired - Lifetime JP3926307B2 (ja) 2003-08-06 2003-08-06 3次元画像描画装置及び方法、プログラム、並びに記録媒体

Country Status (4)

Country Link
US (1) US20050075557A1 (ja)
EP (1) EP1505546B1 (ja)
JP (1) JP3926307B2 (ja)
DE (1) DE602004026666D1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4160091B2 (ja) * 2006-12-08 2008-10-01 株式会社スクウェア・エニックス ゲーム装置及びゲーム要素の生成方法、並びにプログラム及び記録媒体
CN101079154B (zh) * 2007-03-02 2010-05-26 腾讯科技(深圳)有限公司 一种角色动画实现方法及***
JP4567027B2 (ja) * 2007-06-06 2010-10-20 株式会社コナミデジタルエンタテインメント 画像処理装置、画像処理方法及びプログラム
US8941642B2 (en) * 2008-10-17 2015-01-27 Kabushiki Kaisha Square Enix System for the creation and editing of three dimensional models
JP2010134798A (ja) * 2008-12-05 2010-06-17 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲーム装置、及びゲームシステム
JP4733757B2 (ja) * 2009-06-05 2011-07-27 株式会社スクウェア・エニックス ポリゴン処理装置,プログラム及び情報記録媒体
JP5155262B2 (ja) * 2009-08-07 2013-03-06 株式会社コナミデジタルエンタテインメント 画像生成装置、画像生成方法、ならびに、プログラム
US9098944B2 (en) * 2010-03-04 2015-08-04 Pixar Scale separation in hair dynamics
JP5190524B2 (ja) 2011-02-16 2013-04-24 株式会社スクウェア・エニックス オブジェクト動作装置及び方法、並びにプログラム
JP5118220B2 (ja) 2011-02-16 2013-01-16 株式会社スクウェア・エニックス 動作モデリング装置及び方法、並びにプログラム
CN102800129B (zh) 2012-06-20 2015-09-30 浙江大学 一种基于单幅图像的头发建模和肖像编辑方法
JP5734361B2 (ja) * 2012-08-01 2015-06-17 株式会社スクウェア・エニックス オブジェクト表示装置
US9785729B2 (en) * 2012-12-14 2017-10-10 Nvidia Corporation Technique for simulating the dynamics of hair
JP6329616B1 (ja) * 2016-11-28 2018-05-23 株式会社スクウェア・エニックス プログラム、コンピュータ装置、及び、判定方法
JP2020113094A (ja) * 2019-01-15 2020-07-27 株式会社シーエスレポーターズ 拡張現実空間に配置される3dオブジェクトを生成する方法
US11423515B2 (en) 2019-11-06 2022-08-23 Canon Kabushiki Kaisha Image processing apparatus
CN111127606B (zh) * 2019-12-25 2024-02-23 北京像素软件科技股份有限公司 柔体飘动方向控制方法、装置及电子设备
JP7427786B2 (ja) * 2021-02-09 2024-02-05 北京字跳▲網▼絡技▲術▼有限公司 拡張現実に基づく表示方法、機器、記憶媒体及びプログラム製品
CN112819931A (zh) * 2021-02-22 2021-05-18 腾讯科技(深圳)有限公司 动画生成方法、装置、终端和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600919A (en) * 1982-08-03 1986-07-15 New York Institute Of Technology Three dimensional animation
US5404426A (en) * 1991-05-21 1995-04-04 Hitachi, Ltd. Method of displaying hair style and apparatus for the same
KR100438132B1 (ko) * 1996-02-20 2004-07-16 가부시키가이샤 세가 화상생성장치,그방법및기록매체
US6104412A (en) * 1996-08-21 2000-08-15 Nippon Telegraph And Telephone Corporation Method for generating animations of a multi-articulated structure, recording medium having recorded thereon the same and animation generating apparatus using the same
JPH10188028A (ja) * 1996-10-31 1998-07-21 Konami Co Ltd スケルトンによる動画像生成装置、該動画像を生成する方法、並びに該動画像を生成するプログラムを記憶した媒体
US6088042A (en) * 1997-03-31 2000-07-11 Katrix, Inc. Interactive motion data animation system
US6057859A (en) * 1997-03-31 2000-05-02 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
US6191798B1 (en) * 1997-03-31 2001-02-20 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters
US6535215B1 (en) * 1999-08-06 2003-03-18 Vcom3D, Incorporated Method for animating 3-D computer generated characters
US7050955B1 (en) * 1999-10-01 2006-05-23 Immersion Corporation System, method and data structure for simulated interaction with graphical objects
US6798415B2 (en) * 2001-06-21 2004-09-28 Intel Corporation Rendering collisions of three-dimensional models
JP3564440B2 (ja) 2001-08-08 2004-09-08 コナミ株式会社 動画像生成プログラム、動画像生成方法及び装置

Also Published As

Publication number Publication date
EP1505546A2 (en) 2005-02-09
US20050075557A1 (en) 2005-04-07
EP1505546B1 (en) 2010-04-21
JP2005056251A (ja) 2005-03-03
EP1505546A3 (en) 2006-05-03
DE602004026666D1 (de) 2010-06-02

Similar Documents

Publication Publication Date Title
JP3926307B2 (ja) 3次元画像描画装置及び方法、プログラム、並びに記録媒体
JP4180065B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
JP3795856B2 (ja) ビデオゲーム装置、ビデオゲームの進行制御方法、プログラム及び記録媒体
JP3696216B2 (ja) 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体
JP4863435B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP4445898B2 (ja) ポインティングデバイスに対する入力を用いたゲームプログラムおよびゲーム装置
JP2007300974A (ja) プログラム、情報記憶媒体及び画像生成システム
KR100825704B1 (ko) 화상 처리 장치, 화상 처리 방법 및 정보 기억 매체
US7695367B2 (en) Storage medium having game program stored thereon and game apparatus
JP4205747B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP3889394B2 (ja) 画像描画装置及び方法、プログラム並びに記録媒体
JP3542795B1 (ja) 模擬実験装置、模擬実験方法、ならびに、プログラム
JP4743721B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、および方法
EP1288866B1 (en) Image generation method
JP4695919B2 (ja) ゲームプログラムおよびゲーム装置
JP4467590B2 (ja) 描画装置、描画方法、および描画プログラム
CN113041616A (zh) 游戏中控制跳字显示的方法、装置、电子设备及存储介质
JP5063022B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP3822882B2 (ja) ゲームプログラム及びゲーム装置
JP5784985B2 (ja) プログラム、情報記憶媒体、情報処理システム及び情報処理方法
JP2012247953A (ja) プログラム、情報記憶媒体、情報処理システム及び情報処理方法
JP2011143121A (ja) プログラム、情報記憶媒体及び画像生成装置
JP2022188633A (ja) 情報処理装置、プログラム、及びゲーム画像生成方法
JP5396432B2 (ja) プログラム、情報記憶媒体、情報処理システム及び情報処理方法
JP4791514B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

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: 20070130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070227

R150 Certificate of patent or registration of utility model

Ref document number: 3926307

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: 20100309

Year of fee payment: 3

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313131

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313131

S199 Written request for registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313199

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

Free format text: PAYMENT UNTIL: 20100309

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: 20100309

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: 20100309

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313133

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

SZ03 Written request for cancellation of trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z03

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: 20100309

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100309

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110309

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: 20110309

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120309

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: 20120309

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130309

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: 20130309

Year of fee payment: 6

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: 20130309

Year of fee payment: 6

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: 20130309

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140309

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term