Render.ru

Mel скрипт, проблема

Тридэшник

Активный участник
Рейтинг
11
#1
Всем привет! Есть скрипт ( из «Понимая мая»), который деформирует scaleY, всех объектов(10х10кубиков = 100 шт):
------------------------------------------------------
string $prob[]= `ls - sl`;
string $item;


for($item in $prob)
{
setAttr ($item+".scaleY") (rand (2,5));

}
-------------------------------------------------------
Теперь пытаюсь сделать анимацию, плавное, разное для всех кубиков «scaleY», вставляю тот же скрипт в Exspres. ed. … Получается не то, что нужно.
Пробывал «sin» вместо «rand», работает, но:
1) отрицательная амплитуда не устраивает
2) все кубики одинаково трансформируются
Не подскажите как сделать такое?
 
Рейтинг
23
#2
1-ое. Скрипт нельзя просто вставлять в экспрешн.
Экспрешн вычисляется в момент, когда майка запрашивает значение какого-то атрибута, а у тебя в экспрешене стоит setAttr, который как раз инициирует вычисление экспрешена.. в общем теоретически возможны циклы, ну или на худой конец вообще ничего вычисляться не будет.

2-ое. Для плавных "случайных" чисел юзай noise. Если нужны только положительные значения юзай abs (модуль)

3-ье. В экспрешене нельзя пользоваться такими вещами как "непрямое обращение к объекту".
setAttr ($item+".scaleY") (rand (2,5));
Заранее неизвестно что за атрибут такой $item+".scaleY".
Нужно знать конкретные имена и к ним обращаться так:
pCube1.scaleY = noise(10);

Удачи!
 
Сверху