专利摘要:
本発明は、仮想環境内におけるユーザ制御エンティティのアニメーションのための方法及び装置に関する。仮想環境内におけるエンティティの運動を追跡するためにエンティティトラッキングデータをサーバに格納する。ユーザはそれらのエンティティに対する所望の動作をクライアントで入力することができ、そのデータをクライアントからサーバに送信することができる。サーバは受信データを用いてエンティティに対して適切なアニメーションを選択する。サーバは次に選択したアニメーションを識別するデータをクライアントに送信し、よってクライアント上のエンティティのアニメーションを制御する。仮想環境内におけるエンティティの運動の正確な表現を維持するとともにアニメーションデータを用いてエンティティの運動をシミュレートすることによって、サーバはエンティティを正確に制御でき、よってエンティティのアニメーションをよりリアルにすることができる。
公开号:JP2011508290A
申请号:JP2010533589
申请日:2008-11-14
公开日:2011-03-10
发明作者:リチャード;アレクサンダー ジョージ;グリーン ジョナサン;マーシャル スティーブ;テンペスト ポール;イアン;クラーク マルコム;ローカルスゾ ロッコ
申请人:サイバースポーツ リミテッド;
IPC主号:G06T13-40
专利说明:

[0001] 本発明は、運動アニメーション方法及び装置に関する。特に、本発明はユーザ制御エンティティの運動アニメーションに関する。]
背景技術

[0002] 既知のサーバベースゲームシステムにおいて、サーバはキャラクタ運動を、キャラクタがユーザ制御により指示された線又は曲線に沿って移動する単純な質点であるかのように実行している。クライアントで使用されるアニメーションはキャラクタの手足をリアリな運動の外観を与えるようにできるだけ最良に運動させる。しかし、これは多くの場合「フフットスライディング」を生じ、キャラクタの足は地面を滑るように見え、両者のアニメーションが混ざり合ったぎこちない動きに見える。]
[0003] サッカーゲームのような没入型アクションアプリケーションに対して、このような既知のシステムはゲーム環境にリアルな外観と雰囲気を与えない。例えば、プレーヤが足でボールと一緒に180度回転する場合、プレーヤは単純な一定速度のスポット回転と全く異なる複雑な動きを行う。]
[0004] アニメーションはモーションキャプチャ技術を用いて生成される。これらの技術において、行動するアクタの運動はモーションキャプチャスタジオで記録され、コンピュータゲームのキャラクタの運動をモデル化するために使用される。アクタの運動の持続時間に亘ってアクタの各身体部分の運動が検出され、運動を規定する一連のモーションキャプチャフレームを生成するために使用される。異なるアニメーションをゲーム内で順に一緒につなぎ合わせる(しばしばスプライシングと呼ばれている)ために、各アニメーションは「ポーズ」として知られる複数の所定の体位のうちの一つで開始及び終了させるのが望ましい。これはアニメーション間の移行を滑らかにしてより自然に見えるようにすることによってアニメーション間の連続性を与えるのに役立つ。モーションキャプチャスタジオには各ポーズを規定するデータ及び各アニメーションがどのポーズで開始及び終了すべきかを規定するデータを与えることができる。モーションキャプチャスタジオは次にモーションキャプチャデータを処理し、アニメーションを最初と最後のキーフレームが所望のポーズと一致するキーフレームのシーケンスとして規定するデータファイルを提供する。]
[0005] アクタ及び彼の運動は、ここでは「骨」という部位の階層を有するエンティティとしてモデル化することができる。この階層の頂部はアクタの腰部を表す骨とすることができる。生のモーションキャプチャデータにおいて、すべての他の運動は典型的には腰骨(寛骨)体部分に対して決定される。]
[0006] モーションキャプチャされる任意のエンティティ位置に対して未知であるのはエンティティに対して正確な前方向である。モーションキャプチャデータはその水平前方向を含む腰骨の運動を規定する。ループ歩行又は走行アニメーション中、エンティティが一方の脚を他方の脚の後で前に動かすときに腰は左右にねじれる。これは、腰前方向が左右に揺れることを意味する。]
[0007] アニメートされたエンティティはディスプレイ上で、エンティティ位置にリンクした3人称パースペクティブ視点から見ることができる。これは、腰前方向をエンティティの前方向として直接用いる場合(エンティティが前方に走っている場合)、視点は腰の運動と一致して左右に揺れる。このような運動は仮想環境内でエンティティの運動を制御するユーザをまごつかせる。]
[0008] 特許文献1は、グラフィックインタフェース上にオブジェクトを含む3次元(3D)アニメーショングラフィックイメージを生成する方法を開示している。グラフィックイメージはユーザによりリアルタイムでインタラクティブにアニメートされるように設計されている。この方法は、オブジェクを選択し、それらをグラフィックインタフェースにディスプレイし、オブジェクに外部プロンプトにインタラクティブに反応する特性を有する運動を割り当て、オブジェク及びそれらに割り当てられた運動をシンボライズする可視要素をグラフィックインタフェース上で組み立てる。]
[0009] 特許文献2は、2次元ゲームにおいてキャラクタのアニメーションを達成するアニメーションシステムを開示している。ゲームキャラクタは異なるエリアに分割され、それらのエリアに異なるアニメーション技術が与えられる。一つのエリアでは、骨格アニメーション技術が使用され、オブジェクの運動を制御するためにロジックが使用される。別のエリアでは、セルアニメーション技術が使用される。次に異なるアニメーション技術を用いるエリアがキャラクタをアニメートするために結合される。]
[0010] 特許文献3は3次元オンラインゲームのキャラクタの形を変更するシステムを開示している。キャラクタのアニメーションはキャラクタの個々の骨のアニメーションにより達成される。一つのキャラクタの骨格アニメーションモデルは、一つのキャラクタの骨格に基づく形態を他のキャラクタにエクスポートすることによって、他のキャラクタモデルに拡張することができる。キャラクタアニメーションのリアリティをプレーヤによるキャラクタの操作に応答して向上させるために逆運動学を適用することができる。]
先行技術

