Real-Time Character Animation Using Multi-layered Scripts and Spacetime Optimization Eric Menou 他 情報通信研究室 阿蘓 久志 発表の流れ • • • • 概要 System overview Script language Low-level motion generation – Data blending – Optimization • 結論と課題 概要 オフラインでのアニメーション技術 ・職人が動きの微細な箇所 まで一つ一つ表現 ・完成度が高い ・非現実的な表現も意図的に可能 ・処理に時間がかかる 高いレイヤでのオンライン マルチレイヤスクリプトシステム ・複数のサブシステムを並列に処理 することで実現 ・複雑なストーリや動作も表現可 ・運動学の逆計算の量は膨大 ・即時性にかける 提案するアニメーションシステム ・パイプライン処理による複数の結果に対して最適化を行う ・処理量の減少 ・リアルタイム性の確保 LIVE architecture LIVE: Life In Virtual Environment Behavior or Direct Order order Script Engine Select Script Instantiate Scene Class Hierarchy Action … Action 2 Action1 Script … Script 2 Script 1 Entity … Entity 2 Entity 1 Space-time Optimizer Execution Action Compute Motion Render Shape Execution Engine MCM 1 MCM 2 MCM … Data Blending Skelton Object … Object 2 Object 1 Shape Shape shape Render Engine Script language Walker Script WALK 2 [ENTITY] entity human [VECTOR3D] position [ACTION] … [WHILE] loop END_BRIK (first_step) SUPERIOR(DISTANCEXY(POSITION(entitty),potsition),BD(entity,2_step)) /* left step*/ [BRIKMOCAP] left_step TRUEEND_CAPTURE entity LEGS left_step DIRECTIONXY(POSITION(entitty),potsition)) NEXT [END] /* right step*/ [BRIKMOCAP] right_step END_BRIK(left_step)END_CAPTURE entity LEGS right_step DIRECTIONXY(POSITION(entitty),potsition)) NEXT [END] END_BRIK(right_step) entity RIHGT_ARM BONE(entity,RightArm,VECTOR(0,-2,0)) … [ENDWHILE] 動作の表現方法 • • • キャラクタを骨組みの集合と考える 各骨との接続点は可動範囲が決められている それらのなす曲線はB-spline曲線を用いて表現する 一般的に使われている自由曲線(3次) • エルミート(Hermite)曲線 – 点Aを起点に、方向ベクトルABから出発し、方向 ベクトルCDの始点Cで終わるカーブを描く。セグ メントの終点が点Cで終わるため、感覚的に曲線 の形がつかみにくい。ベジェ曲線と似ているが、 点BとCはコントロール点ではなく、コントロールベ クトルとして使われている。 • ベジェ(Bezier)曲線 – セグメントの始点と終点のみ通過する。エルミート と似ているところは、線分ABを接線として発生し、 点B,Cに引っ張られながら、線分CDを接線として 終わる。四つの定義点によるポリゴンの形状から 描かれる曲線の形状を想像しやすい。 • B カットマル-ロム(Catmul-Rom)曲線 C A D Bezier B C A D B-spline B B-スプライン(B-spline)曲線 – 定義点をまったく通過せず、曲線は四点の内側 に発生する。定義点の移動に対して比較的緩慢 に変化するので、滑らかな曲線を微妙にコント ロールしたい場合に最も適している。 • Hermite C A D Catmul-Rom – 四つの定義点のうち、二番目の点Bを起点に、次 の点Cまでの曲線を描く。 B A C D Data blending 複数のタスクが同時に実行 ひとつの骨に対して異なった動作を しようとする MCMライブラリとレンダラの間に新しいレイヤを設け 同時に相互に作用しあうことを可能にした ・それぞれのタスクに優先度を付ける ・それぞれのタスクに重みを付ける Optimization Qi (t ) c P j 0 i, j N j ,4 (t ) n p n ( 2 c 4) np n c If knots vector is optimized If knots vector is not optimized B-spline計算処理を少なくしたい ノットベクトルを最適化しの個数を減らす 最適化する単位時間を長くとる Spacetime-optimization 最適化処理に時間がかかる B-spline計算処理が少なくなる 結論と課題 • マルチレイヤスクリプト言語と二つのアニメーション システムを用いたより現実的な行動を見せるための 新しいシステムを紹介した – Script language – Data blending – Space time optimization • 今後我々は、実時間最適化に焦点をあて、突然の 状況の変化に即座に対応でき、さらには低位レイヤ での実時間最適化を行えるよう開発を進める。 複数エンティティ最適化の一例
© Copyright 2024 ExpyDoc