説明

物理的2足歩行キャラクターを制御するためのロバスト動作選択

【課題】ゲームなどのシュミレート環境でロバスト動作を達成させるために,物理的動作制御の方法を提供する。
【解決手段】コンピューターを利用した,仮想環境でキャラクターの物理的動作を制御する方法であって、コンピューターは,キャラクターの姿勢を取得し,格納された動作のグループからある動作を選択し,そのときコンピューターは,選択された動作を追跡するようにキャラクターを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,物理的動作制御の方法に関する。特に,本発明は,ゲームのようなシュミレート環境でロバスト動作を達成するため,動作選択アルゴリズムをキャラクター制御技術に組み合わせる方法に関する。
【背景技術】
【0002】
ゲームのようなシュミレート環境でキャラクターの動作について考える時,究極目標は,キャラクターが,すべての行動に関して明確なアニメーションを必要とすることなく,自由に動き回れるようにすることである。シュミレートキャラクターのアニメーションを作り出すことは,比較的困難である。歩くといった人にとって簡単な動作であっても,クリエーターによりそれぞれの足がどのように前進するのかを明確に示さなければ再現できない。モーションキャプチャーからアニメーションを作り出すことは,このタスクをある程度軽減させるが,アニメーションについて不十分な点が多数存在する。一般的に,シュミレーションが多くの手続を要求する方向へ移行しているので,足の配置などの重要でない調節を除いて,周知の通り,アニメーションを作り出すこと又は変更することは,困難である。しかもなお悪いことに,このアニメーションの固定性は,通常,アニメーションを使用する現実の世界に物理的に結び付けられないことを意味する。最後に,スタイルの観点から,アニメーションは,大部分は不変であり,絶対確実なものである。キャラクターは,構わず同じ動作を行う。
【0003】
用意されているアニメーションをより入念に変換させることにより上記問題を克服しようと試みがなされている。しかしながら,莫大な量のキャラクターの相互作用の状態を作り出すことは,複雑でうまくはいかない。アニメーションの目的は,行う動作の種類又は行動の種類の指示のみを必要とするデジタルアクターを与えること,及び満足のいくやり方で動こうとするデジタルアクターを与えることである。これは,物理的シュミレーションで自由に動けるキャラクターを必要とする。そのような状況では,アニメ制作者は,むしろ監督者になり,キャラクターが代わりに表現し,演じることで,動作を作り出す手間が不要になる。
【0004】
非特許文献1には,様々な動作のキャラクター制御が開示されている。この文献の目的は,物理的なシュミレート環境に調和する動きを作り出すことができるアニメーション技術を達成することである。
【0005】
米国特許第6972765号明細書には,グラフィックスインターフェース上のオブジェクトを含む3次元動画グラフィックス画像を生成する方法を開示している。このグラフィックス画像は,インタラクティブな動画となるように,リアルタイムに描画される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許第6972765号明細書
【非特許文献】
【0007】
【非特許文献1】Marco daSilva,Yeuhi Abe,and Jovan Popvic, ‘Simulation of Human Motion Data using Short−Horizon Model−Predictive Control’ Computer Graphics Forum,27(2),2008,Pages 371−380
【発明の概要】
【発明が解決しようとする課題】
【0008】
最近の研究は,様々な動作のキャラクター制御に集中している。
【0009】
従って,本発明の目的は,ゲームなどのシュミレート環境で,ロバスト動作を達成するために物理的動作制御の方法を提供することにある。
【課題を解決するための手段】
【0010】
上記の目的を達成するために,本発明は,ロバストに制御できるキャラクターを作り出すべく,キャラクター制御技術と直感的に適した動作選択を組み合わせる。
【0011】
言い換えると,本発明の主要な特徴は,動作選択アルゴリズムとキャラクター制御装置の組み合わせである。この組み合わせにより,本発明は,物理的環境でロバスト動作を達成することができる。本発明は,キャラクター制御装置だけでなく,動作選択を実現するプログラムを含むため,キャラクターの十分な動きを実現するのに,人間の動作の大まかな追跡で十分となる。本発明は,ゲーム世界において,デジタルアクター又はデジタルアバターを物理的シュミレートで自由に動かす。従って,このアクターは,全ての行動に関する明確なアニメーションを必要とすることなく自由に動くことができる。
【0012】
本発明の第1の態様は,仮想世界でキャラクターの物理的な動作を制御する方法に関する。コンピューター101は,物理エンジン102及びメモリ103を含む。
【0013】
初めに,コンピューター101は,物理エンジン102からキャラクターの姿勢を取得する。コンピューター101が,物理エンジン102からキャラクターの姿勢を取得する前に,コンピューター101は,メモリ103に格納された動作を読み込んでもよい。
【0014】
次に,コンピューター101は,メモリ103に格納された動作のグループからある動作を選択する。選択された動作は,現在のポーズに近いポーズを含み,その後,対象のポーズにより近い他のポーズを含むことになる。
【0015】
その結果,コンピューター101は,選択された動作を追跡するようにキャラクターを制御する。
【0016】
本方法の一つの好ましい実施形態として,コンピューター101は,始動ポーズを探索する。この始動ポーズは,動作選択を行う時に動作フレーム内の現在のポーズに最も近接するポーズである。
【0017】
本方法の一つの好ましい実施形態として,コンピューター101は,動作を選択する時,探索のためにKD木構造を使用する。
【0018】
本方法の一つの好ましい実施形態として,格納された動作は,モーションキャプチャデータから導き出される。
【0019】
本方法の一つの好ましい実施形態として,コンピューター101は,追跡ステップ時に,追跡されている動作を変えるかどうかを確認する。
【0020】
本方法の一つの好ましい実施形態として,コンピューター101は,モータ駆動力のように筋力を使用して,選択された動作を追跡するようキャラクターを制御するために,キャラクターの筋肉及び筋力を動かす方法を計算する。このとき,キャラクターは,現在のポーズから対象のポーズへ移行する。
【0021】
本発明の第2の態様は,仮想環境でキャラクターの物理的動作を制御するシステムに関する。システム104は,上記記載の方法を実現する。コンピューター101は,上記方法を実現するプログラムを実装してもよい。コンピューター可読媒体は,プログラムを格納してもよい。システム104は,メモリ103有するコンピューター101を含む。システム104はさらに,キャラクターの姿勢を取得する手段と,動作を選択する手段と,キャラクターを制御する手段とを含む。上記手段は,ハードウエア資源又はプログラムによって実装されていてもよい。システム104は,本発明のアルゴリズムを実現するプログラムを格納してもよい。
【0022】
キャラクターの姿勢を取得する手段は,メモリ103からキャラクターの姿勢を取得する。動作を選択する手段は前記現在のポーズに近い動作であり,かつターゲットとなるポーズに移行する動作を選択する。キャラクターを制御する手段は,選択された動作を追跡するためにキャラクターを制御する。上記手段は,ハードウエア資源又はプログラムによって実装されていてもよい。
【発明の効果】
【0023】
本発明は,ゲームのようなシュミレート環境でロバスト動作を達成するため,物理的動作制御の方法を提供することができる。
【図面の簡単な説明】
【0024】
【図1】図1は,本発明の方法を実現するフローチャートの例である。
【図2】図2は,本発明のシステムのブロック図の例を示す。
【図3】図3は,キャラクターの例を示す。キャラクターは,2足歩行するデジタルアクターである。
【図4】図4は,本発明の1つの実施形態に係る図2で示されるコンピューターの構成例を示すブロック図である。
【図5】図5本システムの作動方法のフローチャートを示す。
【図6】図6は,第1のメモリに格納された動作パターンの例を示す。
【発明を実施するための形態】
【0025】
図1は本発明の方法を実現するフローチャートの例である。本発明の第1の態様は,コンピューターを利用した仮想環境でキャラクターの物理的動作を制御する方法に関する。
【0026】
図1で示されるように,コンピューター101は,物理エンジン102からキャラクターの姿勢を取得する(ステップ101)。ステップ101の前に,コンピューター101は,1つのファイル又は複数のファイルからすべての動作を読み込んでもよく,物理的シュミレーションを初期化してもよい。その時コンピューター101は,図1で示されるステップを周期的に繰り返してもよい。初めに,コンピューター101は,初期のキャラクターの姿勢又はメモリ103に格納された動作を読み込んでもよい。メモリ103の例は,ハードディスク及びCD−ROMである。物理エンジン102は,現在のポーズを読み込んでもよい。キャラクターの姿勢を取得する時,コンピューター101は,入力データを使用してもよい。ユーザーは,例えばキーボードやマウスによってシステムに入力データを入力してもよい。入力データを使用する時,コンピューター101は,キャラクターの動作を制御するため,キャラクターの姿勢情報を受け取る。キャラクターの姿勢は,キャラクターの現在のポーズを含む。メモリ103は,キャラクターの複数の潜在的なポーズを格納してもよい。メモリ103は,複数のポーズを含むすべてのポーズを格納してもよい。
【0027】
コンピューター101は,格納された動作のグループからある動作を選択する(ステップ102)。選択された動作は,現在のポーズから対象のポーズになる動作である。もしも,対象のポーズが現在のポーズに関連するポーズとして格納されているならば,格納された対象のポーズならどんなポーズでも,対象のポーズの候補になる。メモリ103は,動作を格納する。選択された動作は,現在のポーズに近いポーズを含み,その後,対象のポーズにより近い他のポーズを含むことになる。コンピューター101は,現在のポーズ及び対象のポーズとみなす動作を選択してもよい。コンピューター101は,現在のポーズのみをみなす動作を選択し,現在のポーズに最も近接するポーズを含む動作を決定してもよい。動作を選択する時,コンピューター101は,現在のポーズとメモリ103に格納された動作の初めの姿勢の類似点を計算し,対象のポーズと動作の終わりの類似点を計算してもよい。コンピューター101は,キャラクターの歩幅,キャラクターの向き,及びオブジェクトを考慮する対象のポーズを計算する。
【0028】
キャラクターの物理的ポーズのすべてを記憶するのは不可能である。したがって,コンピューター101は,ステップ101で読み取られたキャラクターの姿勢に近い現在のポーズを探索してもよい。コンピューター101は,最近接のポーズを探索する。最近接のポーズは,現在のポーズに最も近い,格納されたポーズである。最近接のポーズは,始動ポーズになる。メモリ103は始動ポーズを格納してもよく,コンピューター101は,現在のポーズに最も近い始動ポーズを選択又は算出してもよい。コンピューター101は,動作フレーム中の最近接ポーズを探索してもよい。動作フレームは,キャラクターが,始動ポーズから対象のポーズへ移行する期間を意味する。
【0029】
コンピューター101は,動作を選択する時,KD木構造を使用してもよい。言い換えると,メモリ103は,k次元木構造となってもよい。この木の各ノードは,キャラクターのポーズに対応している。
【0030】
メモリ103は,モーションキャプチャーデータから導かれる動作を格納してもよい。格納された動作は,計算されたデータから導かれてもよい。メモリ103は,始動ポーズ及び最終ポーズに関連する動作を格納してもよい。メモリ103は,キャラクターの姿勢とキャラクターの速度に関する情報を含んでもよい。さらに,メモリ103は,オブジェクト及びモーションキャプチャーデータだけでなくオブジェクトとキャラクターの関係を格納してもよい。メモリ103は,キャッシュメモリ,RAM,ROM,ハードディスク,コンピューター101と接続するメモリカード,及び他のメモリ装置又はそれらの組み合わせであってもよい。
【0031】
コンピューター101は,選択された動作を追跡するようにキャラクターを制御する(ステップ103)。レンダリングエンジンは,キャラクターを表現する。
【0032】
コンピューター101は,追跡される動作を変えるかどうかを定期的に確認する。例えば,コンピューター101は,一定の間隔でキャラクターの姿勢に近い新しい始動ポーズを探索してもよく,ステップ102に従って新しい動作を選択してもよい。
【0033】
コンピューター101は,現在のポーズから対象のポーズへ移行する時,キャラクターを動かす筋力とキャラクターの筋肉を動かす方法を計算してもよい。コンピューター101は,モーター駆動力のように筋力を使用することで,選択された動作を追跡するようにキャラクターを制御することができる。キャラクターの筋肉と筋力を動かす計算方法は,すでに知られている。例えば,非特許文献1は,その方法の例を開示している。
【0034】
図2は,本発明のシステムのブロック図の例を示す。本発明の第2の態様は,仮想環境でキャラクターの動作を制御するシステムに関する。システム104は,上記方法を実現する。図2で示されるように,システム104は,メモリ103を有するコンピューター101を含む。システム104はさらに,キャラクターの姿勢を取得する手段,動作を選択する手段,及びキャラクターを制御する手段を含む。その手段は,ハードウエア資源又はプログラムによって実装されていてもよい。システム104は,本発明のアルゴリズムを実装するプログラムを格納してもよい。システム104は,仮想世界でキャラクターを表現するために,レンダリングエンジン105を含んでいてもよい。物理エンジンの例は,インテルのHavok物理エンジンである。
【0035】
図3は,キャラクターの例を示す。キャラクターは2足歩行のデジタルアクターである。キャラクターは,自由関節,固定関節,及び球関節を有する。キャラクターは,2次元仮想世界で2次元モデルであってもよく,3次元仮想世界で3次元モデルであってもよい。
【0036】
図4は,本発明の1つの実施形態に係る,図2に示されるコンピューターの構成例を示すブロック図である。
【0037】
操作入力部21は,動力スイッチなどのスイッチと十字キーなどのキーで構成されている。
【0038】
機械本体10内に配置されたサーキットは,制御部11,RAM12,ハードディスクドライブ(HDD)13,音響処理部14,グラフィックス処理部15,通信インターフェース17,インターフェース部18,フレームメモリ19,及びカードスロット20を含む。制御部11,RAM12,HDD13,音響処理部14,グラフィックス処理部15,通信インターフェース17,及びインターフェース部18は,それぞれインターバス22に接続されている。
【0039】
CPU,ROMなどを含む制御部11は,HDD13又は記憶媒体70に格納された制御プログラムに従って,ゲーム機100全体を制御する。制御手段11は,例えば割り込みタイマーを生成するのに使用される内蔵タイマーが備わっている。RAM12も制御部11の作動領域として使用される。
【0040】
音響信号のD/A及びA/D変換を行う音響出入力インターフェース機能を備える,音響処理部14は,例えばスピーカーで構成される音響出力装置30に接続されている。音響処理部14は,制御部11からの音響出力指示に従って,音響信号を音響出力装置30に出力する。制御部11は,複数の制御プログラムに従って,処理を実行する。
【0041】
グラフィックス処理部15は,第1の画像表示部51と第2の画像表示部52を有する画像装置50に接続されている。グラフィックス処理部15は,制御部11の描画指示に従って,画像をフレームメモリ19に送る。また,グラフィックス処理部15は,画像を画像表示部51と52に表示するために,ビデオ信号を表示装置50に出力する。ビデオ信号によって表示された画像の切り替え時間は,例えば,フレームごとに1/30秒に設定する。
【0042】
プログラムなどが格納されている記録媒体70は,カードスロット20に挿入されている。本実施形態の記録媒体70は,書き込み可能なフラッシュメモリなどの半導体メモリである。通信インターフェース17は,無線又は有線の他のゲーム機100に接続でき,インターネットなどの通信ネットワークにも接続可能である。機械本体10は,通信インターフェース17の通信機能により,他のゲーム機100と互いにやり取りができる。
【0043】
操作入力部21,カードスロット20,及びタッチパネル40は,インターフェース部18に接続されている。RAM12上のインターフェース部18は,プレーヤー(ユーザー)の操作に基づく操作入力部21から指示データを格納し,タッチペン41などにより,タッチパネルへのプレーヤーの操作に基づく指示データを格納する。それから,制御部11は,RAM12に格納された指示データに従って,算術処理を実行する。
【0044】
タッチパネル40は,画像表示部51及び52の一方又は両方の表示画面の端に積層されている。従って,タッチパネル40が積層されている,画像表示部51及び52の一方又は両方の表示画面の端の表示タイミングと,タッチペン41によるタッチパネル40への操作タイミングと,姿勢座標を管理,制御することにより,プレーヤーの入力操作に応じる入力情報を認識する。表示装置50は,画像表示部51及び52などの複数の画像表示部を有する代わりに,1つの画像表示部により表示画面を構成してもよい。
【0045】
インターフェース部18は,制御部11からの指示に従って,RAM12に格納されたゲームの進行を表示するデータをカードスロット20が挿入されている記憶媒体76に格納すること,又は,記憶媒体70に格納された中断時のゲームデータを読み取ることなどの,処理を実行する。
【0046】
ゲーム機100上でゲームを楽しむための制御プログラムなどの様々なデータは,記憶媒体70に格納されている。記憶媒体70に格納されている制御プログラムなどの様々なデータは,記憶媒体70に挿入されるカードスロット20を通して制御部11により読み取られ,RAM12にロードされる。
【0047】
制御部11は,RAM12にロードされた制御プログラムに従って,グラフィックス処理部15に描画指示を出力すること,又は,音響処理部14に音響出力指示を出力することなど,様々な処理を行う。制御部11はその様な処理を行う一方で,ゲームの進行に応じて中途で発生するデータは,作業メモリとして使用されるRAM12に格納される。
【実施例1】
【0048】
実施例1においては,物理的シュミレート2足歩行のキャラクター,すなわちデジタルキャラクターの自由制御に関する,汎用ロバストシステムを取得するため,動作選択と従来のキャラクター制御方法の融合を実証した。例えば循環式歩行制御装置又は所定の環境で所定の動作を学習する制御装置よりむしろ,ほとんどの場合,本発明の適用アルゴリズムを使用した。
【0049】
図5は,本システムの作動方法のフローチャートを示す。図5で示されるように,本システムは,ファイルから全ての動作を読み取り(ステップ201),物理的シュミレーションを初期化する。それから本システムは,以下のステップを周期的に繰り返す。本システムは,物理エンジンからキャラクターの姿勢を読み取る(ステップ202)。本システムは,前記現在のポーズに近い動作であり,かつターゲットとなるポーズに移行する動作を探索する(ステップ203)。本システムが動作を追跡することに関して(ステップ203のうちに変化してもよい),本システムは,現在の姿勢から動作の姿勢に近づくように最適な筋肉の作動方法を将来的には短時間(例えば0.05秒)で計算する(ステップ204)。この計算は,当該技術分野では周知のコードのいくつかを含む。このコードは,関節力学アルゴリズム及び2次式最適化問題の解法を含む。本システムは,ステップ204で計算された筋力を,モーター駆動力のように,物理的シュミレーションで適用する(ステップ205)。本システムは,短時間のステップ(例えば0.05秒)で,物理的シュミレーションを進行する(ステップ206)。
【0050】
本システムは,キャラクター制御装置,動作選択手段,オブジェクト制御装置,及びメモリを含む。
【0051】
メモリは,キャラクターを読み込む情報を格納する。その情報には,キャラクターの現在の状態とキャラクターの動作が含まれる。キャラクターは,ゲーム空間のアバターである。メモリは,データベース及びRAM,又はデータベースのみであってもよい。データベースは,RAM(起動時にファイルから読み込まれている)に格納された動作のリストである。キャラクターの姿勢は,Havok物理エンジンであるシュミレーションによって表現されている。この情報は,その後まもなく,画面に表示される。
【0052】
図6は,第1のメモリに格納された動作の例を示す。図6に示されるように,メモリの例は,キャラクターの現在の状態に関連する各動作を格納する。例えば,現在の状態Aについては,動作A−1,A−2,及びA−3が格納されている。
現在の状態は,キャラクターの脚の現在の姿勢であってもよい。動作は,キャラクターの現在の状態,及びキャラクターが接触するオブジェクトの状態について,格納されていてもよい。
【0053】
メモリは,ゲーム空間のオブジェクトに関する情報を格納してもよい。情報は,現在の姿勢,各オブジェクトのサイズとカラーを含む。オブジェクトの例は,仮想世界の床,障害物,及び他のキャラクターである。
【0054】
キャラクター制御装置は,キャラクターの動作を制御する。キャラクター制御装置は,キャラクターがオブジェクトのいずれか一つに接触することを,オブジェクト制御装置が決定するとき,初めの動作を除いて,キャラクターの動作を制御してもよい。物理エンジンは,引力などの物理の法則に従って,キャラクターを絶えず動かし,キャラクター制御装置は,キャラクターが筋肉を働かせるように動かす。
【0055】
動作選択手段は,キャラクターの現在の状態を考慮するメモリからキャラクターの動作を選択する。動作選択手段は,キャラクターの現在の状態の情報による動作を選択する。動作選択手段は,メモリに格納された動作のグループからある動作を不規則に選択してもよい。
【産業上の利用可能性】
【0056】
本発明のシステムは,ゲーム業界にとって有益である。







