Постоянная толщина обводки шэйпа — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Постоянная толщина обводки шэйпа

2019-11-19 389
Постоянная толщина обводки шэйпа 0.00 из 5.00 0 оценок
Заказать работу

- отдельная Comp: AdjL, Slider Control - экспрешен на Stroke Width. Первая часть экспреша ищет камеру в композиции (если она есть, то ее zoom учитывается при расчете новой обводки) try { var cam = thisComp.activeCamera; f = (-1*cam.transform.position[2])/cam.cameraOption.zoom; } catch(err){f=1} w = comp("Controllers").layer("Width").effect("Lines Width").("Slider"); w*f*100/Scale [1] // для слоев, которые скейлим пропорционально

 

 

Fx Beam, connecting layers

Эффект «связки объектов ВЕРЕВКОЙ» (похоже на как сторонний плагин Connect Layers или mini-Plexus!) * Solid_1, fxBeam * 3 Null Objects, расположить их в разных местах вручную * У Beam: экспрешены на параметры - Starting Point: layer = thisComp.layer("Null 1") layer.toComp([0,0,0]) - End Point: layer = thisComp.layer("Null 2") layer.toComp([0,0,0]) Концы линии-веревки автоматически сориентируются по направлению к Null 1 и Null 2. - Увеличив в Beam параметр Length до 100% - концы встанут точно в соответствующие Null Objects * Второй и третий Solid Layers c аналогичными экспрешенами. * в «vertexes треугольника из линий» расположить любые шейпы/слои и привязать их к Null Objects * Заанимировать шейпы. Например, рандомно.  
  On your first Beam effect layer add the expression control "Layer Control" and rename it to 'Start Point'. Duplicate it and rename this one 'End Point'. Then you need to type in the expression window for starting point - effect("Start Point")("Layer").toComp([0,0,0]); -and for the ending point put in - effect("End Point")("Layer").toComp([0,0,0]); -. Now you can just select the layers you want to connect together from the drop down boxes. So 3 beam layers would make a triangle if you connect Dot 1 to Dot 2, Dot 2 to Dot 3 and Dot 3 to Dot 1.  

 

 

Стрелки часов

* AdjL («Arrows_Control»), накидываем два fx Angle Controls, называем «Seconds» и «Minutes»: * контроллер «Minutes» парентим к контроллеру «Seconds» с делением на 60: effect("Seconds")("Angle")/60;   * на контроллер «Seconds» варианты: 1) экспрешен: time*100; 2) экспрешен: timeToFrames(time); // за 1 сек поворот на 25 кадров (градусов) 3) два ключа (0 (1) 3) и экспрешен: loopOut("continue");   * Rotation шейпов-стрелок парентим к соответствующим Angle контроллерам
** Стрелку часов можно также сделать с помощью loopOut("offset");

 

*Экспрешен loopOut("offset"); можно использовать для быстрых корректив скорости – просто двигаем один из ключей, например, на Position.

 

Вывод инфо в Text Layer

▪ Text Layer ~ console.log

Text Layer, параметр Source Text просто парентим к Slider, чтобы показывать в окне Preview его значения
thisComp.layer("Shape Layer 1").transform.rotation; // вывести значение rotation   thisComp.layer("clocks").transform.position.value; // вывести значения position: thisComp.layer("Shape Layer 1").content("Fill 1").color.value; // цвет 4 цифры   thisComp.layer("Shape Layer 1").effect("Colors 1")("Midtones").name; // имя  
  thisLayer.name[thisLayer.name.length - 1]; // последний знак в имени слоя (буква или цифра:) thisLayer.name[thisLayer.name.length - 2]; // предпоследний…
  thisComp.layer("Shape Layer 1").sourceRectAtTime().width; // габариты слоя  
  Text Layer, в параметре Source Text пишем некий экспрешен, любые вычисления, т.д. Например:   G = thisComp.layer("Adjustment Layer 1").effect("Border")("Slider") if (G<0){        G= G*(-1); } // чтобы не было отрицательных значений value = "Slider now is "+"["+ parse Int(G) + "] " + "\nCheck it!";   * То, что выводить/показывать в Text Layer – это некоторое value: - пишем, как сумму, т.е. со знаками ПЛЮС - свои слова и символы/знаки пишем в КАВЫЧКАХ * то, что нужно начать выводить с новой стоки, например, слово ”\долларов” Добавляем два символа: \n
  Используем text.sourceText – чтобы вывести то, что уже написано в окне Preview, а далее пишем со знаком + то, что дополнительно хотим вывести/спарсить для просмотра.
  * String - представляет текстовую строку – по сути, это какая-то упорядоченная последовательность символов… index.toString(); // == index

 

▪ parse, float

