永发信息网

大神 我想 写一个 设置渲染 结束帧 是 自动搜索 动画最后一帧的 mel 应该怎么写 麻烦 大神了

答案:1  悬赏:20  手机版
解决时间 2021-02-01 00:33
  • 提问者网友:椧運幽默
  • 2021-01-31 11:34
大神 我想 写一个 设置渲染 结束帧 是 自动搜索 动画最后一帧的 mel 应该怎么写 麻烦 大神了
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-01-31 11:41
//获取场景中所有的动画曲线,添加到一个变量里面
string $AllAnimationCurves[] = `ls -type "animCurveTA" -type "animCurveTL" -type "animCurveTU"`;

//设置一个空的浮点列表,用来存储所获取的动画帧数,这里用浮点而不用整形,是以防关键帧有小数时报错
float $AllAnimationTimes[] = {};

//for语句,遍历所有动画曲线
for ($AnimationCurve in $AllAnimationCurves){
//获取当前动画曲线的所有关键帧数值
$AnimationTimes = `keyframe -q -tc $AnimationCurve`;

//遍历所有关键帧,并将其添加到我们所设置的空的列表当中
for ($Temp in $AnimationTimes){

//将关键帧数值添加到浮点列表当中
floatArrayInsertAtIndex(size($AllAnimationTimes),$AllAnimationTimes,$Temp);
}
}

//将最终得到的浮点列表排序,默认状况下,从小到大
sort($AllAnimationTimes);

//获取浮点列表当中首位,即最前面的关键帧数值,如果不需要,可以去掉该句
float $StartFrame = $AllAnimationTimes[0];

//获取浮点列表当中的末位,即数值最大,最后面的关键帧数值
float $EndFrame = $AllAnimationTimes[size($AllAnimationTimes) - 1];

//该句是用来设置渲染属性起始关键帧的,不需要请手动删除
setAttr "defaultRenderGlobals.startFrame" $StartFrame;

//设置渲染属性的结束关键帧
setAttr "defaultRenderGlobals.endFrame" $EndFrame;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