Render.ru

нужен MEL

St.ASH

Активный участник
Рейтинг
9
#1
Товарищи!
Нужен скрипт, укладывающий тротуарную плитку.
Суть сцены такова: сначала плитки не видно (она под землею), где то в середине ролика она начинает аля вылезать из под земли и выкладываться аккуратненько по всему тротуару, тропинкам и т.д. На все про все отведено около 125 кадров.

Все бы ничего, но в сцене около 56000 плиток.

Подвопрос.
долго искал но както безрезультатно.
Есть ли в меле некая переменная которая при каждом последующем выполнении команды МЕЛ смещает коэффициент того или иного значения на определенное число.
Например: тротуар лежит дугой. Следовательно, прямоугольная плитка появляясь из под земли должна принимать угол поворота тротуара. То есть угол поворота каждой последующей плитка по оси У должен смещатся относительно предыдущей на определенный градус.


Спасибо.
 

xeash

Активный участник
Рейтинг
12
#2
можно сделать все не оптимизированно...через эскпресшен например, или партиклами...
кстати насчет смещения, может поможет, может нет:
1) выдели объект
2)сделай копию
3) в любом канале напиши +=, -=,*= и т.д а затем число -коэффициент. т.е. типа +=2 и канал копии изменится на задданное число
 

Миша Ершов

Модератор форума
Рейтинг
314
#3
Есть ли в меле некая переменная которая при каждом последующем выполнении команды МЕЛ смещает коэффициент того или иного значения на определенное число.
Простые циклы с этой задачей справятся.

Про анимацию плитки. Не знаю как там конкретно все выглядит, но раз 125 кадров, то не долго. Можно разделить участки плитки по типу появления и т.п., и написать несколько мел-скриптов.
Вообще странная постановка вопроса, без подробностей. Ничего не понятно.
 

solovjoff

Знаток
Рейтинг
24
#5
создай тротуар, наложи текстуру, и анимируй появление тротуара....ммм...внимательно посмотри на скриншоты
Edit Mesh ---> Cut Faces Tools с галочкой Delete Faces
 

Вложения

St.ASH

Активный участник
Рейтинг
9
#6
for Xeash:
Интересное решение. С его помощью я открыл для себя много нового.
В данном конкретном случае такой подход трудноприменим. Ибо смещение по каналам поворота и транслейта на протяжении всего тротуара разный как черное и белое. Т.е гдето смещение/поворот больше гдето соответственно меньше. Тротуар (плитка точнее) - не идеальный, то бишь как в реальности. По крайней мере так старался.
Спасибо)

for Миша Ершов:
"Простые циклы"... мне бы знать как они выглядят, я бы может и справился.
Подробности: в начале сцены нет тротуара. Где то в середине сцены плитки как бы волной появляются из под земли и укладываются вдоль тротуара. Причем важно показать что плитка именно "вылезает" из под земли (плитка похожа по форме на кирпич) и ложится, аля - трансформер.

for cКОТ:
не прокатит. нужно объемное видение (читай выше)))

for solovjoff:
Три часа пыхтел над советом но ничего не понял...)
Не получилось...

Но все равно спасибо




Пришлось решать проблему банальным и геморройным способом - разбивать по группам и вручную анимировать каждую группу по транслейту и ротейту...

так прошло 4 дня...
результат вроде нормальный...

Просто время жалко...
Буду учить мел как псалмы...
 

solovjoff

Знаток
Рейтинг
24
#7
дЫк елы палы, ну как не понял....дай свое мыло, я тебе скину сцену уже с анимированным тротуаром....или пиши в асю 200692001
я, тебе другой несколько проще (и соответств. быстрее) вариант тебе предложил, может быть немного не то, что ты просил, но то, что он тебе пригодится когда-нибудь, уверен на все 100
 

Миша Ершов

Модератор форума
Рейтинг
314
#8
Просто время жалко...
Буду учить мел как псалмы...
Я все равно так полностью и не понял что именно нужно. Всё-таки нужно подобные вопросы иллюстрировать.
Ну а мел конечно надо изучать. К тому же в нём ничего сложного нет.
 

DEL

Активный участник
Рейтинг
15
#9
Можно сделать так :
Расставить плитки с помощю Animatio SnapShot, дальше можно прицепить к каждой копии по одной косточке(на хаэйнде есть подобные скрипты) и анимировать(в ручную или експрешеном).
 

Lakoske

Активный участник
Рейтинг
11
#10
косточками... флюидами еще посоветуйте ему.
тривиальная задача один цикл - не знаю что тут не понятного
алгоритм простой:
делаешь одну плитку с анимацией - как она там у тебя поднимается из под земли и крутится
дублируешь с сохранением анимации
открываеш скрипт эдитор
открываешь граф эдитор
сдвигаешь у дубликата анимационные кривые на некое d (d=кол-во плиток/хронометраж)
смотришь что там появилось в скрипт эдиторе
дальше какими-то средсвами создаешь дубликатов сколько надо (анимация должна сохраняться) и как надо расположенных - хорошо чтобы именовались адекватно - tl_1...tl_500
потом выделяешь их в аутлайнере и запускаешь скрипт который выглядит примерно так:

$obj=`ls -sl`;
for ($o in $obj){
а тут к $o применяестя механизм смещения анимационных кривых, который ты подсмотрел раньше в скрипт эдиторе. модифицированный и красивый.
}

мне кажется это самый простой, ломовой способ.

удачи
 

Ro

Знаток
Рейтинг
38
#11
создаешь один элемент плитки, называешь его "a1" заходишь в Dublicate Special, пишешь что надо сделать 55900 дубликатов методом смещения на определенное расстояние новой плитки относительно предыдущей, там же настраиваешь поворот одной плитки относительно другой, и у тебя получается идеально ровный асфальт. что бы проанимировать "вырастающий" из земли асфальт все плитки вначале прячешь под землю, потом пишешь скрипт типа "процесс"

proc knopka(){
int $chislo;
for ($chislo<449){
int $number=1;
("a"+$number).translateX=("a"+$number).translateX+ ... (тут расстояние, на которое плитка должна переместиться вверх, равное высоте плитки + расстояние от верха плитки до земли, под которой плитка пока и обитает)
$number=$number+1;
$chislo=$chislo+1;};
};

chislo это переменная которая заставляет проц выполнять себя в каждом кадре по 448 раз, так как 56000/125=448. тоесть в каждом кадре будет выкапываться 448 плиток, ибо количество плиток и кадров строго оговорено

теперь в экспрешене задать операцию включения "процесса"

knopka;

исправьте если будут ошибки : ) мона конечно ваще скрипт сделать что бы одним нажатием все действия делал, тока вводи сколько кадров и сколько плиток
 

Ro

Знаток
Рейтинг
38
#12
и в конце проверку на chislo забыл, после строчки $chislo=$chislo+1;}; вставить

$chislo=$chislo+1;
if ($chislo=449){$chislo=1;};};
};
 

Ro

Знаток
Рейтинг
38
#13
и в конце проверку на chislo забыл, вместо строчки $chislo=$chislo+1;}; вставить

$chislo=$chislo+1;
if ($chislo=449){$chislo=1;};};
};
 
Рейтинг
25
#15
можно при помощи DrivenKey сделать необходимую анимацию, зафиксить её на кастом аттрибуте который потом в зависимости от времени тягать экспрешеном например, можно также небольшой ранд повешать, чтобы не всё так скушно...
 
Сверху