2016-07-13 4 views
0

J'ai utilisé une expression pour émettre des particules à la mort d'un premier objet de particule et cela fonctionne très bien. Ce que je veux faire maintenant est d'utiliser ce second ensemble de particules (avec la durée de vie définie .PP) pour conduire la rotation des articulations, en utilisant des expressions, c'est-à-dire quand les particules existent, je ne veux pas de rotation meurt, je veux que l'articulation tourne, puis rapidement revenir à zéro c'est-à-dire se détendre rapidement après une contraction. Alors, ce que j'ai est:Utilisation d'expressions MEL sur des particules Maya pour contrôler la rotation des joints

if (nParticleShape.age < nParticleShape.lifespanPP) 

muscleController.rotateY = 0; 

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

muscleController.rotateY = -0.1; 

Cette expression fait tourner le joint bien, mais pour un meilleur contrôle, ce que je vraiment besoin est une autre ligne de commande pour revenir rapidement la rotation commune à 0 à nouveau. À l'heure actuelle, la rotation ne revient à 0 que lorsque l'émission de particules recommence, et l'âge est encore une fois inférieur à la durée de vie. Je pensais peut-être à une autre ligne si autre, quelque chose à l'effet que quand la particule compte = 0 (ie une fois que toutes les particules sont mortes quand la durée de vie est dépassée), cela tourne encore = 0? J'ai essayé au lieu, en utilisant nombre de particules:

int $numPar = `particle -ct nParticlShape`; 

if($numPar == 0) 

muscleController.rotateY = 0; 

else if($numPar > 0) 

muscleController.rotateY = -0.1; 

Maya dit la syntaxe est correcte, mais il vomit toutes sortes d'erreurs une fois qu'il exécute et ne tourne pas le joint. J'apprécierais vraiment tout conseil sur les commandes correctes de MEL à employer pour tourner l'articulation puis retourner à 0? Toutes mes excuses, mais je suis vraiment mauvais à ça!

Merci d'avance pour votre aide et meilleurs voeux,

Maja

Répondre

0

Au lieu de requête que vous créez un Emitor chaque fois et ses extrémités jusqu'à une erreur de liste de chaînes avec cette int $numPar = particule -ct nParticlShape ; probablement vous voulez int $numPar = particule -q -ct nParticlShape ; ce

+0

Merci Achayan pour votre réponse. J'ai fait le changement que vous avez suggéré et cela a définitivement résolu le problème d'erreur, merci! Malheureusement, la rotation conjointe ne revient pas à 0 avec l'expression ci-dessus. Au lieu de cela je suis allé avec la première expression et échangé les valeurs ainsi: – mdivjak

+0

if (nParticleShape.age = nParticleShape.lifespanPP) longMuscleController.rotateY = 0; – mdivjak