En ^ Ru

AVS для начинающих
 by AKX 2002,2003 revision 1.1
 
http://avs.chat.ru/avs4b.htm
http://avs.chat.ru/avs4b.avs
http://avs.chat.ru/avs4b_tu.avs
http://avs.chat.ru/avs4b_tv.avs
http://avs.chat.ru/avs4b_tv2.avs
 
Этот документ предполагает, что Вы используете AVS 2.5 или выше с Winamp 2.x.
 
Beginning
 
Всё с чего-то начинается, поэтому давайте начинать с основ. Выберите один из вариантов: Winamp 2.xx или Winamp3, в зависимости от версии вашего проигрывателя. Если Вы уже запустили плагин (Shift+Ctrl+K), то можете перейти в секцию The First Preset.
 
Winamp 2.xx
 
После запуска Winamp Вы увидите стандартное окно Winamp (however you have set it up). Предположим, что Вы используете стандартный скин (Winamp skin). Ниже окна индикатора времени, Вы увидите осциллограф, спектр (oscilloscope, spectrum) или пустое место. Щелкните там правой кнопкой мыши (RMB). Выберите плагин (Select plugin). Обычно самый верхний пункт в списке - Advanced Visualization Studio. Выберите его и нажмите Close. Затем щелкните два раза мышью в окне графического анализатора Winamp.
 
Winamp3
 
Если Вы используете default скин, то кликните по маленькой иконке Winamp в нижнем правом углу главного окна. Появится The Thinger. Затем, если AVS не виден, прокрутите кнопками со стрелками, таким образом, чтобы увидеть AVS и щелкните по нему. Если есть только одно окно, то кликните Open Editor.
 

The first preset
 
Вы увидите два окна. Меньшее, не серое окно, называют Render window. В другом, сером,  окне выберете меню File-New. В списке будет находиться строка Main. Выше списка находятся кнопки "+" (Add), "-" (Remove), "x2" (Duplicate). Щелкните кнопкой Add. Вы увидите меню:
 Presets >
 Render APE >
 Misc >
 Render >
 Effect list
 
 Presets > Меню Presets позволяет Вы быстро вставить другой пресет как effect list (подробнее об этом позже) к вашему пресету.
 Render APE > Это third-party drawing функция. Вы можете с её помощью гибко добавлять и удалять функциональные возможности AVS.
 Misc > Miscellaneous effects включают комментарий, буфер, режим рисования (draw mode) и BPM effects.
 Trans > Trans effects модифицируют и изменяют картинку различными способами.
 Render > Render effects формируют изображение на экране (draw shapes and pictures).
 
Теперь давайте добавим эффект. Объекты, которые составляют AVS preset, называют эффектами.
 
Выберите render effect под названием Moving Particle. Появится движущаяся точка, рисующая следы на экране. Серое пространство около списка изменяется на бокс, в котором будут параметры настройки для этого эффекта.
 
Попробуйте щелкнуть пункт Main в списке. Панель изменится, и будет отображать одну опцию "Clear every frame". Включите её. Теперь точка плавает вокруг центра. Выберите Moving Particle. Сдвиньте ползунок distance from centre. Когда Вы будете довольны выбранным расстоянием, измените скорость (speed) соответственно. Проверьте OnBeat box. Двигайте ползунок OnBeat size и выбирайте другой размер, отличающийся от стандартного. Теперь на каждом бите шар пульсирует. Это могло бы быть вашим первым пресетом.
 
Кликните COLOR box вверху редактируемого окна. Выберите оранжевый (reddish yellow) цвет RGB:(255,128,64). Затемните цвет таким образом, чтобы он был едва видим. Затем перейдите в box и выключите Clear every frame. Вы видите, что следы стали желтыми, красными и белыми. Это идея аддитивности. Величины Красного, Зелёного и Синего цвета находятся в диапазоне от 0 до 255. Если все величины равны 255, то цвет является белым. Величины цвета, произведённые перемещающейся частицей, добавляются к существующим величинам, с ограничением на 255. (Если хотите увидеть это более подробно, то измените размеры Render window, но помните, что расширение, конечно, требует большего количества ресурсов, and more of tweaking the graphics later.)
 
