2016-07-13 41 views
0

我已經使用了一個表達式來在第一個粒子對象的死亡時發射粒子,並且它工作得非常好。我現在想要做的是使用第二組粒子(具有定義的壽命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?道歉,但我真的很糟糕!

預先感謝您爲您的幫助和最良好的祝願,

瑪雅

回答

0

而是要創建每次emitor及其兩端一個字符串列表錯誤與此int $numPar =顆粒-ct nParticlShape查詢;可能你想int $numPar = particle -q -ct nParticlShape ;這個

+0

謝謝Achayan你的迴應。我做了你提出的改變,這肯定解決了錯誤問題,謝謝!不幸的是,上述表達式的關節旋轉不會回到0。相反,我使用第一個表達式並交換了以下值: – mdivjak

+0

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