« emFlock フロックアニメーションプラグインが。 | トップページ | キャプちゃん!!  バグ修正 »

2007年11月26日 (月)

エンベロープ変形を自然にするためのプラグインが。

スヴァらしきプラグインが。
http://www.xsibase.com/netview_forum/index.php?board=29;action=display;threadid=33795

↓ダウンロード。
http://www.highend3d.com/f/4977.html

ボーンでジオメトリを変形させると、間接付近が痩せてしまいがちです。いわゆる、
つぶれチューブ状態ですな。 人間のヒジやヒザなどはウェイトの調整だけで解決
できず、補助ボーンやシェイプアニメーションを仕込んで望みの形に無理やり持って
いくことも多いですな。

これを、もう少し自然に変形させ、痩せを防ぐことを目的としたプラグインです。

ダウンロードすると詳細な技術解説が付いてくるのですが、数学的な話でよくわかり
ませんでした。超簡単に言えば、XSI のエンベロープの計算方法は「リニアブレンド
スキニング」あるいは「スケルトンサブスペースデフォーメーション」というアルゴ
リズムが使われているが、このプラグインは「デュアルクォータニオンスキニング」
というアルゴリズムを使うため、関節付近が痩せにくい、ということのようです。

やってみました。

インストールは、ユーザまたはワークグループフォルダ以下にある Plugin
フォルダに dll をぶち込むだけ。

シリンダを出し、2本のボーンを描き、普通に Envelope します。
比較用で2本用意するために、まるごと複製。
Dq3

片方のシリンダの Envelope オペレータを選択して、
Deform > Envelope > Apply Dual Quaternion Envelope を実行。
Dq1_2

すると元の Envelope オペレータはミュートされ、新しく fbDualQEnvelopeOp
いうオペレータが生成されます。
Dq2

その状態でボーンを曲げてみると、
Dq4

あからさまに DualQ を使った方が、痩せが少ない。念のため言っておきますが、
どちらもウェイトの調整はしていない、まったく同じものです。エンベロープ後に
複製したんですから。右の方に DualQ しているのが唯一の違いです。

さらに、ボーンをねじってみると、
Dq5

あからさま。

うーむ、スヴァらしいじゃないですか。どのみちウェイト調整は必要でしょうが、
少ない調整で済みそうだし、補助ボーンなどの数も減らせるような気がします。
まだシンプルなシリンダでしか実験していませんが、現在進行中の仕事は
鬼のようにエンベロープ使うので、実験してみようと思います。

このアルゴリズムは、標準のものより約30%計算が重いそうです。つまり、
いっぱい骨を仕込んだモデルの全エンベロープでこれをやると、ビュー上での
再生レートなどに直撃の影響があるのでしょう。
ただ、思うに、この DualQ を使うことによって補助ボーンや Expression や
Link With の数を減らせるのであれば、全体としてはむしろ軽くなるんでは
なかろうか。

まだバージョン1だし、これから更に発展するかもしれません。XSIBase の
スレッドではすでに改良アイデアも出始めているようです(標準アルゴリズム
と DualQアルゴリズムをブレンドさせる、とか)。
こういう重要な機能は将来XSIに統合されて欲しいものです。
(そう言えば zbump がそうだったか)



|

« emFlock フロックアニメーションプラグインが。 | トップページ | キャプちゃん!!  バグ修正 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: エンベロープ変形を自然にするためのプラグインが。:

« emFlock フロックアニメーションプラグインが。 | トップページ | キャプちゃん!!  バグ修正 »