JP5190524B2 - オブジェクト動作装置及び方法、並びにプログラム - Google Patents

オブジェクト動作装置及び方法、並びにプログラム Download PDF

Info

Publication number
JP5190524B2
JP5190524B2 JP2011031340A JP2011031340A JP5190524B2 JP 5190524 B2 JP5190524 B2 JP 5190524B2 JP 2011031340 A JP2011031340 A JP 2011031340A JP 2011031340 A JP2011031340 A JP 2011031340A JP 5190524 B2 JP5190524 B2 JP 5190524B2
Authority
JP
Japan
Prior art keywords
motion
data
motion data
unit time
scalar
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.)
Active
Application number
JP2011031340A
Other languages
English (en)
Other versions
JP2012165968A (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 JP2011031340A priority Critical patent/JP5190524B2/ja
Priority to CN201280007574.0A priority patent/CN103403766B/zh
Priority to PCT/JP2012/053290 priority patent/WO2012111621A1/ja
Priority to EP12747089.6A priority patent/EP2677503A4/en
Priority to US13/980,113 priority patent/US8970602B2/en
Publication of JP2012165968A publication Critical patent/JP2012165968A/ja
Application granted granted Critical
Publication of JP5190524B2 publication Critical patent/JP5190524B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • 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
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/646Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
    • 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

Landscapes

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

Description

本発明は、連続して実行されるオブジェクトの2つの異なる動作を違和感なく接続するためにモーションデータをブレンドするオブジェクト動作装置に関する。
従来より、仮想3次元空間に存在するキャラクタなどのオブジェクトを動作させ、これらのオブジェクトが動作する様子を仮想カメラにより透視変換して生成する手法が、3次元ビデオゲームにおいて広く適用されている。ここで、オブジェクトの動作を忠実に再現するため、2つの異なる動作が連続して実行される場合には、その前の動作と後の動作の移行期間について、それらの異なる動作のモーションデータのブレンドを行い、そのブレンドしたモーションデータに基づいてオブジェクトを動作させることによって、その動作の移行を違和感なく表現しているものがある。
このようなモーションデータのブレンドによく使われる技法としては、連続する前後の動作に係るモーションデータにおいて、その前の動作と後の動作の重複する期間において、徐々にそれらの動作に係るモーションデータの混合率を変えながらブレンドするものがある。詳細には、X軸回り、Y軸回りでの回転角度によりモーション合成率(モーションブレンド率)を求め、求められたモーション合成率で基準動作を合成することで、キャラクタのモーションデータを生成し、生成されたモーションデータでキャラクタを動作させるものがある(特許文献1)。また、スプライン補間によって、2つの異なる動作の移行を違和感なく表現するものもある。
特開2010−237882号公報(段落0118等)
しかしながら、特許文献1に開示された技術は、その回転角度等によって定められるモデルの形状を特徴とした合成を行うものであり、前後それぞれの動作に係るモーションデータにおいて異なる移動や回転の速度の特徴を有する場合には、その速度の特徴を無視することになってしまう。また、前後それぞれのモーションデータのブレンドを行う重複する複数フレーム期間において、徐々に変化するモーションデータの混合率を算出する方法を設定する必要もあり、また、このようなモーションデータのブレンドは、モーションデータの重複する複数フレーム期間が短いと適用が困難となる。
一方、スプライン補間によって、、2つの異なる動作の移行を表現する場合には、上記した混合率を徐々に変えて移行させる場合に要する、モーションデータにおける複数フレーム期間の重複について、その重複が短い場合や、重複が無い場合でも適用が可能となる。しかしながら、前後の動作に係る位置や角度のデータに対してスプライン曲線の当てはめを行うに際し、その曲線の種類の選択や、曲線パラメータの最適化は手間を要することになる。また、スプライン補間においても、前後それぞれの異なる動作における移動や回転の速度の特徴を無視するものであり、いずれの場合もモーションの境目を平滑化して隠すことによって動作の移行を実行するものとなっている。
本発明は、回転動作を含む連続して実行されるオブジェクトの2つの異なる動作が滑らかに接続されるように、該2つの動作間に介在させるモーションデータを生成するオブジェクト動作装置等を提供することを目的とする。
上記目的を達成するため、本発明の第1の観点にかかるオブジェクト動作装置は、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを記憶するモーションデータ記憶手段と、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段と、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段と、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
上記第1の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算を行うこととすることができる。ここで、前記所定の行列を用いた行列演算は、ポアソン方程式による演算であってもよい。
上記第1の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のX番目の要素に対して前記所定の行列のX行のみを用いて演算を行うこととしてもよい。
上記第1の観点にかかるオブジェクト動作装置において、前記回転量分解手段は、指数マップにより前記オブジェクトの3次元回転動作の回転量をスカラー回転量に分解し、前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生することとしてもよい。
上記オブジェクト動作装置では、仮想3次元空間に存在するオブジェクトに対して、第1モーションデータにより規定される第1の動作を設定された終端のデータとなるまでさせた後に、第2のモーションデータにより規定される第2の動作を設定された始端のデータからさせるものとなっている。ここで、第1の動作から第2の動作に移行されるまでには、補間モーションデータ生成手段によって生成される複数単位時間分のデータがモーションデータとして介在することとなる。
ところで、第1の動作と第2の動作の少なくとも一方には、3次元回転動作が含まれている。3次元回転動作のデータは非線形なデータであり、少なくとも一方がこのような非線形なデータを含む第1のモーションデータと第2のモーションデータが違和感なく滑らかに接続されるように第1の動作から第2の動作に移行されるまでのモーションデータを生成するのは、単純なことではない。
もっとも、上記オブジェクト動作装置では、3次元回転動作の回転量を単位時間毎に特定し、それぞれスカラー回転量に分解している。そして、分解した各単位時間におけるスカラー回転量からスカラー速度を特定し、さらにスカラー回転量を算出するものとしている。そして、算出したスカラー回転量に基づいて、第1の動作から第2の動作に移行されるまでのモーションデータにおいて、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間での各単位時間で適用させるべきオブジェクトの回転量を再生させるものとしている。
このような手法により線形なデータでの計算として第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のモーションデータが生成されるので、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるように少なくとも一方に回転動作が含まれる第1の動作から第2の動作に移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
また、スカラー回転量の算出のための所定の演算を、所定の行列を用いた行列演算、例えば、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、スカラー速度のX番目の要素に対して所定の行列のX行のみを用いてスカラー回転量を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、スカラー回転量への分解に指数マップを、オブジェクトの回転量の再生に対数マップを適用することで、スカラー回転量への分解やオブジェクトの回転量の再生を、比較的単純なものとすることができる。
上記第1の観点にかかるオブジェクト動作装置において、前記第1の動作と前記第2の動作とは、何れも3次元回転動作が含まれるものであり、前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度として特定することとしてもよい。
このように、各単位時間において絶対値の大きい方のスカラー速度を、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるスカラー速度として特定することで、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるような第1の動作から第2の動作に移行されるまでのモーションデータを生成することが可能となる。
上記第1の観点にかかるオブジェクト動作装置において、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、前記第1モーションデータと前記第2モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、前記補間モーションデータ生成手段は、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第1モーションデータと前記第2モーションデータとに基づいて生成することとしてもよい。
この場合、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるデータには、第1モーションデータに含まれる各単位時間のデータと第2モーションデータに含まれる各単位時間のデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、第1モーションデータと第2モーションデータとも差が最も少ないデータが含まれる。これにより、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるような第1の動作から第2の動作に移行されるまでのモーションデータを生成することが可能となる。
上記目的を達成するため、本発明の第2の観点にかかるオブジェクト動作方法は、コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させる方法であって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させる第1のステップと、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第2のステップと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第3のステップと、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第4のステップと、前記第1モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第5のステップとを含み、前記第4のステップは、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定するステップと、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するステップと、前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するステップと、前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含むことを特徴とする。
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
上記第3の観点にかかるプログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することができる。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置に着脱可能に構成され、上記コンピュータ装置とは別個に提供される記録媒体としてもよい。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置内に設けられ、上記コンピュータ装置と共に提供される固定ディスク装置などの記録媒体としてもよい。上記第3の観点にかかるプログラムは、ネットワーク上に存在するサーバ装置から、そのデータ信号を搬送波に重畳して、ネットワークを通じて上記コンピュータ装置に配信することもできる。
また、上記第3の観点にかかるプログラムに含まれる各手段の実行する処理を各ステップの処理として実行する方法も、本発明の範囲に含まれる。
本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。 移行動作がブレンドされる場合の、実行される動作の流れを模式的に表した図である。 終端後フレームと始端前フレームのタイミングの設定を模式的に表した図である。 補間速度の抽出を模式的に表した図である。 移行モーションに適用される補間速度カーブを模式的に表した図である。 ポアソン方程式を適用した移行モーションに係るモーションデータの生成を模式的に表した図である。
図1は、この実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。図示するように、ビデオゲーム装置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上に格納されたプログラムを実行し、装置本体101の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアであり、後述する、プレイヤキャラクタの基本動作などに関する情報は、RAM105に一時記憶される。HDD107は、プログラムやプレイヤキャラクタの基本動作などに関するデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ112(図では、グラフィック処理部111の外側に描かれているが、グラフィック処理部111を構成するチップに含まれるRAM内に設けられる)に画像データを展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。グラフィック処理部111から出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば60分の1秒である。フレームメモリ112は、2セット設けられており、データの書き込み用と読み出し用とがフレーム期間毎に切り替えられる。
グラフィック処理部111は、仮想3次元空間に存在するオブジェクト(プレイヤキャラクタ、ノンプレイヤキャラクタ、及びキャラクタ以外のオブジェクト)を仮想カメラにより透視変換した2次元画像の画像データを生成して、フレームメモリ112に書き込む。
DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。入力部161は、方向キー及び複数の操作ボタンを備えている。仮想3次元空間におけるプレイヤキャラクタの位置は、入力部161の方向キーから入力される指示によって移動させられる。
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間(仮想3次元空間)に存在するオブジェクトを構成するためのグラフィックデータ、プレイヤキャラクタの基本動作などに関するデータを含んでいる。記録媒体131に記憶されたプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
この実施の形態にかかるビデオゲームでは、ゲーム空間となる仮想3次元空間に複数の3次元オブジェクトが存在し、これらのオブジェクトを仮想カメラにより透視変換した画像がゲームの画像として表示装置121の表示画面122に表示される。仮想3次元空間に存在するオブジェクトとしては、プレイヤの入力部161からの入力により動作させられるプレイヤキャラクタ、プレイヤキャラクタ以外のキャラクタであるノンプレイヤキャラクタ(制御部103により動作させられる)、キャラクタ以外の地形、建物などの仮想3次元空間内における位置の移動しないオブジェクトが含まれている。
プレイヤは、このプレイヤキャラクタの基本動作として歩く、走る、座る、立ち上がる、投げる等、そのプレイヤキャラクタの腕の動きや脚の動きなどに関して異なる様々な動作を実行させることができるものとなっている。そして、これらの基本動作は、各フレーム毎の姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータによってそれぞれ定義されている。これらの3次元位置P(t)および3次元回転R(t)に係るデータがゲームのプログラムの一部を構成するモーションデータとして、記録媒体131に記憶され、HDD107等に転送されている。
そして、この基本動作だけでは表現できないような動作については、次に説明する複合動作、移行動作としてこれらの基本動作をブレンドして生成することになる。複合動作は、同時に実行される2つの異なる基本動作に係るデータをブレンドして生成するものであり、また、複合動作は、例えば、走る動作と投げる動作、或いは歩く動作と投げる動作といった、同時に実行される異なる2つの基本動作に係るデータをブレンドする、或いはゆっくり走る動作と速く走る動作から中間の速度で走る動作のデータをモーションブレンドにより生成するものである。このブレンドについては、本発明と直接の関わりがないため、詳細な説明は省略する。
一方、移行動作は、2つの異なる基本動作が連続して実行される場合において、動作が移行される間のつなぎの動作であって、先の基本動作から後の基本動作への移行が違和感なくされるように生成するものである。また、移行動作は、例えば、プレイヤキャラクタが歩いている状態から、走ったり、走っている状態から、歩いたりという具合に、ゲーム進行において、2つの異なる基本動作が一連の流れで連続して行われる場合に、その2つの異なる基本動作を接続するために生成されるものである。
このように、一連の流れで連続して実行される、2つの異なる動作を接続するための前の動作に続けて実行される移行動作については、図2に示すように、後の動作への遷移における不自然さを無くすため、急な動作の変更とはならないように、その前後の動作(モーション)のブレンド(モーションブレンド)をして生成した移行モーションを、前の動作に続けて実行し、次の動作へ遷移させるようにする。以下、この実施の形態に用いられる移行動作のモーションブレンドについて説明をする。
まず、図3において図示するように、HDD107等に記憶される2つの異なる基本動作(以下、単にモーションとする)は、連続して実行される2つのモーションについて、前のモーション(以下、モーションAとする)に対して、終端姿勢となるフレーム(以下、終端フレームという)と、後のモーション(以下、モーションBとする)に対して、始端姿勢となるフレーム(以下、始端フレームという)とをそれぞれ設定する。
なお、モーションAの終端姿勢、およびモーションBの始端姿勢の設定については、従来の手法を用いればよく、例えば、連続して実行されるモーションの組み合わせ毎に前のモーションの終端姿勢と後のモーションの始端姿勢とをプログラム設計者が予め決めておき、この予め決められた終端姿勢と始端姿勢とが、連続して実行される2つのモーションが定まるのと同時に自動的に設定されるものとしてもよい。
そして、モーションブレンドの際、まずは、このモーションAに係るモーションデータのうちの終端姿勢となるフレームよりも後の各フレーム(以下、終端後フレームという)のデータと、このモーションBに係るモーションデータのうちの始端姿勢となるフレームよりも前の各フレーム(以下、始端前フレームという)のデータとからそれぞれで互いに一番似ているフレームを総当たりで検索する。なお、フレームの総当たりの検索についてはパターンマッチングなどの従来の手法を用いればよいので、詳細な説明は省略する。
終端後フレーム及び始端前フレームにおいて一番似ているフレーム(図3におけるモーションAの終端後フレームの網掛け部分とモーションBの始端前フレームの網掛け部分)を検索できれば、図3において図示するように、始端前フレーム中における当該フレームが、終端後フレーム中の当該フレームのタイミングと重なるように、モーションAに対して、モーションBの実行タイミングを設定する。このように設定されたモーションA、モーションBの終端姿勢から始端姿勢のフレーム期間において、終端後フレームと始端前フレームとに係るモーションをブレンドし移行モーションに係るモーションデータを生成することになる。なお、モーションAの終端フレームからモーションBの始端フレームの間に介在するモーションのブレンドについて詳細は後述する。
このように、プレイヤキャラクタはモーションAの動作をさせた後に、モーションBの動作をさせる場合には、上記のように設定した終端姿勢まではモーションAに係るモーションデータ、ブレンドにより生成した移行モーションに係るモーションデータ、上記のように設定した始端姿勢からはモーションBに係るモーションデータを用いて、その間の各フレームにおいて動作させる。
この実施の形態に係るモーションブレンドでは、連続して実行される2つのモーションを定める終端後フレームと始端前フレームにおける姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータから速度成分を算出し、算出した各モーションの速度成分を基にモーションブレンドを行うものである。
そして、そのブレンドされたモーションの速度成分に対してポアソン方程式を適用することで、そのブレンドされたモーションの各フレームにおけるプレイヤキャラクタの姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータを求める。そこで、まず、モーションブレンド前の、モーションAに係る終端後フレーム、およびモーションBに係る始端前フレームの各フレーム毎のプレイヤキャラクタの姿勢を定める3次元位置P(t)および3次元回転R(t)の速度成分を算出する。
ここで、3次元位置P(t)は仮想3次元空間上の位置を表すために、それぞれが独立して線形な値として、px(t)、py(t)、pz(t)を有する。この3次元位置P(t)に対しては、そのままポアソン方程式を適用可能であるが、非線形である3次元回転R(t)は絶対量を表せず、そのままポアソン方程式を適用できない。そこで、ポアソン方程式を適用させるために、プレイヤキャラクタの姿勢を定める3次元回転R(t)に指数マップ(Exponential maps)を適用することで、線形な数値へと近似する。
ここで、指数マップの3次元回転R(t)への適用を説明する。3次元回転R(t)では絶対量を表せないため、指数マップを適用して、基準回転からの相対回転を求める。ここで、3次元回転R(t)の相対量px(t)、py(t)、pz(t)を表すため、基準回転として、前後のモーションにおけるブレンドの対象となるそれぞれのフレーム期間において、平均回転Rmを算出する。例えば、2つのフレームにおける3次元回転R1、R2において、平均回転Rm、およびpx(t)、py(t)、pz(t)は以下のように表現される。
Figure 0005190524
また、この平均回転Rmに関しては、対数マップ(Logarithmic maps)を適用してブレンドしたモーションに係るpx(t)、py(t)、pz(t)を再度3次元回転R(t)に変換するために用いるものとなる。なお、平均回転Rmの算出、並びに指数マップ、および対数マップを用いた詳細な算出方法については、この発明において直接的には関係しないので説明を省略する。
そして、このように指数マップ表現において求められた3次元回転R(t)に係るrx(t)、ry(t)、rz(t)と、3次元位置P(t)に係るpx(t)、py(t)、pz(t)とから、それぞれ微分方程式を適用することで、それぞれの速度成分を算出する。このようにして、求めた3次元位置P(t)および3次元回転R(t)の各速度成分について、図4に示すように先に実行のタイミングを設定した、ブレンドする2つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出する。
これを、補間用速度v(t)(ここでは、3次元位置P(t)および3次元回転R(t)の各要素の速度成分毎に区別しない)として、図5に示すように、モーションAの終端姿勢から、モーションBの始端姿勢までに実行される移行モーションに適用する3次元位置P(t)および3次元回転R(t)の各要素の速度成分とする。そして、補間用速度v(t)に対して、ポアソン方程式を適用することで、ブレンドされたモーションにおける各フレームの3次元位置P(t)および3次元回転R(t)に係る各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)(以下、まとめて要素d(t)とする)を求める。なお、3次元回転R(t)に関してはポアソン方程式によって求めた、rx(t)、ry(t)、rz(t)に対して上記した対数マップを適用する必要がある。
そして、ポアソン方程式を適用した要素d(i)とこの補間用速度v(i)との関係は以下のように表すことができる。
Figure 0005190524
そして、この式から連立方程式の反復解法(Gauss-Seidel法などを用いる)により、要素d(i)について以下のように表せる。
Figure 0005190524
このように表されることによって、行列の各要素dが規則正しく決定され、解析的に逆行列を算出することができるようになる(以下、数式5)。また、要素d(i)を計算するためには、逆行列のi行目だけが必要となる。そして、数式2で適用した行列は以下のように一般化することができ、そこから、数式3で適用する逆行列の一般式も以下のように求めることができる。
Figure 0005190524
Figure 0005190524
このように、求められた一般式(数式5)から、要素d(i)は四則演算のみで計算することができ、また、各要素d毎に独立して計算することもできる。
このように、ポアソン方程式を適用してモーションAに係るモーションデータの終端後フレームとモーションBに係るモーションデータの始端前フレームとから、終端姿勢から始端姿勢までの移行モーションに係るモーションデータをブレンドして生成するまでの流れを模式的に表したものを図5に示す。図示するように、ブレンド前のモーションAとモーションBのそれぞれのモーションデータにおいて、3次元位置P(t)に係るデータは線形な数値であるため、そのままポアソン方程式を適用することができる。
一方、3次元回転R(t)は非線形な数値であるため、そのままポアソン方程式を適用できない。そこで、指数マップをその3次元回転R(t)に適用することで、独立した線形な回転量を表すrx(t)、ry(t)、rz(t)にそれぞれ分解し、それらを基にポアソン方程式を適用する。ポアソン方程式を適用することで得られたrx(t)、ry(t)、rz(t)については、移行モーションのモーションデータに係る3次元回転R(t)として表現するために、線形な回転量に分解するために用いた平均回転Rmを再度用いることで、3次元回転の再合成をする。
以上説明したように、仮想3次元空間に存在するプレイヤキャラクタに対して、モーションAに係るモーションデータにより定義される動作を、終端姿勢となるまでさせた後に、モーションBに係るモーションデータにより定義される動作を設定された始端姿勢からさせるものとなっている。ここで、モーションAからモーションBに移行されるまでには、ブレンドにより生成した移行モーションに係るモーションデータにより動作させる。
ところで、モーションAの動作とモーションBの動作の少なくとも一方には、3次元回転Rに係る動作が含まれている。3次元回転Rに係る動作のデータは非線形なデータであり、このような非線形なデータを含むモーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようにモーションAからモーションBに移行されるまでのモーションデータを生成するのは、単純なことではない。
もっとも、この実施の形態では、モーションAに係る終端後フレームとモーションBに係る始端前フレームにおいて、指数マップを適用することで、3次元回転R(t)をrx(t)、ry(t)、rz(t)と算出している。そして、算出した終端後フレームと始端前フレームのそれぞれのフレーム期間毎におけるrx(t)、ry(t)、rz(t)から速度成分を算出し、モーションAの終端後フレーム、実行のタイミングが設定されたモーションBの始端前フレームにおけるそれぞれの速度成分の絶対値の最大値を、移行モーションの期間における補間用速度v(t)として抽出する。そして、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)は、抽出した補間用速度v(t)とにおいてポアソン方程式を適用することで求めることができるようになる。
このような手法により線形なデータでの計算としてモーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間のモーションデータが生成されるので、モーションAのモーションデータとモーションBのモーションデータが違和感なく滑らかに接続されるように、3次元回転動作が含まれるモーションAからモーションBに移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
また、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)を求める演算を、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、i番目の速度成分v(t)に対して所定の行列のi行のみを用いて、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、非線形な3次元回転R(t)から、線形なrx(t)、ry(t)、rz(t)への変換に指数マップを、3次元回転R(t)の再生に対数マップを適用することで、rx(t)、ry(t)、rz(t)への変換や3次元回転R(t)の再生を、比較的単純なものとすることができる。
また、各フレームにおいて絶対値の大きい方の要素d(i)のそれぞれの速度成分を、モーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおける補間用速度v(i)として特定することで、モーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようなモーションAからモーションBに移行されるまでのモーションデータを生成することが可能となる。
また、モーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおけるデータには、モーションAに係るモーションデータに含まれる各フレームのデータとモーションBに係るモーションデータに含まれる各フレームのデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、モーションAに係るモーションデータとモーションBに係るモーションデータとも差が最も少ないデータが含まれる。これにより、モーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようなモーションAからモーションBに移行されるまでのモーションデータを生成することが可能となる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態において、移行モーションを生成する前後の動作であるモーションA、モーションBについては基本動作であったが、これを、基本動作から生成された異なる2つの複合動作間の動作の移行に対して、移行動作を生成するものであってもよい。例えば、モーションAとモーションCとを複合したモーションA+Cから、モーションBとモーションDとを複合したモーションB+Dに移行する場合の移行モーションの生成に、本発明を適用することもできる。
また、移行モーションを生成する前後の動作のうち、一方が複合動作、他方が基本動作として移行動作を生成するものであってもよい。これによって、移行モーションは基本動作からのみ生成されるものではなくなるので、多様化した移行モーションが実行できるとともに、予め記録媒体131等に記憶した動作でなくても前後の動作の遷移に応じた違和感なく滑らかな移行モーションが実行できるようになる。
さらには、モーションAからモーションBに移行させる際の移行モーションと、モーションCからモーションDに移行させる際の移行モーションとを生成し、モーションAとモーションCを複合したモーション、各々の移行モーションを複合したモーション、モーションBとモーションDを複合したモーションへと、モーションを変化させるものにも本発明は適用できる。
もっとも、この場合は、モーションAからモーションBに移行させる際の移行モーションの生成と、モーションCからモーションDに移行させる際の移行モーションの生成とのそれぞれで別個に、上記の実施の形態における似ているフレームのタイミングを一致させることをそのまま適用するのではなく、モーションAからモーションBに移行させる際の移行モーションと、モーションCからモーションDに移行させる際の移行モーションとのタイミングが一致されるようにする必要がある。
上記の実施の形態では、モーションAのモーションデータ、モーションBのモーションデータのそれぞれにおいて、3次元回転R(t)に係る動作が含まれるものとして、移行モーションを生成するものとしていたが、このような3次元回転R(t)にかかる動作は何れか一方のモーションに含まれていればよく、何れか一方において、そのような回転動作が含まれていないものであってもよい。
上記の実施の形態では、2つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出し、これを補間用速度v(t)として移行モーションに適用する各要素の速度成分としていたが、加重平均や重み付け平均を用いて各要素の速度成分としたり、それぞれの最大値を用いて各要素の速度成分とするものとしてもよい。
上記の実施の形態では、補間用速度v(t)に対してポアソン方程式を適用することで、3次元位置P(t)および3次元回転R(t)に係る各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)の計算を行っていたが、ポアソン方程式のような好ましい結果が得られる演算であれば、他の行列演算でもよく、行列演算以外の演算であってもよい。もっとも、ポアソン方程式による演算が本発明に好ましい手法として適用されるものであることは、いうまでもない。また、要素d(i)を計算するためには逆行列のi行目だけで演算を簡素化させていたが、このような演算の簡素化がされないものであってもよい。
上記の実施の形態では、指数マップをその3次元回転R(t)に適用することで、独立した線形な回転量を表すrx(t)、ry(t)、rz(t)にそれぞれ分解し、ポアソン方程式を適用することで得られたrx(t)、ry(t)、rz(t)に対して対数マップを適用することで3次元回転の再合成をしていたが、線形な値としてポアソン方程式による演算を行い得るものとするのであれば、これ以外の手法を適用してもよい。もっとも、指数マップや対数マップの適用が本発明に好ましい手法であることは、いうまでもない。
上記の実施の形態では、3次元ビデオゲームにおけるプレイヤキャラクタの動作に対して本発明を適用した場合を例として説明したが、プレイヤの操作によって動作されるのではなく、プレイヤの操作とは無関係に所定の処理ルーチンの実行により動作させられるノンプレイヤキャラクタの動作に対して本発明を適用するものとしてもよい。また、キャラクタでなくても、3次元回転動作を含む動作をするものであれば機械類や構造物などの他のオブジェクトの動作に対しても本発明を適用することができる。
上記の実施の形態では、本発明をビデオゲームでする場合に適用し、各プレイヤがゲームを進めるために用いる端末装置としてゲーム専用機であるビデオゲーム装置100を適用していた。これに対して、本発明は、3次元コンピュータグラフィックスによるモーションブレンドであれば、ビデオゲーム以外でオブジェクトの動作のブレンドをする場合にも適用することができる。リアルタイムコンピュータグラフィックスでなければ、モーションAの終端姿勢とモーションBの始端姿勢とは、ユーザがその都度個別に手動で設定することも可能である。
また、本発明にかかる手法でモーションブレンドの処理を行う装置は、ビデオゲーム装置100と同様の構成要素を備えるものであれば、汎用のパーソナルコンピュータなどを適用してもよい。3次元コンピュータグラフィックスを処理できる能力があれば、表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機(アプリケーションの実行機能を有する携帯電話機を含む)を適用するものとしてもよい。
記録媒体131としては、DVD−ROMやCD−ROMの代わりに半導体メモリーカードを適用することができる。このメモリーカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。
100 ビデオゲーム装置
101 ビデオゲーム装置本体
103 制御部
105 RAM
107 HDD
109 サウンド処理部
111 グラフィック処理部
112 フレームメモリ
113 DVD/CD−ROMドライブ
115 通信インターフェイス
117 インターフェイス部
119 内部バス
121 表示装置
122 表示画面
125 サウンド出力装置
131 記録媒体
151 ネットワーク
161 入力部
162 メモリーカード

