Render.ru

побороть setAttr...

Alexandr 1319

Активный участник
Рейтинг
11
#1
...есть значит в сцене патиклы типа спрайт, и у них есть атрибут перпатикл - spriteTwist.
Так вот, когда в скриптэдиторе я патаюсь достучатся через
setAttr "particleShape1.spriteTwistPP" $моя переменная,
то получаем
Error: 'particleShape1.spriteScaleYPP' is not a simple numeric attribute. Its values must be set with a -type flag.
понятно дело лезем в Mel Command Reference... :)
И видим, что у setAttr -type есть туча вариантов, но по смыслу ни один из них не подходит.
Причем экспрешен типа " particleShape1.spriteScaleYPP=рандом от ста " работает на ура.

Помогите кто чем может... плз.
 
#3
to >Покатигорошек
ну понятно, что экспрешен типа particleShape1.spriteTwistPP = рандом от ста "-тоже работает.
--------------------------

просто перпатикловым атрибутам нужно видимо присваивать массив?
Или где?
 
#4
Привет, Sashko

На самом деле надо сразу задуматься - нужен ли тебе именно скрипт, а не экспрешшн. Если все-таки нужен, тогда задумываемся: чем же отличается вообще скрипт от экспрешшна? Первое, что должно придти на ум - экспрешшн выполняется автоматически в каждом кадре, а скрипт ты запускаешь один раз (упрощенный вариант). Более того экспрешны для патиклов выполняются еще и для каждой частицы. Следовательно написать там spriteTwistPP=rand(360) было бы нормальным делом. НО, если ты пишешь скрипт, то будь добр, укажи для какой именно частицы ты хочешь установить spriteTwistPP. Например
setParticleAttr -at spriteTwistPP -fv 45 particleShape1.pt[0:51];
установит первым 52м частицам 45-градусный поворот.
Есть еще команда particle, что описана в
D:\AW\Maya4.0\docs\en_US\html\Commands\particle.html
Нужно помнить о типах данных с которыми работаешь.
Частицы - это массив объектов, имеющих свои атрибуты. И работать с ним надо соответственно.

удачи
Алексей Гусев
 
Сверху