ブレンドしたウェイトでペイント
ボリュームダウン問題解決!デュアルクォータニオンという名のスキニング方法 【Mayaリギング】

ジョイントのスキニングにおいて、ついてまわる問題があります。それはジョイントを曲げたり、ねじったりしたときに発生するボリュームダウンです。実はMaya2011以降からその問題を改善するデュアルクォータニオンという技術が実装されているんです!

ここではその活用方法を紹介します。

※説明にはMaya2017を使用しています。

クラシックリニアでバインドした場合

クラシックリニアでバインド

円柱にスケルトンをクラシックリニアでバインドした場合、上の画像のようになります。ほぼ未調整なので、一見調整すれば何とかなりそうな気もします。曲げた部分のメッシュは元の直径よりだいぶ減っており、ウェイトはジョイントAとジョイントBのウェイトが0.5ずつ配分されています。つまり、調整してもこれ以上太くならないということです。

デュアルクォータニオンの設定方法

デュアルクォータニオンの設定

ではデュアルクォータニオンでバインドしてみましょう!設定方法は簡単です。

  1. [リギング]メニューセット→[スキン]→[スキンのバインド]→[オプション□]を選択します。
  2. [スキニング方法]を[デュアルクォータニオン]に設定します。
  3. あとは実行するだけです!

クラシック リニアの活用

正直、クラシックリニアを使うメリットって・・・?

雑巾絞りのアニメーションとか?

 

例えば、[スキニング方法]の項目の中にはクラシックリニアともう一つ、[ブレンドしたウェイト]というものがあります。これが使えそうです。

曲げると外側が膨らむ

デュアルクォータニオンでバインド

ボリュームダウンを抑える代わりに、逆の問題が生まれました。

ジョイントを曲げたときに、外側が膨らんでしまうという問題です。

ウエイト調整で抑えられないわけでもないのですが、頂点はそれぞれのジョイントに寄ってしまい、角の部分の頂点が減ってしまいます。

ちなみにねじった場合は

デュアルクォータニオンでねじり

クラシックリニアでは180°もねじったら窄みきってしまいますが、デュアルクォータニオンの場合は全くボリュームダウンしません。

 

クラシックリニアとの併用

上記の問題を解決するために[ブレンドしたウェイト]を使います。これ使うことでデュアルクォータニオンとクラシックリニアを併用することができるわけです。やり方は以下の通りです。

[ブレンドしたウェイト]の設定方法

  1. [スキンのバインド]のオプションから[ブレンドしたウェイト]を選択し、バインドします。
  2. [リギング]メニューセット→[スキン]→[スキンウェイトペイント]を起動します。
  3. [ツール設定]の[ウェイトタイプ]を[DQブレンド ウェイト]にします。
  4. クラシックリニアを0、デュアルクォータニオンを1として適用する部分にペイントします。

塗り分けの仕方

いろいろ試した結果、以下のような塗り方がベストかと思います。

ブレンドしたウェイトでペイント

各関節部分の中心からグラデーションになるように塗ります。

 

 

デュアルクォータニオン1択ではない訳

実は上で取り上げた以外にも問題はあるんです・・・

ジョイントでのスケールに問題がある

デュアルクォータニオンでスキニングした場合、ジョイントからスケールを設定すると思わぬ変形をすることがあります。

補助骨等のスケールでボリュームダウンを防ぐ必要がなくなったとはいえ、スケールが使えないのは不便です。

 

ゲームエンジンでの開発は進まなかった

Mayaをはじめ3DCG系のDCCツール(デジタルコンテンツを作るためのツール)には実装されたのですが、ゲームエンジンでの開発は進まなかったようです。つまり、映像として出力する分には問題ありませんが、リアルタイムで動かすゲームのキャラクターモデルには使えないようです。

 

【まとめ】映像制作において、基本「使う」でいいんじゃないですかね

スケールの問題はありますが、基本時間のない制作で補助骨を使わずにボリュームダウンを改善できるなら大した問題じゃありません。映像制作においてスキニング方法はデュアルクォータニオンほぼ1択でしょう。

 

 



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です