3D лента из текста.
(Прим. пер. Поскольку урок достаточно длинный, то я позволила себе опустить при переводе всяческие лирические отступления автора. Главное, что данный урок можно выполнить, используя стандартные средства After Effects)
Нулевые слои − рабочие лошадки.
Создайте новую композицию, назовите ее "Guide_A". Вы можете установить любое разрешение и длительность, которые хотите. У автора - 720 x 480, длительность 10 секунд. Добавьте два нулевых слоя (объекта) (Layer/New/Null Object); назовите первый − "Controls", второй -"Txt_Guide".
(Для того, чтобы быстро изменить название композиции, слоя, эффекта в After Effects, выделите старое название и нажмите Enter, введите новое. Прим. пер.)
К первому нулевому объекту добавьте два эффекта Slider Controls, которые вы можете найти в палитре Effects and Presets (Ctrl+5) в категории под названием expressions Controls. Второй вариант - ввести «slider» в строку возле слова Contains в данной палитре. Установите имя первого Slider Control "Txt_Tracking" и второго - "Comp_Spacing". Правый клик на параметре slider Txt_Tracking, выберите edit value (отредактировать значение), установите область изменения от 0 to 5 (Slider Range) и значение 1.0. Правый клик на параметре slider Comp_Spacing, опять выберите edit value, установите область изменения от -15 до 15, а значение оставьте равным 0.0. Мы будем использовать эти Controls позже, чтобы подгонять расстояние между буквами текста и между повторяющимися композициями текста.
Этот нулевой объект просто дает возможность контролировать некоторые параметры анимации, поэтому в его собственной анимации нет нужды. Необходимо включить опцию 3D слоя, чтобы при добавлении композиций и преобразований 3D свойства работали корректно.
Причина, по которой используется дополнительный нулевой слой, - возможность использовать большое количество эффектов из серии expression Controls, при этом не боясь испортить настройки нулевого слоя Txt_Guide. Данный слой должен выполнять лишь одну функцию – задавать траекторию движения текста.
Добавьте еще несколько эффектов expression Сontrols: три Slider Controls и один Сolor Effect Control. Введите новые названия для эффектов Slider Control: для первого - "X_Roll_Rate", для второго − "Anchor_Pt", для третьего − "Scale". Название для Сolor Effect Control - "Color". Вы можете добавлять любое количество эффектов expression Controls к данному слою, но на данном этапе можно ограничиться тем, что мы успели применить. Правый клик на параметре slider «X_Roll_Rate», оставьте область изменения от 0-100 и просто измените начальное значение на 100. Правый клик на slider Anchor_Pt, установите область изменения от -100 до 100, начальное значение оставьте равным 0. Для «Scale» область изменения значения 0-500, начальное значение 100. Кликните сборщик цветов (color picker) и установите H=200 (оттенок), S=20(насыщенность) и B=100 (яркость).
К нулевому слою Txt_Guide примените следующие установки
1. Сделайте его 3D объектом, кликнув на соответствующий значок в окне Timeline.
2. Anchor Point 50,50,0 (не обязательно, но это помогает следить за движение по траектории)
3. Для параметра Position установите ключевой кадр в начале композиции (значение 720,240,0. (определяется выбранным разрешением композиции)) и в конце (0,240,0). Данные действия приведут к тому, что мы получим прямую траекторию движения справа налево. Окончательную траекторию движения мы создадим позже. Добавляем тект для экспериментов.
Создайте новую композицию того же размера и длительностью, как и первая, назовите ее «Text_A».
Добавьте нулевой слой с названием «Global_Tracking». К этому слою добавьте Slider Effect Control, переименуйте эффект как "Tracking". Область изменения значения 0-5, Alt+клик на иконке с часами возле параметра slider и добавьте выражение:
comp("Guide_A").layer("Controls").effect("Txt_Tracking")("Slider")
(Данное выражение обозначает, что численное значение параметра Slider данного эффекта устанавливается в каждый момент времени равным значению такого же параметра эффекта Txt_Tracking для слоя Controls композиции Guide_A). Данное действие позволяет управлять индивидуальными характеристиками нашего текста в пределах композиции Text_A через нулевой слой Controls в композиции Guide_A. С одной стороны это может показаться избыточным, но, как утверждает автор, это может оказаться очень удобным при многократном копировании слоев и композиций, когда вы захотите, чтобы какие либо изменения, сделанные в одном или двух слоях, затронули все новые слои и композиции одновременно.
Как и прежде, нет необходимости делать анимацию для нулевого слоя Global_Tracking, только не забудьте cделать его 3D объектом.
Теперь создайте текстовый слой и убедитесь, что он находится ниже слоя Global_Tracking в окне Timeline. Напечатайте любой текст на ваше усмотрение, автор использовал слово TEXT. Можно заменить его на окончательный вариант несколько позже. В палитре paragraph установите выравнивание текста по левому краю, шрифт Arial Bold, размер 30пкс. В окне Timeline выполните следующие действия:
•Сделайте данный слой трехмерным, кликнув на соответствующую иконку
•Нажмите Ctrl + Alt + O и установите Auto Orient на Orient Along Path (Ориентировать вдоль пути):
•Откройте закладку со свойствами слоя и сделайте следующие установки:
•Text:Добавьте аниматор для свойства слоя прозрачность и назовите его "Opacity".
•Установите для свойства аниматора прозрачность значение, равное 0. Теперь текст должен исчезнуть.
•Откройте меню для AnimatorGroup, затем
•Разверните меню Range Selector, затем
•Откройте закладку Advanced, и установите следующие параметры
oUnits − Index,
oBased On - Characters Excluding Spaces,
oMode - Subtract.
•Возвращаемся в меню Range Selector
oОставляем значение Start на 0.0
oУстанавливаем значение End, равным 1.0.
oДля Offset: добавляем следующее выражение
thisLayer.index-2
Первая буква вашего текста должна появиться, остальные буквы должны остаться невидимыми. Наши действия можно обозначить как маскирование букв. Написанное нами выражение вычитает из порядкового номера слоя (index) 2 и возвращает значение 0 в нашем случае. Так как значение параметра Offset равно 0, то численные значения параметров Start и End остаются неизменными, и как результат мы видим лишь перевую букву. Достаточно просто, но сила этого приема обнаружится, когда мы продублируем текстовый слой, порядковый номер равен тогда 3, значение параметра Offset 1, это вызовет увеличение численных значений параметров Start и End на 1, что откроет нам следующую букву.
Теперь добавьте еще один аниматор, в этот раз для свойства Anchor Point. Присвойте данному аниматору имя "Characteristics"; справа от названия аниматора нажмите на кнопочку add, чтобы добавить свойства Scale property и Fill Color: RGB к этой же группе аниматоров. Теперь добавьте следующие выражения
•Для свойства Anchor Point:
[0,comp("Guide_A").layer("Controls").effect("Anchor_Pt")("Slider")]•Для Scale:
Scale= comp("Guide_A").layer("Controls").effect("Scale")("Slider");
[Scale, Scale]
•Для Color:
comp("Guide_A").layer("Controls").effect("Color")("Color")
Все это позволит нам глобально изменять положение точки привязки, масштабировать и изменять цвет нашего текста посредством нулевого слоя Controls в композиции Guide_A.
Anchor Point: Устанавите значения координат x и y точки привязки примерно в центре первой буквы текста.
Position: добавьте выражение:
comp("Guide_A").layer("Txt_Guide").position
Данное выражение связывает положение этого слоя с положением нулевого слоя Txt_Guide в композиции с именени Guide_A, которая была создана ранее. Таким образом, куда бы не перемещался нулевой объект, текстовый слой будет следовать по той же траектории.
Orientation: добавьте выражение:
a= Math.atan(position[0]);
if(position[1]<0){b= Math.atan2(position[0],position[1])}else{b= Math.atan(position[1])};
[radiansToDegrees(a),radiansToDegrees(B),radiansToDegrees(-a)]
Это выражение задает ориентацию текста, параллельную траектории движения. Оператор if-else позволяет смягчить одно следствие, описанное в последней части данного урока.
X Rotation: добавьте выражение:
comp("Guide_A").layer("Txt_Guide").rotationX
Это выражение связывает этот слой с нулевым слоем Txt_Guide из композиции Guide_A. Таким образом, численное значение параметра X Rotation в любой момент совпадает с численным значением соответствующего параметра слоя Txt_Guide.
Добавим окончательный вариант текста.
•Под строкой Text:удерживая Alt кликните правой кнопкой мыши по иконке с часами возле Source Text: Введите текст, заключенный в кавычки. Автор использовал строку "3D RIBBON TEXT"
•Material Options:
oУстановите Casts Shadows на On
oLight Transmission на 25%
•Motion Blur: Вы можете включить данную опцию для текстового слоя, но помните, что ее применение значение значительно увеличивает время для рендеринга композиции.
Займемся дублированием слоев.
В окне Timeline дублируйте (Ctrl + D )текстовый слой (слой 2) и вы увидите, как появится вторая буква вашей строки. Теперь внесите следующие изменения:
•Добавьте эффект Slider Effect control, переименуйте его в "Initial_Tracking". Как всегда, правый клик на параметре данного эффекта slider и отредактируйте область изменения (0-10) и установите начальное значение 0.25.
•Text: Source Text: Замените строку на следующее выражение:
thisComp.layer(2).text.sourceText
Это свяжет текст данного слоя с текстом предыдущего слоя, что при нашем желании позволит нам полностью изменить его только в одном слое, в других слоях текст автоматически поменяется на новый.
•Text: Characteristics: Замените существующие выражения на следующие:
oAnchor Point:
thisComp.layer(2).text.animator("Characteristics").property.anchorPoint
oScale:
thisComp.layer(2).text.animator("Characteristics") .property.scale
oColor:
thisComp.layer(2).text.animator("Characteristics").property.fillColor
(Прим. используйте Pick Wipe для упрощения написания выражений)
•Anchor Point: измените только значение координаты x, чтобы совместить точку привязки с центром второй буквы. При этом вторая буква накроет первую.
•Position:замените выражение на следующее:
Initial_Tracking= effect("Initial_Tracking")("Slider");
Global_Tracking=thisComp.layer("Global_Tracking").effect("Tracking")("Slider");
thisComp.layer(2).position.valueAtTime(time-Initial_Tracking*Global_Tracking)
Это выражение обращается к численным значениям параметра slider двух эффектов (Initial_Tracking and Global_Tracking), которые умножаются друг на друга. На основе этого определяются смещение и положение второй буквы относительно первой в любой момент времени. Координата второй буквы равна координате первой Initial_Tracking*Global_Tracking секунд назад. Это необходимо сделать по следующей причине: мы не можем точно знать ширину каждой буквы в отдельности. Например, буква "I" уже, чем другие, например, "M", поэтому мы используем Initial_Tracking, чтобы компенсировать эту разницу. В конечном счете мы будем использовать slider в Txt_Tracking нулевого слоя Controls композиции Guide_A для задания общего смещения букв.
•Initial_Tracking: отрегулируйте положение ползунка параметра slider, пока вы не будете удовлетворены размером промежутка между буквами. Начальное значение 0.25 дает достаточно хорошее первое приближение, но вы можете откорректировать его. У автора - 0.33.
•X Rotation: замените выражение следующим:
L= thisLayer.index;
Shift= (L-2)/ comp("Guide_A").layer("Controls").effect("X_Roll_Rate")("Slider");
thisComp.layer(2).rotationX.valueAtTime(time-Shift)
Что делает данное выражение? Из порядкового номера слоя вычитается 2, полученное значение делится на значение параметра slider эффекта X_Roll_Rate. Это дает нам численное значение задержки времени для вращения второй буквы относительно первой, т.е. вторая буква полностью повторяет вращательное движение первой, только отстает на время, равное Shift (в наших обозначениях). Так как мы установили начальное значение slider 100, то каждый следующий слой отстает от предыдущего на одну сотую секунды. Вы можете изменить время запаздывания, задав другое численное значение параметра slider эффекта X_Roll_Rate нулевого слоя композиции Guide_A.
Теперь наша задача сделать видимыми все остальные буквы, дублируя слои. Выделите самый нижний текстовый слой, нажмите клавишу E, чтобы открыть строку с эффектом Initial_Tracking, разверните меню, соответствующее ему, нажмите Shift + A, чтобы отображалась строка со свойством точки привязки. Только эти параметры нам придется изменять в процессе дублирования. Обратите внимание, в процессе работы мы будем всегда настраивать самый нижний текстовый слой. Также сначала центруйте положение точки привязки, а потом регулируйте ползунок эффекта Initial_Tracking.
Направляющие
В процессе работы по установлению величины промежутка между буквами и словами может быть полезным следующее. Передвиньте ползунок времени примерно на 2 с вперед от начала, установите такой размер композиции в ее окне, чтобы были видны ее края. Там же установите две направляющие: одну на правом крае первой буквы текста, вторую на левом крае второй буквы. Это удобно для более качественного выравнивания букв вдоль траектории, установления промежутков между буквами. При этом возникает необходимость при добавлении каждого нового слоя двигать немного ползунок индикатора времени (Ctrl+правая стрелка – на один кадр вперед, Ctrl+левая стрелка – на один кадр назад для более тонкой настройки положения индикатора. Так можно регулировать , по крайней мере, в АЕ 7.0, у автора написано про кнопки Page Up и Page Down.), чтобы направляющие визуально задавали расстояние между следующими парами букв. Точная регулировка расстояния осуществляется посредством задания необходимого значения slider эффекта Initial_Tracking. Когда вы доберетесь до первого пробела между словами, вы можете добавить еще одну направляющую, для того, чтобы регулировать расстояние между словами текста. Опытным путем автор установил, что при использовании шрифта в 30 пкс, лучшее расстояние между буквами равно 7 пкс, между словами − 25 пкс.
При центровке точки привязки можно для удобства на время делать невидимым слой с предыдущей буквой.
Проявляем буквы
Выберите второй текстовый слой (слой 3), дублируйте его (Ctrl+D), появится третья буква. Внесите следующие изменения в параметры самого нижнего слоя.
•Anchor Point: Установите только значение координаты x, разместите точку привязки в центе буквы. После этого изображение третьей буквы накроет вторую.
•Effect: Initial_Tracking: Отрегулируйте значение параметра эффекта Initial_Tracking пока не будете удовлетворены величиной расстояния между второй и третьей буквой. Используйте направляющие и изменяйте положение индикатора времени на шкале.
Теперь продолжайте дублировать слои, всегда выбирайте самый нижний текстовый слой, центрируйте положение точки привязки на очередной букве, устанавливайте необходимое значение параметра slider эффекта Initial_Tracking, пока не проявятся все буквы вашего текста. Важно именно в этой части работы задать все установки таким образом, чтобы строка выглядела так, как вам нравится. В противном случае при дублировании данной композиции несколько раз вам придется вручную исправлять гораздо большее количество слоев или вообще удалять композиции и текстовые слои, начиная работу сначала.
Дублируем композиции
В окне проекта выберите композицию Text_A и дублируйте ее.
Двойной клик на новой композиции Text_A 2 и сделайте следующие изменения в текстовой слое номер 2 и только в нем.
•Source Text: замените строку на следующее выражение
comp("Text_A").layer(2).text.sourceText
•Position: замените выражение на следующее:
Control= comp("Guide_A").layer("Controls").effect("Comp_Spacing")("Slider");
comp("Guide_A").layer("Txt_Guide").position.valueAtTime(time-Control)
•X Rotation: замените выражение на следующее:
L_Num= comp("Text_A").numLayers;
Shift= (L_Num)/ comp("Guide_A").layer("Controls").effect("X_Roll_Rate")("Slider");
comp("Text_A").layer(2).rotationX.valueAtTime(time-Shift)
Эти выражения являются инструментами для более масштабных изменений в нашей анимации.
Теперь в окне Project выберите композицию Text_A 2, дублируйте столько раз, сколько захотите. Если строка достаточно длинная, то количество копий можно сделать меньше, чем для короткой. Двойной клик на композиции Text_A 3, внесите очередные изменения в параметры только первого текстового слоя (слой 2):
•Position: измените только то, что выделено красным шрифтом:
Control= comp("Guide_A").layer("Controls").effect("Comp_Spacing")("Slider");
comp("Guide_A").layer("Txt_Guide").position.valueAtTime(time-Control*2)
•X Rotation: измените только то, что выделено красным шрифтом:
L_Num= comp("Text_A").numLayers;
Shift= (L_Num)/ comp("Guide_A").layer("Controls").effect("X_Roll_Rate")("Slider");
comp("Text_A").layer(2).rotationX.valueAtTime(time-Shift*2)
Двойной клик на композиции Text_A 4, сделайте следующие изменения снова только с первым текстовым слоем, порядковый номер которого равен 2
•Position: измените только то, что выделено красным шрифтом:
Control= comp("Guide_A").layer("Controls").effect("Comp_Spacing")("Slider");
comp("Guide_A").layer("Txt_Guide").position.valueAtTime(time-Control*3)
•X Rotation: измените только то, что выделено красным шрифтом:
L_Num= comp("Text_A").numLayers;
Shift= (L_Num)/ comp("Guide_A").layer("Controls").effect("X_Roll_Rate")("Slider");
comp("Text_A").layer(2).rotationX.valueAtTime(time-Shift*3)
Продолжайте вносить изменения по аналогии в те композиции, которые вы получили при дублировании. Обратите внимание, что изменения касаются только числового множителя (выделен красным) в выражениях для свойств Position и X Rotation. Этот числовой множитель на единицу меньше номера композиции, которую мы редактируем. Таким образом, данные выражения будут управлять смещением и вращением композиций Text_x с задержкой по времени.
Завершаем работу с текстовыми элементами ленты
Перетащите все композиции Text_A n в композицию Guide_A, включите опцию Collapse Transformations для каждой композиции (иконка с солнышком на панели окна Timeline). Ленты будут наложены друг на друга. Сделайте невидимыми все слои, кроме первого, это ускорит предпросмотр композиции. Теперь создайте любую траекторию движения путем добавления ключевых кадров для свойства Position слоя Txt_Guide и регулировки эффекта Txt_Tracking в соответствии с вашей ситуацией. Просмотрите анимацию и внесите поправки в траекторию. Опять включите видимость, отрегулируйте значение параметра slider эффекта Comp_Spacing, контролируя желаемую величину расстояния между повторяющимися строками вашего текста.
Чтобы избежать появления эффекта гармошки, выраженного в увеличении и уменьшении размеров промежутков в тексте и для поддержания постоянной скорости движения вдоль всей траектории, включите Roving Keyframes для всех ключевых кадров между первым и последним. Сделать это можно следующим образом: правый клик на значке ключевого кадра(желтый ромбик), в меню выбираем Rove Across Time. Желательно, чтобы положение последнего ключевого кадра не приходился на конец композиции, а был несколько раньше по шкале времени. Это позволит всей ленте закончить свое движение вдоль траектории. Вы можете создать траекторию движения без ключевых кадров, а с помощью выражений.
Создаем окончательный вариант анимации с несколькими лентами.Перетащите все композиции Guide_x, которые вы создали, в новую с именем "Ribbon_Final"; включите опцию collapse transforms, добавьте камеру, свет и другие элементы. Чтобы ленты из текста огибали какой-либо объект, сделайте его 3D объектом и сместите его в любую точку пространства. Затем откройте подходящую композицию Guide_x и создайте путь, как было описано выше.
Теперь вы можете заняться преобразованием длительности слоев Guide_x: увеличивать и замедлять скорость воспроизведения, останавливать и обращать движение ваших лент. Преобразование времени дает огромные возможности для фантазии в вашей финальной анимации.
Чтобы добавить к слою свойство time remapping, необходимо выполнить следующее: правый клик на выбранном слое, в выпадающем меню выбираем Time, затем Enable Time Remapping. При этом у свойства time remapping по умолчанию будут два ключевых кадра: один в начале композиции, другой в конце. Теперь вы можете задать любое количество ключевых кадров, использовать график и т. д. Выравнивание линии графика в прямую, параллельную оси времени останавливает движении, изменение наклона прямой увеличивает или уменьшает скорость движения и/или обращает движение. Для получения более полной информации читаем Help по теме Time Remapping.
Если вы вдруг передумали и…
Вы можете изменить текст, введя новую строку в поле для выражений в первом текстовом слое первой текстовой композиции Text_x comp; затем проверить каждый слой в данной композиции, центрируя на буквах точку привязки и регулируя параметр slider эффекта Initial_Tracking. Помните, что центрировать точку привязки необходимо в первую очередь, а затем лишь устанавливать величину промежутка между буквами. Возможно, вам придется повторить процедуру дублирования текстовых слоев для того, чтобы проявились новые символы (если количество символов в старой строке меньше, чем в новой).
Изменение шрифта и переключение верхнего и нижнего регистра обычно не привносит глобальных изменений настроек, кроме, возможно, случая, когда размер букв значительно отличается от предыдущих и т.д.
У вас есть возможность изменять цвет текста, масштабировать, изменять положение точки привязки любого элемента ленты, используя effect controls, которые мы добавили в композицию Guide_x. Вы можете отключить использование выражений в первом текстовом слое любой композиции Text_x и изменить характеристики именно для этой композиции. Чтобы изменить шрифт, вам необходимо выделить все текстовые слои в пределах данной композиции и внести изменение при помощи палитры Character.
Перед вами открываются если не бесконечные, то, по крайней мере, широкие возможности. Например, вы хотите, чтобы определенная лента двигалась каким-то образом, а другая копия двигалась прямо над ней. Дублируйте первую итерацию из композиций Text_x. Двойной клик на новой копии, для того чтобы эта композиция открылась в окне timeline. Откройте меню со свойствами первого текстового слоя, в меню свойств Text, Characteristics animator group отключите выражение для точки привязки и отрегулируйте значение координаты y, чтобы новая лента двигалась над старой.
Вы можете комбинировать wiggle-выражения с заданием ключевых кадров для положения слоя Txt_Guide в композиции Guide_x, что приведет к появлению ряби на ленте. Степень ряби зависит от установок. Попробуйте задать wiggle(1,25), просмотрите анимацию, должно выглядеть достаточно мило. Задайте wiggle(1,250), и вам будет необходимо в этом случае отрегулировать Txt_Tracking и Comp_Spacing.
Как уже упоминалось выше, вы можете создать траекторию движения без ключевых кадров, а с помощью выражений. Попробуйте применить данные выражения для положения слоя Txt_Guide в любой из композиций Guide_x:
Vert_Change= 50;
radius= 250;
a= -Math.cos(time) * radius + thisComp.width * 0.5;
b= -Vert_Change * time + thisComp.height;
c= Math.sin(time) * radius;
[a,b,c]
Ваша лента должна двигаться по спирали снизу вверх. Не забудьте отрегулировать Txt_Tracking и Comp_Spacing.
Замечание по поводу добавления эффектов
Вы можете добавлять к вашим текстовым слоям эффекты, такие, например, как glow и т. д, вы можете применять effects controls для регулировки эффектов в целом. Однако, если ваша лента взаимодействует с другими элементами в трехмерном пространстве, эффекты должны быть добавлены к каждому текстовому слою в каждой композиции Text_x, где вы желаете присутствие эффекта. Добавление эффекта к вложенным композициям с включенным режимом collapsed transformations не позволит нам поддерживать необходимые 3D связи. Также не будут работать слои Adjustment. Так что, если вы хотите добавить эффект, сделайте это для первого текстового слоя, задайте параметры этого эффекта, затем свяжите их с параметрами slider эффектов, которые можно добавить к нулевому слою Controls композиции Guide_x. Затем скопируйте эффект, выберите все остальные текстовые слои в композиции и вставьте эффект.
Продолжаем усложнять…
Для того, чтобы добавить ленты различного вида, просто дублируйте композиции в окне Project и переименуйте их: Guide_A в Guide_B и Text_A в Text_B. Затем внесите изменения в выражения в слое, управляющем смещением, и в первом текстовом слое. Необходимо, чтобы в выражениях были ссылки на соответствующие композиции Guide_x т.e. поменяйте "Guide_A" на "Guide_B". Будьте внимательны, копирование нескольких текстовых слое одновременно может привести к ошибке. Итак, вам следует копировать только первую итерацию из группы композиций, например, Text_A , переименовать в Text_B и затем дублировать композицию, делая необходимые изменения в новой серии копий Text_B n, как это было схематически описано выше.
Затем откройте Guide_B в окне timeline и вы увидите, что серия композиций Text_A n все еще включена в композицию Guide_B. Чтобы заменить их на Text_B n, просто удалите Text_A n из окна timeline, и перетяните туда композиции Text_B n. В качестве еще одного варианта вы можете выделить все композиции Text_A n в окне timeline и затем выбрать все Text_B n в окне project, удерживая Alt перетащите их поверх Text_A n comps в окне timeline. Сделайте новую анимацию для свойств position и x rotation в Guide_B.
Еще парочку рассуждений..
Помните, что использование time в качестве атрибута функции valueAtTime (странно, почему атрибут, я бы сказала, аргумент. Прим. пер.) приводит к тому, что все буквы начинают и заканчивают движение, накладываясь друг на друга. Поэтому вы можете захотеть, чтобы первый и последний ключевые кадры находились за пределами видимой области. Еще лучше использовать преобразование времени в вашей анимации, так, чтобы анимация заканчивалась или начиналась с полностью «растянутыми» словами.
Также отрицательные значения координат могут приводить к тому, что буквы начинают неожиданно переворачиваться. Автору удалось смягчить это следствие, использовав оператор if-else в выражении для свойства orientation. Все это продолжает работать, пока значения координат x и y не становятся одновременно отрицательными. Автор решил не устранять этот недостаток, поэтому остерегайтесь таких моментов и создавайте ключевые кадры соответственно.
Echoes and Ribbons
Вы можете использовать echo эффект для получения псевдо 3D ленты из текста, которая может быть очень удобна для некоторых анимаций. Автор употребляет слово псевдо, чтобы подчеркнуть тот факт, что такие ленты не будут взаимодействовать с другими 3D объектами. По существу, мы можем выполнить все шаги, кроме дублирования композиции Text_x. Вместо этого, после добавления к композиции Guide_x, просто примените echo effect к слою Text_x, задайте необходимые установки. Такой вариант гораздо проще настоящей 3D версии.
Урок взят с Demiart