Tangent Space Optimization of Controls for Character Animation
アニメーションツールのための接ベクトル空間による最適化
https://www.youtube.com/watch?v=P1zBbOowyTE
ディズニーが去年発表してた
IKとかについて調べてたら見つけたmiyamonz.icon
かなりすごいことをやっている
ボーンの任意の場所の軌道を直感的に制御できる
そのくせキーを追加しない
これのおかげで、従来のアニメーションのツールはそのままに、特定の部位をこうやって動かしたい、という操作を直感的に編集できる。
得られる成果物自体はシンプルなので、最適化についての数理が理解できたら実装してみたいmiyamonz.icon
論文を読むぞ
tangent-space optimization(接空間の最適化?)ってなんだろう
IKについて考えたことmiyamonz.icon
もともとの操作したい構造(例えば人の形)とは別に、
IKをすべき対象(たとえば足)の、対象座標のための位置座標をハンドリングしなくてはいけないことについて、問題を感じていた
人間の構造とは別に「ターゲット」のtransformも保有しないといけない
構造を持たないといけないとなるとUIも考えないといけないし、保存するデータ構造とか、補間の計算もどうなるのか…とか考えてた
この問題を、上の手法はまるっと解決している
ターゲットの軌道を操作した瞬間に、個別の関節の補間曲線の制御点を動かしてくれるから、別の構造としてキーを保存しない
論文半分まで読めたmiyamonz.icon
問題を制約の元での2次のエネルギーの最小化問題にまで落とし込んだとこ、implementation detailsの手前まで
ここまで理屈はわかった・・・のか?
結局の所、ユーザ入力等の制約と、1次近似とかと、さらにベジエ曲線で補間することから利用できる制限を使って
問題を単純な二次式の最小化にして、あとは気合で解析的に(プログラムで求めるやつ)解くということなのかも
最終的な問題は、2次の多項式の最適化問題になる
個々の部分はMOSEKというソフトウェアに投げていた
pipもあるっぽいのでやろうと思えば自分で実装できる...のか?
それ以外は最適化におけるちょっとした工夫とかだった
ゲキヤバ難しい理論があったという感じではない
tangent spaceってのは接ベクトル空間のことだと思うけど、論文中に全然出てこなかった気がする。なんだったんだ?