Render.ru

Помогите разобраться с туториалом

gosha

Активный участник
Рейтинг
12
#1
Привет всем.
Тут на одном сайте нашел туториал для работы с выражениями, но, честно говоря не могу толком разобраться.
Английский вроде знаю, но все равно что-то мутно врубаюсь именно в этот урок.
вот ссылка:
http://www.creativecow.net/articles/chao_joe/textstream/index.html

мне там не ясно вот что; там есть первые три картинки (с разным спиральными линиями на сером фоне), судя по которым складывается впечатление, что работают в max, но судя по тексту это не так. Эти три картинки из Афтера?
Если да, то в каких настройках это все работает?
Пожалуйста, помогите разобраться, уж больно интересный туториал!

Спасибо.
 

gosha

Активный участник
Рейтинг
12
#2
ну, что неужели никто не подскажет? хоть намекните в чем там фокус-покус.
 

monter

Знаток
Рейтинг
35
#3
Ну во первых, по тексту сразу видно что он как слой не деформируется, в МАХе это бы выглядело на много совершеннее.
Во вторых, в уроке есть проект, почему бы тебе его не скачать. Если скачал , то идем дальше.
Движение текстового слоя по спирали описывается математически, это не путь-маска в 3Д пространстве как мы бы это делали в МАХе.
Это движение и математическая формула наглядно показана в композиции helix.
Основная композиция textstream_final, может ты не заметил, огда проясняю:
Самый верхний текстовый слой title, присмотрись к параметрам слоя, почти в каждом параметре экспрешен.
Sourse Text:
n=index;
seedRandom(n, timeless = true);
myText = ["After Effects",
"Encore DVD",
"Photoshop",
"Premiere Pro",
"Final Cut Pro",
"Motion",
"Broadcast",
"Commotion",
"Cinema 4D",
"particle Illusion"];
myIndex = Math.floor(random(myText.length));
myText[myIndex]

представлен текстовый массив(myText), myIndex случайным образом(random) присваивается величина от 0 до длины текстового массива(myText.length), так как результат функции random() это не всегда целое число, то математической функцией Math.floor() его округляют до целого, это необходимо для того чтобы получить корректный индекс текстового массива.


Fill Color:
n=index;
seedRandom(n, timeless = true);
r=random(0,1);
g=random(0,1);
b=random(0,1);
[r,g,b,1]

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

Position:
n=index; //make different layers have different seed
seedRandom(n, timeless = true); //random value will not be affacted by time

timeratefactor=thisComp.layer("control").effect("timeratefactor")("Slider");
timerate=random(1/timeratefactor, timeratefactor); //control the random speed

looptime=thisComp.layer("guide").position.key(thisComp.layer("guide").position.numKeys).time //get the length of a loop
latetimemin=0;
latetimemax=looptime;
latetime=random(latetimemin,latetimemax); //random start time

xreplace=random(-thisComp.layer("control").effect("replace")("Slider"), thisComp.layer("control").effect("replace")("Slider"));
yreplace=random(-thisComp.layer("control").effect("replace")("Slider"), thisComp.layer("control").effect("replace")("Slider"));
zreplace=random(-thisComp.layer("control").effect("replace")("Slider"), thisComp.layer("control").effect("replace")("Slider")); //the thickness of the stream

when=(time-latetime)*timerate;
p=thisComp.layer("guide").position.valueAtTime(when); //get the expression of position

freq=thisComp.layer("control").effect("freq")("Slider");
ampmax=thisComp.layer("control").effect("ampmax")("Slider")
amp=random(0,(ampmax)/looptime); //how many times do you want the wiggle expression to affect the motion in every loop

a=p[0];
b=p[1]; //i only want wiggle affect z-axis
c=thisComp.layer("guide").position.wiggle(amp, freq, 1, .5, when)[2]; //wiggle the path

[a+xreplace,b+yreplace,c+zreplace] //out put the position

Следует обратить внимание откуда беруться настройки, для этого были введены Null слои на которые наложили эффекты-слайдеры
это контрольный слой
thisComp.layer("control").effect("timeratefactor")("Slider");
и
Слой откуда берутся данные ключей position
thisComp.layer("guide").position.key(thisComp.layer("guide").position.numKeys).time //get the length of a loop

Scale:
n=index;
seedRandom(n, timeless = true);
scalemin=thisComp.layer("control").effect("scalemin")("Slider")
scalemax=thisComp.layer("control").effect("scalemax")("Slider")
temp=random(scalemin, scalemax);
[temp,temp,temp]

Здесь создается видимость перспективы

Orientation:
lookAt(position.valueAtTime(time), position.valueAtTime(time+1/25))

Здесь осуществляется разворот текстового слоя.

Остальные слои, камера и свет создают только коппозицию, то что мы видим на экране.

ЗЫ
Урок конечно хороший для тех кто хорошо в школе учил матаматику, но таких как правило оказывается меньшинство, а большинство предпочитают 3D МАХ, проще и быстрее.
 
Сверху