在Maya粒子上使用MEL表达式控制关节旋转

时间:2016-07-13 06:43:58

标签: expression maya mel particles rotateanimation

我使用一个表达式在第一个粒子物体死亡时发射粒子,它的效果非常好。我现在要做的是使用第二组粒子(具有定义的寿命.PP)来驱动关节旋转,再次使用表达式,即在粒子存在时,我不希望发生任何关节旋转,但是一旦它们消失,我希望关节旋转然后迅速恢复到零,即收缩后迅速放松。所以,我所拥有的是:

    if (nParticleShape.age < nParticleShape.lifespanPP) 

muscleController.rotateY = 0;

else if (nParticleShape.age >= nParticleShape.lifespanPP) 

muscleController.rotateY = -0.1;

这个表达式可以很好地旋转关节,但是为了更好地控制,我真正需要的是另一个命令行,以便再次将关节旋转快速返回到0。此刻,当粒子发射再次开始时,旋转仅返回到0,并且年龄再次小于寿命。我想的可能是另一个其他的如果是行,当粒子数= 0时(即一旦所有粒子在超过lifeespanPP时已经消失),再次旋转y = 0?我尝试了这个,使用粒子计数:

    int $numPar = `particle -ct nParticlShape`; 

if($numPar == 0) 

muscleController.rotateY = 0; 

else if($numPar > 0) 

muscleController.rotateY = -0.1;

Maya说语法是正确的,但是一旦执行并且没有旋转关节,它就会抛出各种错误。我真的很感激有关正确MEL命令的任何建议,用于旋转关节然后返回0?道歉,但我真的很糟糕!

提前感谢您的所有帮助和祝福,

玛雅

1 个答案:

答案 0 :(得分:0)

而不是查询您每次都会创建一个emitor而且它最终会出现一个字符串列表错误,这个int $numPar =粒子-ct nParticlShape ;可能你想要int $numPar =粒子-q -ct nParticlShape ;这个