Claims (9)

  1. 仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを記憶するモーションデータ記憶手段と、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段と、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段と、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、
    前記補間モーションデータ生成手段は、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
    前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
    前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
    前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
    前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
    前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
    ことを特徴とするオブジェクト動作装置。
  2. 前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算を行う
    ことを特徴とする請求項1に記載のオブジェクト動作装置。
  3. 前記所定の行列を用いた行列演算は、ポアソン方程式による演算である
    ことを特徴とする請求項2に記載のオブジェクト動作装置。
  4. 前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のX番目の要素に対して前記所定の行列のX行のみを用いて演算を行う
    ことを特徴とする請求項3に記載のオブジェクト動作装置。
  5. 前記回転量分解手段は、指数マップにより前記オブジェクトの3次元回転動作の回転量をスカラー回転量に分解し、
    前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生する
    ことを特徴とする請求項1乃至4のいずれか1項に記載のオブジェクト動作装置。
  6. 前記第1の動作と前記第2の動作とは、何れも3次元回転動作が含まれるものであり、
    前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度として特定する
    ことを特徴とする請求項1乃至5のいずれか1項に記載のオブジェクト動作装置。
  7. 前記第1モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、
    前記第1モーションデータと前記第2モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、
    前記補間モーションデータ生成手段は、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第1モーションデータと前記第2モーションデータとに基づいて生成する
    ことを特徴とする請求項1乃至6のいずれか1項に記載のオブジェクト動作装置。
  8. コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させる方法であって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させる第1のステップと、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第2のステップと、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第3のステップと、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第4のステップと、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第5のステップとを含み、
    前記第4のステップは、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定するステップと、
    前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、
    前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、
    前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するステップと、
    前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するステップと、
    前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含む
    ことを特徴とするオブジェクト動作方法。
  9. コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、
    前記補間モーションデータ生成手段は、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
    前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
    前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
    前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
    前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
    前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
    ことを特徴とするプログラム。
