CGJOY_484216062 发表于 2025-12-1 14:06

平滑曲线maya

global proc KTL_smoothKey() {


      float $preVal[],$curVal[],$nextVal[],$average,$keys[],$dupCUV[];
      int $sizeOfKeys;
      string $dupCurve[];
      string $cuvs[] = `keyframe -q -name`;


      for ($cuv in $cuvs) {
                $keys = `keyframe -q -sl $cuv`;
                $sizeOfKeys = `size $keys`;




                if ($sizeOfKeys < 3) continue;




      $dupCurve = `duplicate $cuv`;




                for ($i = 1; $i < $sizeOfKeys-1; $i++) {
                  $preVal = `keyframe -t $keys[$i-1] -q -vc $cuv`;
                  $curVal = `keyframe -t $keys[$i] -q -vc $cuv`;
                  $nextVal = `keyframe -t $keys[$i+1] -q -vc $cuv`;
                        $average = ($preVal + $curVal + $nextVal) / 3;
            keyframe -t $keys[$i] -a -vc $average $dupCurve;
                }


                for ($i = 1; $i < $sizeOfKeys-1; $i++) {
                  $dupCUV = `keyframe -t $keys[$i] -q -vc $dupCurve`;
            keyframe -t $keys[$i] -a -vc $dupCUV $cuv;
                }      


                delete $dupCurve;               
      }
}




global proc zidongpinghuagongju()
{
if (`window -exists zdpggj_MB`) deleteUI zdpggj_MB;
window -t "自动平滑帧工具" -s 0-h 100 zdpggj_MB;
rowColumnLayout -nc 1 -cw 1 200 -cw 1 200;
button -label "自动平滑帧" -c KTL_smoothKey;
separator -bgc 0 0.5 0.8;separator -bgc 0 0.5 0.8;
separator -bgc 1 1 0;separator -bgc 1 1 0;
showWindow zdpggj_MB;
window -e -w 200 -h 40 zdpggj_MB;
}
zidongpinghuagongju;

页: [1]
查看完整版本: 平滑曲线maya