(57)【特許請求の範囲】
【請求項１】
コンピューターにより，仮想環境におけるキャラクターの物理的動作を制御する方法であって，前記コンピューター１０１は，物理エンジン１０２及びメモリ１０３を含み，
前記物理エンジン１０２からキャラクターの現在のポーズを取得するステップと，
前記メモリ１０３に格納された動作のグループから，前記現在のポーズに近い動作であり，かつターゲットとなるポーズに移行する動作を選択するステップと，
前記選択された動作を追跡するためにキャラクターを制御するステップとを含む，
方法。
【請求項２】
請求項１に記載の方法であって，
前記格納された動作データのフレームのすべてから，前記現在のポーズに最も近接するポーズを探索するステップをさらに含む，方法。
【請求項３】
請求項１に記載の方法であって，
前記動作を選択するステップでＫＤ木構造を使用するステップをさらに含む，方法。
【請求項４】
請求項１に記載の方法であって，
前記格納された動作は，モーションキャプチャーデータから導き出される，方法。
【請求項５】
請求項１に記載の方法であって，
選択された運動を追跡するようにキャラクターを制御することにより，追跡されている前記動作を変えるかどうかを，定期的に確認するステップをさらに含む，方法。
【請求項６】
請求項１に記載の方法であって，
現在のポーズから対象のポーズへ移行するとき，キャラクターの筋肉を動かす方法を計算すること，及びモーター駆動力のように筋力を使用することにより，前記キャラクターを前記選択された動作を追跡するように制御するための動作時の筋力を計算することをさらに含む，方法。
【請求項７】
仮想環境でキャラクターの物理的動作を制御するシステムであって，前記システム１０４は，物理エンジン１０２及びメモリ１０３を有するコンピューター含み，
前記物理エンジン１０２からキャラクターの現在のポーズを取得する手段と，
前記メモリ１０３に格納された動作のグループから，前記現在のポーズに近い動作であり，かつターゲットとなるポーズに移行する動作を選択する手段と，
前記選択された動作を追跡するためにキャラクターを制御する手段と，をさらに含む，
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，物理的動作制御の方法に関する。特に，本発明は，ゲームのようなシュミレート環境でロバスト動作を達成するため，動作選択アルゴリズムをキャラクター制御技術に組み合わせる方法に関する。
【背景技術】
【０００２】
ゲームのようなシュミレート環境でキャラクターの動作について考える時，究極目標は，キャラクターが，すべての行動に関して明確なアニメーションを必要とすることなく，自由に動き回れるようにすることである。シュミレートキャラクターのアニメーションを作り出すことは，比較的困難である。歩くといった人にとって簡単な動作であっても，クリエーターによりそれぞれの足がどのように前進するのかを明確に示さなければ再現できない。モーションキャプチャーからアニメーションを作り出すことは，このタスクをある程度軽減させるが，アニメーションについて不十分な点が多数存在する。一般的に，シュミレーションが多くの手続を要求する方向へ移行しているので，足の配置などの重要でない調節を除いて，周知の通り，アニメーションを作り出すこと又は変更することは，困難である。しかもなお悪いことに，このアニメーションの固定性は，通常，アニメーションを使用する現実の世界に物理的に結び付けられないことを意味する。最後に，スタイルの観点から，アニメーションは，大部分は不変であり，絶対確実なものである。キャラクターは，構わず同じ動作を行う。
【０００３】
用意されているアニメーションをより入念に変換させることにより上記問題を克服しようと試みがなされている。しかしながら，莫大な量のキャラクターの相互作用の状態を作り出すことは，複雑でうまくはいかない。アニメーションの目的は，行う動作の種類又は行動の種類の指示のみを必要とするデジタルアクターを与えること，及び満足のいくやり方で動こうとするデジタルアクターを与えることである。これは，物理的シュミレーションで自由に動けるキャラクターを必要とする。そのような状況では，アニメ制作者は，むしろ監督者になり，キャラクターが代わりに表現し，演じることで，動作を作り出す手間が不要になる。
【０００４】
非特許文献１には，様々な動作のキャラクター制御が開示されている。この文献の目的は，物理的なシュミレート環境に調和する動きを作り出すことができるアニメーション技術を達成することである。
【０００５】
米国特許第６９７２７６５号明細書には，グラフィックスインターフェース上のオブジェクトを含む３次元動画グラフィックス画像を生成する方法を開示している。このグラフィックス画像は，インタラクティブな動画となるように，リアルタイムに描画される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第６９７２７６５号明細書
【非特許文献】
【０００７】
【非特許文献１】Ｍａｒｃｏ  ｄａＳｉｌｖａ，Ｙｅｕｈｉ  Ａｂｅ，ａｎｄ  Ｊｏｖａｎ  Ｐｏｐｖｉｃ，  ‘Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  Ｈｕｍａｎ  Ｍｏｔｉｏｎ  Ｄａｔａ  ｕｓｉｎｇ  Ｓｈｏｒｔ−Ｈｏｒｉｚｏｎ  Ｍｏｄｅｌ−Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｎｔｒｏｌ’  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  Ｆｏｒｕｍ，２７（２），２００８，Ｐａｇｅｓ  ３７１−３８０
【発明の概要】
【発明が解決しようとする課題】
【０００８】
最近の研究は，様々な動作のキャラクター制御に集中している。
【０００９】
従って，本発明の目的は，ゲームなどのシュミレート環境で，ロバスト動作を達成するために物理的動作制御の方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために，本発明は，ロバストに制御できるキャラクターを作り出すべく，キャラクター制御技術と直感的に適した動作選択を組み合わせる。
【００１１】
言い換えると，本発明の主要な特徴は，動作選択アルゴリズムとキャラクター制御装置の組み合わせである。この組み合わせにより，本発明は，物理的環境でロバスト動作を達成することができる。本発明は，キャラクター制御装置だけでなく，動作選択を実現するプログラムを含むため，キャラクターの十分な動きを実現するのに，人間の動作の大まかな追跡で十分となる。本発明は，ゲーム世界において，デジタルアクター又はデジタルアバターを物理的シュミレートで自由に動かす。従って，このアクターは，全ての行動に関する明確なアニメーションを必要とすることなく自由に動くことができる。
【００１２】
本発明の第１の態様は，仮想世界でキャラクターの物理的な動作を制御する方法に関する。コンピューター１０１は，物理エンジン１０２及びメモリ１０３を含む。
【００１３】
初めに，コンピューター１０１は，物理エンジン１０２からキャラクターの姿勢を取得する。コンピューター１０１が，物理エンジン１０２からキャラクターの姿勢を取得する前に，コンピューター１０１は，メモリ１０３に格納された動作を読み込んでもよい。
【００１４】
次に，コンピューター１０１は，メモリ１０３に格納された動作のグループからある動作を選択する。選択された動作は，現在のポーズに近いポーズを含み，その後，対象のポーズにより近い他のポーズを含むことになる。
【００１５】
その結果，コンピューター１０１は，選択された動作を追跡するようにキャラクターを制御する。
【００１６】
本方法の一つの好ましい実施形態として，コンピューター１０１は，始動ポーズを探索する。この始動ポーズは，動作選択を行う時に動作フレーム内の現在のポーズに最も近接するポーズである。
【００１７】
本方法の一つの好ましい実施形態として，コンピューター１０１は，動作を選択する時，探索のためにＫＤ木構造を使用する。
【００１８】
本方法の一つの好ましい実施形態として，格納された動作は，モーションキャプチャデータから導き出される。
【００１９】
本方法の一つの好ましい実施形態として，コンピューター１０１は，追跡ステップ時に，追跡されている動作を変えるかどうかを確認する。
【００２０】
本方法の一つの好ましい実施形態として，コンピューター１０１は，モータ駆動力のように筋力を使用して，選択された動作を追跡するようキャラクターを制御するために，キャラクターの筋肉及び筋力を動かす方法を計算する。このとき，キャラクターは，現在のポーズから対象のポーズへ移行する。
【００２１】
本発明の第２の態様は，仮想環境でキャラクターの物理的動作を制御するシステムに関する。システム１０４は，上記記載の方法を実現する。コンピューター１０１は，上記方法を実現するプログラムを実装してもよい。コンピューター可読媒体は，プログラムを格納してもよい。システム１０４は，メモリ１０３有するコンピューター１０１を含む。システム１０４はさらに，キャラクターの姿勢を取得する手段と，動作を選択する手段と，キャラクターを制御する手段とを含む。上記手段は，ハードウエア資源又はプログラムによって実装されていてもよい。システム１０４は，本発明のアルゴリズムを実現するプログラムを格納してもよい。
【００２２】
キャラクターの姿勢を取得する手段は，メモリ１０３からキャラクターの姿勢を取得する。動作を選択する手段は前記現在のポーズに近い動作であり，かつターゲットとなるポーズに移行する動作を選択する。キャラクターを制御する手段は，選択された動作を追跡するためにキャラクターを制御する。上記手段は，ハードウエア資源又はプログラムによって実装されていてもよい。
【発明の効果】
【００２３】
本発明は，ゲームのようなシュミレート環境でロバスト動作を達成するため，物理的動作制御の方法を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は，本発明の方法を実現するフローチャートの例である。
【図２】図２は，本発明のシステムのブロック図の例を示す。
【図３】図３は，キャラクターの例を示す。キャラクターは，２足歩行するデジタルアクターである。
【図４】図４は，本発明の１つの実施形態に係る図２で示されるコンピューターの構成例を示すブロック図である。
【図５】図５本システムの作動方法のフローチャートを示す。
【図６】図６は，第１のメモリに格納された動作パターンの例を示す。
【発明を実施するための形態】
【００２５】
図１は本発明の方法を実現するフローチャートの例である。本発明の第１の態様は，コンピューターを利用した仮想環境でキャラクターの物理的動作を制御する方法に関する。
【００２６】
図１で示されるように，コンピューター１０１は，物理エンジン１０２からキャラクターの姿勢を取得する（ステップ１０１）。ステップ１０１の前に，コンピューター１０１は，１つのファイル又は複数のファイルからすべての動作を読み込んでもよく，物理的シュミレーションを初期化してもよい。その時コンピューター１０１は，図１で示されるステップを周期的に繰り返してもよい。初めに，コンピューター１０１は，初期のキャラクターの姿勢又はメモリ１０３に格納された動作を読み込んでもよい。メモリ１０３の例は，ハードディスク及びＣＤ−ＲＯＭである。物理エンジン１０２は，現在のポーズを読み込んでもよい。キャラクターの姿勢を取得する時，コンピューター１０１は，入力データを使用してもよい。ユーザーは，例えばキーボードやマウスによってシステムに入力データを入力してもよい。入力データを使用する時，コンピューター１０１は，キャラクターの動作を制御するため，キャラクターの姿勢情報を受け取る。キャラクターの姿勢は，キャラクターの現在のポーズを含む。メモリ１０３は，キャラクターの複数の潜在的なポーズを格納してもよい。メモリ１０３は，複数のポーズを含むすべてのポーズを格納してもよい。
【００２７】
コンピューター１０１は，格納された動作のグループからある動作を選択する（ステップ１０２）。選択された動作は，現在のポーズから対象のポーズになる動作である。もしも，対象のポーズが現在のポーズに関連するポーズとして格納されているならば，格納された対象のポーズならどんなポーズでも，対象のポーズの候補になる。メモリ１０３は，動作を格納する。選択された動作は，現在のポーズに近いポーズを含み，その後，対象のポーズにより近い他のポーズを含むことになる。コンピューター１０１は，現在のポーズ及び対象のポーズとみなす動作を選択してもよい。コンピューター１０１は，現在のポーズのみをみなす動作を選択し，現在のポーズに最も近接するポーズを含む動作を決定してもよい。動作を選択する時，コンピューター１０１は，現在のポーズとメモリ１０３に格納された動作の初めの姿勢の類似点を計算し，対象のポーズと動作の終わりの類似点を計算してもよい。コンピューター１０１は，キャラクターの歩幅，キャラクターの向き，及びオブジェクトを考慮する対象のポーズを計算する。
【００２８】
キャラクターの物理的ポーズのすべてを記憶するのは不可能である。したがって，コンピューター１０１は，ステップ１０１で読み取られたキャラクターの姿勢に近い現在のポーズを探索してもよい。コンピューター１０１は，最近接のポーズを探索する。最近接のポーズは，現在のポーズに最も近い，格納されたポーズである。最近接のポーズは，始動ポーズになる。メモリ１０３は始動ポーズを格納してもよく，コンピューター１０１は，現在のポーズに最も近い始動ポーズを選択又は算出してもよい。コンピューター１０１は，動作フレーム中の最近接ポーズを探索してもよい。動作フレームは，キャラクターが，始動ポーズから対象のポーズへ移行する期間を意味する。
【００２９】
コンピューター１０１は，動作を選択する時，ＫＤ木構造を使用してもよい。言い換えると，メモリ１０３は，ｋ次元木構造となってもよい。この木の各ノードは，キャラクターのポーズに対応している。
【００３０】
メモリ１０３は，モーションキャプチャーデータから導かれる動作を格納してもよい。格納された動作は，計算されたデータから導かれてもよい。メモリ１０３は，始動ポーズ及び最終ポーズに関連する動作を格納してもよい。メモリ１０３は，キャラクターの姿勢とキャラクターの速度に関する情報を含んでもよい。さらに，メモリ１０３は，オブジェクト及びモーションキャプチャーデータだけでなくオブジェクトとキャラクターの関係を格納してもよい。メモリ１０３は，キャッシュメモリ，ＲＡＭ，ＲＯＭ，ハードディスク，コンピューター１０１と接続するメモリカード，及び他のメモリ装置又はそれらの組み合わせであってもよい。
【００３１】
コンピューター１０１は，選択された動作を追跡するようにキャラクターを制御する（ステップ１０３）。レンダリングエンジンは，キャラクターを表現する。
【００３２】
コンピューター１０１は，追跡される動作を変えるかどうかを定期的に確認する。例えば，コンピューター１０１は，一定の間隔でキャラクターの姿勢に近い新しい始動ポーズを探索してもよく，ステップ１０２に従って新しい動作を選択してもよい。
【００３３】
コンピューター１０１は，現在のポーズから対象のポーズへ移行する時，キャラクターを動かす筋力とキャラクターの筋肉を動かす方法を計算してもよい。コンピューター１０１は，モーター駆動力のように筋力を使用することで，選択された動作を追跡するようにキャラクターを制御することができる。キャラクターの筋肉と筋力を動かす計算方法は，すでに知られている。例えば，非特許文献１は，その方法の例を開示している。
【００３４】
図２は，本発明のシステムのブロック図の例を示す。本発明の第２の態様は，仮想環境でキャラクターの動作を制御するシステムに関する。システム１０４は，上記方法を実現する。図２で示されるように，システム１０４は，メモリ１０３を有するコンピューター１０１を含む。システム１０４はさらに，キャラクターの姿勢を取得する手段，動作を選択する手段，及びキャラクターを制御する手段を含む。その手段は，ハードウエア資源又はプログラムによって実装されていてもよい。システム１０４は，本発明のアルゴリズムを実装するプログラムを格納してもよい。システム１０４は，仮想世界でキャラクターを表現するために，レンダリングエンジン１０５を含んでいてもよい。物理エンジンの例は，インテルのＨａｖｏｋ物理エンジンである。
【００３５】
図３は，キャラクターの例を示す。キャラクターは２足歩行のデジタルアクターである。キャラクターは，自由関節，固定関節，及び球関節を有する。キャラクターは，２次元仮想世界で２次元モデルであってもよく，３次元仮想世界で３次元モデルであってもよい。
【００３６】
図４は，本発明の１つの実施形態に係る，図２に示されるコンピューターの構成例を示すブロック図である。
【００３７】
操作入力部２１は，動力スイッチなどのスイッチと十字キーなどのキーで構成されている。
【００３８】
機械本体１０内に配置されたサーキットは，制御部１１，ＲＡＭ１２，ハードディスクドライブ（ＨＤＤ）１３，音響処理部１４，グラフィックス処理部１５，通信インターフェース１７，インターフェース部１８，フレームメモリ１９，及びカードスロット２０を含む。制御部１１，ＲＡＭ１２，ＨＤＤ１３，音響処理部１４，グラフィックス処理部１５，通信インターフェース１７，及びインターフェース部１８は，それぞれインターバス２２に接続されている。
【００３９】
ＣＰＵ，ＲＯＭなどを含む制御部１１は，ＨＤＤ１３又は記憶媒体７０に格納された制御プログラムに従って，ゲーム機１００全体を制御する。制御手段１１は，例えば割り込みタイマーを生成するのに使用される内蔵タイマーが備わっている。ＲＡＭ１２も制御部１１の作動領域として使用される。
【００４０】
音響信号のＤ／Ａ及びＡ／Ｄ変換を行う音響出入力インターフェース機能を備える，音響処理部１４は，例えばスピーカーで構成される音響出力装置３０に接続されている。音響処理部１４は，制御部１１からの音響出力指示に従って，音響信号を音響出力装置３０に出力する。制御部１１は，複数の制御プログラムに従って，処理を実行する。
【００４１】
グラフィックス処理部１５は，第１の画像表示部５１と第２の画像表示部５２を有する画像装置５０に接続されている。グラフィックス処理部１５は，制御部１１の描画指示に従って，画像をフレームメモリ１９に送る。また，グラフィックス処理部１５は，画像を画像表示部５１と５２に表示するために，ビデオ信号を表示装置５０に出力する。ビデオ信号によって表示された画像の切り替え時間は，例えば，フレームごとに１/３０秒に設定する。
【００４２】
プログラムなどが格納されている記録媒体７０は，カードスロット２０に挿入されている。本実施形態の記録媒体７０は，書き込み可能なフラッシュメモリなどの半導体メモリである。通信インターフェース１７は，無線又は有線の他のゲーム機１００に接続でき，インターネットなどの通信ネットワークにも接続可能である。機械本体１０は，通信インターフェース１７の通信機能により，他のゲーム機１００と互いにやり取りができる。
【００４３】
操作入力部２１，カードスロット２０，及びタッチパネル４０は，インターフェース部１８に接続されている。ＲＡＭ１２上のインターフェース部１８は，プレーヤー（ユーザー）の操作に基づく操作入力部２１から指示データを格納し，タッチペン４１などにより，タッチパネルへのプレーヤーの操作に基づく指示データを格納する。それから，制御部１１は，ＲＡＭ１２に格納された指示データに従って，算術処理を実行する。
【００４４】
タッチパネル４０は，画像表示部５１及び５２の一方又は両方の表示画面の端に積層されている。従って，タッチパネル４０が積層されている，画像表示部５１及び５２の一方又は両方の表示画面の端の表示タイミングと，タッチペン４１によるタッチパネル４０への操作タイミングと，姿勢座標を管理，制御することにより，プレーヤーの入力操作に応じる入力情報を認識する。表示装置５０は，画像表示部５１及び５２などの複数の画像表示部を有する代わりに，１つの画像表示部により表示画面を構成してもよい。
【００４５】
インターフェース部１８は，制御部１１からの指示に従って，ＲＡＭ１２に格納されたゲームの進行を表示するデータをカードスロット２０が挿入されている記憶媒体７６に格納すること，又は，記憶媒体７０に格納された中断時のゲームデータを読み取ることなどの，処理を実行する。
【００４６】
ゲーム機１００上でゲームを楽しむための制御プログラムなどの様々なデータは，記憶媒体７０に格納されている。記憶媒体７０に格納されている制御プログラムなどの様々なデータは，記憶媒体７０に挿入されるカードスロット２０を通して制御部１１により読み取られ，ＲＡＭ１２にロードされる。
【００４７】
制御部１１は，ＲＡＭ１２にロードされた制御プログラムに従って，グラフィックス処理部１５に描画指示を出力すること，又は，音響処理部１４に音響出力指示を出力することなど，様々な処理を行う。制御部１１はその様な処理を行う一方で，ゲームの進行に応じて中途で発生するデータは，作業メモリとして使用されるＲＡＭ１２に格納される。
【実施例１】
【００４８】
実施例１においては，物理的シュミレート２足歩行のキャラクター，すなわちデジタルキャラクターの自由制御に関する，汎用ロバストシステムを取得するため，動作選択と従来のキャラクター制御方法の融合を実証した。例えば循環式歩行制御装置又は所定の環境で所定の動作を学習する制御装置よりむしろ，ほとんどの場合，本発明の適用アルゴリズムを使用した。
【００４９】
図５は，本システムの作動方法のフローチャートを示す。図５で示されるように，本システムは，ファイルから全ての動作を読み取り（ステップ２０１），物理的シュミレーションを初期化する。それから本システムは，以下のステップを周期的に繰り返す。本システムは，物理エンジンからキャラクターの姿勢を読み取る（ステップ２０２）。本システムは，前記現在のポーズに近い動作であり，かつターゲットとなるポーズに移行する動作を探索する(ステップ２０３)。本システムが動作を追跡することに関して（ステップ２０３のうちに変化してもよい），本システムは，現在の姿勢から動作の姿勢に近づくように最適な筋肉の作動方法を将来的には短時間（例えば０．０５秒）で計算する(ステップ２０４)。この計算は，当該技術分野では周知のコードのいくつかを含む。このコードは，関節力学アルゴリズム及び２次式最適化問題の解法を含む。本システムは，ステップ２０４で計算された筋力を，モーター駆動力のように，物理的シュミレーションで適用する（ステップ２０５）。本システムは，短時間のステップ（例えば０．０５秒）で，物理的シュミレーションを進行する（ステップ２０６）。
【００５０】
本システムは，キャラクター制御装置，動作選択手段，オブジェクト制御装置，及びメモリを含む。
【００５１】
メモリは，キャラクターを読み込む情報を格納する。その情報には，キャラクターの現在の状態とキャラクターの動作が含まれる。キャラクターは，ゲーム空間のアバターである。メモリは，データベース及びＲＡＭ，又はデータベースのみであってもよい。データベースは，ＲＡＭ（起動時にファイルから読み込まれている）に格納された動作のリストである。キャラクターの姿勢は，Ｈａｖｏｋ物理エンジンであるシュミレーションによって表現されている。この情報は，その後まもなく，画面に表示される。
【００５２】
図６は，第１のメモリに格納された動作の例を示す。図６に示されるように，メモリの例は，キャラクターの現在の状態に関連する各動作を格納する。例えば，現在の状態Ａについては，動作Ａ−１，Ａ−２，及びＡ−３が格納されている。
現在の状態は，キャラクターの脚の現在の姿勢であってもよい。動作は，キャラクターの現在の状態，及びキャラクターが接触するオブジェクトの状態について，格納されていてもよい。
【００５３】
メモリは，ゲーム空間のオブジェクトに関する情報を格納してもよい。情報は，現在の姿勢，各オブジェクトのサイズとカラーを含む。オブジェクトの例は，仮想世界の床，障害物，及び他のキャラクターである。
【００５４】
キャラクター制御装置は，キャラクターの動作を制御する。キャラクター制御装置は，キャラクターがオブジェクトのいずれか一つに接触することを，オブジェクト制御装置が決定するとき，初めの動作を除いて，キャラクターの動作を制御してもよい。物理エンジンは，引力などの物理の法則に従って，キャラクターを絶えず動かし，キャラクター制御装置は，キャラクターが筋肉を働かせるように動かす。
【００５５】
動作選択手段は，キャラクターの現在の状態を考慮するメモリからキャラクターの動作を選択する。動作選択手段は，キャラクターの現在の状態の情報による動作を選択する。動作選択手段は，メモリに格納された動作のグループからある動作を不規則に選択してもよい。
【産業上の利用可能性】
【００５６】
本発明のシステムは，ゲーム業界にとって有益である。
【図１】
0005318070.tif 000002
【図２】
0005318070.tif 000003
【図３】
0005318070.tif 000004
【図４】
0005318070.tif 000005
【図５】
0005318070.tif 000006
【図６】
0005318070.tif 000007