2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 キャラクタ・アニメーション コンピュータグラフィックス特論Ⅱ 第9回 キャラクタアニメーション(2) システム創成情報工学科 尾下 真樹 • CGによる人間などのキャラクタのアニメー ションを実現するための技術 • キャラクタアニメーションの用途 – オンラインアニメーション生成(ゲームなど) – オフラインアニメーション生成(映画など) • どちらの用途でも使われる基本的な技術は同じ (データ量や詳細度が異なる) • ただし、オンラインアニメーションの場合は、インタラ クティブに動作を決める必要があるので、そのための 工夫が必要になる 今回の内容 • キャラクタ・アニメーションの基礎 – キャラクタの表現 – モーションデータ • キャラクタ・アニメーションのためのプログラミング – 多関節モデル、ワンスキンモデルの表現 – BVHモーションデータの読み込みと描画 • モーションデータの作成 • キャラクタ・アニメーション技術 – モーションデータの変形 – キャラクタの自律動作制御 最終レポート課題 • レポート課題 – 講義で学習した内容を利用して、何らかのプログラムを作 成する • • • • なるべく実用的なプログラムの方が望ましい 講義で学習した範囲外の技術を自分で勉強して使っても構わない なるべく2つ以上の技術を組み合わせることが望ましい 昔自分で作成したプログラムの改良でも良い (追加内容のみを評価対象とする) – 1月12日(月) プログラム+スライド提出締め切り • 発表(プレゼンテーション) – 1月13日・1月20日の授業中 – 1人 発表 8分・質疑 5分(予定) 動力学を考慮したアニメーション • 運動学(キネマティックス) 動力学を考慮した動作生成 – これまでに紹介してきた手法 – 多関節体の機構を扱うための手法(関節角度と 各部位の位置・向きの関係を扱う) – 現在は、こちらが主に使われている – 力学的に正しい動きが生成されることは保障さ れない • 動力学(ダイナミックス) – 運動学に加えて、力学的な影響を考慮する手法 1 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 動力学を考慮したアニメーション • 主に2種類の方法がある • 動力学シミュレーション – 動力学シミュレーションによるアプローチ – 動作最適化によるアプローチ – 本物のロボットと同様に、制御理論に基づいて 関節のトルクを制御するコントローラを構築 – 動力学シミュレーションを行って動きを生成 • 多関節体の動力学 筋力 バランス 動力学 トルク • まだ人間らしい動きを生成 するのは困難 • 結果をうまく制御することが 難しい 動作データ 数値積分 角加速度 動力学シミュレーション 数値積分 角速度 角度 i K i , goal i ,curr K i , goal i ,curr 運動学 PD制御 目標角度-現在角度に適当な係数を かけることで各関節のトルクを決定 位置・向き 動力学シミュレーションの応用例 • ラグドール・シミュレーション – 一部のコンピュータゲームで使われている – 通常は、動作データを再生 – 衝突時に、物理シミュレーションに切り替え • 受動的な動作のみで、能動的な動作は実現できない • 倒れずに途中で回復して元に戻るような動作は実現 できない 衝撃発生 動作再生 [Hodgins 97] 動作最適化 • 動作最適化 – 関節トルクやバランスの不自然さを評価する関 数 f(姿勢) を設計 – f(姿勢) が動作全体に渡ってなるべく小さくなる ように動作データを少しずつ修正する • 計算に非常に時間がかかる • 人間のような多関節体には、自由度が高すぎてその まま適用するのは困難 物理シミュレーション [Popovic 98] 動作データの変形 動作データの変形 • 動作データを編集したり、一度作成された動作 データをもとに新しい動作を実現したりするための 技術 – – – – モーション・インターポレーション モーション・トランジション モーション・リターゲッティング 動力学を考慮した動作生成 • これらは基本的にアニメーションソフト上で行う 動作データの編集のための機能 – リアルタイム処理で用いられることもある 2 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 モーション・インターポレーション 動作補間の計算方法 • 動作補間(モーション・インターポレーション) – 2つ(以上)の動作を混合して新しい動作を生成 • 例:ゆっくり走る動作と早く走る動作から、中くらいの 速度で走る動作を生成 • 任意の比率で混ぜ合わせることができる • 任意の時刻 t の姿勢 pi を計算 – 時刻 t に対応する、各動作の時刻 ti を決定 – 各動作の時刻 ti 姿勢 pi を取得 – 各姿勢 pi をウェイト wi に応じて混合 • 腰の位置・回転の補間、各関節の回転の補間 – あらかじめ2つの動作を同期しておく必要がある – 3点以上の回転の補間には、より高度な方法がある • 同じタイミングにキーフレームが設定されている必要 動作1 動作1 0.7 動作2 動作2 0.3 合成動作 モーション・トランジション • 各動作のウェイト wi を決める必要がある • 動作遷移・合成(トランジション、ブレンディング) • 何らかの動作パラメタ(速さ、距離、方向、高 さ、など)にもとづいて決定 – あらかじめ、n 個の動作データのそれぞれに、 k 次元のパラメタ fi を設定しておく(k ≦ n) – 動作補間時に、 k 次元のパラメタ f が指定され ると、指定パラメタを満たすよう、ウェイトを計算 ൌ ܟ → ܟൌ ଵ ・・・ – 前の動作の終わりの腰の位置・向きと、次の動 作の始まりの位置・向きが一致するように、次の 動作の開始時刻の位置・向きを決定 – 時刻 t に対応する、前後の動作の時刻 ti とウェ イト wi を決定し、各動作の姿勢を混合 動作2 遷移動作 動作2 • 前の動作の終了部分と、次の動作の開始部分が、 ほぼ同じになるように作成しておく必要がある f • 基本的な計算方法は、動作補間と同様 動作1 – 基本的な動作をあらかじめ作成 – 基本的な動作をつなげて長い動作を生成 – 動作と動作の間をなめらかにつなぐ手法 ା 動作遷移の計算 動作1 0.3 合成動作 動作補間の重みの決定 ଵ ・・・ 0.7 参考書 図4.12 動作遷移の姿勢補正 • 単純に前後の動作の姿勢を補間するだけで は、動作遷移中の動作が不自然になる – 前後の動作で地面に着いている足の位置が異 なると、動作遷移中に足が地面の上を滑るよう な動作になってしまう • IK計算により足の位置を補正 – 足が接地している間の足の位置を決定 – 足が接地している間は、足の位置をIKで固定 – 足が接地する前・後の一定時間は、足の位置が 動作遷移中の位置になるように、IKで修正 3 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 モーション・リターゲッティング • 骨格の異なるキャラクタ間で動作データを変換 – 例:モーションキャプ チャデータを、元の 俳優の骨格から、 実際のキャラクタの 骨格用に修正 – 単純に関節角度をコ ピーするだけでは、 足の位置がずれたり するため修正が必要 モーション・リターゲッティング • モーション・リターゲッティングの計算方法 • 動作最適化問題として解くのが一般的 – 最適化関数 f(動作) を定義 • 変形後の各姿勢が元の姿勢になるべく近くなる • 変形後の各姿勢が元の姿勢の制約条件を満たす (足が地面に接しているときの固定や、キャラクタ同 士の接触など) • 動作中の前後の姿勢が連続的に変化するようにする – f(動作) がなるべく小さくなるように、動作全体 を最適化(変形) [Gleicher 98] 動作データの再生 • オンラインでの動作再生 動作データの再生 (キャラクタの自律動作制御) – 動作を連続的に行う必要がある – ユーザの操作や周囲の状況に応じて適切な動 作を行う必要がある • ゲームなどでの一般的な方法 – あらかじめ基本的な動作データを多数用意 – 適切な動作データを順番に再生することで、連 続的な動作再生を実現 – 動作データの間がなめらかにつながるように作 成しておく必要がある 動作ツリー(動作グラフ) • あらかじめ各動作データ間がつながるように 考慮して動作データとそのつながりを作成 – 動作の終了姿勢と次動作の開始姿勢を同じに – 最初から動作グラフを計画的に考えて、各動作 データを作成する必要がある 立ち状態 歩く パンチ キック キック 動作ツリーによる方法の問題点 • 動作ツリーの作成には多くの手間がかかる • 一定動作の繰り返ししかできない – ワンパターンな動きになる – 特に衝突や外力などの力学的な 影響に応じた自然な動作が困難 • 自律動作の実現は困難 – 敵キャラクタや群集などを自律 的に動かすためには、適切な 動作ルールが必要になる 4 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 自律動作制御 • 例:コンピュータゲームにおける自律動作制御 自律動作制御のレベル 身体制御 動作制御 行動制御 Non-Player Character 完全に自律的に動作を行う 必要がある Player Character 半自律的に動作を行う必要 がある (ex. プレイヤーの抽象的な 操作に応じて具体的な動作 を実現) 自律動作制御のレベル 身体制御 最終的に身体の 動きを生成 自身の身体の状 況を考慮 動作制御 行動制御 具体的にどのよ うな動作を行う かを決定 どのような行動 を行うかを決定 (AI) 動作範囲内の状 況を考慮 周囲の状況を考 慮 身体制御の課題 • 衝突や外力などの力学的な影響に応じた 身体制御(動作生成) – 動力学シミュレーションを使う方法では、受動的 な動作は生成できるが、能動的な動作は生成で きない 身体制御の技術 身体制御 最終的に身体の 動きを生成 自身の身体の状 況を考慮 動作制御 行動制御 具体的にどのよ うな動作を行う かを決定 どのような行動 を行うかを決定 (AI) 動作範囲内の状 況を考慮 周囲の状況を考 慮 身体制御の技術 • モデルベース手法 vs データベース手法 – モデルベース手法 • 何らかのモデル(プログラム)に従って動きを生成 • 個人ごとの動きの変化の実現などは困難 – データベース手法 • 大量のデータを用意しておくことで、問題を解決 • 準備が必要、適切なデータの検索・変形は困難 – ハイブリッド手法 • 両方をうまく組み合わせる手法 • どのように組み合わせるかは、難しい 5 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 関連研究(モデルベース手法) • 関節角度制御 [Jain 2009] 関連研究(ハイブリッド手法) • シミュレーションと動作データの利用 [Zordan 05] – 力学的要素を考慮して、 最適な角度(+速度、 加速度)を決定 – 最適化問題に帰着 – 衝撃後の動作を物理シミュ レーションで計算(ODE) – 後にうまくつながるような転倒 動作をデータベースから検索 • 動作データの選択と変形 [Arikan 05] • 歩行制御モデル [Wang 2009] – 動力学シミュレーションによる 歩行動作 – 安定性を上げるための工夫 – 衝撃・姿勢に応じたリアクション 動作データを検索 – 各部位に一定の速度を加えて IK により姿勢を変形 ロボット工学との関連 関連技術(ハイブリッド手法?) • ロボット制御とはやや目的や手段が異なる • Endorphin, Euphoria (Natural Motion 社) – 基本的には、本研究と同様、 人間の動作制御モデルが 実装されている – ロボット制御 Natural Motion Ltd • さまざまなビヘイビアの制御モデルが用意されており、 ビヘイビアの種類やタイミングを指定することで、自動 的に動作が生成される(endorphin) • 詳細な内部技術は公開されていない • モデルベースなので、キャラクタの個性を出すことは難 しい? 動作制御 身体制御 最終的に身体の 動きを生成 自身の身体の状 況を考慮 動作制御 • • • • 力学的に正確な制御が必要 現在ではごく単純な動作しか実現できていない 人間らしい動きの実現はあまり考えられていない 人間とはモータの機構も異なる – アニメーション • 力学的には厳密でなくても人間らしい動きを実現 – 動力学などの基礎的な理論はかなり共通 • 将来的にはヒューマノイドロボットの技術が ゲームにも応用可能になる? 動作制御の課題 行動制御 具体的にどのよ うな動作を行う かを決定 どのような行動 を行うかを決定 (AI) 動作範囲内の状 況を考慮 周囲の状況を考 慮 • 状況に応じた適切な動作制御 (動作プランニング) – 動作ツリー(動作グラフ)を使う方法では、限られ た種類の動作しか行うことができない – 作成に手間がかかる 立ち状態 パンチ 歩く キック キック 6 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 動作ツリー(グラフ)の自動作成 • 長い動作データを解析して、動作グラフを自 動的に作成する技術 – 複雑なグラフも作成できる半面、計画的に設計 されているわけではないので、ゲームなどへの 利用は難しい? – キャラクタをランダムに動かすような用途に有効 • 群集アニメーションなど モーショングラフ • モーショングラフ [Kovar 02] – モーションキャプチャ データは、有向グラフ 構造に変換できる – ノードを順に遷移する ことで、連続的な動作 を生成できる • 遷移のルールが重要 モーショングラフの作成方法 • モーション中の各フレーム同士の姿勢間の 距離を計算(マッチウェブ) – 姿勢同士の距離の評価 方法も重要 (a) 動作データは単に再生しかできない。 (b) 類似部分があれば、切り替え可能 (c) 類似部分に注目しグラフ構造に変換 モーショングラフによる動作生成 • データ構造 – ノード・・・姿勢 – エッジ・・・動作 • 一般的な動作ツリーとは逆 • 例:全主要部位同士の 距離の和など • 動作生成 Kovar 02 • マッチウェブ中の極小点をモーショングラフ のノードとし、ノード間の動作をエッジとする – ノードを辿りながらエッジの動作を再生していくこ とで、動作を生成 • 実際には、ノードの前後で、動作ブレンディングや、 足を地面に固定するための IK が必要 – ノード遷移のためのルールが重要 関連研究 モーショングラフの利点 • モーショングラフにおけるノード選択条件 – – – – 歩行パスによる条件[Kovar 02] 手先位置の条件[Lee 05] 動作の種類の条件[Arikan 04] 音楽に合わせた動作 • モーションデータから自動的に構築できる • 連続的な動作が無限に生成できる – 毎回異なる動作が生成される – 基本的には同じ動作の繰り返しだが、ノード数 が十分にあれば、十分に自然に見える • デメリット – 毎回異なる動作が生成される • ゲームによっては必ずしも良いとは限らない? [Kovar 02] [Lee 04] [Arikan 04] – 適切な遷移ルールが必要(計算速度の考慮) 7 2014/12/16 コンピュータグラフィックス特論Ⅱ 第9回 行動制御 身体制御 動作制御 行動制御の課題 行動制御 • 動作ツリーの作成には多くの手間がかかる • 一定動作の繰り返ししかできない 最終的に身体の 動きを生成 自身の身体の状 況を考慮 具体的にどのよ うな動作を行う かを決定 どのような行動 を行うかを決定 (AI) 動作範囲内の状 況を考慮 周囲の状況を考 慮 群集モデル – 映画やコンピュータゲームでの群衆シーンで利用 • 個々のキャラクタの動きを作成するのは不可能 – 一定のルールに従って各キャラクタを制御 • 単純なルールでも、キャラクタ同士が相互作用し合っ て、ある程度リアルな動きが生成される Chronicles of NARNIA, 2005 • 自律動作の実現は困難 – 敵キャラクタや群集などを自律 的に動かすためには、適切な 動作ルールが必要になる 群集モデルの実現方法 • 多数の人間の動きをシミュレートする技術 Loads of the Rings, 2002 – ワンパターンな動きになる – 特に衝突や外力などの力学的な 影響に応じた自然な動作が困難 • プログラムによる動作ルールの記述 – if (条件) then (動作) の形式の動作ルールを 多数、ゲームなどのプログラム内に直接記述 • GUI環境による高度な動作ルールの記述 – 群衆アニメーションソフトMassive が有名 – 多数の映画で使用されている – 状態マシン+ファジィルール に よる条件を、GUI画面上で記述 – かなりの知識や労力が必要 NINETY-NINE NIGHTS, 2005 Massive 関連研究 • 行動ルールの自動学習 – 逆強化学習 [Lee 2010] • 動作計画のための 評価基準を自動学習 • 高度なルールベースの手法 – 視界にもとづく動作 決定 [Ondrej 2010] まとめ • キャラクタ・アニメーションの基礎 – キャラクタの表現 – モーションデータ • キャラクタ・アニメーションのためのプログラミング – 多関節モデル、ワンスキンモデルの表現 – BVHモーションデータの読み込みと描画 • モーションデータの作成 • キャラクタ・アニメーション技術 – モーションデータの変形 – キャラクタの自律動作制御 8 コンピュータグラフィックス特論Ⅱ 第9回 2014/12/16 次回予告 • 衝突判定 – 近似形状による衝突判定 – 空間インデックス – ポリゴンモデル同士の衝突判定 • ピッキング 9
© Copyright 2024 ExpyDoc