Render.ru

случайный порядок слоев в композиции

igorshmigor

Пользователь сайта
Рейтинг
2
#1
всем привет!
у меня композиция из пятиста слоев и нужно чтобы эти слои были разбросаны рандомно в стеке.. не по времени сдвинуты, а именно порядок "вертикальный"... руками перетаскивать морока, может, существует некий скрипт?



________________________________
или поставлю ситуацию под другим ракурсом:
дано сто иконок, необходимо заанимировать простейшим образом - одна иконка сменяет другую спустя 10 кадров.

я решил реализовать данную задачу при помощи trapcode particular
в прекомпоз закинул все необходимые слои
количество испускаемых частиц = 1
первый кадр 1 партикля, второй кадр 0 партиклей
текстура - нужная прекомпозиция, time sampling - random loop

так вот штука в том что несмотря на то, что поставлен рэндом - так как испукаемая частичка одна - трапкод все равно проигрывает прекомпоз линейно.... то есть можно сдвинуть точку начала проигрывания анимации в прекомпозе, но дальше поярдок символов - как в прекомпозе... поэтому нужно в прекомпозе менять порядок слоев...

возможно ктото подскажет более элегантное решение?


спасибо!
 
Рейтинг
54
#2
так вот штука в том что несмотря на то, что поставлен рэндом - так как испукаемая частичка одна - трапкод все равно проигрывает прекомпоз линейно....
рандом стоит для множества частиц и подразумевает что кадр с которого будет проигрываться для каждой частицы разный.

попробуй сделай секвенцию, раз уж есть сапфиры назначь S_RandomEdits, в параметре edit frame length поставь 10.
должно получится.
 

videodesigner

Активный участник
Рейтинг
5
#3
Не понятно поставлена задача. Что значит "сменяет другую"? Просто каждые 10 кадров включается один из слоев? Допустим, да.
Разумеется, задачу нужно решать путем программирования. Со скриптами мне лениво, я такие вещи делаю выражениями.
Если подходить к решению правильно, для начала нужно решить задачу о заполнении массива из указанных N=100 элементов неповторяющимися случайными числами. Я как-то находил в СЕТИ довольно короткие алгоритмы, но для реализации в выражениях АЕ они все же малопригодны. Поэтому я в композицию со ста картинками кладу вниз какой-нибудь SOLID (назовем его FX), вешаю на него Expression Slider (назовем его To) и присваиваю ему выражение
seedRandom( value); random( index-1)
Соответственно, двигая ползунком слайдера, мы будем задавать оригинальную последовательность случайных чисел в диапазоне от 0 до N-1, где N=index=количество картинок в композиции НАД слоем FX.
Пусть время демонстрации одного слоя будет T (автор хотел 10 кадров, значит T=10*thisComp.frameDuration;).

Назначьте всем слоям-картинкам выражение на Opacity (присвойте одному, а потом скопируйте):
To=thisComp.layer("FX").effect("To")("Slider").valueAtTime( index)*T;
Opacity=0;
if (time >= To) Opacity=100;
if (time >To+T) Opacity=0;
Opacity

В результате получите вседослучайное мелькание ваших картинок. Скорее всего, некоторые будут повторяться, но не думаю, что это будет иметь значение.
 
Сверху