2013年11月27日水曜日

[MayaLT]IKHandleの不具合対応

MayaLTではjointをつくるさい、create ik Handleのオプションを有効にしてもIKは作成されませんでした。

検証した結果、ikHandleコマンドが無効になっているようです。

なのでikHandle作成に必要なノードをcreateNodeする必要があります。 必要なノードを作成して、ikHandleを作成するMelを作成してみました。

https://gist.github.com/hiko9lock/7660365

// file hq_ikHandle.mel
// Create ikHandle tool for MayaLT
// author Masahiko.Ishii <esuna.dev@gmail.com>
// date 2013/11/27
global proc hq_ikHandle()
{
string $sels[]= `ls -sl`;
string $ik= `createNode "ikHandle"`;
string $ef= `createNode "ikEffector"`;
select -r "ikSystem";
select -r $sels[1];
pickWalk -d up;
string $jnt[]= `ls -sl`;
parent $ef $jnt[0];
connectAttr ("ikSCsolver.message") ($ik+".ikSolver");
connectAttr ($ef+".handlePath[0]") ($ik+".endEffector");
connectAttr ($sels[0]+".message") ($ik+".startJoint");
connectAttr ($sels[1]+".tx") ($ef+".tx");
connectAttr ($sels[1]+".ty") ($ef+".ty");
connectAttr ($sels[1]+".tz") ($ef+".tz");
connectAttr ("ikSCsolver.message") ("ikSystem.ikSolver[0]");
}
hq_ikHandle;
view raw hq_ikHandle.mel hosted with ❤ by GitHub
使い方はスタートジョイントとエンドジョイントを選択してから
シーンにhq_ikHandle.melをドラッグ&ドロップで実行してください。

シングルチェーンソルバのIKが作成されます。

0 件のコメント:

コメントを投稿