論文読み: Elasticity-Inspired Deformers for Character Articulation (SIGGRAPH Asia'12)

SIGGRAPH Asia 2012 の論文が少しずつ公開されてきているようなので、早速そのうちの1つを選んでざっと読んでみました。

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

概要

Skeletal Shape Deformation (スキニング) に関する論文です。リアルタイムでスキニングをより綺麗にするための手法で、より自然な変形を実現するために弾性エネルギーの最小化を利用するというアイデアに基づいています。
物理シミュレーションを用いたオフラインスキニングに近い結果をリアルタイムで得ることができるそうです。

著者

筆頭著者の Ladislav Kavan は現在 ETH Zurich のポスドクで、2013 年からはペンシルベニア大で研究室を持つそうです。スキニングの研究の他に、布のシミュレーションに関する研究も行っています。

もう一人の著者の Olga Sorkine はスキニングやジオメトリの分野で近年沢山の論文を発表している人です。

関連研究

まず前提として、スキニングには大きく分けて 2 つのアプローチがあります。

ジオメトリベース*1の手法

リアルタイムスキニング向けの手法です。代表的なものに以下の 2 つの手法があります。

Linear Blend Skinning (LBS)

昔から知られている手法です。実装は簡単ですが、candy-wrapper artifacts と呼ばれるアーティファクトが問題となっています。

Dual Quaternion Skinning (DQS)

LBS のアーティファクトを解決するための手法で、Ladislav Kavan らによって提案されたものです。

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

しかしこの手法にも bulging artifact と呼ばれる別のアーティファクトが問題点として残されていました。(そのため、Maya などでは LBS と DQS を組み合わせることができるようになっているそうです。)

今回の論文は、このジオメトリベースのアプローチに分類されるものとなります。

物理シミュレーションベースの手法

オフラインスキニング向けの手法です。物理シミュレーションを用いるため計算コストが高い分、筋肉の膨らみや脂肪の揺れ (secondary motion) などのリアルな結果を得ることができます。また衝突や接触を扱えるのもこのアプローチの大きなメリットの一つです。

最近の研究では以下のものがあります。

A. McAdams, Y. Zhu, A. Selle, M. Empey, R. Tamstorf, J. Teran and E. Sifakis
Efficient Elasticity for Character Skinning with Contact and Collisions
SIGGRAPH 2011

今回の論文は物理シミュレーションを使用していませんが、弾性エネルギーを最小化するというアイデアをうまくジオメトリベースのアプローチと組み合わせることで、よりリアルな結果を得られるようになるというものです。

スキニングウェイト

ジオメトリベースの手法ではスキニングにおける「ウェイト」を決める必要があります。決め方としては

  1. ペイント風の UI によってアーティストが手動で調節する方法 (Maya のペイントツールなど)
  2. アルゴリズムによって自動で決定する方法 (もちろん Maya にも実装されています)

などがあります。

2. の方法で最近のものとしては Bounded Biharmonic Weights (BBW) があります。

Alec Jacobson, Ilya Baran, Jovan Popović, Olga Sorkine
Bounded Biharmonic Weights for Real-Time Deformation
SIGGRAPH 2011

今回の論文は 2. の方法となっており、弾性エネルギーを最小化するようなウェイトを自動で計算するような仕組みになっているようです。

Joint-based Deformers

ウェイトの指定だけでなく、各関節毎にデフォーマを配置する手法も提案しています。(従来はボーン毎のデフォーマだったそうです。) これによって Swing や Twist といった関節の動きの扱いがうまくいくそうです。この記事では詳細は省略します。

リミテーション

あくまでジオメトリベースのアプローチなため、物理シミュレーションベースのスキニングの特徴である (1) 衝突や接触の効果 (2) secondary motion などは扱えません。

*1:論文では closed-form (閉形式) skinning と表現されています。