論文読み: Skinning with Dual Quaternions (I3D 2007, ACM Trans. Graph. 2008)

今回はリアルタイム向けのスキニング手法として現在非常に良く知られている Dual Quaternion*1 を用いた手法に関する論文を読みました。このスキニング手法は Maya などのソフトウェアでも標準で採用されています*2

手法の具体的な中身についてはここでは触れませんが、論文の導入部分も (ざっと読んだだけでも) すごく良い勉強になったので、何点かメモを残しておきます。

読んだ論文について

読んだのは以下の2つの論文です。

Ladislav Kavan, Steven Collins, Jiri Zara, Carol O’Sullivan
Skinning with Dual Quaternions
I3D '07

Ladislav Kavan, Steven Collins, Jiri Zara, Carol O’Sullivan
Geometric Skinning with Approximate Dual Quaternion Blending
ACM Transactions on Graphics (2008)

前者はカンファレンス論文、後者はジャーナル論文であり、同じ研究グループによって書かれています。後者は前者の内容を更に進めたもので、前者の内容も解説しているので、基本的には後者のみ読めば十分だと思います。

スキニングとは

大まかに言ってスキニングとは「ボーン (スケルトン) に付随させてスキン (レンダリング用の表面メッシュ) を動かすこと」を指します。多くのスキニング手法は以下の2つに分類できます。

  1. Physically based method (物理シミュレーションを用いた手法)
  2. Geometric method (純粋な幾何学に基づいた手法)

ゲームなどのリアルタイム性が必要なアプリケーションで用いられるのは 2. Geometric method です。

Geometric method の中でも特に有名な手法について簡単にメモしておきます。

Linear Blend Skinning (LBS)

あまりに有名なので、多くの人がスキニングといったら基本的にこの手法を思い浮かべると思います。GPU 実装が可能で、計算コストが軽く、実装も容易なため、多くのソフトウェアで採用されています。

注意点としては、この手法には沢山の名前がついています。

  • skeleton subspace deformation (SSD)
  • vertex blending
  • enveloping

などは全てこの linear blend skinning と同じものを指していると思って差し支えないと思います。

LBS は "collapsing joints"、"twisting elbow problem"、"candy-wrapper artifact" などと呼ばれる問題を抱えています。詳しくは論文を参考にして下さい。

Spherical Blend Skinning (SBS)

LBS の抱える問題を解決しようとする手法の一つです。

Ladislav Kavan, Jiri Zara
Spherical Blend Skinning: A Real-time Deformation of Articulated Models
I3D '05

ただし LBS に比べて 3 倍程度の計算コストがかかってしまうので、実際にはあまり用いられていないと思います。

Log-Matrix Blending

Frederic Cordier, Nadia Magnenat-Thalmann
A Data-driven Approach for Real-Time Clothes Simulation
PG '04

詳しくは見ていませんが、変換行列の回転成分をうまく扱うために、行列の logarithm をとって、ブレンディングを行い、再び exponential をとって元に戻す、という発想に基づいて計算を行っているようです。"exp マップ" (exponential map) と呼ばれている表現におけるブレンディング操作と基本的には同じかもしれません。

この手法は回転の補間における「距離最小性」を保証しない気がします。(論文をちゃんと読み込んでいないので、断定はしませんが、どこかで指摘されていた気がします。確認した方がいたら是非教えて下さい。)

また、この手法も LBS に比べて 3 倍程度の計算コストがかかってしまうようです。

追記 [2015/02/11] :
ここで引用していた exp マップや回転の補間における距離最小性を解説した記事がリンク切れとなっていたようです。現在は
資料室 – Mukai Laboratory
に内容を移動したようです。

Dual Quaternion Linear Blending (DLB または DQS) について

この論文では DLB (DQS) という新しい*3手法を提案しています。
技術的な詳細についてはここでは触れませんので、論文を参照して下さい。

結論だけ言うと、"candy-wrapper artifacts" などを回避しつつ、LBS に比べて 1.5 倍程度の計算コストに留まっているようです。

では、DLB (DQS) は万能か

では、DLB (DQS) は万能かというと、そうでもないようです。このことは、例えば以下の論文でも指摘されています。

Ladislav Kavan, Olga Sorkine
Elasticity-Inspired Deformers for Character Articulation
SIGGRAPH Asia 2012
Project page

この論文に関してはこちらの記事でも触れています。

コメント等ありましたら是非お願いします。

追記 (2013/04/06)

著者らによるプロジェクトページを紹介し忘れていました。
http://isg.cs.tcd.ie/projects/DualQuaternions/
こちらのページから、C 言語による実装例、Cg 言語による実装例がダウンロード可能です。

*1:デュアルクォータニオン、二重四元数、双対四元数などと呼ばれることもあるようです。

*2:Smooth skinning methods | Maya | Autodesk Knowledge Network

*3:いまとなっては当たり前のように用いられていますが、当時としては新しかったという意味です。