論文読み: 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 (純粋な幾何学に基づいた手法)

ゲームなどのリアルタイム性が必要なアプリケーションで用いられるのは後者の 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 マップや回転の補間における距離最小性を解説した記事がリンク切れとなっていたようです。現在は
Library – 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:いまとなっては当たり前のように用いられていますが、当時としては新しかったという意味です。