我已經使用了一個表達式來在第一個粒子對象的死亡時發射粒子,並且它工作得非常好。我現在想要做的是使用第二組粒子(具有定義的壽命PP)來驅動關節旋轉,再次使用表達式,即當粒子存在時,我不希望發生任何關節旋轉,但是一旦它們死掉,我想要關節旋轉,然後迅速回到零,即收縮後迅速放鬆。所以,我有什麼是:在Maya粒子上使用MEL表達式來控制關節旋轉
if (nParticleShape.age < nParticleShape.lifespanPP)
muscleController.rotateY = 0;
else if (nParticleShape.age >= nParticleShape.lifespanPP)
muscleController.rotateY = -0.1;
這很好地表達旋轉關節,但對於更大的控制權,我真正需要的是另一種命令行快速接頭旋轉再次返回到0。此時,當粒子發射再次開始時,旋轉僅返回到0,並且年齡再次小於壽命。我在想也許還有其他一些線條,當粒子計數= 0時(即一旦所有粒子在超過壽命PP時所有粒子都已經熄滅),那麼再次旋轉y = 0?我想這不是,使用粒子計數:
int $numPar = `particle -ct nParticlShape`;
if($numPar == 0)
muscleController.rotateY = 0;
else if($numPar > 0)
muscleController.rotateY = -0.1;
瑪雅說,語法是正確的,但一旦它執行和不旋轉的關節,它拋出了各種各樣的錯誤。我真的很感激正確的MEL命令的任何建議用於旋轉關節,然後返回到0?道歉,但我真的很糟糕!
預先感謝您爲您的幫助和最良好的祝願,
瑪雅
謝謝Achayan你的迴應。我做了你提出的改變,這肯定解決了錯誤問題,謝謝!不幸的是,上述表達式的關節旋轉不會回到0。相反,我使用第一個表達式並交換了以下值: – mdivjak
if(nParticleShape.age = nParticleShape.lifespanPP) longMuscleController.rotateY = 0; –
mdivjak