Теперь добавьте Trans эффект, называемый Fadeout. Двигайте ползунок в крайнее левое положение, которое None. При этом, важный момент (будете пользоваться этим впоследствии), захватите Fadeout в списке и переместите его ПЕРЕД moving particle. Wow! Исчезающая шаровая молния... Теперь добавьте trans эффект, называемый Movement. Выберите любой другой  эффект, кроме none или UserDefined, например sunburster. Разместите Movement после Moving Particle. Действительно ли Вы теперь счастливы? Это также могло бы быть вашим первым пресетом! Если хотите, удалите Fadeout или устанавливаете его в ноль.
 
[avs4b_tu.avs]
 
Чтобы добавить комментарии, выберите Misc - Comment и напишите текст. Некоторые системы Windows 95 могут иметь ошибку, которая не позволяет использовать клавишу Enter. Попробуйте CTRL+Enter и NumEnter. Также Вы можете дублировать эффекты. Попробуйте и продублируйте частицу.
 
Handling presets
 
Вы хотите сохранить сделанное, чтобы показать ваш новый пресет друзьям. Выберите File - Save, создайте директорию и сохраните пресет. Потом, чтобы загрузить пресет, щелкните правой кнопкой мыши по render window, и Вы увидите список. Определите местонахождение вашей папки (a sub-menu) и выберите файл. Wow! (Если хотите, испробуйте другие пресеты и воспроизведение с рендерингом.)
 

Getting serious
 
Вы экспериментировали с renders и transes, to get a grip on them. Давайте идти дальше, и делать некоторую математику. Создайте новый пресет. Clear Every Frame должно быть ON. Добавьте Render - SuperScope. Удалите весь текст на полях. Теперь Вы имеете пустой SuperScope (сленг: SS).
 
Поля объясняются следующим образом:
 Init: Field that is executed (начальные значения переменных)
       - either on code change
       - when the preset is loaded
 On Beat: Field is executed (изменения переменных при наличии импульсов ударных)
       - on beat for ONE TIME only
 Per frame: Field is executed (уравнения изменения переменных на каждом кадре)
       - before the Per Point codes are executed
 Per point: Field is executed (уравнения для вычисления координат точек)
       - every point.
 The point processed сохраняется в переменной i, которая ранжируется от 0 до 1.
Если Вы хотите знать absolute number точки, используйте код (i*n).
 The point quantity сохраняется в переменной n, которая ранжируется от 1 до бесконечности.
Это не должно модифицироваться, пока мы находимся в поле Per Point (It should not be modified while in the Per Point field).
 
Есть некоторые "псевдопеременные", которые Вы не можете использовать как storage variables, но которые, однако, могут иметь multiple letters.
 n: число точек (the number of points)
 x: горизонтальная координата (the horizontal coordinate of the point) (-1..+1)
 y: вертикальная координата (the vertical coordinate of the point) (-1..+1)
 i: положение (the scope position, goes with music) (0..1)
v: значение уровня сигнала в точке i (value) (-1..1)
 b: индикатор бита (beat) (set to 1 if beat, 0 if no beat)
 red, green, blue: значение цвета в точке (the color value of the point) (0..1)
 w: ширина (render width in pixels)
 h: высота (render height in pixels)
Если Вы знакомы с BASIC или C, то нет ничего, что нужно объяснять (за исключением того, что операторы "++,--,+=,-=,*=,/=" недействительны).
 
OK, давайте делать волну. Выберите Draw as: Lines. В поле Init определите n=100, чтобы установить point quantity. В поле Per frame определите t=t+0.01, чтобы переменная time (время) добавлялась по 0.01 за фрейм. В поле Per point наберите следующее:
x=-1+i*2;
l=sin(t+i);
y=l/1.1;
red=v;
green=rand(v*10)/10;
blue=0.1+i*l*5;
 
