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以上
※このスクリプトを使用した一切の障害に対し弊社は責任を負いません。
※本スクリプトの販売目的での商用利用は許可いたしません。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