[0011] 米国特許第6,972,765号明細書
特開2008−038010号公報
韓国特許出願第20040087787号明細書]
[0012] ユーザ制御エンティティの運動の外観と雰囲気を改善し、エンティティを仮想環境内でもっとリアルにアニメートすることができるゲームシステム用の技術を提供することが望まれている。]
[0013] 本発明の第1の態様によれば、仮想環境内におけるユーザ制御エンティティのクライアント上のアニメーションを制御するサーバベース方法であって、前記ユーザ制御はクライアントベースである、方法が提供される。前記方法は、
サーバに、前記仮想環境内における第1エンティティのトラッキングと関連する第1エンティティのトラッキングデータを格納するステップと、
前記サーバで、第1クライアントから、前記仮想環境内における前記第1エンティティのユーザ制御と関連するエンティティ制御入力データを受信するステップと、
前記サーバで、前記第1クライアントから受信した前記入力データに基づいて、第1の複数のアニメーションから前記第1クライアントでアニメートすべき第1アニメーションを選択するステップと、
前記サーバから前記第1クライアントへ、前記仮想環境内における前記第1エンティティの前記選択された第1アニメーションを識別する第1データを送信するステップと、
前記第1クライアントでアニメートすべき前記選択された第1アニメーションと関連する一つ以上のエンティティ変化特性を検索するステップと、
前記第1クライアントでアニメートすべき前記選択された第1アニメーションと関連する前記検索されたエンティティ変化特性に基づいて、前記格納された第1エンティティのトラッキングデータを更新するステップと、
を備える。]
[0014] エンティティトラッキングデータは仮想環境内におけるエンティティの運動を追跡するためにサーバに格納される。ユーザは、クライアントを介して、エンティティに対する所望の動作を入力し、次いでクライアントによりサーバへ送信することができる。サーバは受信したデータを用いてエンティティに対する適切なアニメーションを選択する。サーバは次に選択したアニメーションを識別するデータをクライアントへ送信し、よってクライアント上のエンティティのアニメーションを制御することができる。]
[0015] 選択されたアニメーションと関連するエンティティ変化特性は、例えばサーバ上のメモリストレージからサーバにより検索することができる。エンティティ変化特性は、アニメーションの最中に変化する、例えばエンティティの位置及び向き及びアニメーションのタイミングなどの所定の特性に関連させることができる。エンティティ変化特性の使用により、エンティティがアニメーションの最中にどのように変化するかに関する情報、例えばエンティティがアニメーション中、アニメーションの開始に対して、特にアニメーション終了時にどこにあるのか及び/又はどっちを向いているかに関する情報をサーバに与える。サーバは格納するエンティティトラッキングデータを選択されたアニメーションのエンティティ変化特性を考慮して更新する。]
[0016] 従って、サーバは仮想環境内におけるエンティティの動きを追跡することができ、またクライアントでエンティティをアニメートするために使用できる複数のエンティティアニメーションの知識も持っている。アニメーションデータを用いて、仮想環境内におけるエンティティの運動の正確な表現を維持しながら、エンティティの運動をシミュレートすることによって、サーバはエンティティを正確に制御でき、よってエンティティのアニメーションをよりリアルにすることができる。]
[0017] サーバとクライアントが通信しうるネットワークは不必要に多量のアニメーションデータでオーバロードにならない。アニメーションデータ自体をサーバとクライアントとの間で伝送する必要はなく、アニメーションの識別と関連するデータのみを伝送すればよく、このデータはクライアントで関連するアニメーションを識別するために使用される。]
[0018] 好ましくは、本方法は、前記第1クライアントでアニメートすべき前記第1アニメーションを前記格納された第1エンティティのトラッキングデータに基づいて選択する。従って、サーバはエンティティに対する適切なアニメーションを選択するために格納トラッキングデータを使用することもできる。よって、アニメーション選択は仮想環境内におけるエンティティの運動の知見に基づいて実行することができ、これによりアニメーション品質を更に向上させることができる。]
[0019] 好ましくは、前記格納された第1エンティティトラッキングデータは、一連のアニメーション中の前記第1エンティティの位置のトラッキングと関連する位置データを含む。例えば、位置データはアニメーション中のエンティティの開始位置を含むことができる。]
[0020] 好ましくは、前記格納された第1エンティティトラッキングデータは、一連のアニメーション中の前記第1エンティティの向きのトラッキングと関連する向きデータを含む。例えば、向きデータはアニメーション中のエンティティの開始向きを含むことができる。]
[0021] 好ましくは、前記格納された第1エンティティトラッキングデータは、一連のアニメーション中の前記第1エンティティのタイミングのトラッキングと関連するタイミングデータを含む。例えば、タイミングデータはアニメーション中のエンティティの開始時刻を含むことができる。]
[0022] 従って、仮想環境内におけるエンティティの位置、向き及びタイミングを選択されたアニメーションに基づいてサーバで追跡することができるため、エンティティがクライアントでアニメートされる際に、仮想環境内におけるエンティティの運動のより正確な表現を与えることができる。]
[0023] 好ましくは、本方法は、
前記サーバで、前記第1の複数のアニメーションから前記第1クライアントでアニメートすべき追加のアニメーションを選択するステップと、
前記サーバから前記第1クライアントに、前記第1クライアントでアニメートすべき前記追加のアニメーションを識別する追加のデータを送信するステップと、
前記選択された追加のアニメーションと関連する一つ以上の追加のエンティティ変化特性を検索するステップと、
前記検索された追加のエンティティ変化特性に基づいて前記格納された第1エンティティのトラッキングデータを更新するステップと、
を備える。]
[0024] 好ましくは、前記選択された第1及び追加のアニメーションはアニメーションのために順に選択し、その結果のトラッキングはアニメーションのシーケンスに対してサーバで実行する。]
[0025] 好ましくは、前記複数のアニメーションはモーションキャプチャデータから導出する。従って、モーションキャプチャスタジオ内におけるアクタの運動と関連するデータを運動アニメーションのためのソースデータとして利用することができる。]
[0026] 好ましくは、本方法は、更に、
前記サーバで、前記仮想環境内における第2エンティティのトラッキングと関連する第2エンティティトラッキングデータを格納するステップと、
前記サーバで、第2クライアントから、前記仮想環境内における前記第2エンティティのユーザ制御と関連するエンティティ制御入力データを受信するステップと、
前記サーバで、前記第2クライアントから受信した前記入力データに基づいて、第2の複数のアニメーションから前記第2クライアントでアニメートすべき第1アニメーションを選択するステップと、
前記サーバから前記第2クライアントへ、前記仮想環境内における前記第2クライアントでアニメートすべき前記選択された第1アニメーションを識別するデータを送信するステップと、
前記第2クライアントでアニメートすべき前記選択された第1アニメーションと関連する一つ以上のエンティティ変化特性を検索するステップと、
前記第2クライアントでアニメートすべき前記選択された第1アニメーションと関連する前記検索されたエンティティ変化特性に基づいて、前記格納された第2エンティティトラッキングデータを更新するステップと、
を備える。]
[0027] 従って、本発明は、ネットワークを介してマルチユーザ機能を提供するのに使用することができる。各クライアントは他のクライアントから遠く離れて位置することができ、仮想空間内の一つ以上のエンティティを制御するために各クライアントをユーザが操作することができる。一つ以上のサーバが多数のクライアントと、それぞれのエンティティのアニメーションを制御するために通信することができ、その間それぞれのエンティティは選択されたアニメーションに基づいて一つ以上のサーバで追跡される。]
[0028] 好ましくは、本方法は、更に、前記第2クライアントでアニメートすべき前記第1アニメーションを前記格納された第2エンティティトラッキングデータに基づいて選択するステップを備える。従って、サーバは2つ以上のエンティティに対する適切なアニメーションを選択するために格納トラッキングデータを使用することができる。従って、アニメーション選択は仮想環境内における複数のエンティティの運動の知見に基づいて実行することができる。]
[0029] 好ましくは、前記第1及び第2の複数のアニメーションは、一つ以上のエンティティアニメーションを共通に含む。従って、各クライアントは関連するエンティティをアニメートし得る同一又は類似のアニメーションセットを有することができる。]
[0030] 好ましくは、前記第1エンティティ及び前記第2エンティティが前記仮想環境内で相互作用する場合には、前記第1の複数のアニメーションの選択は前記第2の複数のアニメーションの選択に依存させる。]
[0031] 従って、各エンティティのユーザ制御に依存して、各クライアントと関連するエンティティは仮想環境内の他のエンティティと相互作用するようにアニメートすることが可能になる。よって、サーバはそれに応じてそれぞれのエンティティのためのアニメーションを選択することができる。]
[0032] 本発明の第2の態様によれば、仮想環境内におけるユーザ制御エンティティのクライアント上の運動アニメーションのためのクライアントベース方法であって、前記ユーザ制御はクライアントベースである、方法が提供される。前記方法は、
第1クライアントに、第1の複数のエンティティアニメーションを含むアニメーションデータを格納するステップと、
第1クライアントで、仮想環境内における第1エンティティのトラッキング関連する第1エンティティのトラッキングデータを処理するステップと、
前記第1クライアントからサーバへ、前記仮想環境内における第1エンティティのユーザ制御と関連するエンティティ制御入力データを送信するステップと、
前記第1クライアントで、前記サーバから前記第1の複数のエンティティアニメーションのうちの一つを識別する選択データを含む第1データを受信するステップと、
前記第1クライアントで、前記受信された第1データ、前記第1クライアントに格納された前記アニメーションデータ及び前記第1エンティティのトラッキングデータに基づいて前記仮想環境内における前記第1エンティティをアニメートするステップと、
を備える。]
[0033] 従って、本発明は、仮想空間内でユーザ制御エンティティをクライアントに格納されたアニメーションデータに従ってアニメートすることができる。ユーザはクライアントによりエンティティの所望の運動を入力し、ついでサーバに送信することができる。クライアントは次にサーバから、どのエンティティ運動アニメーションがサーバにより識別されたかを知らせるデータを受信する。クライアントは識別されたアニメーションの間エンティティを追跡するためにエンティティトラッキングデータを処理することができる。]
[0034] 従って、サーバは仮想環境内におけるエンティティの動きを追跡することができ、またクライアントでエンティティをアニメートするのに使用できる複数のエンティティアニメーションの知識も持っている。アニメーションデータを用いてエンティティの運動をシミュレートすることによって、仮想環境内におけるエンティティのアニメーションをよりリアルにシミュレートすることができる。]
[0035] 好ましくは、本方法は、前記クライアントで、前記サーバから前記第1エンティティトラッキングデータを受信するステップを備える。従って、クライアントはエンティティトラッキングデータをサーバにより供与されることができる。]
[0036] 好ましくは、本方法は、前記クライアントに、前記第1エンティティトラッキングデータを格納するステップを備え、前記エンティティトラッキングデータを処理するステップは前記エンティティトラッキングデータを前記クライアントの前記格納データから検索するステップを備える。従って、クライアントはエンティティトラッキングデータ自体を格納することができる。クライアントは、サーバからエンティティトラッキングデータを受信する代わりに、エンティティトラッキングデータの自己バージョンを保持することができる。代わりに又は加えて、クライアントはサーバからエンティティトラッキングデータを受信し、これを直接用いてエンティティをアニメートすることができ、またクライアントはサーバから受信したエンティティトラッキングデータを用いて自己格納したエンティティトラッキングデータを更新することができる。]
[0037] 好ましくは、本方法は、前記クライアントで、前記識別されたエンティティアニメーションと関連するエンティティ変化特性を処理するステップと、
前記処理されたエンティティ変化特性に基づいて前記第1エンティティトラッキングデータを更新するステップと、
前記第1クライアントで、前記更新された第1エンティティトラッキングデータに基づいて前記仮想環境内における前記第1エンティティを更にアニメートするステップと、
を備える。]
[0038] 従って、クライアントは識別されたアニメーションと関連するエンティティ変化特性を処理することができる。エンティティ変化特性を用いて、エンティティがアニメーション中にどのように変化するかに関連する情報をクライアントに与えることができる。]
[0039] 好ましくは、本方法は、前記クライアントで、前記サーバから前記エンティティ変化特性を受信するステップを備える。従って、クライアントはエンティティ変化特性をサーバにより供与されることができる。]
[0040] 好ましくは、本方法は、前記エンティティ変化特性を前記クライアントに格納するステップを備え、前記エンティティ変化特性を処理するステップは前記エンティティ変化特性を前記クライアントの前記格納データから検索するステップを備える。従って、クライアントはエンティティトラッキングデータ自体を格納することができる。クライアントはエンティティトラッキングデータの自己バージョンを保持することができる。また、クライアントはサーバからエンティティトラッキングデータを供与されることができ、この場合にはクライアントは格納したエンティティトラッキングデータを更新することができる。]
[0041] 本発明の第3の態様によれば、仮想環境内におけるユーザ制御エンティティの運動アニメーションのための方法が提供される。前記方法は、
モーションキャプチャデータから導出されるアニメーションデータであって、前記エンティティの個々の体部分に対する体部分運動データを含むエンティティ運動アニメーションを含むアニメーションデータを格納するステップと、
前記仮想環境内における前記エンティティのユーザ制御運動と関連するエンティティ制御入力データを受信するステップと、
前記仮想環境内における前記エンティティを前記格納アニメーションデータに従って3人称パースペクティブビューでアニメーションするステップとを備え、
前記三人称パースペクティブビューの位置及び向きは前記体部分運動データの少なくとも一部分により決定される。]
[0042] 従って、ユーザは仮想環境内のエンティティの運動を3人称パースペクティブから見ることができる。ユーザがエンティティを見るこの視角又はカメラアングルはその体部分運動データに従ってエンティティを追跡することができる。]
[0043] 本発明は仮想環境内のエンティティの運動アニメーション中に3人称パースペクティブビューを提供するのに使用できる。アニメーションデータはモーションキャプチャスタジオ内で記録されたアクタの運動から導出することができる。体部分運動データはモーションキャプチャデータから導出することができ、少なくともその一部分を用いて、仮想環境内のエンティティのアニメーション中により安定でリアルなビューを与える3人称パースペクティブビューを決定することができる。]
[0044] 好ましくは、モーションキャプチャデータは複数のモーションキャプチャフレームを含み、3人称パースペクティブビューの位置及び向きは、前記モーションキャプチャフレーム間を平滑化することによって前記モーションキャプチャデータから導出される体部分に対する体部分運動データにより決定される。]
[0045] 従って、アニメーション中に3人称パースペクティブビューを生成するためにモーションキャプチャデータのフレーム間の平滑化を用いることができる。これは、3人称パースペクティブビューに不所望に現れるモーションキャプチャデータと関連する振動、ウォブル、ジッターなどを回避するのに役立つ。これらの不所望の効果は、例えばアクタの運動が記録されている間に左右に動くアクタの一以上の部分に起因し、例えばランニング動作の受理苦衷におけるアクタの腰骨の振動に起因する。]
[0046] 好ましくは、エンティティ運動アニメーションは複数のキーフレームを含み、キーフレームに対する前記3人称パースペクティブビューの位置は前記モーションキャプチャフレームの一つ以上のフレームにおける前記体部分の位置から導出され、キーフレームに対する前記3人称パースペクティブビューの向きは前記モーションキャプチャフレームの一つ以上のフレームにおける前記体部分の向きから導出される。]
[0047] 好ましくは、前記一つ以上のモーションキャプチャフレームは前記複数のモーションキャプチャフレームの最初及び/又は最後のモーションキャプチャフレームを含む。]
[0048] 従って、アニメーションのキーフレームに対する3人称パースペクティブビューの位置及び/又は向きは、一以上のモーションキャプチャフレーム、例えば記録動作と関連する最初及び/又は最後のモーションキャプチャフレームにおける体部分の位置及び/又は向きから導出することができる。]
[0049] 好ましくは、キーフレームに対する3人称パースペクティブビューの向きは、一以上のモーションキャプチャフレーム内の前記体部分の向きと関連する一以上の方向を規定するものとする。]
[0050] 好ましくは、キーフレームに対する3人称パースペクティブビューの向きの導出は、仮想環境内における前記体部分の向き方向と基準との関係を決定することを含む。]
[0051] 好ましくは、前記基準は前記仮想環境内における基準方向とする。]
[0052] 好ましくは、前記関係は前記体部分向き方向と前記基準方向との間の一以上の角度とすることができる。]
[0053] 従って、一以上のモーションキャプチャフレーム内の体部分の向きを用いてアニメーション中の一以上のキーフレーム内のエンティティの向きを計算できる。体部分の向きは仮想環境内の基準の向きと比較することができる。これにより仮想環境内の体部分と基準方向との間の角度のような関係を決定することができる。]
[0054] このプロセスは体部分運動データの正規化の一例とみなせ、体部分の向きは仮想環境内の基準方向に関して正規化される。アクタがモーションキャプチャ運動中に向いている真の方向は一般に未知である。本発明の正規化プロセスによれば、アニメーション中にエンティティが仮想環境内で向いている方向の指示を計算することができる。次に、導出したエンティティの方向を用いてエンティティのアニメーションの間中安定でリアルな3人称パースペクティブビューを与えることができる。]
[0055] エンティティの向きの知識は、サーバが、アニメーションの開始時及び/又は終了時にエンティティがどの方向に向くか又は向くべきかを計算する際に利用することがで、この知識はモーションキャプチャデータから明示的にすることができる。これは、複数のアニメーションを一緒に配列する必要があるとき特に有用である。]
[0056] 好ましくは、前記一以上の角度はキーフレームに対する前記3人称パースペクティブビューを決定するのに使用される。従って、一以上の対部分と仮想環境の基準方向との間で計算された一以上の角度を用いてアニメーションにおける3人称パースペクティブビューを決定することができる。]
[0057] 好ましくは、前記アニメーション中のキーフレームに対する3人称パースペクティブビューの向きは前記アニメーション中の2以上の他のキーフレームの3人称パースペクティブビューの向きを用いて計算する。従って、3人称パースペクティブビューの方向は個別に各キーフレームに対する体部分の向きから直接計算する必要はない。代わりに、3人称パースペクティブビューの向きは、例えばたった2つのキーフレームに対する体部分の向きから直接計算することができ、これらの2つのキーフレームに対する3人称パースペクティブビューの向きは、アニメーションの他のキーフレームに対する3人称パースペクティブビューの向きを計算するのに使用することができる。]
[0058] 好ましくは、前記2以上の他のキーフレームは前記アニメーション中の最初と最後のキーフレームとする。最初と最後のキーフレームの3人称パースペクティブビューの向きは、例えばアプリケーション中の他のキーフレームの3人称パースペクティブビューの向きを計算するのに使用することができる。]
[0059] エンティティの向きをアニメーションの最初と最後のキーフレームの体部分向きデータから計算する場合、この情報を用いて一つ以上又はすべての中間キーフレームのエンティティの向きを計算することができる。これは、最初と最後のキーフレームからのエンティティの向きを中間フレームにわたって平滑化することを含むことができる。この平滑化は、最初と最後のキーフレームからのエンティティの向きを中間キーフレームにわたって、例えば線形補間を用いて平均化することにより実行することができる。]
[0060] 好ましくは、キーフレームに対する前記3人称パースペクティブビューの位置を導出することは、一以上のモーションキャプチャフレーム内の前記体部分の位置を移動させることを含む。]
[0061] このプロセスは、体部分運動データの正規化の一例とみなすことができ、体部分の位置は仮想環境内の位置に関して正規化される。アクタがモーションキャプチャ運動内に位置する真の位置は一般に未知である。本発明の正規化プロセスによれば、アニメーション中の仮想環境内のエンティティの位置の指示を計算することができる。次に、導出したエンティティの位置を用いてエンティティのアニメーションの中安定でリアルな3人称パースペクティブビューを与えることができる。]
[0062] この正規化プロセスの移動は、仮想環境内のエンティティの垂直高さ平面を固定量だけ減じることを含むことができる。3人称パースペクティブビュー位置が負の高さになるのを避けるために、移動は前記仮想環境内において基準の高さ、例えば仮想環境内のグランドの高さで制限することができる。]
[0063] 好ましくは、エンティティはオステオイドモデルとする。従って、エンティティは骨格とすることができ、各エンティティは体部分に取り付けられた一以上のセンサを有し、モーションキャプチャスタジオ内のアクタの対応する骨の運動を表す。各骨の個々の運動が記録され、それに応じてエンティティをアニメートするために使用される。]
[0064] 好ましくは、体部分は前記エンティティの腰骨に対応する2つの体部分とする。従って、アクタの腰骨の運動を用いて、仮想環境内のエンティティのアニメーション中に3人称パースペクティブビューを導出することができる。モーションキャプチャデータは一般にアクタの腰骨の運動と関連するデータを含み、このデータを用いてアニメーション中のエンティティの位置及び向きを計算することができる。]
[0065] 本発明の第4の態様によれば、仮想環境内においてユーザ制御エンティティの運動アニメーションを行う方法が提供される。前記方法は、
複数のエンティティ運動アニメーションを含むアニメーションデータであって、前記エンティティ運動アニメーションの各々は関連するエンティティ変化特性を有しているアニメーションデータを格納するステップと、
前記仮想環境内における前記エンティティのユーザ制御運動と関連するエンティティ制御入力データを受信するステップと、
前記入力データに基づいて、前記複数のエンティティ運動アニメーションから一つのエンティティ運動アニメーションを選択し、前記選択したアニメーションと関連するエンティティ変化特性が修正されるように前記選択したアニメーションを修正するステップと、
前記仮想環境内の前記エンティティを前記修正されたアニメーションに従ってアニメートするステップと、
を備える。]
[0066] エンティティ制御入力データを受信すると、格納アニメーションデータから適切なエンティティ運動アニメーションを選択することができる。しかし、選択されたアニメーションは、エンティティを仮想環境内でもっとリアルにアニメートするために、エンティティをアニメートする前に修正することができる。エンティティ運動アニメーションは、エンティティがアニメーション中にどのように変化するかに関する関連のエンティティ変化特性を有することができる。従って、エンティティを選択されたアニメーションに対応する格納アニメーションデータに従ってアニメートする代わりに、その関連のエンティティ変化特性を変化させるために選択されたアニメーションを最初に修正することができる。]
[0067] これは、アニメーションの概観と雰囲気をよりリアルにするために、例えばアニメーションが仮想環境内でアニメートすべき別のエンティティ又はオブジェクのアニメーションと調和するようにエンティティの位置及び向きを調整するために用いることができる。]
[0068] エンティティ運動のすべての可能な変化に対するアニメーションデータを、水平及び垂直移動、方向、タイミングなどに関して与えるのが実用的である。これは、特にアニメーションデータがモーションキャプチャデータから導出される場合であり、それは所定の運動タイプの多くの異なる変化を演じるアクタを任意の高精度又は正確さで得ることは難しいからである。]
[0069] 従って、本発明を使用すれば、エンティティのアニメーションを提供されるアニメーションに正確に限定する必要はなく、選択されたアニメーションをエンティティの所望の運動とより密接に一致するように修正することができる。これは、仮想環境内の別のエンティティまたはオブジェクと相互作用するために、例えばエンティティがアニメーション中に特定の位置、角度及び時間に到達するのが望ましい場合に起こる。]
[0070] 好ましくは、エンティティ変化特性は前記エンティティ運動アニメーション内の前記エンティティの位置及び/又は向きを含み、前記修正は前記選択されたアニメーション内の前記エンティティの位置及び/又は向きの修正を含む。従って、アニメーションが選択されたら、そのエンティティ変化特性を検査して、選択されたアニメーションがエンティティの所望の運動に十分に近似し、仮想環境における直接アニメーションに適切であるかどうかを確かめることができる。アニメーションが直接アニメーションにふさわしくなく、例えばエンティティの位置及び/又は向きを改善すべきことが認識された場合には、アニメーションのエンティティ変化特性を仮想環境内のエンティティのアニメーティングに使用する前に変化させるためにこのアニメーションを修正することができる。]
[0071] 好ましくは、エンティティ運動アニメーションは複数のキーフレームを含み、前記エンティティ変化特性は前記エンティティ運動アニメーション中の第1及び第2キーフレーム間の前記エンティティの位置及び/又は向きの変化を含む。従って、アニメーション中の所定の点間のエンティティの位置及び/又は向きなどのエンティティ変化特性は、アニメーションが所望のエンティティ運動にどのくらい密接に従うかの尺度として用いることができる。]
[0072] 好ましくは、エンティティ運動アニメーションは、前記エンティティの個々の体部分に対する体部分運動データを含み、前記エンティティ運動アニメーションと関連するエンティティ変化特性は、前記エンティティの前記体部分の一以上の位置及び/又は向きを含む。]
[0073] アニメーションのエンティティ変化特性が、アニメーション中の一以上の体部分の位置及び/又は向きを前記体部分の運動が所望のエンティティ動作にもっと密接に一致するように改善できることを示す場合には、アニメーション中の前記一以上の体部分の位置及び/又は向きを、エンティティが仮想環境内でアニメートされる前に修正することができる。]
[0074] 好ましくは、前記選択されたアニメーションの修正は、前記選択されたアニメーション中の前記エンティティの一以上の体部分の位置及び/又は向きを修正することを含む。従って、エンティティの一以上の体部分の位置及び/又は向きを修正することによってアニメーションの概観と雰囲気を改善することができる。]
[0075] 好ましくは、エンティティ運動アニメーションと関連するエンティティ変化特性は前記第1及び第2キーフレーム間の前記一以上の体部分の位置及び/又は向きの変化を含む。従って、アニメーションの所定の点間のエンティティの一以上の体部分の位置及び/又は向きなどのエンティティ変化特性の変化は、アニメーションが所望のエンティティ運動にどのくらい密接に従うかの尺度として用いることができる。]
[0076] 好ましくは、前記第1及び/又は前記第2のキーフレームは前記アニメーション中の最初及び/又は最後のキーフレームとする。従って、アニメーション中のエンティティ又はその一以上の体部分の開始及び終了位置及び/又は向きを、当該アニメーションと当該エンティティの前及び次のアニメーションとのつなぎ合わせ又は仮想環境内の他のエンティティ及び/又はオブジェクと関連するアニメーションとのつなぎ合わせを改善するために調整することができる。]
[0077] 好ましくは、格納アニメーションデータはオブジェクアニメーションデータを含み、前記オブジェクアニメーションデータは前記エンティティ運動アニメーション内の一以上のオブジェクの運動と関連し、前記修正は前記一以上の体部分の位置及び/又は向きを前記一以上のオブジェクに関して修正することを含む。]
[0078] 従って、修正は、エンティティ又はその一以上の体部分の位置又は向きを、ボールなどのオブジェクに関して又はその逆に、エンティティがボールともっとリアルに相互作用するように、例えばエンティティがもっとリアルにボールをキックまたはヘッディングするように修正することを含むことができる。]
[0079] 好ましくは、修正は、エンティティ運動アニメーション中のキーフレームのうち前記修正を加えるべきサブセットを識別することを含む。修正はアニメーション全体よりもアニメーション中のキーフレームのサブセットによりリアルに加えることができる。これは、例えばエンティティの回転その他の運動の大部分がアニメーション中の数キーフレームのみにわたり起こる場合に有用であり、この場合には修正は数キーフレームのみにわたり最適に加えることができる。アニメーションのサブセットはアニメーションデータをクライアント及び/又はサーバに格納する前に識別でき、また画像処理技術を用いてさ又はクライアントにより識別することができる。]
[0080] 好ましくは、キーフレームのサブセットは、前記エンティティの所定のたいぶぶんが所定の位置及び/又は所定の向きにあるキーフレームで識別される。従って、キーフレームのサブセットは、例えばボールなどのオブジェクが地面の上にある又は所定の方向に向いているキーフレームとして識別することができる。]
[0081] 好ましくは、キーフレームのサブセットは、所定のオブジェクが所定の位置及び/又は所定の向きにあるキーフレームで識別される。従って、キーフレームのアブセットは、例えばボールなどのオブジェクが地上にある又はエンティティの高さに匹敵する所定の高さにあるキーフレームとして識別することができる。]
[0082] 好ましくは、所定の体部分は前記エンティティの足及び/又は頭とし、前記所定のオブジェクはボールとし、前記修正は前記足又は頭の位置及び/又は向きを前記ボールの位置及び/又は向きに関して修正することを含む。従って、前記修正によってサッカー試合のプレーヤのようなスポーツゲームのユーザにより制御されているエンティティをリアルにアニメートすることができる。]
[0083] 好ましくは、修正は、前記キーフレームのサブセット内の前記エンティティの一以上の脚部の位置及び/又は向きを修正するために逆脚運動学を使用することを含む。従って、修正が、例えばエンティティの足が地上にある点を修正することを含む場合には、エンティティの脚部の位置及び向きを修正されたアニメーションにおいて脚がもっと自然に見えるように修正することができる。エンティティの大腿部、膝、ふくらはぎ、足首又は足などをこのような逆脚運動学に含めることができる。]
[0084] 好ましくは、修正は、前記エンティティ運動アニメーション中の一以上のキーフレームのタイミングを修正することを含む。従って、修正は、例えばエンティティがより自然にオブジェク又は他のエンティティに到達する又はから離れるようにアニメーションを加速又は減速することを含むことができる。これは、例えばボールをキックする又は別のエンティティにタックルすることを含むことができる。]
[0085] 本発明の第5の態様によれば、コンピュータで実行されるマルチプレーヤスポーツゲームが提供され、このゲームはデータ通信網を介して本発明の上記の態様に従って実行されるアニメーションを備え、各プレーヤは前記ゲーム内の一以上のエンティティを前記通信網を介してクライアントで制御する。]
[0086] 従って、本発明は、多数のプレーヤによってそれらのエンティティをそれらのクライアント及び各エンティティの運動アニメーションを制御するサーバでインターネットを介してプレイされる大規模マルチプレーヤオンライン(MMO)ゲームにおいてプレーヤをアニメートするのに用いることができる。]
[0087] 本発明の第6の態様によれば、本発明の第1、第2、第3及び第4の態様のいずれかの方法を実行するように構成された装置が提供される。]
[0088] 本発明の第7の態様によれば、本発明の第1、第2、第3及び第4の態様のいずれかの方法を実行するように構成されたコンピュータソフトウェアが提供される。]
[0089] 本発明の他の特徴及び利点は、添付図面を参照して例示としてのみ以下に与えられる本発明の好適実施例の説明から明らかになる。]
図面の簡単な説明

