Home

Awesome

最新版をhttps://github.com/TomohikoMukai/ssdsに公開しました。今後、SSDR4Mayaは非サポートとなります

SSDR4Maya

本コードは、Binh Huy Le氏とZhigang Deng氏による論文Smooth Skinning Decomposition with Rigid BonesのMaya2016用プラグイン実装のサンプルです。

  1. Binh Huy Le and Zhigang Deng, Smooth Skinning Decomposition with Rigid Bones, ACM Transactions on Graphics, 31 (6), (2012), 199:1-199:10.
  2. Binh Huy Le and Zhigang Deng, Robust and Accurate Skeletal Rigging from Mesh Sequences, ACM Transactions on Graphics, 33 (4), (2014), 84:1-84:10.
  3. 向井 智彦, スキニング分解, Computer Graphics Gems JP 2015 7章:スキニング分解(ボーンデジタル), 2015.

インストール方法

使用方法

このプラグインは、各フレームのシェイプをスキン+ボーン姿勢で近似します。隣り合うフレーム同士は必ずしも滑らかに変化する必要はありません。言い換えれば、バラバラのポーズが1フレームずつ記録されているようなシーケンスでも処理可能です。

手元ではnClothシミュレーションへのボーンアニメーションへのベイク、Mesh Data from Deformation Transfer for Triangle Meshesの公開データ、およびMaya Muscleなどの少数のデータでのみテストしています。

###利用手順

  1. アニメーション開始時間と終了時間を指定します。
  1. 処理対象となるシェイプを選択します。
  2. メニューの[MukaiLab]->[SSDR]より処理を開始します。
  3. 処理が終わったら、コマンドラインに近似誤差(RMSE)と使用しているボーン数(#Bones)が表示されます。
  1. 変換後のスキンとボーンは「SsdrResult」グループにまとめられます。

利用イメージは下記のYouTubeビデオもご参照下さい。

SSDR4Maya

計算パラメータの調整

SSDRの計算パラメータは、mlSsdrBuilder.py内、ssdrBuildCmdクラスの冒頭にまとめられています。

これら3つのパラメータの変更することで、それにともなう計算結果の変化を確認できると思います。現状では、最小ボーン数に大きな値を与えると計算が破綻することを確認しています。

ビルドと実行方法

拡張ライブラリ ssdr.pyd は Visual Studio 2012 Professional Update 4 プロジェクトとして作成しています(※ソリューションファイルはVS2013にて作成)。ビルドには、外部ライブラリとして EigenQuadProg++Boost 、およびMaya 2016.3 Developer Kitが必要です。なお、ビルドおよび実行テストには Eigen 3.2.8、QuadProg++ 1.2.1、およびBoost 1.55.0 を用いました。

###ビルド手順

  1. Eigenのインストールフォルダにインクルードパスを通す。
  2. Boostのインストールフォルダにインクルードパスを通す。
  3. //MAYA_LOCATION/include および //MAYA_LOCATION/include/python2.7 フォルダにインクルードパスを通す。
  4. QuadProg++をダウンロードし、下記4つのファイルをssdrフォルダにコピーする。
  1. Visual Studio 上でビルド&実行

開発&テスト環境

変更履歴