【特許請求の範囲】
【請求項1】
コンピューターにより,仮想環境におけるキャラクターの物理的動作を制御する方法であって,前記コンピューター101は,物理エンジン102及びメモリ103を含み,
前記物理エンジン102からキャラクターの現在のポーズを取得するステップと,
前記メモリ103に格納された動作のグループから,前記現在のポーズに近い動作であり,かつターゲットとなるポーズに移行する動作を選択するステップと,
前記選択された動作を追跡するためにキャラクターを制御するステップとを含む,
方法。

【請求項2】
請求項1に記載の方法であって,
前記格納された動作データのフレームのすべてから,前記現在のポーズに最も近接するポーズを探索するステップをさらに含む,方法。

【請求項3】
請求項1に記載の方法であって,
前記動作を選択するステップでKD木構造を使用するステップをさらに含む,方法。

【請求項4】
請求項1に記載の方法であって,
前記格納された動作は,モーションキャプチャーデータから導き出される,方法。

【請求項5】
請求項1に記載の方法であって,
選択された運動を追跡するようにキャラクターを制御することにより,追跡されている前記動作を変えるかどうかを,定期的に確認するステップをさらに含む,方法。

【請求項6】
請求項1に記載の方法であって,
現在のポーズから対象のポーズへ移行するとき,キャラクターの筋肉を動かす方法を計算すること,及びモーター駆動力のように筋力を使用することにより,前記キャラクターを前記選択された動作を追跡するように制御するための動作時の筋力を計算することをさらに含む,方法。

【請求項7】
仮想環境でキャラクターの物理的動作を制御するシステムであって,前記システム104は,物理エンジン102及びメモリ103を有するコンピューター含み,
前記物理エンジン102からキャラクターの現在のポーズを取得する手段と,
前記メモリ103に格納された動作のグループから,前記現在のポーズに近い動作であり,かつターゲットとなるポーズに移行する動作を選択する手段と,
前記選択された動作を追跡するためにキャラクターを制御する手段とを含む,
方法。




【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−93920(P2012−93920A)
【公開日】平成24年5月17日(2012.5.17)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−240208(P2010−240208)
【出願日】平成22年10月27日(2010.10.27)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】