JP2011031340A 2011-02-16 2011-02-16 オブジェクト動作装置及び方法、並びにプログラム Active JP5190524B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011031340A JP5190524B2 (ja) 2011-02-16 2011-02-16 オブジェクト動作装置及び方法、並びにプログラム
CN201280007574.0A CN103403766B (zh) 2011-02-16 2012-02-13 对象动作装置及方法
PCT/JP2012/053290 WO2012111621A1 (ja) 2011-02-16 2012-02-13 オブジェクト動作装置及び方法、並びにプログラム
EP12747089.6A EP2677503A4 (en) 2011-02-16 2012-02-13 Object movement device, method, and program
US13/980,113 US8970602B2 (en) 2011-02-16 2012-02-13 Object operating device and method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011031340A JP5190524B2 (ja) 2011-02-16 2011-02-16 オブジェクト動作装置及び方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2012165968A JP2012165968A (ja) 2012-09-06
JP5190524B2 true JP5190524B2 (ja) 2013-04-24

Family

ID=46672540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011031340A Active JP5190524B2 (ja) 2011-02-16 2011-02-16 オブジェクト動作装置及び方法、並びにプログラム

Country Status (5)

Country Link
US (1) US8970602B2 (ja)
EP (1) EP2677503A4 (ja)
JP (1) JP5190524B2 (ja)
CN (1) CN103403766B (ja)
WO (1) WO2012111621A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108367199B (zh) * 2015-12-09 2021-07-09 喀普康有限公司 记录游戏程序的记录介质、效果控制方法及游戏装置
CN109529337A (zh) * 2018-09-21 2019-03-29 苏州蜗牛数字科技股份有限公司 一种对象位置朝向自适应方法
CN110180190B (zh) * 2019-06-04 2023-01-24 网易(杭州)网络有限公司 虚拟角色的动作的处理方法、装置、存储介质和电子装置
CN110246209B (zh) * 2019-06-19 2021-07-09 腾讯科技(深圳)有限公司 图像处理方法及装置
US11615222B2 (en) * 2019-09-19 2023-03-28 Microsoft Technology Licensing, Llc Inertia scaling based on neighboring bodies
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US11816772B2 (en) * 2021-12-13 2023-11-14 Electronic Arts Inc. System for customizing in-game character animations by players

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3649469B2 (ja) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント アニメーションデータの作成方法および作成装置
US5982389A (en) * 1996-06-17 1999-11-09 Microsoft Corporation Generating optimized motion transitions for computer animated objects
JP2004030502A (ja) * 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム
JP3926307B2 (ja) 2003-08-06 2007-06-06 株式会社スクウェア・エニックス 3次元画像描画装置及び方法、プログラム、並びに記録媒体
JP4382117B2 (ja) 2007-07-25 2009-12-09 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
JP4387429B2 (ja) 2007-07-25 2009-12-16 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
CN101477703B (zh) * 2008-10-11 2011-09-14 大连大学 基于语义模型的运动捕捉数据直接驱动的人体动画方法
US8941642B2 (en) 2008-10-17 2015-01-27 Kabushiki Kaisha Square Enix System for the creation and editing of three dimensional models
JP2010237882A (ja) 2009-03-30 2010-10-21 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
EP2544151B1 (en) 2010-05-10 2014-05-21 Square Enix Co., Ltd. Image processing device, image processing method, and image processing program
JP5227389B2 (ja) 2010-12-07 2013-07-03 株式会社スクウェア・エニックス ネットワークゲームシステム、ゲーム装置、及びプログラム

