0

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

    if (nParticleShape.age < nParticleShape.lifespanPP) 

muscleController.rotateY = 0;

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

muscleController.rotateY = -0.1;

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

    int $numPar = `particle -ct nParticlShape`; 

if($numPar == 0) 

muscleController.rotateY = 0; 

else if($numPar > 0) 

muscleController.rotateY = -0.1;

Maya 说语法是正确的,但是一旦执行并且不旋转关节,就会引发各种错误。我真的很感激有关正确 MEL 命令用于旋转关节然后返回 0 的任何建议?抱歉,但我真的不擅长这个!

预先感谢您的所有帮助和最良好的祝愿,

玛雅

4

1 回答 1

0

您每次都创建一个发射器而不是查询,并且它最终会导致带有此int $numPar =粒子的字符串列表错误 -ct nParticlShape;可能您想要int $numPar =粒子 -q -ct nParticlShape; 这个

于 2016-07-18T23:47:29.897 回答