Created on | Updated on
フォローする

現在の移動・回転・スケールを変えずに「トランスフォームの継承」を反転(MEL)

「トランスフォームの継承」の設定を変更してもTransformアトリビュートの値は変化しませんが、これを図る基準点が変化するためそれまでのポーズを維持することができません。 このスクリプトではTransformアトリビュートの値を変化することで、ポーズを維持しながら「トランスフォームの継承」の設定を変化させます。

{
    string $Selec[] = `ls -sl`;
    for($tmpSelec in $Selec){
        string $Parent[] = `listRelatives -p $tmpSelec`;
        if(`size($Parent)` > 0){
            string $Dummy[] = `duplicate -n "MQ_InheritsTransform" -rr $tmpSelec`;
            parent -w $Dummy;
            float $POS[] = `getAttr ($Dummy[0] + ".translate")`;
            float $ROT[] = `getAttr ($Dummy[0] + ".rotate")`;
            float $SCL[] = `getAttr ($Dummy[0] + ".scale")`;
            float $SHA[] = `getAttr ($Dummy[0] + ".shear")`;
            delete $Dummy;

            int $INH = `getAttr ($tmpSelec +".inheritsTransform")`;
            setAttr ($tmpSelec +".inheritsTransform") `abs ($INH - 1)`;

            xform -ws -t $POS[0] $POS[1] $POS[2] $tmpSelec;        
            xform -ws -ro $ROT[0] $ROT[1] $ROT[2] $tmpSelec;
            xform -ws -s $SCL[0] $SCL[1] $SCL[2] $tmpSelec;
            setAttr ($tmpSelec +".shear") $SHA[0] $SHA[1] $SHA[2];
        }else{
            int $INH = `getAttr ($tmpSelec +".inheritsTransform")`;
            setAttr ($tmpSelec +".inheritsTransform") `abs ($INH - 1)`;
        }
    }
    select -r $Selec;
}

 

製作者:KITAMURA MisaQa / MisaQa-k@borndigital.co.jp
制作日:2018/8/10
対応バージョン:Maya2018 update3以上
※このスクリプトを使用した一切の障害に対し弊社は責任を負いません。
※本スクリプトの販売目的での商用利用は許可いたしません。