[0090] 本発明の一実施例によるネットワークゲーム環境のシステム図を示す。
本発明の一実施例によるゲームのためのデータファイルの作成に含まれるステップを示すフローチャートである。
本発明の一実施例によるモーションキャプチャデータ編集システムを示す。
本発明の一実施例によるモーションキャプチャデータの編集に含まれるステップを示すフローチャートである。
図5a及び5bは本発明の一実施例によるキーフレームに対するエンティティ向きの計算を示す。
本発明の一実施例によるサーバの機能要素を示す。
本発明の一実施例によるクライアントの機能要素を示す。
本発明の一実施例によるサーバベースのアニメーションデータストレージを示す。
本発明の一実施例によるクライアントベースのアニメーションデータストレージを示す。
本発明の一実施例によるエンティティのアニメーション中にクライアント及びサーバで実行されるステップを示すフローチャートである。
図11aおよび11bは本発明の一実施例によるアニメーションのキーフレームの変更を示す。] 図11a 図5a
実施例

[0091] ゲームシステム
図1は本発明の一実施例によるネットワークゲーム環境のシステム図を示す。サーバ100は通信ネットワーク104を経て多数のクライアント106,108,110に接続される。クライアント106,108,110は、パーソナルコンピュータ(PC),携帯情報端末(PDA),ラップトップ又はデータ処理及びゲーム機能を提供しうる他の任意のコンピュータデバイスを含むことができる。サーバ100及びクライアント106,108,110はデータ記憶装置102,112,114,116にそれぞれアクセスでき、これらの記憶装置にはゲーム環境に関するデータが記憶される。これらのデータ記憶装置はサーバ又はクライアントの内部又は外部装置とすることができる。] 図1
[0092] サーバ100はマルチプレーヤゲームをネットワークを介して制御する責任を持つ。ゲームはキャラクタやアバタなどのエンティティがクライアント106,108,110のユーザにより制御される仮想世界又は他の仮想環境を含む。クライアント106,108,110のユーザは仮想環境内でそれらのエンティティを動き回らせるためにキーボード、マウス、ジョイスティック又は他の入力デバイスによりエンティティ制御データを入力する。]
[0093] サーバ100は、エンティティが参加するゲームのための仮想環境をシミュレートするとともに、エンティティがどのように動いて相互作用すべきかを決定するために各クライアントからの入力データを処理する責任を持つ。このようなシミュレーションはサッカーボール又はバスケットボール試合又は冒険ゲームのようなマルチプレーヤスポーツゲームを含むことができる。]
[0094] アニメーション編集システム
図2は、本発明の一実施例による運動アニメーションのためのデータファイルの作成に含まれるステップを示すフローチャートである。ステップ200はモーションキャプチャスタジオにおけるモーションキャプチャデータの生成であり、ここではエンティティがゲーム内で実行し得る運動アニメーションを規定するためにアクタの運動が記録される。モーションキャプチャデータはステップ202で3Dグラフィックソフトウェアにエクスポートされ、データをコンピュータスクリーン又は他のグラフィックディスプレイデバイスで見ることができる。モーションキャプチャスタジオから受信したモーションキャプチャデータは、Autodesk社により開発された3dsMax(登録商標)(3DスタジオMax(登録商法)としても知られている)のようなモーションキャプチャデータファイルを処理できる3Dグラフィック機能を有するコンピュータソフトウェアアニメーションで見ることができる。ステップ204は本発明によるアニメーションデータを生成するためにモーションキャプチャデータを編集する。モーションキャプチャデータの編集は図3および図4を参照して後に詳細に説明される。編集されたデータは次にステップ206においてゲームのプレイに必要な他のゲームデータファイルと照合される。] 図2 図3 図4
[0095] 次に、仮想環境内でエンティティをアニメートするために必要とされるクライアント及びサーバのためのデータファイルを作成するために自動ビルドプロシージャがステップ208で使用される。エンティティは、データ通信ネットワークを介してサーバにより制御されプレイされるゲームの間中アニメートされ、多数の各プレーヤはクライアントデバイスを介して一以上のエンティティを制御することができる。ビルドプロシージャの一部分はサポートされるすべてのエンティティ運動に対するアニメーションを規定する単一のデバイスファイルを生成する。スポーツゲームの一例では、このファイルは一以上のアニメーション中のボール、パックなどの動きと関連するデータも含む。ビルドプロシージャは出力データを生成し、この出力データはサーバ及び各クライアントの両方に格納し使用することができる。]
[0096] 図3は本発明の一実施例によるモーションキャプチャデータ編集システムを示す。モーションキャプチャデータ302は編集システム300に入力し、システム300はモーションキャプチャデータを編集してアニメーションデータファイル304を出力として生成する。編集システム300はモーションキャプチャデータを処理し得る3Dグラフィックソフトウェア306、例えば上記の3DスタジオMax(登録商標)を含む。モーションキャプチャデータを編集し得るアニメーション編集モジュール308は3Dグラフィックエディタとインタフェースする。アニメーション編集モジュール308は3Dグラフィックソフトウェア306にプラグインするものとすることができる。エンティティ変化特性抽出器310は、モーションキャプチャデータからエンティティ変化特性を抽出するために3Dグラフィックソフトウェア306及びアニメーション編集モジュール308とインタフェースする。エンティティ変化特性は後に詳細に説明される。] 図3
[0097] 運動平滑化
図4は、本発明の一実施例によるモーションキャプチャデータの編集に含まれるステップを示すフローチャートである。編集プロセスは、モーションキャプチャデータを本発明の実施例による運動アニメーションに使用できるアニメーションデータファイルに変換する。アニメーションデータファイルは各エンティティアニメーションに対して複数のキーフレームを含むことができる。アニメーション中の各キーフレームに必要とされるデータはモーションキャプチャデータから直接得る必要はない。代わりに、アニメーション中の一以上のキーフレームのデータは計算することができ、例えば中間キーフレームに必要とされるデータは最初及び最後のキーフレームから以下に記載する平滑化処理により得ることができる。] 図4
[0098] アニメーションの編集は、モーションキャプチャデータ中の一以上のモーションキャプチャフレームを識別することにより始まる。本例では、最初と最後のモーションキャプチャフレームがステップ400で識別されるが、任意の他のモーションキャプチャフレーム又は単一のモーションキャプチャフレームを識別することもできる。最初と最後のモーションキャプチャフレーム内のエンティティのポーズ、即ちエンティティの位置及び向きがステップ402で識別される。エンティティはステップ404で3Dグラフィックソフトウェアアニメーション(例えば上記の3DスタジオMax(登録商標))により生成される3D環境内に置かれる。エンティティは、例えば3Dグラフィックソフトウェアにより規定される仮想環境の名目上の原点に置くことができる。エンティティの向きは3Dグラフィックソフトウェアにより規定される仮想環境内の名目上の基準方向の向きと一致させることができる。]
[0099] アニメーション中の最初のキーフレームに対するエンティティの位置及び向きデータはステップ406で計算される。最後のキーフレームに対するエンティティの位置及び向きデータはステップ408で計算される。アニメーションの最初及び最後のキーフレーム間の一以上の中間キーフレームに対するエンティティの位置及び向きデータはステップ410で計算される。中間キーフレームに対するエンティティの位置及び向きデータは、最初及び最後のキーフレームからのエンティティ位置及び向きデータを用いて計算できる。]
[0100] 本発明の実施例では、腰骨の運動と関連するモーションキャプチャデータを処理して、階層的に腰骨より上に位置する新しい平滑化された運動骨の運動と関連するデータを生成する。平滑化された運動骨の運動は仮想環境内の地上のアクタの位置及び向きを表すのに使用される。そして、腰骨の運動よりもむしろ平滑化された運動骨の運動をエンティティの運動を表すのに使用する。]
[0101] 平滑化された運動骨データが腰骨データから抽出されたとき、修正された腰骨データはそのままである。新しい平滑化された運動骨データと修正された腰骨データの複合効果は、アニメーションの総合外観を保存するために変更されてない元の腰骨データと同じになる。そうでない場合には、エンティティアニメーションは平滑化された運動骨の分離による骨階層の変化のために同じに見えない。]
[0102] 本発明の実施例によれば、平滑化された運動骨の位置及び向きは3人称パースペクティブビューにリンクされ、このビューにより制御するユーザがエンティティを見ることができる。平滑化された運動骨は仮想空間内を滑らかに動き回るため、腰骨のような他の骨が生じるかく乱運動を生成することなくより自然な3人称パースペクティブビューが提供される。]
[0103] 各アニメーションに対して平滑化された運動骨の運動に関するデータを含む一つ以上のエンティティ運動の基準ファイルを生成することができる。このエンティティ運動データはエンティティの位置及び向きを規定するデータを含むことができる。]
[0104] 本発明の一実施例においては、各キーフレームにおける平滑化された運動骨に対するエンティティ位置データは腰骨位置より固定距離下にあるものとして計算され、例えばその高さは当該キーフレームにおける任意の骨の最低位置より固定の小距離下に設定できる。平滑化された運動骨の位置は仮想空間のゼロハイトグランド位置より低くならないように制限できる。]
[0105] 本発明の一実施例においては、一つ以上のキーフレームにおける平滑化された運動骨の向きと関連するエンティティ向きデータを計算する。平滑化された運動骨は垂直に向き、一般にエンティティに対して前進中に回転できる。各キーフレームに対する平滑化された運動骨の向きは、エンティティを3DスタジオMax(登録商標)などの3Dグラフィックソフトウェアにより生成される仮想環境内に位置させることにより計算される。エンティティは仮想環境の名目上の原点に、名目上の基準方向、例えば3DスタジオMax(登録商標)における負のy軸がアニメーションの開始ポーズの前方向、即ちアニメーションの最初のキーフレームにおける前方向とみなせるよう位置させることができる。]
[0106] 特定のポーズに対する前方向は当該ポーズに対する基準ファイルから得ることができる。例えば、「ランアニメーション開始ポーズ」という名称のポーズで開始するランアニメーションを取る。ランアニメーションに対するモーションキャプチャスタジオからのデータはワールド座標の原点に立ち前を向いているアクタで開始するものとみなせる。そして、ランアニメーション開始ポーズで開始するアニメーションの初期フレームは基準フレームとして使用される。従って、腰骨が該当フレームにおいていかなる角度でも、腰骨の開始角度は前方向に対して決定される。]
[0107] 図5a及び5bは本発明の一実施例によるキーフレームにおけるエンティティ向きデータの計算を示す。] 図5a
[0108] アニメーション中の最初のフレームに対して基準方向と腰骨に垂直の方向との間の角度を計算し、アニメーション用の基準ファイルに記憶する。本発明の一実施例によるこの処理は図5aに示されている。] 図5a
[0109] アニメーション中の最初のキーフレーム500はアニメーションの最初のキーフレームにけるエンティティのみなし前方向と一致する基準方向506を示す。]
[0110] エンティティの腰骨は要素510として示され、その向きは方向504で規定される。基準方向506と腰骨向き方向504との間の角度θ1は508で示されている。]
[0111] 同様に、アニメーション中の最後のキーフレームに対して基準方向と腰骨向き方向との間の角度が計算され、アニメーション用の基準ファイルに記憶される。本発明の一実施例によるこの処理は図5bに示されている。] 図5b
[0112] アニメーション中の最後のキーフレーム502はアニメーションの最初のキーフレームの基準方向506と一致する基準方向514を含む。エンティティの腰骨は要素518として示され、腰骨はアニメーションの最初のキーフレームにおける腰骨と異なる方向に向いており、この場合には方向512である。基準方向514と腰骨向き方向512との間の角度θ2は516で示されている。]
[0113] 角度θ1及びθ2はアニメーションの最初及び最後のフレームに対するエンティティの平滑化された運動骨のオフセットを規定する。それぞれのオフセットをモーションキャプチャされた腰前方向に加えて平滑化された運動骨の方向、即ちこれらのキーフレームに対するエンティティの向きを与える。]
[0114] 本発明の一実施例においては、最初及び最後のキーフレーム間の中間キーフレームに対する平滑化された運動骨の向きは最初及び/又は最後のキーフレームにおける平滑化された運動骨の向きから計算される。これは、最初及び最後のキーフレームにおける平滑化された運動骨の向きの間で角度を平均化することにより達成できる。これは、最初及び最後のキーフレームにおける平滑化された運動骨の向きの間で角度の線形補間を行うことにより達成することもできる。]
[0115] この処理は、アニメーション中にエンティティの平滑化された運動骨の滑らかな回転を提供する(なお、基準方向で規定される前方向に動くアニメーションに対して回転は与えられない)。]
[0116] 本発明の実施例によれば、エンティティのアニメーション中、クライアントでユーザが見る3人称パースペクティブビュー又は「カメラアングル」は平滑化された運動骨の運動にリンクされる。従って、ランアニメーションの例では、カメラはエンティティの背後を滑らかに前方へ移動し、不所望の左右の揺動を生じない。腰骨自体はそれでもまだアニメーション中自然に左右に揺動するため、エンティティのアニメーションはリアルなままとなる。]
[0117] キーフレーム内の平滑化された運動骨の位置及び向きを決定したら、マトリックス乗算のような変換を用いて修正腰位置を決定する。各キーフレームに対する平滑化された運動骨データ及び各キーフレームに対する修正腰骨データをアニメーションデータファイル(図3の304)に書き込み、編集プロセスを完了する。各エンティティの運動アニメーション又は一緒に単一のアニメーションデータファイルにグループ化された複数のアニメーションに対して別個のアニメーションデータファイルを生成することができる。] 図3
[0118] 骨階層内の修正されない骨と関連するデータ又はアニメーション内のオブジェクトの運動と関連するデータ、例えばボールや必要に応じ他の物体の運動を規定するデータを含む他のデータをアニメーションデータに付加することができる。このような他の物体は、アニメーション中でエンティティが手に持ったり、投げたり、落としたする剣や石などの武器又はバッグなどの物品を含むことができ、それらの運動もモーションキャプチャスタジオでアクタによりキャプチャすることができる。]
[0119] ゲームデータ
本発明の一実施例では、一つ以上のサーバがエンティティのアニメーションを一つ以上のクライアント上で制御する。このようなエンティティアニメーションを実行するために、サーバ及びクライアントは所定の機能要素を備え、所定のデータへのアクセスを必要とし、これらについて以下に図6−9を参照して説明する。] 図6
[0120] 図6は、本発明の一実施例によるサーバ機能要素を示す。サーバ600は、ネットワークを介して多数のクライアント間でプレイされるゲームを制御するゲーム制御モジュール612を含む。ゲーム制御モーション612はクライアントからネットワーク及び入力/出力インタフェース616を介して受信したユーザ制御入力を処理する。各エンティティの所望の運動及びシミュレートされる仮想環境を支配する多数のルールに基づいて、ゲーム制御モーション612は、各エンティティを仮想空間内でどのようにアニメートすべきかを決定し、適切な制御信号を入力/出力インタフェース616を介して各エンティティに送る。] 図6
[0121] ゲーム制御モーション612が仮想環境をシミュレートするルールは特定のアプリケーションに依存する。サッカー試合の例では、ルールは各プレーヤの技量、経験又は身体能力に関連するルール又はどのプレーヤがタックルに成功又は失敗したか、またどのプレーヤが最初にボールに到達したかなどを決定するルールを含むことができる。このようなルールには確率関数を用いることができる。他のルールはピッチのサイズ、ゴールの位置、ゲームの長さ又は各チームのプレーヤの数などに関係する。ゲーム制御ルールはゲーム制御モジュール612がアクセスできるゲーム制御ルールデータベース604に格納される。]
[0122] サーバ600は、各クライアント上のエンティティに対して適切なアニメーションを選択するアニメーション選択モジュール610を含む。アニメーション選択モジュール610は、アニメーション選択ルールデータベース602に格納されたアニメーション選択ルールに従ってアニメーションを選択する。サーバ600は、仮想環境内における各エンティティの運動、例えば位置及び向き、をトラッキングするエンティティトラッキングモジュール614を含む。サーバ600は、エンティティトラッキングデータを格納するエンティティトラッキングデータデータベース606を含む。]
[0123] サーバ600は、アニメーションの最中におけるエンティティの位置及び向きの変化のようなエンティティ変化特性を格納するエンティティ変化特性データベース608も含む。エンティティ変化特性データベース608の内容の詳細は以下の図7の記載を参照されたい。] 図7
[0124] 図7は、本発明による一実施例によるサーバベースのアニメーションデータストレージを示す。サーバベースのアニメーションは図6に示すデータベース608に格納され、このデータベースはサーバ自体に位置させることができ、またサーバによりリモートアクセス可能にすることもできる。] 図6 図7
[0125] 表700内の「アニメーション識別子」の見出しを有する第1列は多数のアニメーションを識別するデータを含む。第2列710、第3列712及び第4列714はアニメーションに関連するエンティティ変化特性を含む。エンティティ変化特性はアニメーション中に変化する所定の特性、例えばエンティティの位置、向き及びタイミングに関係する。変化特性の使用により、エンティティがアニメーション中にどのように変化するかに関する情報、例えばアニメーション中、特にアニメーション終了時にエンティティがどこにあるか及び/又はどっちを向いているかに関する情報をサーバに与える。]
[0126] 「Δ(x、y、z)」の見出しを有する第2列710は、仮想環境内におけるエンティティの位置のx,y及びz方向(左右、前後及び上下)の変化(記号Δで示される)に関するアニメーションのエンティティ変化特性を含む。表に与えられるx、y、zの値は仮想環境における名目上の距離単位又はメトリックであり、適度の距離精度を与える。「Δ(θ)」の見出しを有する第3の列712は、仮想環境内におけるエンティティの向きの変化に関するアニメーションのエンティティ変化特性を含む。表に与えられるθの値は仮想環境における名目上の角度単位又はメトリックであり、適度の角度精度(この場合には度)を与える。「Δ(t)」の見出しを有する第4列は、仮想環境内におけるエンティティのタイミング変化に関するアニメーションのエンティティ変化特性を含む。表に与えられるtの値は仮想環境における名目上の時間単位又はメトリックであり、適度の時間制度(この場合には秒)を与える。]
[0127] 代表的な表700には、アニメーション識別子A1及びA2を有する2つのアニメーションのみが含まれるが、本発明の実施例ではもっと多くのアニメーション708が存在し得る。表700の第2行704は、x方向に1、y方向に2及びz方向に1の位置変化、45°の向き変化、及び3秒のタイミング変化を有するアニメーションA1含む。表700の第3行706は、x方向に2、y方向に5及びz方向に0の位置変化、90°の向き変化、及び4秒のタイミング変化を有するアニメーションA2を含む。]
[0128] 図8は本発明の一実施例によるクライアント機能要素を示す。クライアント800は、サーバ上のゲーム制御モジュール612により制御されないゲームの局面を制御するゲーム制御モジュール810を含む。クライアントゲーム制御ルールはゲーム制御モジュール810がアクセスし得るゲーム制御ルールデータベース802に格納される。] 図8
[0129] クライアント800は、エンティティ変化特性を格納するエンティティ変化特性データベース806も含む。エンティティ変化特性データベース806の内容の詳細は以下の図9の説明を参照されたい。] 図9
[0130] クライアント800は、仮想環境内におけるクライアントと関連する一以上のエンティティの運動、例えば位置及び方向、をトラッキングするエンティティトラッキングモジュール812を含む。クライアント800はエンティティトラッキングデータを格納するエンティティトラッキングデータベース804を含む。]
[0131] クライアント800は、仮想環境に3Dグラフィックをレンダリングする3Dグラフィックプロセッサ808を含む。クライアント800は、仮想環境のレイアウト、構造及び操作を規定する仮想環境エンジン814を含む。これは、例えばタッチライン、コーナフラッグ、広告板、ゴールポストなどのピッチの外観及び雰囲気を規定することを含み、また各エンティティ及びオブジェクを関連するアニメーションデータファイルに従ってその空間内でどのようにアニメートすべきかを規定することを含む。]
[0132] 図9は本発明の一実施例によるクライアントベースのアニメーションデータストレージを示す。そのデータは図8に示すデータベース806に格納することができ、このデータベースはクライアント自体に位置させることができ、またクライアントによりリモートアクセス可能にすることもできる。] 図8 図9
[0133] 表900は、図7の表700に示されるサーバに格納されるデータとほぼ同じデータを含み、従って同じ参照番号を使用している。しかし、表900は、仮想世界内にエンティティをアニメートするために使用する実際のデータを含むアニメーションデータファイルを含む追加の列916を備える。これらのアニメーションデータファイルはサーバに格納する必要はないが、サーバはどのアニメーションが所望のエンティティ運動の各々に対して適切であるかを決定するために各アニメーションに対するエンティティ変化特性の知識を持つことができる。] 図7
[0134] 本発明の一実施例では、クライアントはサーバに格納されたエンティティ変化特性のコピーを格納する。この場合には、サーバはクライアントに対してアニメーションを識別するだけでよく、クライアントは関連するアニメーションデータファイル(列916)及びその対応するエンティティ変化特性(910,912,914)ルックアップし、それに応じてエンティティを仮想環境内でアニメートすることができる。ここで、クライアントは前のアニメーションにより暗示される終了位置及び終了時間から一つのアニメーションの開始位置(場所及び方向)及び開始時間を推測する。これらの終了位置及び終了時間は選択されたアニメーションに対するエンティティ変化特性に基づいて計算され、各エンティティに対して直前に格納されたトラッキングデータに供給される。]
[0135] 本発明の代替実施例では、いつどこからアニメーションを仮想環境内でアニメートすべきかを仮想環境エンジン814に命令するために、アニメーションに対する開始位置(場所及び方向)及び開始時間の形の開始特性がサーバからクライアントへ送られる。]
[0136] 本発明の他の実施例では、クライアントはアニメーションデータファイル及び対応するアニメーション識別子を格納するだけでよい。この例では、サーバは、クライアントで仮想環境内にエンティティをアニメートするのに必要とされるエンティティ変化特性をクライアントに通知し、このようなデータをクライアントに予め格納する必要なない。この場合、各エンティティのトラッキングデータはエンティティ変化特性をクライアントに格納する実施例において上述したように計算することができる。]
[0137] 本発明のこれらのすべての実施例では、サーバは、仮想環境内でエンティティをアニメートするためにどのアニメーション又は一連のアニメーションを使用すべきかをクライアントに少なくとも命令する、例えば一以上のデータパケットの形の間欠的なメッセージを、必要に応じ開始特性及び/又はエンティティ変化特性と一緒に送る。このようなメッセージは規則的な時間インターバルで、又はサーバが必要と判断するとき、又は各クライアントからの更新要求に応答して送ることができる。]
[0138] エンティティのトラッキングがクライアントでエンティティ変化特性を用いて計算に基づいて実行される上述の実施例では、開始特性を含むメッセージも比較的長いインターバル(アニメーションメッセージ間のインターバルに比較して)で送ることができる。このようなメッセージはネットワークデータ伝送において起こり得る丸め誤差の影響を低減するのに役立ち、さもなければ仮想環境のサーバシミュレーションとクライアントシミュレーションとの不一致を生じ得る。]
[0139] ゲームプレイ
図10は、本発明の一実施例による仮想環境内におけるエンティティのアニメーション中にクライアント及びサーバで実行されるステップを示すフローチャートである。] 図10
[0140] サーバベースのゲームデータはステップ1000で初期化される。これは、所定のデータ、例えばゲーム用の制御データ及びエンティティトラッキングデータなど、をサーバのランダムアクセスメモリ(RAM)にローディングすることを含むことができる。]
[0141] クライアントベースのゲームデータはステップ1002で初期化される。同様に、これも、所定のデータをクライアントのランダムアクセスメモリ(RAM)にローディングすることを含むことができる。]
[0142] ユーザが仮想環境内でエンティティを動かしたいとき、例えばネットワーク上でゲームをプレイしたいとき、ステップ1004に示すように、クライアントはユーザ入力をそのクライアントデバイスで供給してそのエンティティが何をすべきかを指示する。ステップ1006で示すように、ユーザ入力を考慮して仮想環境内におけるエンティティの運動を追跡するためにトラッキングデータがクライアントで処理される。]
[0143] この情報は、ステップ1008において、一以上のエンティティ制御コマンドの形で、サーバにネットワーク(破線1024で示されている)を介してサーバに送信される。サーバはステップ1010においてエンティティ制御データを受信し、この制御データを解釈し、ステップ1012において対応するエンティティ運動アニメーションを選択する。これは、2以上のクライアントからエンティティ制御データを受信し、それに応じて各エンティティに対するエンティティ運動アニメーションを選択することを含むことができる。これは、クライアント上のアニメーションのために単一クライアントに対して2つ以上のアニメーションを順に選択することも含むことができる。]
[0144] サーバが各クライアントにどのアニメーションをプレイさせるかを選択する方法は、シミュレートする特定の仮想環境と関連する複数のルールにより決定することができる。このようなルールの例は図6のゲーム制御モジュール612に関連して上述されている。] 図6
[0145] クライアントから受信されたデータから、サーバはエンティティに対するユーザの所望の運動の知識を得る。サーバはエンティティをアニメートするのに使用可能なアニメーションの総合セットの知識も有する。この情報を用いて、サーバは所望のエンティティ運動に適切なアニメーション、又は必要に応じ、一緒につなぎ合わせすことができる一連のアニメーションを選択する。]
[0146] サーバは、エンティティの位置及び方向と関連するエンティティトラッキングデータ、例えばエンティティの平滑化された運動骨の位置及び/又は方向を用いてアニメーションを選択することもできる。このようなエンティティトラッキングデータはサーバに格納することができ、またクライアントに格納することもできる。]
[0147] アニメーションデータファイルはサーバ自体に格納する必要はなく、各クライアントにのみ格納される。各アニメーションは単一の整数識別子、例えば図9の最初の2列に示される全セットのアニメーションの表内のインデックスで識別することができる。サーバは、アニメーションデータ自体ではなく、アニメーションを識別するデータ及び他の関連パラメータのみを送ることができる。これは、ネットワークのデータフローを低減しつつエンティティのアニメーションを可能にする。これは、サーバとクライアントとの間のデータフローが多すぎる場合に生じるレイテンシー及び輻輳問題を避けるのに役立つ。サーバは、エンティティの平滑化された運動位置の運動の正確な表現を有し、この表現は各エンティティで表されるものと同じにすることができる。これは、すべてのクライアントが例えば自分及び他のエンティティのアニメーションを含むネットワークゲームにおけるアニメーションの進展の一貫したビューを有するようにするのに役立つ。] 図9
[0148] 選択されたアニメーションと関連するデータは次にステップ1014においてクライアントへネットワーク1024を介して送信される。よって、サーバは、どのアニメーション又はアニメーションのシーケンスを実行すべきかを、例えばゲーム開始時間、アニメーション開始時間、アニメーション開始時間における初期エンティティ位置(場所及び方向)及びアニメーション識別データで規定して、各クライアントに通知する。]
[0149] サーバはステップ1016において選択されたアニメーションに関連する一以上のエンティティ変化特性を検索し、ステップ108においてこれに対応してエンティティトラッキングデータを更新する。サーバは次にステップ1010に戻り、更なるエンティティ制御データの受信を待つ。]
[0150] サーバにより選択された運動アニメーションと関連するデータはステップ1020においてクライアントで受信され、ステップ1022においてこのデータはクライアントに格納された対応するアニメーションデータファイルに従ってエンティティを仮想環境内でアニメートするために使用される。]
[0151] クライアントは、ステップ1026において、選択されたアニメーションと関連するエンティティ変化特性を処理し、ステップ1028において、それに応じてエンティティトラッキングデータを更新する。クライアントはステップ1004に戻り、更なるユーザ入力の受信を待つ。]
[0152] 本発明の実施例では、ステップ1026の処理ステップは、サーバから受信したエンティティ変化特性を処理すること又はクライアントに格納されたエンティティ変化特性を処理することを含むことができる。同様に、ステップ1028のエンティティトラッキングデータの更新はクライアントに格納されたエンティティトラッキングデータを更新すること又はサーバから受信したエンティティトラッキングデータを更新することを含むことができる。]
[0153] ボールゲームにおいてエンティティがアニメートされる場合には、プレーヤの運動は各アニメーションに対する平滑化された運動骨と関連するデータから決定することができる。アニメーションの全部又は一部の間エンティティがボールのような物体をコントロールしている場合、例えば足でボールをドリブルしている場合、ボールの運動は適切なボールアニメーションデータから決定することができる。また、ボールがプレーヤのコントロール下にない場合、ボールの運動は3D仮想環境の場合には質量の運動を規定する物理的法則を用いてシミュレートすることができ、アニメーションデータを直接使用する必要はない。]
[0154] アニメーションの修正
仮想環境内のエンティティを本発明の一実施例に従ってアニメートする際、クライアントでエンティティをアニメートする前にアニメーションデータを修正する必要があり得る。この修正は、仮想環境内の別のエンティティのアニメーションと配列するためにエンティティの運動がアニメーションにわたり滑らかになるように実行することができ、またエンティティがボールなどの物体にもっとリアルに近づくように実行することができる。]
[0155] このような修正はアニメーションにおいてエンティティが動く距離の修正を含むことができる。この距離修正はエンティティの前方向又は横方向水平距離又は垂直距離を含むことができ、垂直距離の修正はエンティティがジャンプしてサッカーボールなどをヘッディングするようにアニメートする際に起こる。]
[0156] このような修正はアニメーション中のエンティティの動作のタイミングの修正を含むことができ、例えばエンティティをスピードアップ又はスローダウンしてアニメーションが仮想環境内で別のエンティティをタックルできる位置に到達するエンティティなどを示すことができる。]
[0157] このような修正はアニメーション中のエンティティが回転する角度の修正を含むことができる。0°〜360°のすべての角度に対するエンティティの回転と関連するデータを格納することは実用的でないため、クライアントは毎45°の回転角度のアニメーションデータだけを格納することができる。ユーザ制御入力が例えば35°の回転を指示する場合、サーバにより例えば45°の回転を含む適切なアニメーションを選択し、10度の回転修正を加えて45°回転を35°回転に修正することができる。]
[0158] エンティティ運動アニメーションを選択するとき(図10のステップ1012)、サーバはアニメーション修正が必要であることを判断することができる。このような場合には、サーバは修正識別データ及びアニメーション修正に必要なパラメータを選択された運動アニメーションと関連するデータと一緒にクライアントに送る(図1のステップ1014)。] 図1 図10
[0159] 格納されたアニメーションデータは複数のエンティティ運動アニメーションを含むことができ、各アニメーションは関連するエンティティ変化特性を有する。このような特性は例えばエンティティの位置又は向きがアニメーションの最中にどのように変化するかを規定する。別の例として、このような特性はエンティティの一以上の体部分の位置がアニメーションの最中にどのように変化するかを規定する。]
[0160] ユーザがエンティティ制御データを入力するとき、複数のエンティティ運動アニメーションから適切なエンティティ運動アニメーションを選択することができる。しかし、選択されたエンティティアニメーションは所望のエンティティ運動に十分に一致しないことがある。このような場合には、選択されたエンティティアニメーションは、エンティティ変化特性が所望のエンティティ動作に十分に適合するように修正することができる。]
[0161] 回転修正はアニメーション全体にわたり線形に加えることができる。しかし、原回転の大部分はアニメーション中の一部分のキーフレームに集中させることができる。多くの場合、これは特にボールがエンティティにコントロールされ、複雑な操作が含まれるかもしれない場合とすることができる。]
[0162] 回転修正をアニメーション全体にわたり加える場合、クライアントはエンティティが最初に左に回転し次に右に回転して戻ることを認識することができるが、これは望ましくない。]
[0163] それ故、回転の大部分が起こるアニメーションの部分を識別し、このタイミングデータをアニメーションと一緒に記録するのが望ましい。これはモーションキャプチャデータの編集(図2のステップ204)中に実行することができる。このプロセス部分は人間オペレータが3dsMax(登録商標)のようなソフトウェアを用いて実行して回転が開始し終了するアニメーション中の時間オフセットを識別することができ、またこのプロセス部分はコンピュータ実行イメージ処理技術を用いて半又は全自動的に実行することもできる。] 図2
[0164] このアニメーション部分を識別するタイミングデータは、編集されたアニメーションデータが一緒に照合されるときに(図2のステップ206)付加することができる。自動ビルドプロシージャ中に、タイミングデータはサーバ及びクライアント双方が利用し得る出力ファイルに格納することもできる。] 図2
[0165] 次に回転修正をアニメーションの識別部分にわたり加えることができる。回転修正は例えばアニメーションの識別部分にわたり線形に加えることができる。]
[0166] 回転角度の修正は地上における平滑化された運動骨の最終変位も修正する可能性が高い。それ故、回転角度修正が加えられるとき平滑化された運動骨の変位を修正することも望ましい。]
[0167] このような変位は、すべての回転修正が回転開始時に加えられるものと仮定することによって、回転修正の開始後の任意の時間に表すことができる。これは以下の擬似コードで記述することができる。]
[0168] クランプ関数は、クランプ(x,a,b)が最近値をa≦x≦bとなるようなxに戻すものと定義する。]
[0169] アニメーションの開始からの時間tにおける平滑化された運動骨の位置(場所及び方向)はT(t)と定義する。位置は、典型的には4×4マトリックスで表される変換の形の数学的表現として与えることができる。]
[0170] エンティティの垂直軸を中心とする角度θの回転は変換R(θ)として示す。]
[0171] アニメーション中の回転期間の開始及び終了はそれぞれ時間オフセットt0及びt1として示す。]
[0172] アニメーション中の時間tにおける修正角度(θ)を有する修正された平滑化運動骨位置Tmod(t)を表す変換は次のように構成する。
mod-_time = clamp(t, t0, t1)
mod_angle =θ*(mod_time−t0)/( t1−t0)
Tmod(t) =T(t0)*Tz(mod_angle)*inverse(T(t0))*T(t)]
[0173] 図11a及び11bは本発明の一実施例によるアニメーションの水平修正を示す。] 図11a
[0174] アニメーション中のエンティティの水平移動を修正する必要があるかもしれない。これは、例えばエンティティが静止しているボールに向かって走っている場合に起こる。エンティティがボールをコントロールするためには、多数のランアニメーションサイクルがプレイされた後にボールコントロールアニメーションがプレイされる必要がある。ボールコントロールアニメーションは、エンティティの足が丁度よいタイミング及び位置でボールに接触するような位置から開始するのが望ましい。従って、一般に、エンティティが所望の位置に到達するようにランアニメーションを短くしたり長くしたりする必要がある。]
[0175] 図11aはボール1100に接近するエンティティのステップを描写するアニメーションの3つの無修正のキーフレームのシーケンスを示す。ステップはエンティティの足が仮想環境の地面に接地する点である。この図に示される3つのキーフレームの間に、プレーヤの足が他の位置にある他のキーフレームが存在しうるが、これらのキーフレームはこの例では示されていない。] 図11a
[0176] 第1キーフレーム1128では、エンティティの左足1102がアイテム1104と一致している。第2キーフレーム1130では、エンティティの右足1106がアイテム1108と一致している。第3キーフレーム1132では、エンティティの左足1110がアイテム1112と一致する。]
[0177] ボールが右足得意の人によりキックされる場合には、その人は通常ボールへの助走を、ボールを右足でキックする際に左足の中心がボールの左側にボールの中心とほぼ一致する位置に接地するように調整する。]
[0178] 図11aにおいて、サーバが、ボールのキックをキーフレーム3(又は次のキーフレーム)で開始すべきであることを計算した場合、アニメーションはリアルに見えない。これは、左足1110の中心1114がボール1100の中心1116と一致しないためである。ボール1100の中心1116はエンティティの左足の中心から距離1118だけ離れている。] 図11a
[0179] 従って、ボールキックの前のキーフレーム内のエンティティのステップを、エンティティがボールに近づき足をアニメーションの第3キーフレーム1132においてボールと整列して接地するように調整するのが望ましい。]
[0180] 従って、サーバは所望のシーケンスを達成するためにはアニメーション移動をどのくらい調整すべきかを決定する。次に、この移動量をクライアントに知らせ、クライアントはこれに従ってアニメーションを処理する。この移動量は、任意の所定のアニメーションに対して妥当な限界値内に制限してアニメーションが許容可能な概観及び雰囲気を有するにすべきである。]
[0181] 図11bは所要の修正をエンティティのステップに加えるとアニメーションはどのように見えるかを示す。] 図11b
[0182] 第1キーフレーム1128では、エンティティの左足1102が今やアイテム1104より距離1120だけ先に位置するように修正される。第2キーフレーム1130では、エンティティの右足1106が今やアイテム1108より距離1122だけ先に位置するように修正される。第3キーフレーム1132では、エンティティの左足1110が今やアイテム1112より距離1124だけ先に位置するように修正される。この修正は、ボールがキックされるとき又はキックされようとしているときにエンティティの左足1110とボール1100の中心1126が今や整列するという所望の効果を生じる。]
[0183] 他のアクションがなければ、修正されたアニメーションをプレイするとき、エンティティの足はグランド上を滑るように見える。例えば、ランアニメーションがプレーヤを1.5メートルだけ前方に自然に移動させるものとし、その前方移動を0.5メートルだけ短くし、0.25メートルの横方向移動を付加する修正が加えられるものとする。プレーヤの足は修正が加えられるにつれてグランド上を滑るように見える。]
[0184] この問題は、各足がグランドに接地するアニメーション期間を識別することによって解決することができる。この場合には、逆脚運動学(インバースレッグキネマティクス)を用いてエンティティの脚運動を、各足が同じ期間だけ接地したままになるように調整することができる。これは、エンティティの大腿部、ひざ、ふくらはぎ、足首、足などの脚部分を修正された足配置に対して自然に見えるポーズになるように修正することを含むことができる。このような逆脚運動学補償を実行するために使用される数学及びアルゴリズムの詳細は当業者に明らかであり、ここには詳細に記載しない。]
[0185] サーバは、アニメーション修正を一以上のエンティティに関するアニメーション又はアニメーションのシーケンスに加えるべきであることを計算したら、この修正と関連するデータを関連するクライアントに送る。次にこの修正を、サーバあるいはクライアントの平滑化された運動骨の運動に対応するエンティティトラッキングデータに加えることができる。]
[0186] 上述の実施例は本発明の説明のための例として理解されたい。本発明の他の実施例も想定される。]
[0187] 以上の記載は、アニメーションの最初及び最終キーフレームに対する平滑化された運動骨データを計算し、このデータを用いて中間キーフレームに対する平滑化された運動骨データを計算することを説明している。代替実施例では、アニメーションの最初及び最終キーフレーム以外のキーフレーム、例えば中間キーフレームに対する平滑化運動骨データを最初に計算し、このデータを用いて最初及び最終キーフレームを含む他のキーフレームに対する平滑化運動骨データを生成してよい。他の代替実施例では、平滑化を実行せず、平滑化運動骨データはすべてのキーフレームに対して個別に計算してよい。]
[0188] 模範的な図11a及び図11bに示される移動修正はアニメーション中の3つより少ない又は多いキーフレームにわたり、あるいはアニメーション全体にわたり適用することができる。移動修正はこれらのキーフレームにわたり線形に又は非線形に加えていくつかのキーフレームにおいて他のキーフレームよりも大きな移動を生成することができる。移動修正には、図11a及び図11bのアイテム1104,1108及び1112に垂直の方向のエンティティの移動を修正することも含むことができる。] 図11a 図11b
[0189] クライアント−サーバベース構成について記載された本発明の実施例は他の構成に実現することもでき、その逆も可能である。]
[0190] いずれか一つの実施例に記載されたどの特徴も単独で又は記載された他の特徴と組み合わせて使用することがで、また他の任意の実施例又はそれらの任意の組み合わせの一つ以上の特徴と組み合わせて使用することもできると理解されたい。更に、上記されてない等価物及び変更例も添付の特許請求の範囲に特定されている本発明の範囲から離れることなく使用することができる。]
权利要求:

