Render.ru

AE MotionMath 4 Professionals

#1
Вот такая беда в AE - не могу создать нормальный вложенный цикл, - приходится огород городить. Еще один трабл - создание многомерных массивов. Это такое невообразимое множество NULL слоев приходится создавать..... =( Записываю в POSITION последовательно свои данные, а потом оттуда их из скриптов извлекаю... =))) Вот изврат! Смотрите, что приходится делать...
Ребята, профессионалы, помогите мне чем-нибудь! Ведь это же абсолютно неизящные формы программирования!!! К тому же у AE наступает момент переполнения и он отказывается продолжать скрипт!!! Не дает написать ни одного символа, мол, все - хватит, написался уже.....

xx1 = 50;
xx2 = 70;
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [C]", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/15)*xx1 + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/13)*xx2 + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_c, n-1, 1)[x] = pos1[x] - 120;
effect_value(txt_field_c, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_c, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [O]", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/7)*(xx1+10) + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/5)*xx2 + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_o, n-1, 1)[x] = pos1[x] - 210;
effect_value(txt_field_o, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_o, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape ", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/10)*xx1 + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/20)*(xx2+20) + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_s, n-1, 1)[x] = pos1[x] - 310;
effect_value(txt_field_s, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_s, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [T]", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n))*(xx1+30) + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n))*(xx2+30) + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_t, n-1, 1)[x] = pos1[x] - 390;
effect_value(txt_field_t, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_t, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [def]", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/15)*xx1 + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/13)*xx2 + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_def, n-1, 1)[x] = pos1[x] - 445;
effect_value(txt_field_def, n-1, 1)[y] = pos1[y] - 295;
effect_value(txt_field_def, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [T]1", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/5)*xx1 + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/3)*xx2 + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_t1, n-1, 1)[x] = pos1[x] - 510;
effect_value(txt_field_t1, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_t1, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
n = 1;
while (n <= 15) {
pos1 = tmap(frame_to_time(n), value("PathShape [V]", position));
xtrace = value("x trace", position)[x];
pos1[x] = sin((xtrace-n)/15)*(xx1+10) + value("Motion Sketch", position)[x] + pos1[x];
pos1[y] = cos((xtrace-n)/3)*(xx2-10) + value("Motion Sketch", position)[y] + pos1[y];
effect_value(txt_field_v, n-1, 1)[x] = pos1[x] - 600;
effect_value(txt_field_v, n-1, 1)[y] = pos1[y] - 280;
effect_value(txt_field_v, n-1, 8) = sin((xtrace-n*5)/10)*20+10;
n = n + 1;
}
 
#2
Да, язык MotionMath в АЕ очень ограничен, боюсь, что дело не в профессионализме программиста, а в том, что язык не позволяет выйти за опроеделённые рамки. Слышал, что есть JavaScript for AE...
 

monter

Знаток
Рейтинг
35
#3
Влад!!!
При всем уважении, когда надо много программировать - переходи на С++, там ограничений нет. Листинги для АЕ смотри у Пети Вардена, думаю разберешся.
Кстати полезно будет для твоей книги (отдельная глава не для начинающих).
 
#4
Кто такой этот Петя Варден? Где взять его листинги? Хочу понять, как писать плагины для AE...
ЗЫ
Может знаешь какой-нить извращенный способ чтения точки с экрана в AE? Желательно еще и запись точки.
 

monter

Знаток
Рейтинг
35
#5
Это http://www.petewarden.com/
> Может знаешь какой-нить извращенный способ чтения точки с экрана в AE? Желательно еще и запись точки.
Не понял про какую точку - маска что-ли?
 
#6
У меня такая же проблема!
Я хорошо научился бриться и копать канавы одним лишь топором, а щи им хл@!#$ пока получается не очень ловко.
Профессионалы! Никто не пробовал топором щи хл@!#$?
Поделитесь опытом! Я пишу книгу "Использование топора в быту", нужна помощь.
 
#7
=))) Еще один позер нашелся... Давай о деле говорить, а не топорами кидаться, а то таких вот мастеров пустословов, как ты - масса! Да только никто толком ничего сказать не может. Давай - покажи знания, а не каркай..
 
#8
Спасибо за ссылку...

Про чтение точки: просто хочу прочитать информацию о точке с координатами (x,y) то есть получить данные RGBA
 

monter

Знаток
Рейтинг
35
#9
Влад!!!
Если я правильно понял, то

Меню>Window>info(Ctrl+2)
там и координаты и RGB и альфа

Если неправильно понял, то извини!
 
#10
=) Ты все упрощаешь... Я хочу научить свой скрипт произвольно "читать" точки с экрана AE.
 
Сверху