Если необходимо некоторое пояснение, то:
 Установка координаты X - только часть дела. Сначала удостоверяемся, что она начинается с крайне левого (-1), и проходит весь путь полностью (*2). Если бы переменная i (0..1) использовалась непосредственно, (-1+1) будет 0, который является точкой центра (centre point of the render).
 С переменной L немного сложнее. Мы используем l, чтобы хранить координату y для использования установки blue color. The sine wave is an even wave which smoothly interpolates from -1 to 1 during 0..2*pi. (Это может использоваться вместе с косинусом, чтобы сделать сферы.) Тогда мы просто устанавливаем координату y (-1..+1) как переменную l, и делаем её немного меньше, разделив на 1.1, чтобы вся волна была видна.
 The red value (0..1) is set to the value of the scope (sound wave) at the point (0..1).
 The green value is set to be randomized within the scopevalue and its first decimal, because the rand function will randomize only integers, getting decimal values must be done by rand(value*(10*decimals))/(10*decimals).
 The blue value is set to be pointnumber (let's say 0.5) times the wave value (ex. 0.9) times 5, so that 0.5*0.9*2 is 0.9. Then 0.1 is added to get the maximal effect.
 
Теперь, добавьте Misc - Set Render Mode (SRM). Выберите "Additive" из выпадающего списка и Line width: 5 pixels. SRM должен быть перед SS. Добавьте Trans - Fadeout перед SS и после SRM. Установите fade в самое медленное. Теперь выключите ClearEveryFrame. Wow? Сохраните результат.
 
[avs4b_tv.avs]
 

DM! DM! DM! (More math!)
 
Загрузите пресет из предыдущего примера. Добавьте Trans - Dynamic Movement (DM) после SS. В основном, DM работают как superscope, но Вы можете выбрать любые прямоугольные (Rectangular) координаты (x,y в диапазоне -1..1) или радиальные (Radial) координаты (d в диапазоне 0..1, r в диапазоне 0..2*pi). Мы будем использовать радиальные для большей наглядности. Установите оба параметра Grid sizes на 16.
 
 Напечатайте это в frame box:
t=t+0.02;
w=abs(sin(t))/2;
 Напечатайте это в pixel box:
d=(d-w);
r=r-(t*5)-(rand(w*2)/10);
 
Чувствуете идею? Нет, параметры W и H не используются, таким образом я делаю всё абсолютно правильно... (d, 0..1) является расстоянием от центра, - текущая координата в этой точке. (r, 0..2*pi) - направление в радианах (можете преобразовать градусы в радианы), -направление от верхней линии (upwards) экрана. Удалите Fadeout и добавьте Trans - Blur перед DM. Теперь Вы имеете пульсирующую и вращающуюся scope волну. Сохраните пресет.
 
 
Of blend modes
 
Blend modes, доступные в Render Mode, Buffer и Effect List можно объяснить как... хорошо, давайте возьмём пример. Что случается, когда Вы направляете точечный свет на пятно? Точка становится светлее. Что, если бы свет был отрицательным (черное излучение)? Пятно потемнело бы. Теперь Вы знаете, что такое смеси additive blends и subtractive blends. Вот математическая таблица некоторых смесей (если Вы, конечно, знаете, как работает видеосистема компьютера):
 
Исходные пикселы (source pixels) обозначены как Sr, Sg и Sb, в то время как пикселы расположения (destination pixels) - Dr, Dg и Db. Пикселы вычисляются в формате с плавающей запятой, где (1,1,1)=white.
 
Replace         Drgb=Srgb
Blend 50/50     Drgb=(Drgb+Srgb)/2
Additive        Drgb=Drgb+Srgb
Subtractive 1   Drgb=Drgb-Srgb
Subtractive 2   Drgb=Srgb-Drgb
Maximum blend   Drgb=(Drgb>Srgb)?Drgb:Srgb
 (sorry about the C notation in the max function... if you do not know C, the equation is "if Drgb is larger than Srgb, use Drgb or else Srgb")
Multiply blend  Drgb=Srgb*Drgb
 (always darkens if D not S)
 
Размещение этого документа свободно при условии копирайта.

Перевод: А.Панов.
http://avs.chat.ru

counter
Panow©



En ^ Ru

AVS for Beginners by AKX 2002,2003
revision 1.1
 
http://devever.net/pegercer/akx/webfeatures/avsguide/avsgde.html
Free Web Hosting