請求項1
仮想環境内におけるユーザ制御エンティティのクライアント上のアニメーションを制御するサーバベース方法であって、前記ユーザ制御はクライアントベースである、ものにおいて、前記方法は、サーバに、前記仮想環境内における第1エンティティのトラッキングと関連する第1エンティティのトラッキングデータを格納するステップと、前記サーバで、第1クライアントから、前記仮想環境内における前記第1エンティティのユーザ制御と関連するエンティティ制御入力データを受信するステップと、前記サーバで、前記第1クライアントから受信した前記入力データに基づいて、第1の複数のアニメーションから前記第1クライアントでアニメートすべき第1アニメーションを選択するステップと、前記サーバから前記第1クライアントへ、前記仮想環境内における前記第1エンティティの前記選択された第1アニメーションを識別する第1データを送信するステップと、前記第1クライアントでアニメートすべき前記選択された第1アニメーションと関連する一つ以上のエンティティ変化特性を検索するステップと、前記第1クライアントでアニメートすべき前記選択された第1アニメーションと関連する前記検索されたエンティティ変化特性に基づいて、前記格納された第1エンティティのトラッキングデータを更新するステップと、を備える、方法。
請求項2
前記第1クライアントでアニメートすべき前記第1アニメーションは、前記格納された第1エンティティのトラッキングデータに基づいて選択する、請求項1記載の方法。
請求項3
前記格納された第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティの位置のトラッキングと関連する位置データを含む、請求項1又は記載の方法。
請求項4
前記格納された第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティの向きのトラッキングと関連する向きデータを含む、請求項1−3の何れかに記載の方法。
請求項5
前記格納された第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティのタイミングのトラッキングと関連するタイミングデータを含む、請求項1−4の何れかに記載の方法。
請求項6
前記サーバで、前記第1の複数のアニメーションから前記第1クライアントでアニメートすべき追加のアニメーションを選択するステップと、前記サーバから前記第1クライアントへ、前記第1クライアントでアニメートすべき前記追加のアニメーションを識別する追加のデータを送信するステップと、前記選択された追加のアニメーションと関連する一つ以上の追加のエンティティ変化特性を検索するステップと、前記検索された追加のエンティティ変化特性に基づいて前記格納された第1エンティティのトラッキングデータを更新するステップと、を備える、請求項1−5の何れかに記載の方法。
請求項7
前記選択された第1及び追加のアニメーションはアニメーションに対して順に選択する、請求項6記載の方法。
請求項8
前記複数のアニメーションはモーションキャプチャデータから導出する、請求項1−7の何れかに記載の方法。
請求項9
前記サーバで、前記仮想環境内における第2エンティティのトラッキングと関連する第2エンティティのトラッキングデータを格納するステップと、前記サーバで、第2クライアントから、前記仮想環境内における前記第2エンティティのユーザ制御と関連するエンティティ制御入力データを受信するステップと、前記サーバで、前記第2クライアントから受信した前記入力データに基づいて、第2の複数のアニメーションから前記第2クライアントでアニメートすべき第1アニメーションを選択するステップと、前記サーバから前記第2クライアントへ、前記仮想環境内における前記第2クライアントでアニメートすべき前記選択された第1アニメーションを識別するデータを送信するステップと、前記第2クライアントでアニメートすべき前記選択された第1アニメーションと関連する一つ以上のエンティティ変化特性を検索するステップと、前記第2クライアントでアニメートすべき前記選択された第1アニメーションと関連する前記検索されたエンティティ変化特性に基づいて、前記格納された第2エンティティのトラッキングデータを更新するステップと、を更に備える、請求項1−8の何れかに記載の方法。
請求項10
前記第2クライアントでアニメートすべき前記第1アニメーションは前記格納された第2エンティティのトラッキングデータに基づいて選択する、請求項9記載の方法。
請求項11
前記検索された変化特性は前記サーバ上のメモリストレージから検索される、請求項1−10の何れかに記載の方法。
請求項12
前記第1及び第2の複数のアニメーションは一つ以上のエンティティアニメーションを共通に含む、請求項9−11の何れかに記載の方法。
請求項13
前記第1エンティティ及び前記第2エンティティが前記仮想環境内で相互作用する場合、前記第1の複数のアニメーションの選択が前記第2の複数のアニメーションの選択に依存する、請求項9−12の何れかに記載の方法。
請求項14
仮想環境内におけるユーザ制御エンティティのクライアント上の運動アニメーションのためのクライアントベース方法であって、前記ユーザ制御はクライアントベースである、ものにおいて、前記方法は、第1クライアントに、第1の複数のエンティティアニメーションを含むアニメーションデータを格納するステップと、第1クライアントで、仮想環境内における第1エンティティのトラッキングと関連する第1エンティティのトラッキングデータを処理するステップと、前記第1クライアントからサーバへ、前記仮想環境内における第1エンティティのユーザ制御と関連するエンティティ制御入力データを送信するステップと、前記第1クライアントで、前記サーバから前記第1の複数のエンティティアニメーションのうちの一つを識別する選択データを含む第1データを受信するステップと、前記第1クライアントで、前記受信された第1データ、前記第1クライアントに格納された前記アニメーションデータ及び前記第1エンティティのトラッキングデータに基づいて前記仮想環境内における前記第1エンティティをアニメートするステップと、を備える、方法。
請求項15
前記クライアントで、前記サーバから前記第1エンティティのトラッキングデータを受信するステップを備える、請求項14記載の方法。
請求項16
前記クライアントに、前記第1エンティティのトラッキングデータを格納するステップを備え、前記エンティティトラッキングデータを処理するステップは、前記エンティティトラッキングデータを前記クライアントの前記格納データから検索するステップを備える、請求項14又は15記載の方法。
請求項17
前記クライアントで、前記識別されたエンティティアニメーションと関連するエンティティ変化特性を処理するステップと、前記処理されたエンティティ変化特性に基づいて前記第1エンティティのトラッキングデータを更新するステップと、前記第1クライアントで、前記更新された第1エンティティのトラッキングデータに基づいて前記仮想環境内における前記第1エンティティを更にアニメートするステップと、を備える、請求項14−16の何れかに記載の方法。
請求項18
前記クライアントで、前記サーバから前記エンティティ変化特性を受信するステップを備える、請求項17記載の方法。
請求項19
前記エンティティ変化特性を前記クライアントに格納するステップを備え、前記エンティティ変化特性を処理するステップは、前記エンティティ変化特性を前記クライアントの前記格納データから検索するステップを備える、請求項17又は18記載の方法。
請求項20
前記第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティの位置のトラッキングと関連する位置データを含む、請求項14−19の何れかに記載の方法。
請求項21
前記第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティの向きのトラッキングと関連する向きデータを含む、請求項14−20の何れかに記載の方法。
請求項22
前記格納された第1エンティティのトラッキングデータは、一連のアニメーション中の前記第1エンティティのタイミングのトラッキングと関連するタイミングデータを含む、請求項14−21の何れかに記載の方法。
請求項23
前記受信された第1データは前記第1の複数のアニメーションのうちの一つの追加のエンティティアニメーションを識別する追加の選択データを含み、前記識別されたアニメーションを順にアニメートするステップを備える、請求項14−22の何れかに記載の方法。
請求項24
前記格納アニメーションデータはモーションキャプチャデータから導出される、請求項14−23の何れかに記載の方法。
請求項25
前記第1クライアントから遠く離れた第1クライアントに、第2の複数のエンティティアニメーションを含むアニメーションデータを格納するステップと、前記第2クライアントで、仮想環境内における第2エンティティのトラッキングと関連する第2エンティティのトラッキングデータを処理するステップと、前記第2クライアントから前記サーバへ、前記仮想環境内における第2エンティティのユーザ制御と関連するエンティティ制御入力データを送信するステップと、前記第2クライアントで、前記サーバから前記第2の複数のエンティティアニメーションのうちの一つを識別する第2選択データを含む第2データを受信するステップと、前記第2クライアントで、前記受信された第2データ、前記第2クライアントに格納された前記アニメーションデータ及び前記第2エンティティのトラッキングデータに基づいて前記仮想環境内における前記第2エンティティをアニメートするステップと、を備える、請求項14−24の何れかに記載の方法。
請求項26
前記第1及び第2の複数のアニメーションは一つ以上のエンティティアニメーションを共通に含む、請求項25の何れかに記載の方法。
請求項27
前記第1エンティティ及び前記第2エンティティが前記仮想環境内で相互作用する場合、前記第1の複数のアニメーションの選択が前記第2の複数のアニメーションの選択に依存する、請求項25又は26記載の方法。
請求項28
仮想環境内におけるユーザ制御エンティティの運動アニメーションのための方法において、前記方法は、モーションキャプチャデータから導出されるアニメーションデータであって、前記エンティティの個々の体部分に対する体部分運動データを含むエンティティ運動アニメーションを含むアニメーションデータを格納するステップと、前記仮想環境内における前記エンティティのユーザ制御運動と関連するエンティティ制御入力データを受信するステップと、前記仮想環境内における前記エンティティを前記格納アニメーションデータに従って3人称パースペクティブビューでアニメーションするステップとを備え、前記三人称パースペクティブビューの位置及び向きは前記体部分運動データの少なくとも一部分により決定される、方法。
請求項29
前記モーションキャプチャデータは複数のモーションキャプチャフレームを含み、前記3人称パースペクティブビューの位置及び向きは、前記モーションキャプチャフレーム間を平滑化することによって前記モーションキャプチャデータから導出される体部分に対する体部分運動データにより決定される、請求項28記載の方法。
請求項30
前記エンティティ運動アニメーションは複数のキーフレームを含み、キーフレームに対する前記3人称パースペクティブビューの位置は前記モーションキャプチャフレームの一つ以上のフレームにおける前記体部分の位置から導出し、キーフレームに対する前記3人称パースペクティブビューの向きは前記モーションキャプチャフレームの一つ以上のフレームにおける前記体部分の向きから導出する、請求項29記載の方法。
請求項31
前記一つ以上のモーションキャプチャフレームは前記複数のモーションキャプチャフレームの最初及び/又は最後のモーションキャプチャフレームを含む、請求項30記載の方法。
請求項32
キーフレームに対する前記3人称パースペクティブビューの向きを導出するステップは、一以上のモーションキャプチャフレーム内の前記体部分の向きと関連する一以上の方向を決定することを含む、請求項30又は31記載の方法。
請求項33
キーフレームに対する前記3人称パースペクティブビューの向きを導出するステップは、前記仮想環境内における前記一以上の体部分の向き方向と基準との関係を決定することを含む、請求項32記載の方法。
請求項34
前記基準は前記仮想環境内における基準方向である、請求項33記載の方法。
請求項35
前記関係は前記体部分の向き方向と前記基準方向との間の一以上の角度である、請求項34記載の方法。
請求項36
前記一以上の角度をキーフレームに対する前記3人称パースペクティブビューを決定するのに使用する、請求項35記載の方法。
請求項37
前記アニメーション中のキーフレームに対する前記3人称パースペクティブビューの向きは前記アニメーション中の2以上の他のキーフレームの3人称パースペクティブビューの向きを用いて計算する、請求項30−36の何れかに記載の方法。
請求項38
前記2以上の他のキーフレームは前記アニメーション中の最初と最後のキーフレームとする、請求項37記載の方法。
請求項39
前記アニメーション中のキーフレームに対する前記3人称パースペクティブビューの向きを前記アニメーション中の2以上の他のキーフレームの3人称パースペクティブビューの向きを用いて計算するステップは、最初と最後のキーフレームからのエンティティの向きを中間フレームにわたって平滑化することを含む、請求項37又は38記載の方法。
請求項40
前記平滑化は線形補間を含む、請求項39記載の方法。
請求項41
キーフレームに対する前記3人称パースペクティブビューの位置を導出するステップは、一以上のモーションキャプチャフレーム内の前記体部分の位置を移動させることを含む、請求項30−40の何れかに記載の方法。
請求項42
前記移動は、仮想環境内のエンティティの垂直高さ平面を固定量だけ減じることを含む、請求項41記載の方法。
請求項43
前記移動は前記仮想環境内において基準の高さで制限される、請求項41又は42記載の方法。
請求項44
前記エンティティはオステオイドキャラクタである、請求項28−43の何れかに記載の方法。
請求項45
前記体部分は前記エンティティの腰骨に対応する2つの体部分を含む、請求項31−44の何れかに記載の方法。
請求項46
仮想環境内においてユーザ制御エンティティの運動アニメーションを行う方法において、前記方法は、複数のエンティティ運動アニメーションを含むアニメーションデータであって、前記エンティティ運動アニメーションの各々は関連するエンティティ変化特性を有しているアニメーションデータを格納するステップと、前記仮想環境内における前記エンティティのユーザ制御運動と関連するエンティティ制御入力データを受信するステップと、前記入力データに基づいて、前記複数のエンティティ運動アニメーションから一つのエンティティ運動アニメーションを選択し、前記選択されたアニメーションを、前記選択されたアニメーションと関連するエンティティ変化特性が修正されるように修正するステップと、前記仮想環境内の前記エンティティを前記修正されたアニメーションに従ってアニメートするステップと、を備える、方法。
請求項47
前記エンティティ変化特性は前記エンティティ運動アニメーション内の前記エンティティの位置及び/又は向きを含み、前記選択されたアニメーションの修正は前記選択されたアニメーション中の前記エンティティの位置及び/又は向きを修正することを含む、請求項46記載の方法。
請求項48
前記エンティティ運動アニメーションは複数のキーフレームを含み、前記エンティティ変化特性は前記エンティティ運動アニメーション中の第1及び第2キーフレーム間の前記エンティティの位置及び/又は向きの変化を含む、請求項46又は47記載の方法。
請求項49
前記格納アニメーションデータはモーションキャプチャデータから導出される、請求項46−48の何れかに記載の方法。
請求項50
前記エンティティ運動アニメーションは前記エンティティの個々の体部分に対する体部分運動データを含み、前記エンティティ運動アニメーションと関連するエンティティ変化特性は、前記エンティティの前記体部分の一以上の位置及び/又は向きを含む、請求項46−49の何れかに記載の方法。
請求項51
前記選択されたアニメーションの修正は、前記選択されたアニメーション中の前記エンティティの一以上の体部分の位置及び/又は向きを修正することを含む、請求項50記載の方法。
請求項52
エンティティ運動アニメーションと関連する前記エンティティ変化特性は、前記第1及び第2キーフレーム間の前記一以上の体部分の位置及び/又は向きの変化を含む、請求項50又は51記載の方法。
請求項53
前記第1及び/又は前記第2のキーフレームは前記アニメーション中の最初及び/又は最後のキーフレームである、請求項48又は52記載の方法。
請求項54
前記格納アニメーションデータはオブジェクアニメーションデータを含み、前記オブジェクアニメーションデータは前記エンティティ運動アニメーション内の一以上のオブジェクの運動と関連し、前記修正は前記一以上の体部分の位置及び/又は向きを前記一以上のオブジェクに関して修正することを含む、請求項50−53の何れかに記載の方法。
請求項55
前記修正は、エンティティ運動アニメーションのキーフレームのうちで前記修正を加えるべきサブセットを識別することを含む、請求項48−54の何れかに記載の方法。
請求項56
前記キーフレームのサブセットとして、前記エンティティの所定の体部分が所定の位置及び/又は所定の向きにあるキーフレームを識別する、請求項55記載の方法。
請求項57
前記キーフレームのサブセットとして、所定のオブジェクが所定の位置及び/又は所定の向きにあるキーフレームを識別する、請求項55又は56記載の方法。
請求項58
前記所定の体部分は前記エンティティの足及び/又は頭とし、前記所定のオブジェクはボールとし、前記修正は前記足又は頭の位置及び/又は向きを前記ボールの位置及び/又は向きに関して修正することを含む、請求項57記載の方法。
請求項59
前記修正は、前記キーフレームのサブセット内の前記エンティティの一以上の脚部の位置及び/又は向きを修正するために逆脚運動学を使用することを含む、請求項55−58の何れかに記載の方法。
請求項60
前記修正は、前記エンティティ運動アニメーション中の一以上のキーフレームのタイミングを修正することを含む、請求項48−59の何れかに記載の方法。
請求項61
コンピュータで実行されるマルチプレーヤスポーツゲームであって、請求項1−60の何れかに記載の方法に従ってデータ通信網を介してアニメーションが実行され、各プレーヤは前記ゲーム内の一以上のエンティティを前記通信網を介してクライアントで制御することができるマルチプレーヤスポーツゲーム。
請求項62
請求項1−60の何れかに記載の方法を実行するように構成された装置。
請求項63
請求項1−60の何れかに記載の方法を実行するように構成されたコンピュータソフトウェア。
类似技术:
公开号 | 公开日 | 专利标题
US20190197756A1|2019-06-27|Animation control method for multiple participants
US10672172B2|2020-06-02|Time-dependent client inactivity indicia in a multi-user animation environment
US9566517B2|2017-02-14|System and method for visualizing synthetic objects within real-world video clip
US9022870B2|2015-05-05|Web-based game platform with mobile device motion sensor input
Miles et al.2012|A review of virtual environments for training in ball sports
US8451278B2|2013-05-28|Determine intended motions
KR101610702B1|2016-04-14|스프라이트 스트립 렌더러
US10293257B2|2019-05-21|Systems and methods for programmatically generating non-stereoscopic images for presentation and 3D viewing in a physical gaming and entertainment suite
US8824736B2|2014-09-02|Systems and methods for augmenting a real scene
Menache2000|Understanding motion capture for computer animation and video games
US7403202B1|2008-07-22|Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
US6488505B1|2002-12-03|System and method of vehicle competition with enhanced ghosting features
JP3579148B2|2004-10-20|多関節体の動きを生成するように複数の動きユニットを操作する方法及びそのシステム
US10460498B2|2019-10-29|Constraint evaluation in directed acyclic graphs
US8730245B2|2014-05-20|Defining an animation of a virtual object within a virtual world
US7847808B2|2010-12-07|Photographic mapping in a simulation
EP2187355B1|2014-02-19|System and method for dependency graph evaluation for animation
CN102129551B|2014-04-02|基于关节跳过的姿势检测
US9240067B2|2016-01-19|Animation of photo-images via fitting of combined models
RU2530708C2|2014-10-10|Связывание анимаций
CN102301313B|2013-10-30|视觉目标跟踪
US8615383B2|2013-12-24|Immersive collaborative environment using motion capture, head mounted display, and cave
US8217995B2|2012-07-10|Providing a collaborative immersive environment using a spherical camera and motion capture
US8177611B2|2012-05-15|Scheme for inserting a mimicked performance into a scene and providing an evaluation of same
US9968850B2|2018-05-15|System for providing virtual spaces for access by users
同族专利:
公开号 | 公开日
US20110119332A1|2011-05-19|
GB0722341D0|2007-12-27|
EP2219748A2|2010-08-25|
CN101854986A|2010-10-06|
WO2009063040A3|2009-11-12|
WO2009063040A2|2009-05-22|
GB2454681A|2009-05-20|
KR20100087716A|2010-08-05|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]