* Функция parse преобразует строковой аргумент в числовое parse Int() – выводит целое число (от «I nteger») parse Float() – дробное число, с запятой (от «float» – плыть)
  ВМЕСТО функции parse в конце переменной-отсылки дописываем. value: p = thisComp.layer("charts").content("Ellipse 1").content("Trim Paths 1").end;   parseInt(p) + "%"; т.е. то же самое: p = thisComp.layer("charts").content("Ellipse 1").content("Trim Paths 1").end.value;  p + "%";   

 

▪ округлить /и вывести

à JavaScript Math à …

Если хотим округлить, то: rez = Math.round(length(posA, posB));
▪ Math. round(num) – округление как в математике ▪ Math. ceil(num) – округление в большую сторону: Math.ceil(1.2) == 2 ▪ Math. floor(num) - округление в меньшую сторону: Math.floor(1.2) == 1
▪ toFixed(x) – округление дробное значение до x знаков после запятой - переменную для округления предварительно перевести в числовой формат данных, используя parseFloat() или.value   Например, показать значение красного в Color, с округлением цифры до 2 знаков после запятой: c=thisComp.layer("Shape Layer 1").content("Rectangle 1").content("Fill 1").color; "Red: " + c[0].toFixed(2)%  

 

ТЕКСТ, слова

sourceRectAtTime();

sourceRectAtTime(time, extents);

sourceRectAtTime(); == sourceRectAtTime(time, false);

false – означает boundary box, не зависящую от толщины обводки

true – учитывает обводку и берет весь размер ShapeL или Text Layer

Урок https://www.youtube.com/watch?v=CVliDoNgoCg

Self-Sizing Title Boxes

 

 

Automated Self-Sizing Title Boxes по уроку от SoundDuck   * Пишем Текст * Рисуем прямоугольник вокруг него * Экспрешн на Contents – Rectangle 1 – Rectangle Path 1 – Size: s = comp("Main_03").layer("done!") // s от «source» свои имена w = s.sourceRectAtTime().width; h = s.sourceRectAtTime().height; [w,h] Экспрешн на Contents – Rectangle 1 – Rectangle Path 1 – Position: s = comp("Main_03").layer("well"); w = s.sourceRectAtTime().width/2; h = s.sourceRectAtTime().height/2; l = s.sourceRectAtTime().left; t = s.sourceRectAtTime().top; [w+l, h+t]   * Снова шейп Aline по центру композиции * Припарентить шейп к имени Текстового слоя (длиннее текст – шейп растягивается; трансформируется как текст, в т.ч. при изменении Aline у текста). * В Шейп Layer можно добавить Stroke или Offset Paths (как «охранное поле») * Теперь анимируем проявление текста и/или перемещаем!   ** Чтобы вначале проявления прямоугольник был сразу же нужной высоты, корректируем экспрешены, где слова height и top дописываем в скобках время, когда текст уже в всю свою высоту, например, 1: h = s.sourceRectAtTime(1).height/2; t = s.sourceRectAtTime(1).top; И чтобы при проявлении первой буквы не было горизонтального «растяжения» также у left: l = s.sourceRectAtTime(1).left; Но если текст без анимации на его исчезновении, то более удобно и гибко вместо (1) написать: (s. outPoint), иначе ((s.outPoint-s.inPoint)/2) * Чтобы прямоугольник был всегда видимым (не зависимо от времени появления текста):
  По уроку от ECAbrams * Имеем: - Text Layer «text» - Shape Layer, Rectangle, Fill; - накидываем fx Slider Control – будем задавать «охранное поле» вокруг текста   * экспрешен на Size прямоугольника: s = thisComp.layer("text").sourceRectAtTime(); h = s.height; w = s.width; p = effect("Slider Control")("Slider"); x= w + p; y= h + p; [x,y];   * экспрешен у Text Layer на Anchor Point (чтобы Anchor Point оставалась всегда в центре самого Text Layer): s = thisComp.layer("text").sourceRectAtTime(); h = s.height; w = s.width; l =s.left; t = s.top; x= l + w/2; y= t + h/2; [x,y];  Теперь изменения в окне Paragraph никак НЕ влияют! Текст печатается только из своей середины.   * парентим слой Text Layer к Shape Layer   * экспрешен у Shape Layer на Anchor Point: a = thisComp.layer("text").sourceRectAtTime(); h = a.height; w = a.width; l =a.left; t = a.top; x = w/-2 - l; // вариация для проявления букв слева y= h/-2 - t; [x,y]; - Anchor Point у прямоугольника – слева, у текста – поцентру.   * Появление текста: Text Layer – Text – Animate – Scale: 0; - ключи на Start (в Range Selector): вначале 0, через несколько кадров 100%.   * Меняем в экспрешене строчку Х, чтобы БУКВЫ печатались из своей: x = w/2 - l; // из своей правой части x = 0; // из своего центра  

 


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.