Also Published As

Publication number Publication date
JP2012165968A (ja) 2012-09-06
CN103403766B (zh) 2017-02-15
US8970602B2 (en) 2015-03-03
EP2677503A1 (en) 2013-12-25
WO2012111621A1 (ja) 2012-08-23
EP2677503A4 (en) 2017-09-06
US20130293538A1 (en) 2013-11-07
CN103403766A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
JP5190524B2 (ja) オブジェクト動作装置及び方法、並びにプログラム
CN102221975B (zh) 使用运动捕捉数据的项目导航
JP4989605B2 (ja) 簡易アニメーション作成装置
KR102374307B1 (ko) 애니메이팅된 캐릭터의 수정
JP2008250813A (ja) 画像生成装置、画像処理方法、および、プログラム
JP4380042B2 (ja) アニメーション生成方法および装置
US10026210B2 (en) Behavioral motion space blending for goal-oriented character animation
JP7232621B2 (ja) ゲームプログラム、記録媒体、ゲーム処理方法
JP5363452B2 (ja) ゲーム装置,ゲームプログラム,及び情報記憶媒体
KR20230130748A (ko) 이미지 처리 방법 및 장치, 디바이스 및 매체
CN112843683A (zh) 虚拟角色的控制方法、装置、电子设备及存储介质
JP3990258B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP7364702B2 (ja) テクスチャ操作を使用するアニメーション化された顔
JP4447000B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
WO2008137384A1 (en) Real-time goal space steering for data-driven character animation
US20220172431A1 (en) Simulated face generation for rendering 3-d models of people that do not exist
US10543429B2 (en) Recording medium whereupon game program is recorded, effect control method, and game device
KR20070025384A (ko) 춤추는 아바타를 생성하는 방법 및 서버와 춤추는 아바타를이용한 응용 서비스 제공 방법
JP2009037572A (ja) 動作合成システム及びその方法
JP4637199B2 (ja) 画像処理装置、画像処理方法、ならびに、プログラム
JP4233065B2 (ja) ゲーム装置及び情報記憶媒体
CN108109189A (zh) 动作共享方法及装置
JP2017148592A (ja) ゲームシステム
JP2000235655A5 (ja)
JP3765786B2 (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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

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

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5190524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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