ジョイントにスケールを入れる事になったりしてリセットしたい時に
どうしてもトランスフォームノードが勝手に入る事があった。
結局、作り直したほうが早いと思ったので、ジョイントを新規作成して再配置。
string $root[] =`ls -sl`;
string $AllNodeList[] = `listRelatives -ad -type "joint" $root[0]`;
select -cl ;
int $n,$t;
string $oldjoint[],$Newjoint[];
for($n=0;$n<`size$AllNodeList`;$n++)
{
rename $AllNodeList[$n] ($AllNodeList[$n] + "_old");
$oldjoint[$n] = $AllNodeList[$n] + "_old";
string $newName = $AllNodeList[$n] ;
float $jointPos[] = `xform -q -a -ws -sp $oldjoint[$n]`;
float $jointRot[] = `xform -q -a -ws -ro $oldjoint[$n]`;
$Newjoint[$n] = `joint -n $newName -p $jointPos[0] $jointPos[1] $jointPos[2] -o $jointRot[0] $jointRot[1] $jointRot[2] -rad 2.0`;
select -cl ;
//parent $newName ($AllNodeList[$n] + "_old");
}
for($n=0;$n<`size$Newjoint`;$n++)
{
string $pjointn[] = `listRelatives -p $oldjoint[$n]`;
if($root[0] != $pjointn[0])
{
int $index = stringArrayFind( $pjointn[0], 0, $oldjoint );
parent $Newjoint[$n] $Newjoint[$index];
}
else
{
parent -w $pjointn[0];
}
}
0 件のコメント:
コメントを投稿