オリジナルのリグでは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です。
このダミー骨階層に対してStretchを仕込んでいきます。
Stretchを実現する式は以下のようになります。
上記の式のコネクションを作成します。
これでダミー骨階層でSoft/StretchIKが実現出来るようになりました。
0 件のコメント:
コメントを投稿