2016年9月15日木曜日

【Tips】Motionbuilderでsoft/stretchIKのRigging

Motiobuilderでリグを組むときに基本的にはキャラクタライズしてFullBodyIK(HumanIK)を使いますが、時たま他のDCCツールと同じ様なオリジナルのリグを組む時があります。
オリジナルのリグではHumanIKで実現できない、soft/stretchIKの機能が度々使用されます。
ネットで色々調べるとSoftimage Blogでsoft/stretchIKを実現する魔法の式がありました。
今回はこの魔法の式を使用してMotionbuilderでsoft/stretchIKを実現する方法を紹介します。

まずは魔法の式からみていきます。


ネイピア数のところをプログラム的におとしこむと以下のような式になります。


dsoftを1、dchainを3にした場合をグラフにすると以下の画像のようになります。

つまり、
xが2未満のときまではy=xの式で、
xが2以上の時はy=1-exp(-(x-2))+2の式で指数関数的に減衰するようになっています。


これをMotionBuilderで実現していきます。
まずは、ChainIKを組みます。この時に、IK_HandleとIK_Ctrlを2つ用意し、ChainIKコンストレイントにはIK_Handleを登録します。



次に魔法の式の下準備として、da、dsoft、dchainを分かりやすくするために以下のようなvariableという名前でRelationコンストレイントを作成しておきます。



次にSoft_StretchIK_Solverという名前でRelationコンストレイントを作成し、魔法の式を以下のようなコネクションで作成します。variableのRelationコンストレイントはMy MacrosからD&Dで出す事が出来ます。



一番右はじのAddボックスからの出力は魔法の式で言うとこのyの値になりますがこれは根元の骨からIK_Hanleまでの距離でIK_HandleのTransになっていないので、さらに以下のようなコネクションを作成してあげて、IK_HandleのTrans値にしてあげます。




次に、魔法の式の条件で0≦x<daの時、y=xの式になるようにコネクションも作成します。





ここまでコネクションが作成出来ているとsoftIKが実現出来ています。
コネクションの全体像は以下のようになります。



次はStretch部分のRiggingです。
MotionBuilderのChainIKでは、ChainIKがONの時にコンストレインされている骨のTransやScaleを変更すると回転の計算が壊れてしまうので、Stretchさせる用のダミー骨階層を作成し、ChainIKで算出された骨からダミー骨階層へRotationコンストレイントしてあげます。


このダミー骨階層に対してStretchを仕込んでいきます。
Stretchを実現する式は以下のようになります。

上記の式のコネクションを作成します。


これでダミー骨階層でSoft/StretchIKが実現出来るようになりました。


2016年9月3日土曜日

プラグイン ユーザー様

私が作成したプラグインが細々とですがユーザー様が増えてまいりました。
プラグイン販売は個人でやっている事なので、購入を検討している方とかは不安があるかと思います。 そこでその不安を少しでも取り除けるように、これまで購入して頂いたユーザー様を紹介させて頂きます。 (ユーザー様は随時更新してい参ります。)


東映 ツークン研究所 様
日本を代表する映画制作、配給、興行会社の事業部の1つ。
パフォーマンスキャプチャーなど最先端のデジタル技術を提供。



house of moves 様
ハリウッドを代表するモーションキャプチャー会社。




ECHOES 様
少数精鋭部隊で高品質なアニメーションを制作。オリジナル作品も多数制作。



D3D様
老舗のCGプロダクション。AAA級タイトルにも多数実績としてある会社。


他、多数。

他にもご紹介できる時がきましたら随時更新してまいります。