Глава 11
Покадровая анимация
Анимация — один из "коньков" Flash. Еще в самой первой версии этой программы фирма Macromedia сделала на нее ставку и не прогадала — анимация уже проникла в Интернет, и удивительные возможности Flash по созданию "мультиков" оказались востребованными. Можно сказать, что интернет-анимация — это Flash, a Flash — это интернет-анимация.
Что ж, и нам пора прикоснуться к таинству "оживления" неподвижных картинок. Благо, этих самых картинок у нас уже хватает. С чего начнем?
Давайте начнем с покадровой анимации. И вот почему.
Вспомним, что такое покадровая анимация (подробно о ней было рассказано в главе 1). Это последовательность отдельных кадров, изображающих различные фазы движения, которая очень быстро "прокручивается" перед зрителем, в результате чего у последнего возникает иллюзия непрерывного движения.
Создать покадровую анимацию очень просто — знай, рисуй себе кадр за кадром. Единственная оговорка: таких кадров может быть очень много, и работа над фильмом может сильно затянуться. Ну да ладно, на первых порах мы ограничимся простейшими фильмами. Главное в том, что при создании покадровой анимации мы будем пользоваться, в основном уже изученными в части II инструментами. Это позволит нам освоить работу с временной шкалой Flash и кадрами, не отвлекаясь на посторонние дела. Трансформационная же анимация, хоть и значительно менее трудоемка, но требует использования специальных инструментов; мы займемся ею в главе 12.
А еще мы рассмотрим одну очень интересную возможность Flash, связанную с так называемыми сценами. Пользуясь ими, можно разделить свой фильм на несколько отдельных частей. Но это будет в самом конце этой главы, когда мы уже достаточно хорошо натренируемся в рисовании и анимировании.
Итак, запасемся терпением — нам придется много рисовать. Освежим свои знания в области базовых инструментов рисования Flash. Создадим новый документ Flash. И начнем!
Создание покадровой анимации
Предположим, что нужно создать небольшой учебный фильм для средней школы. Этот фильм будет демонстрировать процесс деления клетки. Вы еще не забыли школьный курс биологии? Самое время его вспомнить.
Наш фильм будет содержать двенадцать кадров — на первый раз этого хватит. Зададим частоту кадров равной 4, для чего выберем в меню Modify пункт Document, введем в поле ввода Frame rate диалогового окна Document Properties (см. рис. 2.15) число 4 и нажмем кнопку ОК. Четырех кадров в секунду школьникам вполне хватит, чтобы понять великое таинство жизни.
Осталось нарисовать первый кадр нашего фильма — единственную клетку, еще не помышляющую о делении. Она будет выглядеть примерно так, как показано на рис. 11.1. Выглядит она, конечно, не очень похоже на живую клетку, слишком упрощенно — всего два эллипса без заливок. Но для нашего первого фильма этого хватит, ведь он станет учебным не столько для гипотетических школьников, сколько для нас самих.
Сохраним новый документ Flash в файле. И приступим..
Временная шкала
Прежде всего, обратим внимание на верхнюю половину окна документа Flash. Как нам уже известно, там отображается панель Timeline. (Если вы почему-то не видите эту панель, проверьте, не выключен ли пункт-выключатель Timeline меню Window, и включите его.) В левой части этой панели находится уже знакомый нам по главе 5 список слоев. Правой же части этой панели мы пока не касались.
А находится там так называемая временн а я шкала (рис. 11.2) — набор последовательностей кадров (дорожек), из которых состоит фильм. Кадры фильма отображаются в виде прямоугольников с точкой в их нижней части. В настоящее время наш фильм содержит только один кадр, т. е. фактически представляет собой статичное изображение.
Остальное пространство временной шкалы занимают пустые позиции, в которые могут быть помещены другие кадры. Пустые позиции обозначаются либо белыми, либо светло-серыми (каждый пятый кадр) прямоугольниками без точки.
На рис. 11.2 хорошо видно, что каждому слою, присутствующему в изображении, соответствует своя дорожка кадров. Это понятно, ведь каждый слой может содержать свою собственную графику, независимую от графики, располагающейся на других слоях. Так что мы можем помещать на разных слоях разные анимированные персонажи, которые будут "работать" одновременно. Так, кстати, и делают.
Над самой верхней дорожкой находится шкала кадров — серая линейка, проградуированная в кадрах. Взглянув на нее, мы всегда можем выяснить номер того или иного кадра. По шкале кадров перемещается бегунок — вертикальная красная полоса, показывающая, какой кадр фильма в данный момент воспроизводится, или, как еще говорят, является текущим.
Бегунок этот можно перемещать мышью. Также можно просто щелкнуть по нужному кадру дорожки, чтобы его выделить. Выделенный кадр сразу же станет текущим.
Здесь нужно обязательно сказать вот что. На рабочем листе в данный момент отображается только содержимое текущего кадра. Содержимое остальных кадров при этом увидеть невозможно. (Забегая вперед, скажем, что способы увидеть содержимое всех кадров анимации все же имеются, и мы обязательно о них поговорим.)
Выше было сказано, что кадр обозначается небольшим прямоугольником с черной точкой в нижней его части. К этому нужно добавить, что прямоугольник-кадр может быть разных цветов. Так, кадр, имеющий содержимое (графику), закрашивается Flash светло-серым цветом. Если же кадр не имеет содержимого, он отобразится белым. Выделенный кадр всегда обозначается черным прямоугольником с белой точкой.
Мы также можем выделить любую пустую позицию на дорожке. Выделенная пустая позиция будет отображена в виде черного прямоугольника без точки (!).
В нижней части панели Timeline находится небольшая строка статуса временной шкалы. В этой строке отображается различная справочная информация, разнесенная по трем секциям (рис. 11.3). В левой секции выводится номер текущего кадра, в средней — частота кадров, заданная в параметрах документа, а в правой — продолжительность воспроизведения анимации с ее начала до текущего кадра. А если дважды щелкнуть на средней секции, на экране появится диалоговое окно Document Properties.
Также в строке статуса находится несколько небольших кнопок. Эти кнопки служат для задания некоторых дополнительных параметров; мы рассмотрим их далее в этой главе.
Наконец, временная шкала содержит две полосы прокрутки и кнопку вызова дополнительного меню, расположенную в ее правом верхнем углу. Для чего служат полосы прокрутки, понятно без всяких объяснений, пункты же дополнительного меню и их назначение мы рассмотрим позже, когда приступим собственно к созданию анимации.
Создание кадров анимации
Итак, мы хотим создать последовательность кадров, т. е. покадровую анимацию, фильм. Давайте же создадим ее.
Из главы 1 мы помним, что каждый кадр покадровой анимации — ключевой. Мы уже говорили об этом, так что сейчас не будем повторяться.
Один ключевой кадр у нас уже есть — это первый кадр, созданный самим Flash при создании документа. Поскольку этот кадр является текущим (других-то кадров все равно нет), то нарисованное нами изначальное изображение готовой к делению клетки окажется именно в нем и станет его содержимым. Теперь нам нужно добавить к этому кадру другие, содержащие другие фазы деления клетки.
Ниже приведена последовательность действий по созданию покадровой анимации.
1. Создание нового ключевого кадра.
2. Выделение вновь созданного кадра.
3. Рисование изображения для нового кадра.
4. Если не конец фильма, то переход к первому шагу.
Сначала нам нужно создать новый ключевой кадр. Этот кадр будет находиться на следующей после первого кадра пустой позиции дорожки. Выделим ее щелчком мыши и выберем пункт Keyframe подменю Timeline меню Insert или пункт Insert Keyframe контекстного меню дорожки. Flash после этого создаст новый ключевой кадр и сам сделает его текущим.
Но на этом забота Flash о нас, пользователях, не заканчивается. При создании нового ключевого кадра он сам скопирует в него содержимое предыдущего ключевого кадра. Часто это бывает полезно — нам не придется рисовать каждый кадр "с нуля", будет достаточно только слегка подправить предыдущее изображение. Но мы собираемся нарисовать в новом кадре что-то принципиально новое (например, новую сцену фильма), сначала придется удалить его изначальное содержимое.
Специально для таких случаев Flash предоставляет возможность создать "пустой" ключевой кадр. Для этого достаточно выбрать пункт Blank Keyframe подменю Timeline меню Insert или пункт Insert Blank Keyframe контекстного меню дорожки. Такой кадр не будет содержать никакой графики.
Ну все, мы выяснили, как создаются ключевые кадры. Теперь остается только создать содержимое этих кадров — и первый наш фильм готов!
Чтобы "разделить" клетку пополам, мы можем выделить поочередно сначала одну, потом вторую ее половины и "разнести" их по разным концам листа. Для этого лучше всего использовать выделение перетаскиванием мыши. После этого останется исправить форму получившихся "половинок", чтобы они стали похожими на клетки. Все это выполняется с помощью изученных нами еще в главе 3 инструментов.
И напоследок — один совет. Не следует допускать слишком резких перемещений изображений на разных кадрах. Это вызовет дерганье персонажа фильма при просмотре, очень, кстати сказать, неприятное.
Использование растянутых кадров
При создании фильма часто бывает нужно, чтобы какое-то изображение присутствовало на экране в течение нескольких кадров анимации. Как это сделать?
Самый простой и очевидный способ — создать соответствующее количество ключевых кадров, содержащих это самое неменяющееся изображение. Когда эти кадры будут воспроизводиться, на экране будет присутствовать одна и та же "картинка", что нам и нужно.
Да, это просто и очевидно, но не слишком экономно. Ведь все эти одинаковые кадры, содержащие одно и то же изображение, переносятся в результирующий файл Shockwave/Flash и увеличивают его размеры. А за эти самые размеры результирующего файла иной раз кипят нешуточные баталии.
Поэтому лучше сделать по-другому. А именно, использовать так называемые растянутые кадры. Растянутый кадр — это обычный ключевой кадр, но занимающий не одну, а сразу несколько позиций дорожки (подкадров). Фактически растянутый кадр — это замена нескольким обычным ключевым кадрам, содержащим одинаковые изображения. И замена отличная, ведь подкадры растянутого кадра практически не занимают место в результирующем файле Shockwave/Flash.
Чтобы создать растянутый кадр, сначала нужно выделить ключевой кадр, который мы желаем "растянуть", и выполнить любое из следующих действий:
□ выбрать пункт Frame подменю Timeline меню Insert;
□ выбрать пункт Insert Frame контекстного меню выделенного кадра;
□ нажать клавишу
В результате выделенный ключевой кадр "растянется" на один под кадр, сдвинув все последующие кадры дорожки вправо.
Часто растянутый кадр занимает больше двух позиций временной шкалы. Поэтому нам придется выполнить любую из перечисленных выше операций несколько раз, чтобы создать соответствующее количество подкадров. Проще и быстрее всего для этого использовать клавишу
Растянутый кадр отображается на дорожке в виде прямоугольника белого или темно-серого цвета, в зависимости от того, содержит этот кадр графику или нет (рис. 11.4). Хорошо видно, что точка, являющаяся признаком ключевого кадра, находится в самом первом его под кадре, а в последнем хорошо заметен светлый прямоугольник — конечный маркер растянутого кадра.
Выделить растянутый кадр можно, щелкнув мышью на любом его подкадре.
На заметку
Фактически подкадры растянутого кадра — это промежуточные кадры, о которых мы говорили в главе 1. Они формируются самим проигрывателем Flash на основании изображения, содержащегося в ключевых кадрах.
Просмотр созданной анимации
Вот и готов наш первый фильм Flash. Давайте, что ли, посмотрим его?..
Простейший способ воспроизвести созданный фильм прямо в среде Flash — нажать клавишу < Enter> или выбрать пункт Play меню Control. Flash тотчас воспроизведет наше творение. При этом бегунок будет перемещаться по шкале кадров, показывая воспроизводимый в данный момент кадр.
Воспроизведение, запущенное таким образом, всегда начинается с текущего кадра, но только если это не последний кадр дорожки. Если же мы сделали текущим именно последний кадр дорожки, Flash начнет воспроизведение с первого кадра. Закончившись на последнем кадре, воспроизведение остановится.
Если мы захотим прервать воспроизведение раньше, чем фильм дойдет до конца, то должны будем нажать еще раз клавишу < Enter> или выбрать в меню Control пункт Stop.
Чтобы зациклить фильм (сделать так, чтобы он воспроизводился бесконечно), мы включим пункт-выключатель Loop Playback в меню Control. После этого, когда воспроизведение дойдет до последнего кадра фильма, бегунок перескочит на первый кадр, и фильм начнет воспроизводиться с начала.
Мы также можем перемещаться по фильму вперед (к концу) и назад (к началу) по кадрам. Для этого следует пользоваться клавишами <точка> и <запятая> соответственно. Также можно выбирать пункты Step Forward One Frame и Step Backward One Frame меню Control. Ну и, конечно, можно просто мышью перетаскивать бегунок в нужном направлении.
Чтобы быстро переместить бегунок на первый кадр фильма ("перемотать" фильм в начало), мы выберем пункт Rewind меню Control или нажмем комбинацию клавиш
Для управления воспроизведением фильма мы можем пользоваться одним из инструментариев Flash — пультом (рис. 11.5). Чтобы вывести его на экран, нужно включить пункт-выключатель Controller подменю Toolbars меню Window.
Перечислим все кнопки пульта в порядке слева направо:
□ остановка воспроизведения;
□ "перемотка" в начало, т. е. перемещение бегунка на первый кадр фильма;
□ перемещение на кадр назад, т. е. к началу фильма;
□ запуск воспроизведения;
□ перемещение на кадр вперед, т. е. к концу фильма;
□ "перемотка" в конец, т. е. перемещение бегунка на последний кадр фильма.
Будет ли пульт вам полезен — решать вам самим. Честно говоря, автор так ни разу им и не воспользовался. Ему вполне хватает пунктов меню Control и связанных с ними комбинаций клавиш.
Еще одно средство Flash будет нам полезно, но не сейчас, а в дальнейшем, когда мы начнем создавать фильмы, содержащие интерактивные элементы (например, кнопки). Это режим воспроизведения фильма в отдельном окне. Чтобы просмотреть фильм в отдельном окне, достаточно выбрать пункт Test Movie меню Control или нажать комбинацию клавиш
Что в этом случае сделает Flash? А вот что…
1. Выполнит экспорт нашего документа в формат Shockwave/Flash.
2. Откроет новое окно — окно просмотра фильма.
3. Загрузит получившийся файл Shockwave/Flash в это окно и запустит его воспроизведение.
Для управления воспроизведением фильма в отдельном окне мы можем пользоваться уже знакомыми нам пунктами меню Control (это меню доступно и в окне просмотра): Play, Stop, Rewind, Step Forward One Frame и Step Backward One Frame.
В окне просмотра фильм всегда воспроизводится зацикленным. Чтобы избежать этого, мы отключим пункт-выключатель Loop меню Control этого окна.
Находясь в окне просмотра фильма, можно также задавать качество и масштаб его отображения. Для задания качества служат пункты — переключатели, находящиеся в подменю Quality меню View: Low (низкое), Medium (среднее) или High (высокое; выбран по умолчанию). Для задания масштаба следует воспользоваться уже знакомыми нам пунктами меню View: Zoom In (увеличение масштаба), Zoom Out (уменьшение масштаба) — и пунктами подменю Magnification.
Насладившись своим творением, закроем окно просмотра, щелкнув на кнопке закрытия или выбрав пункт Close меню File этого окна.
Правка анимации
Любое, даже, на первый взгляд, совершенное творение может быть еще немного усовершенствовано. А поскольку в мире нет ничего совершенного, переделывать уже сделанное нам придется очень часто.
Фильмы Flash — не исключение из этого правила. Посмотрим, что предлагает нам Flash для того, чтобы улучшить уже сделанное.
Работа с кадрами
Не может быть, чтобы мы в процессе работы над нашим первым фильмом не наделали ошибок. Как их исправить?
Исправить содержимое какого-либо кадра очень просто. Щелкаем мышью по нужному кадру — и Flash выводит его содержимое на рабочем листе.
(Для выделения растянутого кадра достаточно щелкнуть по любому его подкадру.) А как исправить изображение на рабочем листе, мы давно знаем.
В некоторых случаях нужно выделить сразу несколько кадров. Для этого мы щелкнем на первом из кадров, которые нужно выделить, нажмем клавишу
Чтобы выделить сразу все кадры дорожки, воспользуемся пунктом Select All Frames подменю Timeline меню Edit или одноименным пунктом контекстного меню временной шкалы. Также мы можем нажать комбинацию клавиш
Мы можете перемещать выделенные кадры мышью на другое место временной шкалы. При этом кадры будут перемещены вместе со всем их содержимым. Таким образом можно перемещать кадры не только внутри дорожки, но и с дорожки на дорожку, т. е. на другой слой документа.
При этом нужно иметь в виду вот что. Если мы выделим группу идущих подряд кадров и перетащим ее вправо, Flash автоматически растянет кадр, находящийся левее этой группы. Flash, как и природа, не терпит "пустоты" в середине дорожки и старается ее заполнить всеми доступными ему способами.
Создавать новые кадры мы уже умеем. Для этого достаточно выделить первую пустую позицию дорожки правее последнего ключевого кадра и выбрать пункт Keyframe подменю Timeline меню Insert или пункт Insert Keyframe контекстного меню этой пустой позиции. Созданный таким образом кадр будет содержать изображение, взятое с предыдущего ключевого кадра. Если же нужно создать пустой ключевой кадр, то следует выбрать пункт Blank Keyframe подменю Timeline меню Insert или пункт Insert Blank Keyframe контекстного меню.
Создать ключевой кадр в середине дорожки несколько сложнее. Для этого придется сначала освободить для него место, перетащив все кадры, расположенные правее места, где будет находиться новый кадр, вправо на одно деление шкалы кадров. Flash растянет предыдущий кадр, добавив к нему один подкадр. После этого нам останется выделить получившийся подкадр и создать ключевой кадр любым описанным выше способом.
Еще мы можем преобразовать любой подкадр растянутого кадра в ключевой кадр. Выделим нужный подкадр и выберем в подменю Timeline меню Modify или контекстном меню выделенного подкадра пункт Convert to Keyframes или нажмем клавишу
Обратное преобразование — из ключевого кадра в подкадр, являющийся частью предыдущего ключевого кадра (который соответственно растянется), — также возможно. Выделим ключевой кадр и выберем пункт Clear Keyframe) подменю Timeline меню Insert или контекстного меню или нажмем комбинацию клавиш
Разумеется, описанные выше операции можно проделывать сразу над группой кадров. Как выделить группу кадров, мы уже знаем.
Мы можем выполнить дублирование любого ключевого кадра, создав его точную копию. Для этого установим курсор мыши на кадр, который хотим продублировать; нажмем левую кнопку мыши и, не отпуская ее, нажмем клавишу
Мы можем менять длительность растянутого кадра, перетаскивая мышью его конечный маркер и удерживая при этом нажатой клавишу
Разумеется, мы можем удалять ненужные кадры. Для этого выделим кадр (кадры), который хотим удалить, и выберем пункт Remove Frames подменю Timeline меню Edit или контекстного меню кадра или нажмем комбинацию клавиш
Внимание!
Не пользуйтесь для удаления кадров клавишей <Del>. Она удаляет содержимое выделенного кадра, но не сам кадр.
Пункты Cut Frames и Copy Frames подменю Timeline меню Edit (и соответствующие им клавиатурные комбинации
В меню Edit имеется также пункт Clear Frames (комбинация клавиш , которые работают точно так же.)
Все пять вышеперечисленных пунктов присутствуют также в контекстном меню выделенного кадра.
Мы можем инвертировать всю дорожку или ее фрагмент, т. е. повернуть ее задом наперед. Для этого выделим нужные кадры (или сразу всю дорожку) и выберем пункт Reverse подменю Timeline меню Modify или пункт Reverse Frames контекстного меню выделенных кадров.
Для пробы давайте ради смеха заставим нашу клетку сначала делиться, как обычно, а потом, наоборот, сливаться воедино. Делается это очень просто. Ниже приведен алгоритм действий (предположим, что фильм "Деление клетки" полностью готов).
1. Выделяем всю последовательность кадров нашего фильма и копируем их в буфер обмена. (Пункт Copy Frames подменю Timeline меню Edit.)
2. Выделяем первую пустую позицию правее последнего кадра дорожки и вставляем кадры из буфера обмена. (Пункт Paste Frames подменю Timeline меню Edit.) Это будет вторая, "экзотическая" половина фильма, описывающая процесс слияния двух клеток в одну и следующая сразу же за первой, "бытовой", частью фильма.
3. Выделяем все только что вставленные кадры ("экзотическую" часть) и инвертируем их. (Пункт Reverse Frames подменю Timeline меню Modify.) Все!
Дополнительные возможности работы с кадрами
Flash предоставляет несколько дополнительных возможностей работы с кадрами анимации. Они связаны с весьма забавной и зачастую полезной функцией, позволяющей видеть на рабочем листе содержимое сразу нескольких кадров (так называемое наложение). Это может понадобиться, например, для того, чтобы выяснить, не содержит ли наша анимация резких рывков, которые отнюдь ее не украсят.
Чтобы включить наложение, нажмем кнопку-выключатель Onion Skin, находящуюся в строке статуса временной шкалы:
На рабочем листе появится изображение, похожее на показанное на рис. 11.6.
Видно, что содержимое текущего кадра отображается обычными линиями в обычных цветах. Содержимое же нескольких других кадров выводится тонкими серыми линиями в приглушенных цветах.
Режим наложения предусматривает также возможность вывода содержимого невыделенных кадров в виде одних контуров, без заливок (наложение контуров). Содержимое текущего кадра будет при этом выводиться полностью, со всеми заливками. Это может быть полезно, если требуется ускорить перерисовку изображения на медленных компьютерах. Также это может помочь, если наше изображение содержит много заливок, и мы хотим временно скрыть их, чтобы рассмотреть и изменить контуры фигур.
Чтобы включить режим наложения контуров, мы нажмем кнопку-выключатель Onion Skin Outlines:
Эта кнопка находится также в строке статуса временной шкалы, правее уже знакомой нам кнопки Onion Skin.
В обоих рассмотренных случаях можно править только содержимое текущего кадра — ограничение введено для того, чтобы мы случайно не изменили другие кадры анимации. Но если мы все-таки хотим иметь возможность править содержимое всех кадров, выведенных на рабочем листе, то должны будем включить кнопку-выключатель Edit Multiple Frames, находящуюся, опять же, в строке статуса временной шкалы:
Только в этом случае придется работать очень внимательно.
Теперь обратим внимание на временную шкалу (режим наложения должен быть включен). То, что мы должны увидеть, показано на рис. 11.7. Хорошо заметно, что все кадры, чье содержимое отображается на рабочем листе, охвачены своего рода скобками. Это значит, что данные кадры входят в так называемый диапазон наложения; центром этого диапазона является текущий кадр (точнее, бегунок). А ограничивающие диапазон скобки называются маркерами диапазона.
Диапазон наложения по умолчанию привязан к бегунку. Это значит, что если мы переместим бегунок на другую позицию шкалы кадров, диапазон наложения переместится вместе с ним.
Мы можем изменять размер диапазона наложения, перемещая мышью его маркеры. При этом левый и правый маркеры перемещаются независимо друг от друга; так что можно свободно увеличивать или уменьшать диапазон в любую сторону.
Есть и другая возможность задать размер диапазона кадров — воспользоваться пунктами меню, которое появится на экране при нажатии кнопки Modify Onion Markers (рис. 11.8). Эта кнопка также находится в строке статуса временной шкалы.
Для задания размера диапазона наложения это меню предоставляет нам три пункта-переключателя:
□ Onion 2 — по два кадра с обеих сторон бегунка;
□ Onion 5 — по пять кадров с обеих сторон бегунка;
□ Onion All — все кадры дорожки.
Кроме этих трех, меню кнопки Modify Onion Markers содержит еще два пункта-выключателя. Рассмотрим их.
Пункт-выключатель Always Show Markers, будучи включенным, заставляет Flash показывать диапазон кадров даже тогда, когда режим наложения отключен (не включены ни кнопка Onion Skin, ни кнопка Onion Skin Outlines). Зачем это нужно, автору непонятно.
Выше говорилось, что диапазон наложения по умолчанию привязан к бегунку и перемещается вместе с ним. Пункт-выключатель Anchor Onion при включении фиксирует диапазон наложения на том месте, где он сейчас находится, в то время как бегунок может свободно перемещаться по шкале кадров.
Дополнительные возможности временнОй шкалы
Уже неплохо знакомая нам временная шкала Flash таит в себе несколько сюрпризов. Если их использовать с умом, они станут приятными сюрпризами. Давайте же познакомимся с ними.
Наш первый фильм оказался довольно коротким — всего 10 кадров. Но недалек тот день, когда наши фильмы будут содержать многие десятки и сотни кадров. В таких случаях Flash не хватит ширины панели Timeline, чтобы отобразить все эти кадры на временной шкале, и нам придется пользоваться горизонтальной полосой прокрутки для их просмотра. В этом случае весьма поможет одна небольшая возможность, предусмотренная во Flash.
Предположим, что мы поместили бегунок на какой-либо кадр, а потом прокрутили временную шкалу так, что потеряли его из виду. Тогда нажмем кнопку Center Frame, расположенную в строке статуса временной шкалы:
Flash прокрутит временную шкалу таким образом, чтобы кадр, помеченный бегунком, и, соответственно, сам бегунок оказались в ее середине.
Кроме того, мы можем изменять ширину прямоугольников, обозначающих кадры. Для этого нам придется воспользоваться дополнительным меню временной шкалы. Это меню можно открыть, нажав кнопку, расположенную в правом верхнем углу панели Timeline, чуть выше вертикальной полосы прокрутки. Эта кнопка и ее раскрытое меню показаны на рис. 11.9.
Для задания ширины прямоугольников-кадров служат пять пунктов-переключателей: Tiny (самые узкие прямоугольники), Small (узкие), Normal (значение по умолчанию), Medium (средние) и Large (самые широкие прямоугольники). Единственное: со слишком узкими кадрами трудно работать, а слишком широкие занимают много места на экране.
В ту же группу, что и перечисленные выше пять пунктов, входят еще два пункта-переключателя: Preview и Preview in Context. Они включают режим просмотра кадров на месте. Давайте выясним, что это такое.
Если включен один из пунктов-выключателей, задающих размер кадров, Flash показывает кадры в виде простых прямоугольников. Чтобы просмотреть содержимое какого-либо кадра, нам придется выделить его, а чтобы просмотреть содержимое сразу нескольких кадров, нужно будет воспользоваться описанным в предыдущем разделе режимом наложения.
Если же задействовать режим просмотра кадров на месте, для чего достаточно включить пункт Preview, кадры на временной шкале примут вид достаточно крупных прямоугольников, в которых отобразится их содержимое (рис. 11.10). Причем, как видно на рис. 11.10, в кадрах выводится только собственно изображение, а все свободное пространство рабочего листа отрезается.
Пункт Preview In Context отличается от пункта Preview тем, что в каждом прямоугольнике-кадре показывается весь рабочий лист (рис. 11.11). Пустое пространство рабочего листа не отрезается, так что мы всегда сможем увидеть, в каком месте на рабочем листе находится изображение, и оценить его относительные размеры.
Платой за наглядность служит серьезное увеличение размера прямоугольников-кадров при включенном режиме просмотра на месте. Поэтому оба вышеописанных режима лучше использовать только время от времени, когда без них действительно не обойтись. В остальное время лучше выбрать обычный режим отображения кадров в виде простых прямоугольников, для чего достаточно включить один из пунктов, задающих размер прямоугольников-кадров (Tiny, Small, Normal, Medium или Large).
Если мы отключим пункт-выключатель Tinted Frames, также находящийся в дополнительном меню, прямоугольники-кадры будут отображаться немного по-другому. Прежде всего, они всегда будут закрашиваться белым цветом, независимо от того, содержат они графику или нет. При этом кадр, содержащий графику, будет помечен синей точкой, а "пустой" кадр — белой. Вероятно, кому-то так нравится…
Последний, еще не рассмотренный нами пункт-выключатель дополнительного меню временной шкалы — Short. Если его включить, размеры прямоугольников-кадров уменьшатся по вертикали примерно наполовину. Это бывает очень полезно, если наш фильм содержит много слоев, которые не помещаются в список.
Использование сцен
Одной из интереснейших возможностей Flash является возможность разделения фильма на сцены. Каждая такая сцена представляет собой набор дорожек, содержащий логически законченный фрагмент фильма, более или менее независимый от остальных последовательностей. Например, в нашем случае в качестве отдельных сцен могут быть оформлены название фильма и сам фильм. (Хотя наш фильм весьма короток, поэтому разбивать его на сцены совсем не обязательно.)
Для работы со сценами служит панель Scene (рис. 11.12). Чтобы вывести ее на экран, нужно включить пункт-выключатель Scene подменю Other Panels меню Window или нажать комбинацию клавиш
Большую часть этой панели занимает список уже созданных сцен. Мы можем выделить, или сделать текущей, любую сцену, щелкнув на ней мышью. После этого мы сможем произвести над сценой различные предусмотренные Flash манипуляции.
Нужно сказать сразу, что на временной шкале отображаются только те дорожки, что входят в текущую сцену. Просмотреть содержимое остальных сцен, не делая их последовательно, одна за другой, текущими, мы не сможем.
Кстати, имя текущей сцены выводится в левой части инструментария документа (рис. 11.13).
Чтобы создать новую пустую (не содержащую кадров) сцену, следует нажать кнопку Add scene, расположенную в нижней части панели Scene:
Также можно выбрать пункт Scene меню Insert. Новая сцена появится в списке позицией ниже текущей, после чего сама станет текущей. Так что мы можем начать наполнять ее полезным содержимым — кадрами — сразу же после создания.
Каждая сцена фильма должна иметь уникальное имя. По умолчанию Flash дает сценам имена вида Scene <порядковый номер>. Изначально же фильм состоит из одной-единственной сцены, сформированной самим Flash при создании документа и имеющей имя Scene 1.
Вновь созданную сцену желательно сразу же переименовать, дав ей имя, отражающее содержимое (например, Название или Фильм). Для этого достаточно дважды щелкнуть мышью на имени нужной сцены в списке панели Scene. Вместо него появится небольшое поле ввода; введем в него новое имя и нажмем клавишу < Enter> для его сохранения или клавишу
Есть еще один способ создания новых сцен — дублирование существующих. Для этого служит кнопка Duplicate scene, расположенная также в нижней части панели Scene:
Выделим в списке панели Scene сцену, которую нужно продублировать, и нажмем эту кнопку. Новая сцена появится позицией ниже и получит имя вида <Изначальная сцена> сору.
Мы можем перемещать сцены в списке мышью, изменяя порядок их воспроизведения. Сцены воспроизводятся последовательно, в порядке сверху вниз.
Для удаления ненужной сцены мы должны будем выделить ее и нажать кнопку Delete scene в нижней части панели Scene:
Flash выдаст предупреждение, говорящее о том, что сцена будет удалена безвозвратно. Нажмем кнопку ОК, чтобы удалить сцену, или Cancel, если мы еще не набрались решимости. Чтобы сразу же удалить ненужную сцену без вывода этого предупреждения, можно щелкнуть по кнопке Delete scene, удерживая нажатой клавишу
Теперь вернемся в окно документа. В правой части инструментария документа находится кнопка Edit Scene, при нажатии которой на экране появляется меню созданных в документе сцен (рис. 11.14). Чтобы сделать какую-либо сцену текущей, достаточно просто выбрать соответствующий пункт-переключатель этого меню.
Кстати, эти же пункты-переключатели присутствуют в нижней части подменю Go to меню View.
В том же подменю Go to меню View находятся пункты, которыми мы можем пользоваться для "путешествия" по сценам. Этих пунктов четыре:
□ First — переход к самой первой сцене в списке панели Scene;
□ Previous — переход к предыдущей сцене;
□ Next — переход к следующей сцене;
□ Last — переход к последней сцене.
При воспроизведении готового фильма в среде Flash (его, как мы помним, запускает пункт Play меню Control и клавиша
Напротив, при воспроизведении фильма в отдельном окне (пункт Test Movie меню Control или комбинация клавиш
И еще кое-что о сценах, точнее — о необходимости их использования.
Сцены Flash — инструмент, предназначенный, в основном, только для разработчика фильмов. Сцены позволяют разделить длинный фильм на несколько частей и работать потом с этими частями по отдельности. Проигрыватель Flash, судя по всему, никак сцены не обрабатывает; более того, похоже, он вообще не знает об их существовании. Так, если мы загрузим в него файл Shockwave/Flash с фильмом, содержащим сцены, они будут воспроизведены последовательно, одна за другой.
Осталось сказать совсем немногое. А именно: нумерация кадров фильма при использовании сцен остается сквозной, проходящей через все сцены. Например, если в фильме имеются три сцены по десять кадров каждая, то первая сцена будет содержать кадры с 1 по 10, вторая — с 11 по 20, а третья — с 21 по 30. Это еще раз доказывает, что проигрыватель Flash, в отличие от самой программы Flash, даже не подозревает о существовании сцен.
Что дальше?
Вот мы и создали нашу первую анимацию в среде Flash. И была она покадровой.
В следующей главе мы выясним, как создается во Flash трансформационная анимация. Мы также узнаем все о двух разновидностях трансформационной анимации — движении и морфинге: о том, как их создавать и как получить нужный нам результат. И, конечно же, мы продолжим наше творчество на кинематографической ниве.
Глава 12
Трансформационная анимация
А теперь настала пора познакомиться с трансформационной анимацией. То есть с тем, в чем так силен Macromedia Flash.
Подробно о трансформационной анимации рассказывалось в главе 1. Давайте вспомним, что это такое. Мы рисуем всего два ключевых кадра последовательности — начальный и конечный, — задающих положение анимируемого элемента до и после его перемещения, и определяем кое-какие параметры. Flash на основе всего этого создает необходимое количество промежуточных кадров, помещает их между ключевыми — и анимация готова. Просто, не правда ли?
Кроме простоты создания, трансформационная анимация имеет еще одно преимущество перед покадровой: в результирующем файле Shockwave/Flash она занимает меньше места. В самом деле, вместо того, чтобы хранить все кадры фильма, программа записывает в файл только несколько чисел — параметры функции, реализующей трансформационную анимацию. Сравним это с десятком изображений, пусть даже и векторных, из которых состоит покадровая анимация — это сравнение уж точно будет не в пользу последней.
Пожалуй, единственный недостаток трансформационной анимации — ограниченность ее возможностей. В самом деле, с ее помощью мы можем создать только:
□ различные перемещения элементов изображения по рабочему листу;
□ изменение формы элемента изображения с применением трансформаций (вращения, сдвига, изменения размеров и пр., в общем, всего того, что было описано в главе 4);
□ изменение цвета элемента изображения с помощью цветовых эффектов (изменения прозрачности, оттенка и пр.; все они были описаны в главе 8);
□ изменение параметров привязанных к элементу изображения фильтров (см. главу 9).
Негусто… Хоть Flash и предлагает нам достаточно мощные средства "оживить" изображения "малой кровью", красивые и сложные мультфильмы из одних трансформаций не сделаешь. Хотя для интернет-графики, которая обычно не отличается запредельной сложностью, этого более чем достаточно.
Что ж, пора за дело. Займемся трансформационной анимацией и посмотрим, что все-таки с ее помощью можно сделать. Flash, как всегда, нам поможет.
Два вида трансформационной анимации
Flash позволяет создавать трансформационную анимацию двух видов: движение и морфинг. Оба этих вида имеют практически одинаковые возможности, но применяются к разным видам элементов изображения.
Первый вид трансформационной анимации — движение — самый простой в реализации. Движение можно применить только к следующим разновидностям фрагментов изображения:
□ экземплярам образцов (см. главу 8);
□ группам (см. главу J);
□ текстовым блокам (см. главу 7).
К обычной графике, не являющейся ни тем, ни другим, ни третьим, движение неприменимо.
Как уже говорилось, движение создается очень просто — это его достоинство. Второе достоинство движения — в результирующем файле Shockwave/Flash оно занимает очень мало места. Недостаток же всего один — бедность изобразительных средств.
При создании движения нужно иметь в виду вот что. Каждый анимируемый элемент обязательно должен быть помещен на свой собственный слой. (О слоях см. главу 5.) Причем, кроме анимируемого экземпляра, на этом слое не должно находиться больше никакой графики. Иначе результат будет непредсказуемым.
Второй вид трансформационной анимации — морфинг. Он, в отличие от движения, может быть применен только к обычной графике. К экземплярам, группам и текстовым блокам он неприменим.
Недостатков у морфинга два. Во-первых, морфинг занимает в файле Shockwave/Flash больше места, чем движение (что понятно, ведь в этом случае приходится сохранять больше данных). Во-вторых, зачастую при морфинге бывает очень трудно получить нужный результат.
Выяснив все о двух поддерживаемых Flash типах трансформационной анимации, посмотрим теперь, как они создаются. Начнем с движения, как самого легкого в реализации.
Движение
В этом разделе мы выясним, как создается простейший вид трансформационной анимации — движение. Во время выяснения будем экспериментировать с созданным нами в главе 11 фильмом, демонстрирующим процесс деления клетки. Мы добавим к нему начальные титры, показывающие его название.
Создание простейшего движения
Откроем документ, содержащий созданный нами фильм "Деление клетки". И разобьем его на две сцены — так нам будет проще (о сценах см. главу 11).
Первая сцена будет содержать титры с названием фильма и носить "говорящее" название название. Для создания этих титров мы используем обычный текстовый блок, который потом анимируем (как мы помним, движение применимо и к текстовым блокам). Этот текстовый блок будет плавно "выезжать" сверху и останавливаться в центре рабочего листа. Отведем под этот процесс пять кадров — больше и не требуется.
Небольшое отступление. В главе 2 говорилось, что любая графика, выходящая за пределы рабочего листа, отбрасывается при экспорте в формат Shockwave/Flash. Так вот, в случае анимированных экземпляров, групп и текстовых блоков дело обстоит не так — они сохраняются. Этим можно воспользоваться для того, чтобы скрыть до поры до времени какой-либо элемент изображения.
Вторая же сцена нашего фильма будет содержать собственно покадровую анимацию, показывающую процесс деления клетки. Мы назовем ее Фильм. Здесь мы ничего менять не будем.
Создадим пустую пока сцену название и проследим, чтобы она шла в фильме первой. (Название фильма должно появляться в его начале, не так ли?) Дадим второй (имевшейся изначально) сцене имя Фильм. Сделаем сцену название текущей и выделим единственный пока находящийся в ней ключевой кадр. Создадим в центре рабочего листа текстовый блок, напишем в нем текст деление клетки. Потом сместим его точно вверх, пока он не выйдет за границы рабочего листа. Теперь все готово к созданию движения.
Первый ключевой кадр, содержащий скрытый за пределами рабочего листа текстовый блок, у нас есть. Нужно создать второй. Для этого выделим пустую позицию дорожки, в которой движение нашего текстового блока должно закончиться. Это будет позиция № 5, как мы договорились ранее. Создадим там новый ключевой кадр, выбрав пункт Keyframe подменю Timeline меню Insert или пункт Insert Keyframe контекстного меню выделенной позиции. Первый ключевой кадр тотчас растянется, заполняя все свободное пространство до второго ключевого кадра.
Создав второй ключевой кадр, выделим его и переместим текстовый блок с названием фильма на его законное место — в центр рабочего листа. Воспользуемся панелью Align, чтобы расположить его точно в центре.
Все — оба ключевых кадра готовы. Настало время создать саму анимацию.
Выделим любой подкадр первого, растянутого, ключевого кадра. После этого посмотрим на панель Properties. В ней находится не рассмотренный еще нами раскрывающийся список Tween, с помощью которого и создается трансформационная анимация — и движение, и морфинг.
Изначально в этом списке выбран пункт None. Это значит, что для выделенного кадра не задана никакая трансформационная анимация. Чтобы задать движение, мы выберем пункт Motion. В панели Properties тотчас появится множество других элементов управления, задающих специальные параметры созданной нами анимации. Эти элементы управления и соответствующие им параметры мы рассмотрим далее в этой главе.
Все! Мы создали простейшее движение. При этом Flash преобразовал все подкадры первого, растянутого, ключевого кадра в промежуточные кадры. Эти кадры, как мы помним из главы /, будут генерироваться самим проигрывателем Flash на основании содержимого ключевых кадров.
Щелкнем мышью на рабочем листе или временной шкале, чтобы убрать фокус ввода с панели Properties, и запустим воспроизведение анимации нажатием клавиши
А теперь давайте посмотрим на временную шкалу, точнее, на растянутый ключевой кадр (рис. 12.1). Хорошо видно, что он стал голубым (на рис. 12.1 — серым), более того — по нему проходит тонкая черная стрелка, указывающая вправо. Именно так Flash обозначает примененное к кадру движение.
Если же мы захотим удалить созданное движение, то должны будем выделить любой промежуточный кадр задающей это движение последовательности и выбрать в раскрывающемся списке Tween панели Properties пункт None.
Что ж, наша первая трансформационная анимация готова. Давайте ее немного усложним.
Более сложное движение
Flash-аниматоры, как начинающие, так и опытные, очень любят такой эффект: какой-либо фрагмент изображения постепенно исчезает или, наоборот, появляется на экране. Это похоже на то, как на фотографии, опущенной в раствор проявителя, постепенно возникает изображение. Применим и мы этот прием. Пусть название фильма, закончив движение, постепенно исчезнет с экрана — как бы выцветет.
Для создания этого эффекта также используется трансформационная анимация, а именно — движение. Как мы помним, движение включает в себя не только собственно движение, но и трансформации, и цветовые эффекты. А с помощью задания цветового эффекта прозрачности можно заставить наш текстовый блок исчезнуть с экрана.
Здесь возникает одна небольшая проблема. Дело в том, что задавать цветовые эффекты можно только для экземпляров. А у нас — обычный текстовый блок! Как выйти из положения?
Выделим первый ключевой кадр нашей анимации и преобразуем текстовый блок в образец (о том, как это сделать, было рассказано в главе 8). Дадим образцу имя Название и присвоим тип "графический образец". После этого Flash создаст образец и преобразует текстовый блок в его экземпляр. Половина дела сделана.
Теперь выделим второй ключевой кадр нашей анимации и удалим текстовый блок. Растянутый ключевой кадр станет таким, как показано на рис. 12.2, — стрелка, обозначающая анимацию, превратится в пунктирную линию. Это значит, что наша анимация теперь фактически не имеет второго ключевого кадра ("оборванная" анимация), и Flash не знает, как ее закончить. (Кстати, такая же картина будет наблюдаться, если удалить второй ключевой кадр из последовательности кадров.)
Чтобы в буквальном смысле положить конец такой анимации, нужно поместить на рабочий лист второго ключевого кадра экземпляр созданного нами ранее образца название. После этого выровняем его точно по центру рабочего листа. Вот теперь все нормально.
Теперь заставим название фильма исчезнуть с экрана, для чего добавим к дорожке еще одну последовательность кадров. Эта последовательность будет следовать вслед за первой, и первым ее ключевым кадром станет второй ключевой кадр первой последовательности. Пусть вторая последовательность также состоит из пяти кадров — этого будет достаточно, чтобы зритель успел прочитать название фильма, прежде чем оно исчезнет.
Так, первый ключевой кадр новой последовательности у нас есть. Второй ее ключевой кадр мы поместим на позиции № 10 временной шкалы. Выделим любой из подкадров растянувшегося первого ключевого кадра и выберем в раскрывающемся списке Tween панели Properties пункт Motion. Результат этих действий показан на рис. 12.3.
Теперь выделим экземпляр образца название (название фильма) и выберем пункт Alpha в раскрывающемся списке Color панели Properties. В поле ввода с регулятором, расположенным правее этого списка, введем значение 0 % — полная прозрачность. Все — название нашего фильма теперь стало невидимым.
Проверим, что у нас получилось. Ура, работает!
Подобным образом мы можем создавать любые достаточно сложные анимации, просто добавляя во временную шкалу последовательности кадров, одну за другой. Анимированные элементы могут "гулять" по всему экрану, исчезать и снова появляться, менять цвета, отбрасывать тень, искажаться и восстанавливать свой первоначальный вид. Попробуйте поэкспериментировать — это не только позволит вам приобрести опыт, но и просто позабавит.
Однако для начала все-таки стоит узнать о движении еще кое-что.
Параметры движения
Настала пора рассмотреть поближе панель Properties и все ее элементы управления, доступные в том случае, если выделен любой из кадров анимации (рис. 12.4).
В верхнем левом углу панели Properties находится поле ввода Frame. С его помощью мы можем задать уникальное имя или примечание для какого-либо кадра. Имя кадра будет, в основном, полезно только для программирования сценариев и некоторых других возможностей, но мы можем воспользоваться этим полем, чтобы пометить нужный нам кадр.
Если мы зададим для кадра имя, он будет выглядеть так, как показано на рис. 12.5, т. е. заданное для него имя будет написано прямо на нем. Правда, это идеальный случай, поскольку кадр растянут, и имя помещается в нем целиком. Если же кадр занимает только одну позицию дорожки, в нем будет виден только красный флажок — знак того, что кадр имеет имя.
В качестве примечания к кадру мы можем записать какую-либо дополнительную информацию, например, напоминание, что нужно с этим кадром сделать. Примечание также вводится в поле ввода Frame, но его должны предварять два символа /.
Кадр, содержащий примечание, выглядит так, как показано на рис. 12.6. Обратим внимание на два зеленых символа / — именно так обозначается кадр с примечанием.
Примечания не экспортируются в результирующий файл Shockwave/Flash, поэтому мы можем сделать их достаточно развернутыми, не опасаясь, что результирующий файл получится слишком большим.
Под полем ввода Frame в панели Properties (см. рис. 12.4) находится раскрывающийся список Label type. В нем задается тип значения в поле ввода Frame: имя кадра (пункт Name), примечание (пункт Comment) или имя якоря (пункт Anchor). При этом, если выбрать пункт Comment, Flash сам добавит в начало значения, введенного в поле ввода Frame, два символа /.
Да, но что такое якорь! Так называется кадр, являющийся своего рода "зацепкой" для проигрывателя Flash. Если фильм Flash воспроизводится в окне Web-обозревателя, пользователь может пользоваться кнопками Forward (Вперед) и Back (Назад) этой программы, чтобы "прыгать" от одного якоря к другому. Так что в фильмах, предназначенных для распространения через Интернет, якоря могут пригодиться.
Пример якоря можно увидеть на рис. 12.7. Он обозначается желтым значком якоря, видимым, даже если кадр занимает одну позицию дорожки.
Флажок Scale нужно включить, если наш анимированный элемент при движении должен менять свои размеры. (Впрочем, этот флажок включен по умолчанию.) Если же его снять, размеры анимированного элемента меняться не будут.
С помощью поля ввода с регулятором Ease задается степень замедления движения анимированного элемента в конце анимации. Если мы введем в это поле значение от 1 до 100, элемент сначала будет двигаться быстро, а потом его движение замедлится. Если же, наоборот, мы введем значение от — 1 до -100, сначала его движение будет медленным, а потом ускорится. Если нам нужно, чтобы элемент всегда двигался равномерно, мы оставим в этом поле ввода значение по умолчанию — 0.
Раскрывающийся список Rotate задает направление вращения анимированного элемента, если, конечно, во время движения он должен вращаться. Всего в этом списке четыре пункта:
□ None — элемент не будет вращаться вообще, даже если на втором ключевом кадре он был повернут;
□ Auto — направление вращения элемента выберет сам Flash (значение по умолчанию);
□ CW — элемент всегда будет вращаться в направлении по часовой стрелке;
□ CCW — элемент всегда будет вращаться в направлении против часовой стрелки.
Если в списке Rotate были выбраны пункты CW или CCW, то становится доступным поле ввода times, расположенное правее этого списка. В нем задается количество дополнительных поворотов, которые сделает анимированный элемент, прежде чем займет свое конечное положение. Значение по умолчанию — 0, т. е. элемент сразу повернется на заданный угол, не совершая никаких дополнительных поворотов.
Если правее кнопки Edit (ее мы рассмотрим чуть позже) находится кнопка:
Это значит, что с нашей анимацией что-то не в порядке. При нажатии этой кнопки на экране появится окно-предупреждение, описывающее проблему, с которой столкнулся Flash при создании анимации.
Остальные элементы управления, показанные на рис. 12.4, мы опишем в следующих главах этой книги.
Дополнительные средства управления движением
Шкатулка сюрпризов, припасенная нам Flash 8, еще далеко не пуста. Очередной сюрприз для аниматоров, припасенный им, — это дополнительные средства для управления движением. С их помощью мы сможем, например, управлять скоростью движения анимированного элемента или насыщенностью его тени на каждом участке его траектории.
Чтобы задать параметры движения, нам будет нужно сначала выделить любой промежуточный кадр в последовательности, задающей это движение. После этого нажмем упомянутую ранее кнопку Edit панели Properties. На экране появится диалоговое окно Custom Ease In / Ease Out (рис. 12.8).
Рассмотрение этого окна мы начнем с раскрывающегося списка Property. Пять его пунктов позволят нам задать, чем именно мы собираемся управлять:
□ Position — местонахождением анимированного элемента на траектории его движения (если он должен двигаться);
□ Rotation — углом его поворота (если он должен вращаться);
□ Scale — его размерами (если они должны меняться);
□ Color — примененными к анимированному элементу цветовыми эффектами;
□ Filters — примененными к анимированному элементу фильтрами.
Если включен флажок Use one setting for all properties (а он включен по умолчанию), то все заданные нами настройки будут применены сразу ко всему: и к местонахождению, и к углу поворота, и к размерам, и к цветовому эффекту, и к фильтрам.
Большую часть окна Custom Ease In / Ease Out занимает график, задающий изменение выбранного нами в списке Property параметра с течением времени. Горизонтальная ось этого графика проградуирована в кадрах анимации и задает время. Вертикальная же его ось проградуирована в процентах и задает степень приложения заданного нами для анимированного элемента эффекта. Так, если наш элемент должен двигаться, то эта шкала задает его местоположение на траектории движения, а если он должен менять свою прозрачность — то степень изменения прозрачности.
Как хорошо видно на рис. 12.8, изначально график представляет собой прямую линию, начинающуюся в точке с координатами (0,0), а заканчивающуюся в точке (<последний кадр анимации>, 100 %). Это значит, что по умолчанию все заданные нами изменения эффекта, примененного к анимированному элементу, происходят плавно. Чтобы задать другие изменения, мы должны будем изменить сам график, скажем, превратив его линию в кривую.
Как это сделать? Исключительно просто! Помещаем курсор мыши на нужную точку графика, нажимаем левую кнопку и буксируем мышь, а когда график примет нужную форму, отпускаем левую кнопку. В точке, где мы щелкнули мышью, появится точка искривления и касательная, которой мы можем пользоваться для изменения формы графика. В общем, делается это так же, как и при работе с инструментом "перо" (см. главу 3).
Мы можем выделять точки искривления, щелкая по ним мышью. При этом на выделенной точке искривления появится касательная, а под графиком Flash выведет номер кадра и значение выбранного нами в списке Property параметра, относящиеся к этой точке.
Еще мы можем перетаскивать мышью созданные ранее точки искривления, чтобы исправить график. А чтобы удалить ненужную точку искривления, мы должны будем щелкнуть по ней, удерживая нажатой клавишу
Давайте, например, заставим название фильма пропадать с экрана сначала медленно, а потом все быстрее и быстрее. Для этого сначала выберем в раскрывающемся списке Property пункт Color, а потом исправим график таким образом, чтобы он походил на показанный на рис. 12.9.
Задав нужный нам график, нажмем кнопку ОК, чтобы применить его последовательности кадров, промежуточный кадр которой мы выделили ранее. Чтобы отказаться от управления движением, мы нажмем кнопку Cancel.
Осталось сказать немного. В левом нижнем углу окна Custom Ease In / Ease Out находится группа из двух кнопок, схожих с кнопками пульта (см. рис. 11.5). Правая кнопка позволит нам запустить воспроизведение дорожки, кадр которой мы выделили. Правда, нужно иметь в виду, что при этом будет воспроизведена вся дорожка, а не только последовательность кадров, которой принадлежит выделенный кадр. А левая кнопка останавливает воспроизведение.
Кнопка Reset окна Custom Ease In / Ease Out позволит нам вернуться к изначальному графику изменения выбранного в списке Property параметра (т. е. к прямой линии).
Еще раз об "оборванной" анимации
Заканчивая разговор о движении, укажем на "подводные камни", которые могут встретиться на пути начинающего Flash-аниматора. И, разумеется, поговорим о том, как эти "камни" обойти.
Как мы помним, "оборванная" анимация получается в том случае, когда Flash не знает, как закончить созданную нами анимацию. Такое может случиться по двум причинам:
□ если мы забыли создать второй ключевой кадр анимации или случайно его удалили;
□ если мы удалили во втором ключевом кадре анимации с рабочего листа анимируемый экземпляр.
В любом из указанных случаев Flash отобразит "оборванную" анимацию так, как показано на рис. 12.2. И, конечно же, он не сможет ее нормально воспроизвести.
Какой имеется выход из этого положения?
Если в нашей анимации нет второго ключевого кадра, мы должны будем его создать. После этого выделим его и поместим на рабочий лист экземпляр того образца, который находится в первом ключевом кадре. Это важно: если анимируемые экземпляры, находящиеся в разных ключевых кадрах, порождены разными образцами, Flash не сможет создать движение, и анимация так и останется "оборванной".
Во втором случае выход также очевиден: удаляем все с рабочего листа во втором ключевом кадре и помещаем на него экземпляр соответствующего образца. После этого Flash должен успешно создать нужное движение.
И последнее. Если мы выполнили операцию смены образца, на котором основан экземпляр, находящийся в первом ключевом кадре, то должны будем сделать то же самое и с экземпляром, который находится во втором ключевом кадре. Иначе наша анимация станет "оборванной".
Морфинг
Итак, с движением мы разобрались. Пора приступать к морфингу.
Как делается морфинг? В сущности, так же, как движение. Мы создаем ключевые кадры — начало и конец анимации, наполняем их содержимым и при желании задаем параметры анимации. А остальное, как говорится, дело техники.
Создание морфинга
Создание морфинга мы будем изучать на другом примере. Давайте создадим новый документ Flash и, воспользовавшись инструментом "эллипс", нарисуем на рабочем листе что?., правильно, эллипс. Заливку для него создавать не будем, чтобы изменение его формы было нагляднее.
Содержимое первого ключевого кадра нашей новой анимации готово. Теперь нужно создать второй ключевой кадр и — самое главное — дать понять Flash, чего мы от него хотим.
Создадим новый ключевой кадр, скажем, в позиции № 10 временной шкалы. Flash автоматически скопирует во второй ключевой кадр содержимое первого. А теперь превратим наш эллипс в подобие математического знака "бесконечность", как показано на рис. 12.10.
Ну, теперь можно создать морфинг. Выделим любой из подкадров первого ключевого кадра будущей анимации и выберем в раскрывающемся списке Tween панели Properties пункт Shape. Все — анимация создана!
Созданный нами морфинг обозначается на временной шкале почти так же, как движение (см. рис. 12.1), — в виде тонкой черной стрелки, пересекающей кадры. Только сами кадры будут уже не голубыми, а светло-зелеными.
Остается проверить результат. Нажмем клавишу
Но, как говорил один из персонажей мультфильма "История игрушек", бесконечность — не предел. Мы можем заставить наш эллипс во время изменения формы менять еще и свой цвет. Для этого выделим последний ключевой кадр нашего морфинга, выделим все содержимое рабочего листа и изменим его цвет, воспользовавшись селектором цвета линий панели Properties. И посмотрим, что получится. Эх-х-х, красота!
Чтобы удалить созданный морфинг, мы выделим любой промежуточный кадр задающей этот морфинг последовательности и выберем в раскрывающемся списке Tween панели Properties пункт None.
А теперь мы можем попробовать создать, так сказать, римейк фильма о делении клетки исключительно средствами морфинга. Для этого создадим еще один новый документ Flash. И приступим…
Нарисуем первый ключевой кадр. Как он выглядит, мы знаем. Чтобы нарисовать второй ключевой кадр, воспользуемся одним из трюков Flash, позволяющих разделять изображение на части. (Собственно, мы уже им пользовались.) Сначала выделяем перетаскиванием мыши левую часть нашей "клетки" и относим ее влево, потом выделяем оставшуюся, правую, часть и относим вправо. Осталось только придать обеим половинам "клетки" вид их "родителя" — и второй ключевой кадр готов.
Теперь создаем сам морфинг и проверяем результат. Вот так штука! Наша "клетка" просто разваливается пополам, а вовсе не делится, как это делают настоящие, живые клетки. Да, Flash не так уж и интеллектуален, как мы о нем думали…
Увы, человеческие руки и навыки живого художника не может заменить ни одна, даже самая "интеллектуальная" программа. Даже Flash бессилен сделать что-то, требующее подлинного творчества! Что ж, человеку — человеческое, а компьютеру — компьютерово…
И все же морфинг — неплохая альтернатива покадровой анимации. По крайней мере, простые фильмы можно создавать только с его помощью. А вы как считаете?
Параметры морфинга
Если мы выделим любой промежуточный кадр морфинга, в панели Properties появится группа элементов управления (рис. 12.11). С их помощью мы можем задать некоторые параметры созданного нами морфинга.
Большинство этих элементов управления нам уже знакомо. Мы рассматривали их, когда говорили о параметрах движения. Поэтому сейчас речь пойдет только об элементах управления, задающих специфичные для морфинга параметры.
А такой элемент всего один — раскрывающийся список Blend. Он позволяет сделать фигуры, расположенные на промежуточных кадрах анимации более или менее угловатыми. В этом списке всего два пункта:
□ Distributive — промежуточные фигуры будут по возможности сглаженными (значение по умолчанию);
□ Angular — промежуточные фигуры могут быть угловатыми, если изначальный фрагмент содержал углы и прямые линии.
Нужно иметь, однако, в виду, что заданные с помощью списка Blend настройки справедливы только тогда, когда контур, подвергаемый морфингу, содержит углы и прямые линии. В других случаях эти настройки не действуют.
Также заметим, что для морфинга доступно гораздо меньше параметров, чем для движения. Так, мы не можем управлять морфингом с помощью диалогового окна Custom Ease In / Ease Out, как управляли движением.
Маркеры морфинга и их использование
Когда мы создаем морфинг в среде Flash, эта своевольная программа часто творит, что хочет, наплевав на наши творческие замыслы. Однако есть средство все-таки заставить Flash делать то, чего хотим мы, а не он. Это маркеры морфинга.
Маркер морфинга позволяет нам выбрать точку на анимируемом фрагменте графики и жестко задать ее местоположение в начале и конце анимации. Таких маркеров мы можем создать до 26 штук включительно. Каждый маркер при этом помечается маленькой латинской буквой от а до z.
Давайте испробуем маркеры морфинга в действии. Воспользуемся для этого предыдущим фильмом, основанным на морфинге и демонстрирующим превращение эллипса в математический знак бесконечности. Пусть наш эллипс в процессе превращения еще и переворачивается — вот такое у нас возникло желание.
Выделим первый ключевой кадр анимации и создадим в нем первый маркер морфинга. Для этого выберем пункт Add Shape Hint подменю Shape меню Modify или нажмем комбинацию клавиш
Внимание!
По умолчанию маркеры морфинга не отображаются на рабочем листе. Чтобы вывести их на экран, включите пункт-выключатель Show Shape Hints меню View или нажмите комбинацию клавиш <Ctrl>+<Alt>+<H>.
Итак, первый маркер морфинга мы создали. Но он не привязан ни к одной точке на контуре нашей фигуры. Давайте исправим это. "Захватим" только что созданный маркер мышью и "приклеим" его к нужной точке контура, скажем, к правой стороне изначального эллипса. Все — мы задали первую контролируемую нами точку контура (рис. 12.12).
Далее создадим еще один маркер морфинга (он будет обозначен буквой b) и "приклеим" его к другой контролируемой точке эллипса.
Итак, начальное положение маркеров морфинга мы задали. Теперь нужно задать их конечное положение.
Пусть это будет левая его сторона. У нас должно получиться то, что показано на рис. 12.13.
Выделим второй ключевой кадр анимации. Мы увидим, что на рабочем листе находятся два точно таких же маркера, помеченные буквами а и b. Собственно, это те же самые маркеры, что были созданы на первом ключевом кадре, и они задают конечное положение отмеченных нами точек контура фигуры.
Поскольку наш эллипс во время превращения в знак бесконечности должен переворачиваться, мы "приклеим" их на те же точки конечной фигуры, только в обратном порядке. То есть маркер а должен быть помещен на левую сторону фигуры, которой станет эллипс, а маркер b — на правую сторону.
После того как мы "приклеим" маркеры морфинга на втором ключевом кадре на свои места, они станут зелеными. Если же теперь мы вернемся к первому ключевому кадру, то увидим, что "тамошние" маркеры стали желтыми. Это значит, что контролируемые нами точки заданы и на первом, и на втором ключевых кадрах анимации.
Запустим теперь готовую анимацию. Что ж, маркеры помогли — помеченные ими точки оказались как раз на нужных нам местах. Сравним рис. 12.14 и рис. 12.15: на первом при включенном режиме наложения показана наша анимация, выполненная без использования маркеров морфинга, на втором — с использованием этих маркеров. Результат, как говорится, налицо.
Мы можем добавлять новые маркеры морфинга, выбрав пункт Add Shape Hint в подменю Shape меню Modify или нажав комбинацию клавиш
На заметку
При добавлении новых маркеров старайтесь, чтобы в первом ключевом кадре они располагались в порядке по часовой стрелке. Впоследствии вам будет проще отследить, откуда и куда они перемещались.
Мы можем перемещать маркеры мышью, "приклеивая" их к разным местам контура. (Собственно, мы уже этим занимались.) А удалить ненужный маркер можно двумя разными способами. Во-первых, мы можем щелкнуть на нужном маркере правой кнопкой мыши и выбрать в контекстном меню пункт Remove Hint. Во-вторых, мы можем просто "утащить" ненужный маркер прочь с рабочего листа.
Быстро удалить сразу все созданные нами маркеры морфинга можно выбором либо пункта Remove All Hints в контекстном меню любого маркера, либо одноименного пункта подменю Shape меню Modify.
Мы можем временно скрыть на рабочем листе все маркеры морфинга. Для этого достаточно отключить пункт-выключатель Show Shape Hints меню View или нажать комбинацию клавиш
Кстати, используя маркеры морфинга, можно попытаться создать римейк фильма "Деление клетки", используя только морфинг. Скорее всего, нам придется задать несколько маркеров морфинга и поэкспериментировать с ними, помещая в разные точки контуров и внимательно следя за результатами. Получится, конечно, коряво, но хотя бы попробовать стоит. Пусть это будет вашим домашним заданием.
Что дальше?
Ну вот, с трансформационной анимацией мы покончили. Мы узнали, что она может быть двух видов — движение и морфинг, — и выяснили, как она создается. И даже немного попрактиковались.
Однако разговор о создании анимации еще далеко не закончен. Мы научились создавать только самые простые фильмы. А этого, согласитесь, недостаточно. Поэтому следующие две главы будут посвящены более сложным вопросам: а именно, составной анимации и использованию для ее создания слоев.
Глава 13
Создание составной анимации
Ух, как хорошо мы поанимировали в главах 11 и 12! Все у нас теперь движется, плавает, ползает и совершает прочие телодвижения, подчиняясь нашему замыслу. Воистину, Flash 8 — король анимации.
А теперь на время перестанем им восторгаться и представим себе такую ситуацию. Мы создали анимированный прямоугольник, который должен двигаться из левого нижнего в правый верхний угол рабочего листа и при этом поворачиваться на некоторый угол (рис. 13.1). Для этого мы переместили его с помощью инструмента "стрелка" и повернули с помощью инструмента "трансформатор" (об этих инструментах см. главы 3 и 4). Все работает, все замечательно и все довольны.
Но злой рок в лице начальства не дремлет. Мы получили задание переделать эту анимацию так, чтобы наш прямоугольник не только двигался и не только вращался, но и при движении разваливался надвое. Средствами движения этого достичь очень трудно, да и морфинг в этом случае не бог весть какой помощник. Что делать?
Конечно, можно обратиться к покадровой анимации. Там этой проблемы нет: мы сможем нарисовать все, что угодно, и Flash корректно это воспроизведет. Но каждый кадр такой анимации придется рисовать вручную. А начальство ждет готовую работу через пять минут…
В такой ситуации проще всего будет создать составную анимацию. Вот о ней-то мы сейчас и поговорим.
Дело в том, что Flash позволяет создавать не только статичные образцы. Образец может содержать анимацию (так называемый анимированный образец). Делается это очень просто: мы запускаем один из режимов правки образца и прямо в нем создаем любую нужную нам анимацию, покадровую или трансформационную.
А когда мы создадим на основе анимированного образца экземпляр (анимированный экземпляр) и анимируем еще и его, две анимации — экземпляра и образца — будут воспроизводиться одновременно и независимо друг от друга. Таким образом мы сможем создать сколь угодно сложную анимацию. И решить проблему разваливающегося на части прямоугольника, о которой говорилось выше. И пусть только начальство попробует что-нибудь сказать!!!
Анимированные образцы могут, в свою очередь, содержать другие образцы, в том числе тоже анимированные. Представляете, какие это открывает возможности!
Такая анимация, включающая анимированные экземпляры, называется составной или многоуровневой. Каждый анимированный экземпляр, вложенный в другой экземпляр или помещенный в сам документ, станет уровнем анимации. Анимация же, содержащаяся в анимированном экземпляре (точнее, в образце, на основе которого от создан), называется внутренней.
Именно о составной анимации мы поговорим в этой главе. А также познакомимся с новым для нас типом образцов — образцом-клипом — и выясним, чем же образцы-клипы могут быть нам полезны.
Ну что же, кажется, с теорией покончено. Переходим к практике!
Создание составной анимации
Давайте создадим составную анимацию, демонстрирующую распад прямоугольника на части. Но сначала создадим сам "предмет распада", если еще этого не сделали. Нарисуем на рабочем листе прямоугольник и преобразуем его в обычный графический образец. Не мудрствуя лукаво, назовем его прямоугольник.
Теперь нам нужно заставить его разделяться надвое. Пусть этот процесс длится на протяжении 10 кадров. Откроем только что созданный образец прямоугольник в режиме правки (неважно, каком именно) и приступим к созданию внутренней анимации.
Воспользуемся для этого хорошо знакомыми нам по главе 12 средствами. Создадим второй ключевой кадр на десятой позиции шкалы кадров. Выделим только что созданный второй ключевой кадр, выберем инструмент "стрелка", выделим перетаскиванием правую половину прямоугольника и перетащим ее немного вверх и вправо (или еще куда-нибудь). Теперь нам останется выделить любой из подкадров первого, растянутого, ключевого кадра и выбрать в списке Tween панели Properties пункт Shape. У нас должна получиться картина, показанная на рис. 13.2.
Теперь создадим анимацию в самом документе (внешнюю анимацию). Для этого переключимся в режим правки документа. Поместим в нижнем левом углу рабочего листа экземпляр образца прямоугольник. Создадим анимацию, перемещающую его в верхний правый угол рабочего листа, продолжительностью как минимум вдвое большей, чем продолжительность анимации самого образца (в нашем случае — 20 кадров). И запустим готовую анимацию. Результат показан на рис. 13.3.
Мы только что создали составную двухуровневую анимацию, т. е. сложную анимацию, состоящую их двух простых, вложенных друг в друга. Все средства, использованные нами для этого, стандартны и знакомы нам по предыдущим главам этой книги.
Использование образцов-клипов
А теперь давайте сделаем вот что. Запустим воспроизведение созданной нами составной анимации в отдельном окне, выбрав пункт Test Movie меню Control. После этого в окне просмотра фильма отключим пункт-выключатель Loop в меню Control, чтобы убрать зацикливание, включенное по умолчанию. Затем дождемся, пока наш прямоугольник докувыркается до финиша, и посмотрим, что будет с ним дальше.
А ничего не будет. Анимация воспроизведется до конца и остановится. Причем это произойдет с обеими анимациями: и с внешней, и с внутренней. Всесильный режиссер Flash скажет в конце "Стоп!" им обоим.
Выходит, что внутренняя анимация, созданная нами в графическом образце, не такая уж и независимая. Она воспроизводится только вместе с внешней, до тех пор пока не кончится последовательность кадров последней. Такая внутренняя анимация называется зависимой.
Конечно, в рассмотренном случае такая зависимость удобна. Но что делать, если нам нужно, чтобы внутренняя анимация воспроизводилась в любом случае, даже после прекращения внешней анимации или даже при ее отсутствии? Может ли Flash и в этом случае нам помочь?
Конечно! Для решения проблемы нам всего-навсего нужно будет использовать образцы-клипы.
Внутренняя анимация, созданная в образце-клипе, будет воспроизводиться в любом случае. Даже если внешняя анимация закончилась. Даже если мы вообще не создали внешнюю анимацию! Такая анимация называется независимой.
Единственное "но": Flash не воспроизводит внутреннюю анимацию клипов в окне документа. То есть если мы запустим анимацию, содержащую анимированный клип, анимация клипа не воспроизведется. Чтобы просмотреть ее, нам придется запустить воспроизведение фильма в отдельном окне, выбрав в меню Control пункты Test Movie или Test Scene.
Давайте откроем созданный нами ранее документ, содержащий анимированный прямоугольник, и попробуем применить к делу полученные знания. Включим пункт-выключатель Library меню Window, чтобы вывести на экране панель Library. Выделим в списке этой панели образец прямоугольник и выберем в подменю Туре контекстного меню пункт Movie Clip. Все — мы поменяли тип этого образца на "образец-клип".
Теперь нужно выделить первый ключевой кадр внешней анимации, выделить на рабочем листе экземпляр этого образца и выбрать в раскрывающемся списке, находящемся в верхнем левом углу панели Properties, пункт Movie Clip. Таким образом мы поменяем тип экземпляра этого образца на "образец-клип". (Как мы помним из главы 8, типы образца и порожденного им экземпляра могут быть разными.) И не забудем сделать то же самое во втором ключевом кадре анимации.
Теперь нажмем клавишу
Образцы-клипы очень часто применяются для создания такой вот независимой анимации. (У них есть и другие сферы применения, но мы рассмотрим их в части IV этой книги, когда будем говорить о программировании в среде Flash.) Если же нам не нужна независимая анимация, лучше использовать обычные графические образцы, благо в результирующем файле Shockwave/Flash они занимают заметно меньше места, чем образцы-клипы.
Параметры внутренней анимации
Теперь давайте выделим на рабочем листе экземпляр нашего анимированного образца и посмотрим, что нам предлагает панель Properties. Если это экземпляр графического образца, эта панель примет вид, показанный на рис. 13.4.
В данный момент нас интересуют только находящаяся в центре панели Properties группа, содержащая раскрывающийся список, и поле ввода First. Все остальные элементы управления, показанные на рис. 13.4, нам уже знакомы.
Раскрывающийся список данной группы позволяет указать, какая часть внутренней анимации образца, на основе которого был создан выделенный экземпляр, будет воспроизведена как часть общей анимации. Список содержит три пункта:
□ Loop — внутренняя анимация образца будет воспроизводиться бесконечно (зациклится). Причем воспроизведение ее начнется с кадра, номер которого введен в поле ввода First. Этот пункт списка выбран по умолчанию;
□ Play Once — внутренняя анимация образца будет воспроизведена только один раз, после чего остановится, даже если внешняя анимация еще не закончилась. При этом она будет воспроизведена, начиная с кадра, номер которого введен в поле ввода First. Пример такой анимации показан на рис. 13.5;
□ Single Frame — внутренняя анимация образца застынет на кадре, номер которого введен в поле ввода First. Пример такой анимации можно увидеть на рис. 13.6.
В случае анимированного клипа все эти элементы управления недоступны. Как уже говорилось выше, внутренняя анимация клипов воспроизводится независимо от внешней анимации, и управлять ей придется другими способами — с помощью сценариев ActionScript (см. часть IV).
Что дальше?
На этом разговор о составной анимации можно закончить. Тема исчерпана.
Но это не означает, что мы узнали все о сложной анимации. В следующей главе будет рассказано о том, как использовать для создания сложной анимации слои. Мы узнаем, как анимировать элементы, находящиеся на разных слоях, а также выясним все о специальных слоях и о том, как они могут нам помочь.
Глава 14
Использование слоев для создания анимации
Здесь мы продолжим начатый в главе 5 разговор о слоях и их использовании. А поскольку данная часть полностью посвящена анимации, то и разговор пойдет о создании анимированных изображений с помощью слоев.
Как мы помним из главы 12, трансформационная анимация может быть применена только к экземпляру, находящемуся на своем собственном слое. На первый взгляд, это серьезное ограничение: невозможно анимировать сразу два или более экземпляров. Но его легко преодолеть, если разнести эти экземпляры по нескольким слоям и анимировать их по отдельности (многослойная анимация).
Кроме того, для создания сложной анимации Flash предоставляет две разновидности так называемых специальных слоев, имеющих особое назначение. Это направляющие и маскирующие слои, и мы их также рассмотрим.
С помощью направляющего слоя можно заставить какой-либо экземпляр двигаться по сложной траектории. Делается это так: мы создаем слой, рисуем на нем линию, представляющую нужную нам траекторию, привязываем к ней этот экземпляр и создаем анимацию. Остальное, как и во многих других случаях, берет на себя Flash.
Маскирующий слой используется для того, чтобы частично скрыть лежащее под ним изображение, показав только его небольшую часть. Анимировав содержимое этого слоя, можно создать "световое пятно", "ползающее" по изображению и "высвечивающее" разные его части.
Многослойная анимация
Ну что ж, начнем с самого простого — с многослойной анимации, т. е. анимации, состоящей из нескольких анимированных элементов, находящихся на разных слоях.
Создание многослойной анимации
Создадим новый документ Flash и нарисуем на рабочем листе круг. Преобразуем его в графический образец и дадим ему имя Круг. В результате этих действий мы получим на рабочем листе экземпляр этого образца.
Теперь можно приступать к созданию анимации. Давайте заставим наш экземпляр двигаться по горизонтали, слева направо. Продолжительность анимации пусть составляет 10 кадров. Проверим готовую анимацию в действии и убедимся, что она работает.
Теперь давайте добавим на рабочий лист еще один экземпляр образца круг и заставим его двигаться по вертикали, сверху вниз. Для этого сначала создадим новый слой, а уже на него и поместим новый экземпляр. (О создании слоев см. главу 5.) Анимируем его и запустим воспроизведение готовой анимации. Вот и все.
Таким образом мы можем создавать сколько угодно слоев, помещать на них экземпляры и анимировать их. (Главное только — не переусердствовать, не то у зрителей зарябит в глазах. Но это так, шутка…)
Создание фоновых изображений
Очень часто бывает необходимо, чтобы анимированный элемент изображения располагался поверх какого-либо фонового изображения (фона). В частности, такие фоны часто применяются в художественных фильмах.
Как сделать фон во Flash? Очень просто!
Откроем документ, созданный нами чуть раньше, когда мы учились делать многослойную анимацию. Создадим в нем новый слой и поместим его ниже тех двух слоев, на которых находятся уже созданные нами анимированные элементы. Импортируем какое-либо большое растровое изображение и поместим его на этот слой.
А теперь очень важный момент. Единственный ключевой кадр, содержащий фоновое изображение, нужно растянуть так, чтобы его длина сравнялась с длиной анимации, которая его использует. Это нужно, чтобы созданный нами фон присутствовал на всех кадрах анимации.
Внимание!
Не забывайте о том, что было сказано выше! Ключевой кадр, содержащий фон, должен быть достаточной длины, чтобы покрыть всю использующую этот фон анимацию.
Все! Если мы теперь запустим воспроизведение созданной ранее анимации, наши элементы будут двигаться на красивом графическом фоне. Неплохо, правда?
Разумеется, фоном может служить не только импортированное растровое изображение, но и любая векторная графика, нарисованная в самом Flash. Фон также может быть анимированным, но это уже, на взгляд автора, перебор.
Ускорение отображения фрагментов фона
Как говорилось выше, фон может содержать векторную графику, нарисованную средствами самого Flash. Также фон может включать экземпляры — графические или клипы. Вот о клипах (в смысле, экземплярах образцов-клипов), используемых для создания фона, мы и поговорим.
Клипы — замечательная штука. Мы можем применить к ним фильтры (см. главу 9), чтобы наше кино выглядело эффектнее. Но в таком случае возникнет одна проблема, о которой нужно поговорить.
Если фильм включает в себя множество анимированных фрагментов, проигрывателю Flash может не хватить процессорных ресурсов, чтобы отобразить анимацию плавно, без рывков. В самом деле, при выводе каждого кадра фильма ему придется извлечь из файла Shockwave/Flash описания каждого анимированного образца, вычислить его координаты и нарисовать его в той позиции, в которой он должен быть в данный момент. А ведь анимированные элементы могут перекрывать друг друга, быть полупрозрачными, обрабатываться с помощью фильтров и даже управляться сценариями ActionScript. И, кроме проигрывателя Flash, на компьютере могут выполняться другие программы, тоже требующие "внимания" со стороны процессора. Так что ничего нет удивительного в том, что воспроизводимая анимация будет постоянно дергаться, а то и застывать на несколько секунд.
Но Flash 8 предоставляет способ хоть как-то решить эту проблему. Он позволяет включить кэширование выбранных клипов в оперативной памяти компьютера. То есть проигрыватель Flash после считывания образцов-клипов из файла Shockwave/Flash, где хранится фильм, и помещения их экземпляров на рабочий лист поместит их также в оперативную память. Тогда, если ему понадобится нарисовать какой-либо клип в другой позиции, он возьмет его именно из оперативной памяти вместо того, чтобы снова лезть в файл Shockwave/Flash.
Преимущество у этого подхода одно, и оно очевидно — ускорение воспроизведения анимации. А вот недостатков несколько:
□ кэшироваться в оперативной памяти могут только клипы, не содержащие встроенной анимации (хотя такие клипы могут быть анимированы);
□ при кэшировании множества клипов сильно возрастает потребность в системных ресурсах;
□ проигрыватель Flash в любой момент может посчитать, что клип не должен кэшироваться (например, если он слишком велик или если не хватает оперативной памяти).
Включить кэширование клипа очень просто. Выделяем на рабочем листе нужный клип и обращаемся к панели Properties. В нижней ее части, прямо под раскрывающимся списком наложений, находится отключенный по умолчанию флажок Use runtime bitmap caching. Включаем этот флажок — и клип будет кэшироваться при выводе.
На заметку
Слово "bitmap" в подписи к этому флажку говорит о том, что клип кэшируется в растровом виде. Именно за счет этого и достигается ускорение его вывода на экран.
Использование специальных слоев
Наш разговор о многослойной анимации получился коротким. В самом деле, о чем там особо рассказывать!.. Все и так ясно.
А теперь поговорим о специальных слоях. Это слои-направляющие и маскирующие слои.
Слои-направляющие
При создании анимации часто бывает нужно, чтобы какой-либо элемент совершал не прямолинейное перемещение, а двигался по достаточно сложному пути (или, как говорят аниматоры, траектории). Эта траектория может быть кривой или ломаной линией, окружностью или сложным контуром какой-то фигуры.
Средствами, изученными в главе 12, добиться этого невозможно или слишком трудоемко. Поэтому специально для таких случаев Flash предлагает особую разновидность специальных слоев — слои-направляющие. И сейчас мы выясним, как их создать и как использовать.
Создадим новый документ Flash, поместим на рабочий лист прямоугольник и преобразуем его в образец по имени прямоугольник. После этого создадим простейшую анимацию, перемещающую экземпляр этого образца слева направо по рабочему листу. Как это сделать, мы уже знаем.
Теперь нужно заставить этот прямоугольник двигаться по какой-либо траектории. Для этого мы создадим слой — направляющую, нарисуем на нем траекторию и привяжем к ней наш прямоугольник.
Чтобы создать слой — направляющую и привязать к нему анимированный элемент, сначала выделим в списке слоев панели Timeline тот, что содержит анимированный элемент. Далее выберем пункт Motion Guide подменю Timeline меню Insert. Также можно выбрать пункт Add Motion Guide контекстного меню выделенного слоя. Созданный нами слой — направляющая появится над выделенным слоем (рис. 14.1) и будет иметь имя вида Guide: <имя выделенного слоя>. Также он будет помечен особой пиктограммой.
Теперь выделим слой — направляющую и нарисуем в нем нужную нам траекторию. Для этого можно пользоваться инструментами "карандаш", "перо", "линия", "прямоугольник", "эллипс" и "кисть". Нужно только проследить, чтобы слой — направляющая не содержал больше никакой графики, кроме траектории.
Осталось привязать наш анимированный элемент к нарисованной траектории. Для этого выделим первый ключевой кадр нашей анимации и включим флажок Snap панели Timeline. Точка вращения анимированного элемента после этого должна "приклеиться" к траектории. Переместим анимированный элемент в самое начало траектории, если он почему-либо оказался в ее середине. Наконец, выделим второй ключевой кадр анимации и переместим анимированный элемент в конец траектории.
Все! Можно проверить готовую анимацию (рис. 14.2).
Единственное, что портит картину — сама линия траектории. Нам нужно скрыть содержащий ее слой — направляющую, для чего достаточно щелкнуть в соответствующей строке списка слоев по колонке, помеченной значком "глаз".
В панели Properties есть еще один полезный нам флажок — Orient to path. Если его включить, Flash будет автоматически ориентировать анимированный элемент по линии траектории. На рис. 14.3 показана анимация, использующая автоматическое ориентирование по траектории.
Создать слой-направляющую можно и другим способом. Создадим обычный слой, выделим его, нарисуем на нем траекторию и выберем пункт-выключатель Guide контекстного меню этого слоя. Еще можно выбрать пункт Properties в контекстном меню, включить в появившемся на экране диалоговом окне Layer Properties (см. рис. 5.2) переключатель Guide и нажать кнопку ОК. Обратим внимание, что слой-направляющая, к которому не привязан ни один слой, обозначен значком в виде молотка.
Привязать к вновь созданному слою-направляющей слой с анимацией можно тремя способами. Во-первых, можно просто перетащить слой с анимацией и "бросить" под слоем-направляющей. Во-вторых, можно выделить какой-либо слой, уже привязанный к слою — направляющей, и создать новый слой. (Как мы знаем, новый слой помещается прямо над выделенным — значит, в нашем случае он также будет привязан к слою — направляющей.) В-третьих, можно выбрать пункт Properties в контекстном меню, включить в появившемся на экране диалоговом окне Layer Properties переключатель Guided и нажать кнопку ОК.
Кстати, мы можем привязать к одному слою-направляющей несколько слоев с анимацией. При этом все анимированные элементы будут двигаться по одной траектории.
"Отвязать" же слой с анимацией от слоя-направляющей можно также тремя способами. Первый способ: перетащить слой с анимацией так, чтобы он оказался выше слоя-направляющей. Второй способ: выделить слой с анимацией, выбрать пункт Properties в контекстном меню, включить в появившемся на экране диалоговом окне Layer Properties переключатель Normal и нажать кнопку ОК. Третий способ: отключить флажки Snap и Orient to path, "отклеив" тем самым анимированный элемент от линии траектории.
Чтобы превратить слой-направляющую в обычный слой, нужно отключить пункт-выключатель Guide в контекстном меню этого слоя. Можно также вызвать на экран диалоговое окно Layer Properties, включить переключатель Normal и не забыть нажать кнопку ОК.
Маскирующие слои
Маскирующий слой позволяет скрыть содержимое лежащего под ним маскируемого слоя, показав только его часть. Он содержит особое изображение, называемое маской; она задает размеры и форму фрагмента маскируемого слоя, который будет виден. Мы можем представить себе, что маска — это "дырка" в маскирующем слое, сквозь которую видно содержимое маскируемого слоя. Эта "дырка" может быть анимирована, что позволит получить весьма интересные и забавные эффекты, вроде "светового пятна", высвечивающего разные фрагменты маскируемого слоя.
Как же создать и использовать маскирующий слой? Очень просто — даже проще, чем слой-направляющую.
Создадим новый документ Flash. По умолчанию он будет содержать единственный слой — его-то мы и превратим в маскируемый. Нарисуем на нем что-нибудь, а еще лучше — импортируем любое достаточно большое растровое изображение и поместим его на этот слой.
Так… Маскируемый слой у нас готов. А как насчет маскирующего?
Создадим над маскируемым слоем новый пустой слой. В нем нарисуем изображение, которое станет нашей маской.
При этом будем иметь в виду следующее:
□ любой контур и любая заливка станут прозрачными частями маски;
□ пустое пространство на рабочем листе станет непрозрачной частью маски;
□ цвета и стили линий и заливок будут проигнорированы. Так что не стоит увлекаться красивыми градиентными и графическими цветами — никакого эффекта это не даст, а результирующий файл Shockwave/Flash заметно увеличится в размерах.
Пусть наша маска имеет вид круга. Преобразуем ее в образец, который так и назовем — маска. Заставим ее перемещаться, скажем, из левого верхнего угла рабочего листа в правый нижний. Растянем единственный ключевой кадр слоя, содержащего маскируемое изображение, так, чтобы он "покрыл" всю анимацию. Теперь все готово к созданию маскирующего слоя.
Выделим в списке слой, содержащий маску, и выберем пункт Mask в контекстном меню этого слоя. Также можно выбрать пункт Properties в контекстном меню, включить в появившемся на экране диалоговом окне Layer Properties переключатель Mask и нажать кнопку ОК. После всех произведенных действий список слоев будет иметь вид, показанный на рис. 14.4.
Как видим, кроме всего прочего, и маскирующий, и маскируемый слои были заблокированы. Блокировка обоих слоев — важное условие их нормальной работы во Flash. Если мы не заблокируем хотя бы один слой, маскирование работать не будет. Если же нам понадобится что-то изменить, то мы сначала разблокируем нужный слой, изменим, что хотим, а потом не забудем заблокировать его снова.
Все — наша анимация готова! Можно запускать ее воспроизведение.
Мы можем маскировать одним маскирующим слоем несколько слоев, содержащих графику. Для этого мы создадим нужные слои, наполним их графикой, перетащим их и "бросим" под маскирующим слоем. Мы также можем выбрать пункт Properties контекстного меню слоя, который нужно сделать маскируемым, включим в появившемся на экране диалоговом окне Layer Properties переключатель Masked и нажмем кнопку ОК.
"Вынуть" же слой с графикой из-под маскирующего слоя можно двумя способами. Первый способ: перетащить слой с маскируемой графикой так, чтобы он оказался выше маскирующего слоя. Второй способ: выделить слой с графикой или маскирующий слой, выбрать пункт Properties в контекстном меню, включить в появившемся на экране диалоговом окне Layer Properties переключатель Normal и нажать кнопку ОК. В результате маскирующий или маскируемый слой станет обычным слоем.
К сожалению, мы не можем маскировать уже маскированный слой, т. е. накладывать маску на маску. Flash не предоставляет для этого стандартных средств. Для этого нам придется использовать составную анимацию, описанную в главе 13. Последовательность действий в этом случае будет такая:
1. Создаем графический образец или образец-клип с внутренней анимацией, использующей маскирующий и маскируемый слои. Маскирующий слой этого образца станет маской первого уровня, а маскируемый слой будет содержать собственно маскируемую графику.
2. Возвращаемся в сам документ. Помещаем экземпляр созданного на первом шаге образца-клипа в слой. Создаем еще один слой и делаем его маскирующим — он станет маской второго уровня.
3. Создаем всю анимацию и смотрим готовый фильм.
Что дальше?
На этом разговор о применении слоев в непростом труде Flash-аниматора закончен.
Наш опыт работы во Flash пока еще очень невелик. И нам совсем не помешала бы сейчас любая помощь. Хотя бы помощь от самого Flash. Давайте выясним, может ли он помочь нам хотя бы создать за нас пару-тройку "красивостей" вроде анимированной тени. И займемся мы этим в следующей главе.
Глава 15
Использование эффектов и преобразований
В главе 9 мы изучили фильтры и наложения, которые можно использовать для создания различного рода специальных эффектов (тени, размытия и пр.). Все они призваны помочь на первых порах начинающим пользователям. Опытные Flash-художники, в принципе, могут создать то же самое и вручную, но для этого им придется мобилизовать свои знания и опыт. А вот у начинающих пользователей Flash знаний и опыта как раз и не хватает.
В этой главе мы изучим эффекты и преобразования Flash. Эффекты аналогичны уже знакомым фильтрам и позволяют, в частности, заставить фрагмент графики "вырастать" на глазах или "взрываться". Преобразования — это различные элементарные анимации, которые могут быть применены к любому фрагменту изображения и позволяют в результате анимации переместить его, повернуть, изменить размеры, задать цветовой эффект или сделать все это одновременно.
Есть одно ограничение — мы можем применить к выделенному фрагменту только один эффект или преобразование. Так что комбинировать эффекты (преобразования), как фильтры, мы не сможем.
Эффекты и преобразования Flash могут быть применены к любому фрагменту нашего изображения. Даже если выделить на рабочем листе обычную фигуру, не являющуюся ни группой, ни текстовым блоком, ни экземпляром, мы сможем применить к ней любой эффект или преобразование. Flash сам преобразует этот фрагмент в образец и создаст на его основе экземпляр.
Но будут ли нам действительно полезны все эти эффекты и преобразования? В конце концов, мы уже имеем кое-какой опыт работы с Flash и даже успели создать несколько фильмов. Кто знает… Так или иначе, Flash нам их предлагает, и грех отказаться от такого предложения.
Простейшие эффекты
Начнем мы с создания самых простых эффектов. Всего их два: клонирование выделенного экземпляра по ячейкам воображаемой сетки и его анимированное копирование.
Клонирование по сетке ("Copy to Grid")
Клонирование по сетке — самый простой из эффектов, который мы можем применить к выделенному фрагменту изображения. Данный эффект даже не анимирован.
Чтобы применить этот эффект к выделенному фрагменту изображения, нужно выбрать пункт Copy to Grid подменю Assistants подменю Timeline Effects меню Insert. (Вот как далеко он спрятался!) На экране появится диалоговое окно Copy to Grid (рис. 15.1).
Интересно это окно тем, что выполнено средствами самого Flash. Да-да, пакет Flash включает в себя, в том числе, и модули, написанные на нем самом!
Группа элементов управления Grid Size позволяет задать количество строк и столбцов в воображаемой сетке, где будут помещены "клоны" выделенного нами фрагмента. Количество строк указывается в поле ввода Rows, а количество столбцов — в поле ввода Columns.
Группа элементов управления Grid Spacing служит для задания расстояния между ячейками этой воображаемой сетки. Расстояние по вертикали задается в поле ввода Rows, а расстояние по горизонтали — в поле ввода Columns. Все эти расстояния измеряются в пикселах.
Всю правую половину окна Copy to Grid занимает большая область предварительного просмотра. Так что мы всегда сможем увидеть, что случится с нашим фрагментом после задания различных параметров эффекта. Кнопка Update Preview заставляет Flash обновить содержимое этой области; рекомендуется нажимать эту кнопку после изменения любого параметра.
Задав нужные параметры, следует нажать кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта.
Анимированное копирование ("Distributed Duplicate")
Этот эффект позволит создать несколько копий выделенного нами фрагмента изображения с разными эффектами. Так, различные копии фрагмента могут иметь разный цвет или быть повернутыми на разные углы. Такое копирование может быть анимированным; в этом случае копии будут создаваться прямо на глазах зрителя.
Чтобы применить этот эффект к выделенному фрагменту изображения, нужно выбрать пункт Distributed Duplicate подменю Assistants подменю Timeline Effects меню Insert. На экране появится диалоговое окно Distributed Duplicate (рис. 15.2), также выполненное средствами Flash.
В поле ввода Number of Copies задается количество копий выделенного нами фрагмента.
Группа элементов управления Offset Distance служит для задания расстояния между копиями. Расстояние по горизонтали вводится в поле ввода X, расстояние по вертикали — в поле ввода Y. Все эти величины вводятся в пикселах.
Поле ввода Offset Rotation служит для задания угла поворота копий в градусах.
В поле ввода Offset Start Frame задается количество кадров, в течение которых происходит создание каждой копии. Если ввести в это поле значение О, эффект будет статичным. Если же ввести количество кадров, отличное от нуля, эффект будет анимированным.
Раскрывающийся список ниже поля ввода Offset Start Frame служит для задания метода масштабирования копий. В нем находятся два пункта: Exponential Scaling (экспоненциальное масштабирование) и Linear Scaling (линейное масштабирование).
Ниже этого списка находится группа элементов управления, предназначенная для задания степени масштабирования новых копий. Если небольшая кнопка содержит изображение закрытого замка, то в расположенное правее поле ввода можно будет ввести значение масштаба, которое будет использоваться для масштабирования копий и по горизонтали, и по вертикали. Если же эта кнопка содержит изображение открытого замка, значение масштаба можно будет задать отдельно для горизонтального (поле ввода X) и вертикального (поле ввода Y) направления. Переключить кнопку-"замок" из открытого состояния в закрытое и наоборот можно щелчком по ней.
Флажок Change Color, будучи включенным, предписывает Flash плавно изменять цвет получающихся копий выделенного фрагмента. Конечный цвет можно задать с помощью селектора цвета Final Color.
Поле ввода Final Alpha и расположенный под ним регулятор служат для задания конечного уровня прозрачности последней копии. Все предыдущие копии будут иметь уровни прозрачности, постепенно приближающиеся к заданному.
Опять же, правую половину окна Distributed Duplicate занимает область предварительного просмотра и кнопка Update Preview, о которой не следует забывать.
Задав нужные параметры, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта.
Более сложные эффекты
Закончив с эффектами простейшими, перейдем к более сложным и более, если так можно сказать, эффектным. Их побольше — целых четыре.
Анимированное размытие ("Blur")
Этот эффект заставит выделенный нами фрагмент постепенно "размываться". Как гласит само его название, он всегда создается анимированным.
Чтобы применить этот эффект к выделенному фрагменту изображения, нужно выбрать пункт Blur подменю Effects подменю Timeline Effects меню Insert. На экране появится диалоговое окно Blur (рис. 15.3).
В поле ввода Effect Duration задается продолжительность эффекта в кадрах.
Поле ввода Resolution служит для задания количества "размытий" (копий выделенного фрагмента, создаваемых для имитации его размытия). А в поле ввода Scale вводится относительный масштаб этих копий.
Флажки Allow Horizontal Blur и Allow Vertical Blur служат для включения и отключения размытия по горизонтали и вертикали соответственно.
Набор кнопок Direction of Movement задает направление, в котором будет "размываться" выделенный фрагмент. Каждая кнопка этого набора задает направление, в котором указывает находящаяся на ней стрелка. Центральная же кнопка заставляет "размываться" во все стороны.
Правую половину окна Distributed Duplicate занимают область предварительного просмотра и кнопка Update Preview.
Задав нужные параметры, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта.
Отображение тени ("Drop Shadow")
С помощью этого эффекта мы можем добавить к выделенному фрагменту тень. Правда, она будет статичной, не анимированной.
Чтобы применить этот эффект к выделенному фрагменту изображения, нужно выбрать пункт Drop Shadow подменю Effects подменю Timeline Effects меню Insert. На экране появится диалоговое окно Drop Shadow (рис. 15.4).
Селектор цвета Color задает цвет создаваемой тени. А поле ввода Alpha Transparency и расположенный под ним регулятор служат для задания уровня прозрачности тени.
Группа элементов управления Shadow Offset служит для задания смещения тени относительно выделенного фрагмента. Смещение по горизонтали задается в поле ввода X, а смещение по вертикали — в поле ввода Y. Обе эти величины задаются в пикселах.
Задав нужные параметры, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта. Об области предварительного просмотра и кнопке Update Preview упоминать уже, вероятно, излишне.
Расширение ("Expand")
Этот эффект заставляет выделенный фрагмент изображения постепенно "вырастать" или "съеживаться", в зависимости от заданных нами параметров.
Чтобы применить этот эффект к выделенному фрагменту изображения, нужно выбрать пункт Expand подменю Effects подменю Timeline Effects меню Insert. На экране появится диалоговое окно Expand (рис. 15.5).
В поле ввода Effect Duration задается продолжительность эффекта в кадрах.
Расположенная ниже группа переключателей позволит нам задать, что именно будет происходить с выделенным фрагментом. Всего в этой группе три переключателя.
□ Expand — выделенный фрагмент будет "вырастать".
□ Squeeze — выделенный фрагмент будет "съеживаться".
□ Both — выделенный фрагмент сначала "вырастет", а потом "съежится" до первоначальных размеров.
Уже знакомый нам по другим окнам набор кнопок Direction of Movement служит для указания изначального направления, в котором выделенный фрагмент будет "вырастать" или "съеживаться". Каждая кнопка этого набора задает направление, в котором указывает находящаяся на ней стрелка; реально активны только две кнопки, задающие движение по горизонтали, влево и вправо. Что касается центральной кнопки, то она, судя по всему, никакого влияния на движение фрагмента не оказывает.
Группа элементов управления Shift Group Center by задает дополнительное смещение выделенного фрагмента при его движении. Дополнительное смещение по горизонтали задается в поле ввода X, а смещение по вертикали — в поле ввода Y. Обе эти величины задаются в пикселах.
Значение в поле ввода Fragment Offset определяет основное смещение выделенного фрагмента при движении.
Группа элементов управления Change Fragment Size by предназначена для указания величины, на которую будет изменяться размер выделенного фрагмента на каждом шаге его движения. Величина изменения размеров по горизонтали задается в поле ввода X, по вертикали — в поле ввода Y. Обе эти величины задаются в пикселах.
Задав нужные параметры и проверив результат в области предварительного просмотра, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта.
"Взрыв" ("Explode")
С помощью этого впечатляющего эффекта мы можем "взорвать" выделенный нами фрагмент графики.
Чтобы применить этот эффект к выделенному фрагменту, нужно выбрать пункт Explode подменю Effects подменю Timeline Effects меню Insert. На экране появится диалоговое окно Explode (рис. 15.6).
В поле ввода Effect Duration задается продолжительность эффекта в кадрах.
Набор кнопок Direction of Explosion задает направление, в котором будут разлетаться "осколки" "взорванного" фрагмента изображения.
Группа элементов управления Arc Size задает размер воображаемой дуги "разлета" "осколков" выделенного фрагмента. Размер дуги по горизонтали задается в поле ввода X, размер по вертикали — в поле ввода Y. Обе эти величины задаются в пикселах.
Поле ввода Rotate Fragments by указывает угол поворота "осколков" при разлетании их в стороны. Этот угол задается в градусах.
Группа элементов управления Change Fragment Size by предназначена для указания величины, на которую будет изменяться размер "осколков" выделенного фрагмента на каждом шаге их разлетания. Величина изменения размеров по горизонтали задается в поле ввода X, по вертикали — в поле ввода Y. Обе эти величины задаются в пикселах.
Поле ввода Final Alpha и расположенный под ним регулятор служат для задания конечного уровня прозрачности "осколков". Таким образом, при "разлете" их прозрачность будет меняться от изначальной до указанной в вышеупомянутом поле ввода.
Задав нужные параметры и проверив результат в области предварительного просмотра, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания эффекта.
Преобразования
Преобразований, предусматриваемых Flash, всего два. Однако с их помощью можно задать весьма сложное движение выделенного нами фрагмента графики.
Обычное движение ("Transform")
Это самое обычное движение фрагмента графики, наподобие тех, что мы создавали в главе 12. С помощью этого преобразования мы можем менять местоположение, размеры, угол поворота выделенного фрагмента и задавать для него цветовые эффекты.
Чтобы применить это преобразование к выделенному фрагменту, нужно выбрать пункт Transform подменю Transform/Transition подменю Timeline Effects меню Insert. На экране появится диалоговое окно Transform (рис. 15.7).
В поле ввода Effect Duration задается продолжительность движения выделенного фрагмента в кадрах.
Расположенная ниже группа элементов управления позволяет указать, как должны быть заданы новые координаты выделенного фрагмента, и сами эти координаты. Раскрывающийся список, находящийся в этой группе, содержит два пункта:
□ Change Position by — выделенный элемент должен сместиться по горизонтали на заданное в поле ввода X, а по вертикали — на заданное в поле ввода Y количество пикселов;
□ Move to Position — выделенный фрагмент должен переместиться в точку, чьи координаты в пикселах заданы в полях ввода X (горизонтальная) и Y (вертикальная).
Ниже этой группы элементов управления находится другая, предназначенная для задания степени масштабирования выделенного фрагмента при движении. Если небольшая кнопка содержит изображение закрытого замка, то в расположенное правее поле ввода можно будет ввести значение масштаба, которое будет использоваться для масштабирования фрагмента и по горизонтали, и по вертикали. Если же эта кнопка содержит изображение открытого замка, значение масштаба можно будет задать отдельно для горизонтального (поле ввода X) и вертикального (поле ввода Y) направления. Переключить кнопку-"замок" из открытого состояния в закрытое и наоборот можно щелчком по ней.
Еще ниже находится группа элементов управления, задающая угол поворота выделенного фрагмента или количество оборотов, которые он должен сделать при движении. Угол поворота в градусах задается в поле ввода Rotate. А в поле ввода Spin указывается количество оборотов. В последнем случае можно задать направление вращения с помощью пары кнопок-переключателей, расположенных правее поля ввода Spin; левая кнопка задает вращение против часовой стрелки, правая — по часовой стрелке.
Флажок Change Color, будучи включенным, предписывает Flash изменить цвет выделенного фрагмента в результате движения. Конечный цвет указывается с помощью селектора цвета Final Color.
Поле ввода Final Alpha и расположенный под ним регулятор служат для задания конечного уровня прозрачности выделенного фрагмента.
В поле ввода Ease задается степень замедления движения выделенного фрагмента в конце анимации. Если мы введем в это поле значение от 1 до 100, элемент сначала будет двигаться быстро, а потом его движение замедлится. Если же, наоборот, мы введем значение от -1 до -100, сначала его движение будет медленным, а потом ускорится. Если нам нужно, чтобы элемент всегда двигался равномерно, мы оставим в этом поле ввода значение по умолчанию — 0. Для задания степени замедления мы также можем воспользоваться регулятором, расположенным ниже поля ввода Ease.
Задав нужные параметры и проверив результат в области предварительного просмотра, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания этого преобразования.
Проявление ("Transition")
А это преобразование будет для нас более полезным, чем обычное движение. Оно заставляет выделенный фрагмент графики постепенно проявляться на экране (путем уменьшения его прозрачности) или создает эффект опускающегося занавеса.
Чтобы применить это преобразование к выделенному фрагменту, нужно выбрать пункт Transition подменю Transform/Transition подменю Timeline Effects меню Insert. На экране появится диалоговое окно Transition (рис. 15.8).
В поле ввода Effect Duration задается продолжительность проявления выделенного фрагмента в кадрах.
Набор переключателей Direction позволяет задать, будет ли выделенный фрагмент постепенно появляться на экране (переключатель In) или, наоборот, пропадать (переключатель Out).
Флажок Fade заставляет выделенный элемент менять свою прозрачность, создавая эффект постепенного появления или исчезновения. А флажок Wipe предписывает выделенному элементу создать эффект поднимающегося или опускающегося занавеса.
Если включен флажок Wipe, становится доступным расположенный правее него набор кнопок. Он служит для указания направления движения воображаемого занавеса.
В поле ввода Ease задается степень замедления движения выделенного фрагмента в конце анимации. Для этого мы также можем воспользоваться расположенным ниже регулятором.
Задав нужные параметры и проверив результат в области предварительного просмотра, мы нажмем кнопку ОК. Кнопка Cancel позволит нам отказаться от создания этого преобразования.
Работа с эффектами и преобразованиями
Вот и все эффекты и преобразования, доступные во Flash 8. Их немного, но при умелом их применении они могут заметно оживить любой фильм.
Внимание!
Не забывайте, что к одному и тому же фрагменту изображения можно применить только один эффект (преобразование).
Теперь давайте выясним, что мы можем делать с уже созданным для какого-либо выделенного фрагмента графики эффектом или преобразованием.
Прежде всего, мы можем исправить параметры эффекта или преобразования. Для этого достаточно выделить фрагмент, к которому был применен этот эффект или преобразование, и выбрать пункт Edit Effect подменю Timeline Effects меню Modify. На экране появится одно из рассмотренных нами в этой главе диалоговых окон, соответствующих данному эффекту (преобразованию), в котором мы сможем задать новые параметры. После их задания нужно будет не забыть нажать кнопку ОК этого окна.
Удалить ненужный эффект (преобразование) еще проще. Выделяем на рабочем листе нужный фрагмент графики и выбираем пункт Remove Effect подменю Timeline Effects меню Modify. Эффект (преобразование), примененный нами ранее к этому фрагменту, будет тотчас удален. Возможно, при этом придется подождать, так как Flash будет удалять все созданные им вспомогательные образцы и дорожки анимации.
Внимание!
Как говорилось в начале этой главы, если мы решим применить эффект или преобразование к фрагменту графики, не являющемуся ни экземпляром, ни группой, ни текстовым блоком, Flash автоматически создаст на основе этого фрагмента образец и поместит на рабочий лист его экземпляр. Если же мы потом удалим примененный к этому фрагменту эффект или преобразование, он (фрагмент) так и останется экземпляром созданного Flash образца.
Что дальше?
Что ж, об эффектах и преобразования все! Применять их в своих фильмах или нет — дело ваше.
В главе 10 мы говорили об импорте графики, созданной в других программах (в том числе и растровой), и ее использовании в изображениях Flash. В следующей главе мы займемся импортированием и использованием видеоклипов. И создадим, наверно, самые большие, в смысле занимаемого ими на диске места, документы Flash. Ведь видео — штука весьма увесистая…
Глава 16
Импорт видео
Полноценно использовать в фильмах импортированные видеоклипы стало возможно еще во Flash MX. А уж во Flash 8 средства по работе с импортированным видео достигли и вовсе заоблачных высот. Нет, автор говорит совершенно серьезно!
На заметку
Надо сказать, что проигрыватели Flash версий 3–5 поддерживали воспроизведение внешних видеоклипов Apple QuickTime. Подробнее об этом мы поговорим далее в этой главе.
Во-первых, мы теперь можем импортировать понравившийся клип в свой фильм, сделав его частью документа Flash, а значит, и результирующего файла Shockwave/Flash. Это самый простой способ позаимствовать чужое творение в качестве основы для собственного.
Во-вторых, мы можем написать несложный сценарий, который во время воспроизведения нашего фильма заставит проигрыватель Flash загрузить и воспроизвести внешний видеоклип. Это полезно, если мы хотим дать зрителю возможность просмотреть какой-либо длинный клип, но не желаем помещать его в свой фильм, чтобы не увеличивать его размеров (ведь зритель может и не заинтересоваться внешним клипом). Конечно, говорить о сценариях ActionScript пока рановато — мы будем изучать их в части IV. Но кое-какую подготовительную работу выполним прямо сейчас.
И, наконец, разработчики фирмы Macromedia припасли для нас еще один сюрприз. Встречайте — новый видеоформат Macromedia Flash Video! Быстрый, качественный, компактный и — самое главное! — для воспроизведения его нам не понадобятся никакие дополнительные программы, кроме самого проигрывателя Flash. Да это просто мечта компьютерного киношника!..
Единственное "но"… Помните, о чем мы говорили в конце главы 10? Правильно, об авторских правах на импортируемую графику и об их соблюдении. Так вот, все сказанное там справедливо и в случае импортируемого видео. Не забывайте об этом!
Ну что, пора начинать? Но сначала давайте немного поговорим о компьютерном видео и освежим наши знания, полученные в главе 1. Заодно узнаем кое-что новое.
Сжатие видео во Flash. Кодеки On2 VP6 и Sorenson Spark
В главе 1 мы уже говорили о видео. Давайте кратко повторим все, что уже успели узнать и, возможно, уже забыли.
Итак, видеоинформация, хранящаяся в файле, практически всегда сжимается. Иначе и не получится: данные, содержащие видеофильм, имеют огромный размер, и нормально работать с ними практически невозможно. Для сжатия видео в абсолютном большинстве случаев применяется сжатие с потерями, т. е. часть информации при сжатии отбрасывается, отчего размер видеоданных становится значительно меньше. Чем меньше информации было отброшено при сжатии видео, тем выше его качество и тем больше размер файла, в котором оно хранится.
Для работы со сжатым видео требуются две программы — кодер и декодер. Кодер сжимает видео по заданному алгоритму, а декодер распаковывает и отправляет программе, которая его использует (выводит на экран, как Windows Media Player, или помещает в документ, как Flash). И практически всегда пара кодер-декодер представляет собой одну программу — кодек (сокращение от "кодер-декодер").
Трудолюбивое человечество напридумывало преизрядное количество алгоритмов (и соответствующих им кодеков) для сжатия видео. Некоторые из них получили широкую популярность (их мы рассмотрели, опять же, в главе 1), другие применяются в очень узкой области, большинство же кануло в Лету. Поэтому сейчас, для того чтобы просмотреть практически любой фильм, нужно иметь на своем компьютере установленными пять кодеков: Indeo, MPEG I, MPEG II, DivX и Microsoft Media Video. Все эти кодеки, кроме DivX, поставляются в составе современных версий Windows, да и установить DivX не составляет никакого труда.
Но для сжатия фильмов, импортированных во Flash, применяются совсем другие кодеки. Их два, и сейчас мы о них поговорим.
□ Sorenson Spark. Использовался для сжатия импортированного в предыдущих версиях Flash — MX и MX 2004, также сохранился во Flash 8. Обеспечивает неплохое качество изображения при хорошей степени сжатия и невысокой загрузке центрального процессора.
□ On2 VP6. Один из самых современных кодеков видео. Используется во Flash 8 для сжатия импортированного видео по умолчанию. Обеспечивает более высокое качество изображения и более сильное сжатие, чем Sorenson Spark, но нагрузка на центральный процессор при просмотре сжатого с его помощью видео заметно выше.
При импорте видео в документ Flash 8 оно автоматически перекодируется с использованием кодека On2 VP6 или Sorenson Spark и именно в таком виде хранится в файле документа. Когда готовый фильм публикуется в формате Shockwave/Flash, импортированное видео переносится в результирующий файл без изменений.
При импорте видео мы можем задать его параметры, влияющие на его качество и размер. (Эти параметры будут подробно описаны чуть позже.)
Но почему импортируемое во Flash видео обязательно нужно перекодировать в какие-то другие кодеки? Почему его нельзя оставить "как есть"? А все ради той же универсальности, о которой говорилось в главе 1. Кодеки (точнее, декодеры) On2 VP6 и Sorenson Spark встроены в проигрыватель Flash, и пользователю, просматривающему сделанный нами фильм Shockwave/Flash, не понадобятся никакие дополнительные программы, кроме самого этого проигрывателя.
Но программисты фирмы Macromedia пошли еще дальше. Они придумали еще и новый формат хранения видео в файле — Macromedia Flash Video. Он используется для хранения видеоклипов, которые будут впоследствии импортированы в документ Flash. Удобно, правда?
Параметры цифрового видео
А теперь настала пора поговорить о параметрах цифрового видео. Таких параметров существует три.
Первый параметр, который мы рассмотрим, — это ширина потока данных. (Распространен также термин "битрейт" — калька с английского bitrate.) Это самый, наверно, важный параметр — он определяет, какой объем памяти отводится под хранение данных сжатого видео, и измеряется в килобитах или мегабитах в секунду (Кбит/с или Мбит/с).
Фактически ширина потока данных показывает, сколько места будет отведено для хранения оставшейся, неотброшенной и уже сжатой информации. Она напрямую определяет качество фильма: чем она больше, тем качественнее "картинка", но и тем больше размер данных, содержащих цифровое видео.
Для сжатия фильмов, распространяемых через Интернет, используются низкие значения ширины потока данных ("низкие битрейты"): от 50 до 250 Кбит/с. Значения от 700 до 900 Кбит/с ("средние битрейты") используются для сжатия пиратских копий фильмов с применением кодека DivX; такой фильм как раз помещается на один CD. В формате DVD-Video хранятся высококачественные фильмы, сжатые с шириной потока данных в несколько Мбит/с ("высокие битрейты").
На заметку
Ширина потока данных имеет смысл только в случае сжатия с потерями. Если фильм сжимается без потерь, то этот параметр не имеет никакого практического смысла, ведь в этом случае сколько кодеку понадобится места для хранения сжатого видео, столько он и займет.
Второй по значимости параметр — это уже знакомая нам частота кадров. Разумеется, чем она ниже, тем хуже качество клипа, но и тем меньше размеры его файла. Значения частоты кадров, используемые в различных случаях, приведены в табл. 1.2.
Третий параметр цифрового видео определяет геометрические размеры изображения , т. е. его ширину и высоту, измеряемые в пикселах. Опять же, чем меньше эти величины, тем хуже качество клипа и тем меньше размеры его файла. Своего рода стандартами де-факто являются значения 160×120, 192×144, 320×240, 352×288, 384×288, 640×480 и 720×576 пикселей.
Полезные советы по подготовке видео для импорта
Напоследок стоит привести несколько полезных советов, которые помогут нам правильно подготовить видеоклипы для импорта их во Flash. Они особенно полезны, если мы готовим материалы, предназначенные для распространения через Интернет, когда размер результирующего видеофайла имеет значение.
Особенность современных алгоритмов сжатия видео (в том числе On2 VP6 и Sorenson Spark) такова, что неподвижные или малоподвижные сцены сжимаются ими лучше, чем быстро меняющиеся. Поэтому по возможности не следует выбирать для импорта в фильм Flash видеоклипы, содержащие большое количество динамичных сцен.
Обязательно нужно удалять из видеоклипов шумы. Мало того, что "зашумленные" клипы плохо сжимаются, так они еще и выглядят не очень презентабельно. И пользователь, даже если он и дождется окончания загрузки нашего фильма, все равно будет разочарован.
Как правило, "зашумленными" часто оказываются самые края изображения, особенно если это изображение было получено оцифровкой телетрансляции или аналоговой видеозаписи с кассеты. Поэтому следует обращать внимание на края изображения и при необходимости обрезать их (выполнять кадрирование) или закрывать "зашумленные" края черными рамками.
Также следует позаботиться о том, чтобы "картинка" видеоклипа имела приемлемые значения яркости, контрастности, насыщенности цветов и пр. Вряд ли пользователь захочет смотреть чересчур темный фильм.
Существует довольно много программ, предназначенных для работы с цифровым видео. Все предоставляют возможность очистить клип от шумов, отрегулировать его яркость, контрастность и цветовую насыщенность, изменить его размеры, а также выполнить другие действия — например, добавить спецэффекты. Описание работы с этими программами выходит за рамки данной книги.
И, конечно же, нужно задать подходящие значения трех рассмотренных нами выше параметров. А какие их значения подразумеваются под "подходящими", мы сейчас выясним.
Сначала, разумеется, о ширине потока данных. В большинстве случаев должно хватить 50—250 Кбит/с, поскольку импортированные клипы в фильмах Flash обычно играют вспомогательную роль. Более высокие значения ширины потока данных используются очень редко, если нужно получить высокое качество импортированного видео любой ценой.
Для выбора нужной частоты кадров можно воспользоваться табл. 1.2. А при выборе размеров изображения правило одно: они должны быть такими, чтобы "вписаться" в создаваемый нами фильм Flash.
Разумеется, во всем нужно знать меру. Если мы сделаем очень качественный фильм, то получим слишком большой результирующий файл Shockwave/Flash. Если же мы переусердствуем, ухудшая свой фильм до предела, его никто не захочет смотреть. Так что лучше поискать золотую середину, для чего, скорее всего, придется поэкспериментировать.
Какие форматы видео поддерживает Flash
А теперь выясним, какие форматы цифрового видео поддерживает Flash 8. Все они приведены в табл. 16.1. Там же указано, какое дополнительное программное обеспечение необходимо для того, чтобы импортировать файл каждого из этих форматов.
Внимание!
В некоторых случаях для видеофайлов, содержащих звуковое сопровождение, может быть импортировано только видео, но не звук. Это может произойти из-за того, что Flash не поддерживает данный формат сжатия и записи звуковых данных. В таком случае следует преобразовать звуковую дорожку видеоклипа к одному из совместимых форматов, воспользовавшись программами редактирования видео. (Все поддерживаемые Flash форматы звука перечислены в табл. 17.1).
Импорт видео
Нужно сразу сказать, что импортировать видеоклип в документ Flash можно двумя разными способами. Сейчас мы их рассмотрим.
Первый способ — собственно импорт, или внедрение. Файл с видеоклипом открывается во Flash, тут же автоматически перекодируется с использованием кодека On2 VP6 или Sorenson Spark и помещается в файл документа Flash. Все — теперь импортированный нами клип стал неотъемлемой частью нашего фильма.
Преимущество внедрения очевидно — как говорится, "все свое несу с собой". Результирующий файл Shockwave/Flash будет содержать импортированный нами клип, и никаких проблем с его воспроизведением возникнуть не должно. Недостатков всего два. Во-первых, поскольку импортированный клип целиком помещается в файл Shockwave/Flash, размер увеличивается, и зачастую сильно. Во-вторых, как мы давно знаем, внедряемый клип при импорте перекодируется кодеком On2 VP6 или Sorenson Spark, а это довольно долгий процесс.
Второй способ — привязка видеоклипа к документу Flash. Импортируемый клип не становится частью документа Flash; он будет загружен отдельно при воспроизведении готового фильма. Привязать можно только клип в формате Apple QuickTime, причем поддерживает привязку только проигрыватель Flash версий 3–5.
Достоинств у привязки два. Первое — импортированный клип не хранится в файле Shockwave/Flash, в результате чего последний не увеличивается в размерах. Второе — если мы исправили импортированный клип, не нужно выполнять его повторного импорта. Недостатков также два: нужно позаботиться о том, чтобы пользователь, просматривающий фильм Shockwave/Flash, имел доступ к привязанному к нему клипу, невозможность привязки клипов любых форматов, кроме Apple QuickTime, и необходимость просмотра фильма, содержащего привязанный клип, в проигрывателе Flash версии 3–5.
Разобравшись с внедрением и привязкой, давайте приступим к собственно импорту. Но сначала поищем по закоулкам жесткого диска различные видеофайлы, лучше всего — разных форматов.
Импорт видеоклипа в документ Flash выполняется очень просто. Выбираем пункт Import to Stage подменю Import меню File или нажимаем комбинацию клавиш
Мы также можем выбрать пункт Import Video подменю Import меню File. В этом случае стандартного диалогового окна открытия файла на экране не появится, и мы должны будем выбрать нужный файл потом.
В любом случае на экране появится диалоговое "окно-мастер" Import Video, первая страница которого показана на рис. 16.1.
Это окно содержит два переключателя, задающих местоположение импортируемого нами клипа. Изначально включен переключатель On your computer, задающий в качестве местоположения наш собственный компьютер. В поле ввода File path отображается полное имя выбранного нами файла; справа от него находится кнопка Browse, после нажатия которой на экране появится диалоговое окно открытия файла Windows. Это может пригодиться, если мы открыли окно Import Video выбором пункт Import Video подменю Import меню File.
Мы также можем выбрать для импорта файл, уже находящийся на каком-либо Web-сервере. Для этого достаточно включить переключатель Already deployed to a web server, Flash Video Streaming Service, or Flash Communication Server и ввести интернет-адрес этого файла в поле ввода URL.
Во всех уважающих себя "окнах-мастерах" для перехода на следующую страницу нужно нажать кнопку Next. Если нажать кнопку Cancel, фильм не будет импортирован.
Вторая страница окна Import Video показана на рис. 16.2. Здесь мы надолго не задержимся.
Чтобы выполнить внедрение клипа, нам будет нужно выбрать переключатель Embed video in SWF and play in timeline. После этого можно нажимать кнопку Next и отправляться на следующую страницу окна Import Video.
Если же мы хотим выполнить привязку клипа, то включим переключатель Linked QuickTime video for publishing to QuickTime. При этом если в параметрах публикации документа мы не указали создание файла Shockwave/Flash для версий 3–5 проигрывателя Flash, на экране появится окно-предупреждение, предлагающее нам это сделать. (О параметрах публикации см. главу 21.) Сделав это, можно нажать кнопку Finish — и процесс привязки клипа закончен.
На заметку
Как видно на рис. 16.2, на второй странице окна Import Video присутствуют также переключатели Progressive download from a web server, Stream from Flash Video Streaming Service и Stream from Flash Communication Server .
Эти переключатели указывают Flash создать на рабочем листе компонент-проигрыватель видео, в котором будет воспроизводиться импортируемый клип. Использование компонентов выходит за рамки данной книги; желающие могут найти их описание в интерактивной справке Flash.
Третья страница окна Import Video показана на рис. 16.3. Она, как и все последующие страницы этого окна, появится, только если мы выполняем внедрение клипа.
Раскрывающийся список Symbol type позволит нам выбрать тип образца, в который будет преобразован импортируемый клип. Здесь доступны три пункта: Embedded video (образец-импортированный клип; этот пункт выбран по умолчанию), Movie clip (образец-клип) и Graphic (графический образец).
Другой раскрывающийся список — Audio track — позволит нам выбрать, импортировать ли вместе с клипом его звуковую дорожку (если она есть). Выбранный по умолчанию пункт Integrated заставляет Flash импортировать звуковую дорожку клипа, а пункт Separate позволяет нам отказаться от этого (например, если мы хотим потом, после прочтения главы 17., задать для клипа свое звуковое сопровождение).
Флажок Place instance on stage, будучи включенным, указывает Flash сразу же после импорта клипа и создания на его основе образца поместить его экземпляр на рабочий лист. А флажок Expand timeline if needed при включении заставляет Flash при необходимости расширить дорожку, чтобы в ней поместились все кадры импортируемого клипа. Последний флажок включен по умолчанию, и лучше его не отключать.
Последняя группа переключателей позволит нам перед импортом немного отредактировать клип. Для этого нужно будет включить переключатель Edit the video first. Но нам сейчас не до этого, так что давайте включим переключатель Embed the entire video (впрочем, он и так включен по умолчанию), чтобы импортировать клип без всякой редактуры.
Нажмем в очередной раз кнопку Next. И перейдем на четвертую по счету страницу окна Import Video (рис. 16.4).
Здесь мы можем выбрать профиль сжатия импортируемого клипа. Профиль — это именованный набор предопределенных параметров, относящихся в данном случае к сжатию видео. (Flash также поддерживает профили публикации, о которых мы поговорим в главе 21.)
Для выбора профилей служит раскрывающийся список Please select a Flash Video encoding profile. Его пункты имеют "говорящие" названия, так что описывать их излишне. В самом деле, если пункт имеет название Flash 8 — Medium Quality (400kbps), то сразу понятно, что он задает сжатие видео с помощью кодека On2 VP6 (для проигрывателя Flash 8) с шириной потока данных 400 Кбит/с, в результате чего достигается среднее (в терминологии Flash) качество.
Ниже списка Please select a Flash Video encoding profile находится большое текстовое поле. В нем отображается более подробная информация о выбранном профиле. В частности, мы можем увидеть там сведения о параметрах сжатия звуковой дорожки импортируемого клипа.
Кнопка Show Advanced Settings выводит в том же окне Import Video большой набор элементов управления, предназначенных для более точного задания параметров сжатия видео. Эти элементы управления пригодятся нам, если мы не удовлетворимся ни одним профилем, а захотим задать свои параметры. Во всех подробностях они будут описаны в конце этой главы.
А еще на четвертой странице окна Import Video находятся элементы управления, которые позволят нам просмотреть импортируемый клип и, если нужно, отрезать у него начало и конец, не несущие смысловой нагрузки. Это, прежде всего, область предварительного просмотра, находящаяся в правом верхнем углу этого окна. Под ней находится временная шкала с бегунком. Бегунок помечает текущий кадр клипа, содержимое которого отображается в области предварительного просмотра. Позиция, в которой находится бегунок, показывается ниже области предварительного просмотра, правда, в единицах времени, а не в кадрах.
На концах временной шкалы находятся два пока еще незнакомых нам маркера. Это маркер начала и маркер конца клипа. Они обозначают начало и конец импортируемого фрагмента клипа соответственно и пригодятся для того, чтобы удалить из импортируемого клипа не несущие содержания фрагменты из его начала и конца. Мы можем перетаскивать эти маркеры мышью.
Очередное нажатие кнопки Next — и перед нами пятая, информационная, страница окна Import Video (рис. 16.5).
Здесь мы можем прочитать сведения об импортируемом клипе и краткую сводку всех заданных нами параметров. И нажмем кнопку Finish, чтобы завершить, наконец, процесс импорта.
Если перед нажатием кнопки Finish мы включим флажок After importing video, view video topics in Flash Help, Flash после выполнения импорта клипа выведет в панели Help все топики, так или иначе относящиеся к импорту видео и его использованию в фильмах Flash. Впрочем, можно и не включать этот флажок — как вывести на экран панель Help и найти в ней нужный нам топик, мы узнали еще в главе 2.
Во время перекодирования клипа Flash будет показывать небольшое окно с индикатором степени ее выполнения. Процесс этот весьма длительный, так что придется набраться терпения.
В результате всех этих мучений мы получим новый образец в библиотеке и, возможно, на рабочем листе (если на третьей странице окна Import Video (см. рис. 16.3) включен флажок Place instance on stage).
Если в раскрывающемся списке Symbol type третьей страницы окна Import Video был выбран пункт Embedded video, мы получим образец-импорти-рованный клип. В графе Kind списка образцов панели Library будут стоять слова Embedded Video.
Экземпляры таких образцов имеют одну особенность, которая знакома нам по графическим образцам. Дело в том, что они воспроизводятся как бы внутри дорожки анимации, в которой созданы (т. е., здесь мы получим случай зависимой анимации, о которой рассказывалось в главе 13). Поэтому дорожка должна содержать такое количество кадров, чтобы клип смог воспроизвестись полностью. Проще всего это сделать, растянув ключевой кадр, в котором этот экземпляр создан. (Впрочем, если, наряду с флажком Place instance on stage третьей страницы окна Import Video мы включим флажок Expand timeline if needed, Flash сам добавит в дорожку нужное количество подкадров.)
Если же в раскрывающемся списке Symbol type третьей страницы окна Import Video мы выбрали пункты Movie clip или Graphic, на основе импортированного клипа будет создан, соответственно, образец-клип и графический образец. Как обращаться с ними, мы давно знаем.
Использование импортированных клипов
Мы можем создавать экземпляры образцов-импортированных клипов таким же образом, как экземпляры всех остальных знакомых нам образцов. И точно так же мы можем применять к этим экземплярам какие угодно трансформации, используя все инструменты, описанные в главе 4. Мы даже можем их анимировать, для чего достаточно создать второй ключевой кадр и задать нужную анимацию. (Это будет забавно: видеоклип на рабочем столе одновременно воспроизводится и прыгает туда-сюда.)
Если мы создадим на основе образца-импортированного клипа экземпляр, Flash сразу же выведет на экран окно-предупреждение (рис. 16.6), предлагающее нам сразу создать дорожку кадров такой длительности, чтобы этот клип воспроизвелся полностью. Так, на этом рисунке Flash предлагает нам создать дорожку из 59 кадров — именно такую длину имеет импортированный клип.
Зачем это нужно, мы уже знаем. Анимация, сохраненная в импортированном клипе, является зависимой, как и внутренняя анимация графического образца. Поэтому для ее воспроизведения нам понадобится дорожка, содержащая достаточное количество кадров.
Как Flash создает эту дорожку? Очень просто. Он берет ключевой кадр, в котором мы создали этот экземпляр, и растягивает его на нужное количество подкадров. Как говорится, дешево и сердито.
Конечно, мы можем отказаться от автоматического создания требуемой дорожки кадров и создать ее самим. Правда, для этого придется каким-то образом выяснить, сколько кадров содержит импортированный клип. В этом нам могут помочь программы, которые позволяют увидеть параметры клипа, например, GSpot (найти ее можно на сайте ).
Кстати, мы можем воспроизвести экземпляр импортированного клипа не целиком, а частично, точнее, какую-то его начальную часть. Для этого нужно просто сократить созданную Flash дорожку до нужного числа кадров. К сожалению, воспроизвести такими средствами произвольный фрагмент клипа, начинающийся с любого его кадра, а не только с первого, невозможно — нам придется править сам файл, где хранится этот клип, а потом импортировать его заново.
Также можно выполнить смену образца-импортированного клипа, на основе которого был создан данный экземпляр, на другой. Для этого выделим на рабочем листе нужный клип и нажмем кнопку Swap в панели Properties. На экране появится диалоговое окно Swap Embedded Video (рис. 16.7).
В списке, занимающем большую часть этого окна, перечислены все импортированные в текущий документ клипы. Выбираем требуемый клип, после чего в небольшой области предварительного просмотра, расположенной в левом верхнем углу этого окна, будет показан его первый кадр. Далее нам останется только нажать кнопку ОК, чтобы выполнить смену образца, или кнопку Cancel для отказа от этого.
Внимание!
Если вы выполнили смену образца экземпляра в первом ключевом кадре трансформационной анимации, не забудьте сделать то же самое и во втором кадре. Иначе анимация будет "оборвана". (О трансформационной анимации см. главу 12.)
К сожалению, Flash 8 не позволяет менять внедренный клип на привязанный. Нам придется полностью удалить старый экземпляр и создать на рабочем листе новый, уже на основе нового образца.
Работа с образцами-импортированными клипами
Мы можем проделывать с образцами-импортированными клипами то же самое, что и с образцами любых других типов: превращать их в разделяемые, задавать для них различные параметры, помещать в папки и удалять. Как все это делается, описывалось в главе 8. Здесь же мы рассмотрим лишь немногочисленные специфичные для импортированных клипов действия.
А выполняются эти действия в диалоговом окне Video Properties. Вызвать его на экран можно, выделив нужный образец-импортированный клип в списке панели Library и выбрав пункт Properties контекстного или дополнительного меню этой панели. На рис. 16.8 показано окно Video Properties, отображающее параметры внедренного клипа.
В поле ввода Symbol вводится имя образца. Это нам уже знакомо по главе 8.
Группа переключателей Туре задает, будет ли этот образец внедренным (переключатель Embedded (synchronized with Timeline)) или управляться через компонент (переключатель Video (ActionScript-controlled)). Поскольку мы в этой книге не будем изучать компоненты, оставим включенным первый переключатель.
А вот информация, представленная в нижней половине этого окна, будет нам полезна. Это (в порядке сверху вниз) полное имя файла, из которого был импортирован клип, дата и время его импорта, размер его изображения в пикселах, продолжительность в единицах времени (часы, минуты и секунды, но — вот досада! — не кадры) и размер данных этого клипа.
С помощью кнопки Import мы можем импортировать на место существующего клипа другой. При нажатии этой кнопки на экране появится стандартное диалоговое окно открытия файла Windows. Находим нужный файл и нажимаем кнопку открытия.
Кнопка Update служит для повторного импорта (обновления) этого клипа. Это может быть полезно, если мы отредактировали изначальный клип в какой-либо программе для работы с цифровым видео. (Встроенные во Flash возможности правки клипов довольно бедны; с их помощью, например, нельзя наложить титры.)
После задания новых параметров клипа и выполнения всех манипуляций с ним нужно нажать кнопку ОК. Кнопка Cancel позволит нам отказаться от ввода новых параметров.
Все описанное выше касалось внедренных клипов. В случае же привязанных клипов набор доступных операций намного меньше — см. рис. 16.9. Мы можем только сменить имя образца и имя файла, где хранится привязанный клип. Чтобы сделать это, нужно нажать кнопку Set Path. На экране появится стандартное диалоговое окно открытия файла Windows, в котором нам останется выбрать нужный файл.
Правка импортируемого клипа средствами Flash
Мы уже знаем, что прямо перед импортом можем выполнить обрезку клипа, задав точки его начала и конца на четвертой странице диалогового окна Import Video (см. рис. 16.4). Для этого предназначена временная шкала с соответствующими маркерами, описанная в начале этой главы.
Но на самом деле возможности Flash по правке клипа перед импортом гораздо больше. Так, мы можем разрезать клип на несколько более мелких клипов (подклипов), которые будут импортированы как отдельные образцы. Давайте выясним, как это сделается, поскольку такие "хирургические" операции приходится выполнять довольно часто, а далеко не у всех на компьютере установлена программа для работы с видео.
Чтобы выполнить правку, импортируемый клип нужно включить на третьей странице окна Import Video (см. рис. 16.3) переключатель Edit the video first и нажать кнопку Next. Окно Import Video примет вид, показанный на рис. 16.10.
Большую часть этого окна занимает область предварительного просмотра, на которой воспроизводится содержимое клипа. Под ней находится временная шкала клипа с бегунком. Бегунок помечает текущий кадр клипа, содержимое которого видно в области предварительного просмотра. Позиция, в которой находится бегунок, выводится в нижней части области предварительного просмотра, правда, в единицах времени, а не в кадрах. Также на временной шкале присутствуют маркеры начала и конца клипа. Это нам уже знакомо.
Ниже и левее временной шкалы находится набор кнопок, управляющих воспроизведением и положением маркеров начала и конца клипа. Перечислим их в порядке слева направо:
□ перемещение маркера начала клипа в позицию, в которой находится бегунок;
□ перемещение бегунка на кадр назад;
□ воспроизведение клипа с позиции, в которой находится бегунок, до изначального конца клипа (то, где в данный момент находится маркер конца клипа, значения не имеет);
□ остановка воспроизведения;
□ перемещение бегунка на кадр вперед;
□ перемещение маркера конца клипа в позицию, в которой находится бегунок.
Мы можем задать начало и конец клипа, установив на нужные позиции соответствующие маркеры, и этим ограничиться. Но это можно сделать и на четвертой странице окна Import Video. А разрезать клип на подклипы мы можем только здесь. Давайте выясним, как это делается.
Чтобы создать подклип, мы зададим его начало и конец с помощью соответствующих маркеров и нажмем кнопку со знаком "плюс", находящуюся над списком, что располагается левее области предварительного просмотра клипа. Созданный нами подклип появится в этом списке. Точнее, сначала появится небольшое поле ввода, в котором мы сможем ввести имя создаваемого подклипа, после чего должны будем нажать клавишу
Внимание!
Если вы разобьете клип на подклипы, импортированы будут только они. Все остальное содержимое клипа, не вошедшее в подклипы, будет отброшено Flash при импорте.
Чтобы просмотреть содержимое какого-либо подклипа, нужно выделить его в списке и нажать кнопку Preview clip.
Мы можем дать уже имеющемуся подклипу новое содержимое. Для этого выделим в списке нужный подклип, зададим для него новые начало и конец и нажмем кнопку Update clip.
Также мы можем переименовать любой подклип. Для этого дважды щелкнем на его имени в списке подклипов, введем в появившемся вместо его имени поле ввода новое имя и нажмем клавишу
Чтобы удалить ненужный подклип, достаточно выделить его и нажать кнопку со знаком "минус". Она также находится над списком подклипов.
Закончив правку клипа, нажмем кнопку Next, и окно Import Video переключится на четвертую страницу (см. рис. 16.4). Если мы нажмем кнопку Back, то вернемся на третью страницу этого окна (см. рис. 16.3).
Вот и все о правке видеоклипов в среде Flash. Да, много таким способом не направишь, и для того чтобы сделать в клипе какие-то серьезные изменения, нам придется воспользоваться специализированной программой. Но для простейших правок встроенных возможностей Flash вполне достаточно.
Управление качеством импортируемого клипа
Кроме правки импортируемого клипа прямо во время импорта мы можем задавать параметры его качества. Выполняется это на четвертой странице диалогового окна Import Video (см. рис. 16.4).
Чтобы получить доступ к элементам управления, задающим параметры импортируемого клипа, нужно нажать кнопку Show Advanced Settings. Все эти элементы управления появятся в нижней половине окна Import Video (рис. 16.11) в "блокноте", содержащем две вкладки. Рассмотрим их по порядку.
Начнем рассмотрение с вкладки Encoding. Эта вкладка содержит элементы управления, предназначенные для задания параметров сжатия видео и звука.
Флажок Encode video при включении указывает Flash импортировать видеодорожку клипа. Он включен по умолчанию, и отключать его не стоит (в самом деле, кому нужен видеоклип без видеодорожки?..).
Если флажок Encode video включен, становятся доступными все элементы управления, расположенные ниже его. Они задают параметры видеодорожки импортируемого клипа.
В раскрывающемся списке Video codec задается кодек видео, с помощью которого будет сжата видеодорожка клипа. В нем доступны пункты On2 VP6 (выбран по умолчанию) и Sorenson Spark. Назначение этих пунктов должно быть понятно из их названий.
В большинстве случаев следует оставить выбранным пункт On2 VP6. Пункт Sorenson Spark мы выберем только в том случае, если собираемся создавать фильм для предыдущих версий проигрывателя Flash, поддерживающих воспроизведение внедренного видео (это версии 6 и 7).
Если в списке Video codec выбран пункт On2 VP6, становится доступным флажок Encode alpha channel. При его включении Flash поместит в импортированную видеодорожку канал прозрачности оригинального клипа (если таковой есть).
Раскрывающийся список Frame rate служит для выбора частоты кадров импортированной видеодорожки. По умолчанию выбран пункт Same as source (Частота кадров та же, что у оригинального клипа); также доступны пункт
Same as FLA (Частота кадров та же, что у документа Flash) или любой из пунктов 10, 12, 15, 24, 25 или 30, задающих числовое значение частоты кадров. Нужное значение частоты кадров можно ввести в этот список и вручную.
Как мы помним из главы 1, алгоритмы, реализующие сжатие видео, анализируют каждый кадр и сохраняют в результирующем файле только данные о различиях между соседними кадрами. Так вот, чтобы иметь возможность вычислить это различие, какие-то кадры кодек должен сохранить целиком — это будут своего рода образцы для сравнения с последующими кадрами. Такие кадры, сохраненные целиком, называются ключевыми — этот термин знаком нам из трансформационной анимации.
Раскрывающийся список Key frame placement как раз и задает расположение ключевых кадров видеодорожки. Выбранный по умолчанию пункт Automatic отдает расстановку ключевых кадров на откуп кодеку. Также можно выбрать пункт Custom и ввести интервал между ключевыми кадрами в поле ввода Key frame interval; этот интервал задается в кадрах.
Раскрывающийся список Quality задает качество импортированного видео после сжатия. В нем доступны следующие пункты: Low (Низкое качество), Medium (Среднее), High (Высокое) и Custom. Если выбран последний пункт, становится доступным поле ввода Max data rate, в котором можно ввести ширину потока данных в Кбит/с.
Флажок Resize video при включении заставляет Flash при перекодировке выполнить изменение размеров "картинки" импортируемого клипа. Новые размеры задаются в полях ввода Width (Ширина) и Height (Высота). Раскрывающийся список, расположенный правее этих полей, задает единицу измерения размеров "картинки"; в нем доступны пункты pixels (пикселы) и percent (проценты). Если включен флажок Maintain aspect ratio, Flash при вводе одного из значений размеров будет пересчитывать значение другого таким образом, чтобы сохранить пропорции "картинки".
С параметрами видеодорожки мы покончили. Перейдем к элементам управления, задающим параметры звуковой дорожки клипа. И начнем с флажка Encode audio, который при включении указывает Flash импортировать аудиодорожку клипа. Он также включен по умолчанию.
Если флажок Encode audio включен, становятся доступными немногочисленные элементы управления, расположенные ниже его. Они задают параметры аудиодорожки импортируемого клипа.
Собственно, элемент управления здесь всего один — раскрывающийся список Data rate. Он задает ширину потока данных звуковой дорожки и количество каналов: один (монофонический звук) или два (стереофонический). Пункты этого списка имеют "говорящие" названия; так, пункт 96 kbps (stereo) обозначает ширину потока данных в 96 кбит/с и двухканальный (стереофонический) звук.
Внимание!
Звуковое сопровождение импортируемых клипов всегда перекодируется с использованием кодека MPEG I level 3 (MP3).
Перейдем теперь к вкладке Crop and Trim. Эта вкладка содержит элементы управления, позволяющие нам выполнить обрезку "картинки" клипа, чтобы, например, удалить присутствующие по ее краям помехи.
На этой вкладке присутствуют четыре поля ввода с регулятором, расположенные на сторонах воображаемого прямоугольника, представляющего "картинку" клипа. Каждое из этих полей ввода задает количество пикселов, которые будут отрезаны, с соответствующей стороны этого прямоугольника. В общем, здесь все достаточно наглядно.
При вводе значений в любое из этих полей в области предварительного просмотра клипа в правом верхнем углу окна Import Video (см. рис. 16.11) появится пунктирный прямоугольник, обозначающий остающуюся после обрезки область "картинки" клипа. Так что мы всегда сможем оценить, не "отстригли" ли чего лишнего.
Вот и все о задании параметров импортируемого клипа. Да и вообще, с импортом видео мы, пожалуй, закончили. Почти…
Macromedia Flash Video
Macromedia Flash Video — это формат файлов, разработанный фирмой Macromedia специально для хранения видеоклипов, предназначенных для импорта в документы Flash. Файлы Flash Video содержат сжатые с помощью алгоритмов On2 VP6 или Sorenson Spark видео и, возможно, звук и имеют расширение flv.
Преобразовать нужный нам клип в формат Macromedia Flash Video можно двумя способами. Во-первых, можно воспользоваться поставляемой в составе Flash 8 и очень простой в использовании утилитой Macromedia Flash 8 Video Encoder. Во-вторых, имеется возможность экспортировать в этот формат любой видеоклип, уже импортированный в документ Flash.
Чтобы сохранить импортированный клип в формате Macromedia Flash Video, нужно сначала выбрать в списке панели Library соответствующий ему образец-импортированный клип. Далее следует выбрать пункт Properties контекстного или дополнительного меню и в диалоговом окне Video Properties (см. рис. 16.8) нажать кнопку Export. На экране появится стандартное диалоговое окно сохранения файла Windows. Вводим в этом окне имя результирующего файла Flash Video и нажимаем кнопку сохранения. Через некоторое время файл Flash Video будет создан.
Впоследствии мы можем импортировать файл Flash Video в другой документ Flash. Импортируется он так же, как файлы других форматов. Единственное исключение: диалоговое окно Wizard при этом не появляется, так как файл Flash Video не нужно перекодировать при импорте.
Есть еще один способ импортировать клип Flash Video в библиотеку (но не на рабочий лист). Откроем панель Library и выберем пункт New Video в ее дополнительном меню. В списке появится новый, пока пустой образец-импортированный клип с именем вида Embedded Video <Порядковый номер>. Выделим его и выберем в контекстном или дополнительном меню пункт Properties, чтобы вызвать на экран диалоговое окно Video Properties. В поле ввода, расположенном в верхней части окна, введем имя создаваемого образца. После этого нажмем кнопку Import. На экране появится стандартное диалоговое окно открытия файла Windows. Найдем нужный файл Flash Video и нажмем кнопку открытия.
Что дальше?
Итак — все нужное для работы видео импортировано и тихо лежит в библиотеке, дожидаясь своего часа. А чем нам заняться теперь?
Звуком. Аудиоклипами. Пора научиться импортировать в свои Flash-документы звук. В самом деле, что это за фильм без звукового сопровождения!..
Глава 17
Работа со звуком
Как и кинематограф, Интернет прежде был "великим немым". Все Web-странички, присутствовавшие в нем, молчали, как рыбы. Да, они содержали много текстов и рисунков, несущих зачастую очень полезную информацию, но… Тишина, мертвая тишина, не нарушаемая ни одним звуком, ни одним словом, ни одной нотой, царила в великой Всемирной сети, пока в нее не вторглось, ломая все устоявшиеся стандарты и привычные представления, то, что мы называем мультимедиа.
И началась мультимедийная революция. Компьютеры обзавелись звуковыми картами, а пользователи — программами проигрывателей и огромными коллекциями музыки и фильмов, буквально пожравшими их жесткие диски. В программы, предназначенные для создания интернет-документов, в спешном порядке добавлялись средства поддержки мультимедийных данных. А звукозаписывающие компании подняли шум по поводу вопиющего нарушения авторских прав. (Впрочем, это уже совсем другая история…)
Разумеется, Flash 8 также поддерживает импорт и использование звуковых клипов. Так что мы сможем добавить к нашим кинематографическим шедеврам и звуковое сопровождение. Кому сейчас нужно немое кино!..
Внимание!
Автор в третий раз призывает вас не забывать об авторских правах.
Нужно сразу же сказать одну очень важную вещь. Дело в том, что Flash, хоть он и способен импортировать звуковые клипы, не имеет совершенно никаких инструментов для их создания. Поэтому для подготовки звука нам придется использовать сторонние программы. Их сейчас довольно много, как платных, так и бесплатных, так что проблем с выбором подходящей программы у нас не возникнет.
Что ж, мы готовы к погружению в океан цифрового звука. Так погрузимся же!
Введение в цифровой звук
Начнем, как всегда, с теории. А именно: выясним, как звуковые данные кодируются и сохраняются в файлах и какие форматы записи звука чаще всего используются.
Три способа кодирования звука
Звук может быть закодирован в цифровой формат с использованием трех принципиально различных методов. (Они различаются так же, как покадровая и трансформационная анимация.) Давайте все о них разузнаем.
Прямая оцифровка
Первый метод, применяемый при кодировании звука, — самый простой и очевидный. Источник звука подключается к линейному входу звуковой карты компьютера, после чего звук переписывается на компьютер и сохраняется в файле. Этот метод называется прямой оцифровкой звука.
Для кодирования звука методом прямой оцифровки используется способ, называемый PCM (Pulse Coded Modulation — импульсно-кодовая модуляция). Суть его в том, что звуковая карта с частотой много тысяч раз в секунду замеряет уровень звукового сигнала и записывает получившиеся значения в массив данных. Этот массив данных и представляет собой оцифрованный звук.
Преимущество у способа РСМ одно — звук копируется очень точно, со всеми нюансами. Именно поэтому прямая оцифровка — самый популярный путь к тому, чтобы дать звуку новую, цифровую, жизнь. Все цифровые звуковые данные — компакт-диски, файлы MP3 — записаны именно таким образом.
Недостаток у прямой оцифровки, пожалуй, тоже один — очень большой объем результирующего массива данных. (В самом деле, сколько значений получится, если замерять уровень сигнала, скажем, 44 100 раз в секунду!) Поэтому, чтобы уменьшить его, практически всегда применяется сжатие звука — как правило, с потерями. Для этого используются специальные алгоритмы (и кодеки), "заточенные" под звук.
Алгоритмов сжатия звука в мире существует, по крайней мере, не меньше, чем кодеков, предназначенных для сжатия видео. Давайте рассмотрим самые распространенные из них.
□ ADPCM. Был разработан фирмой Microsoft для сжатия звуковых файлов WAV еще в начале 90-х годов прошлого века. Обеспечивает не очень сильное сжатие, зато без потерь. Сейчас применяется только для сжатия очень коротких звуковых клипов, в основном — системных "сигналов" операционной системы Windows.
□ MPEG I level 3 (MP3). Был разработан университетом Фраунгофера в Германии в середине 90-х годов для сжатия звуковых файлов. Является версией известного алгоритма сжатия видео MPEG I (см. главу 1), специально предназначенной для сжатия звука. В настоящее время — самый популярный формат сжатия звука.
□ RealMedia. Был разработан фирмой RealNetwork в середине 90-х годов для распространения видео и музыки через Интернет. Собственно, мы уже рассматривали его в главе 1. В настоящее время — один из популярнейших алгоритмов сжатия звука.
□ OGG Vorbis. Был разработан сообществом независимых программистов в конце 90-х годов как замена MPEG I level 3. В настоящее время потихоньку завоевывает популярность. Программное обеспечение для сжатия звука поставляется бесплатно с открытыми исходными текстами.
□ WMA (Windows Media — Audio). Еще один конкурент MPEG I level 3. Был разработан фирмой Microsoft в конце 90-х годов. В настоящее время постепенно завоевывает популярность.
Многие из перечисленных выше форматов поддерживаются Flash.
Командное кодирование
Второй метод кодирования звука основан на том принципе организации данных, при котором в файлах хранятся не оцифрованные значения уровня звукового сигнала, а особые команды, указывающие, какой звук и какой продолжительности нужно сгенерировать. При воспроизведении эти команды читаются и выполняются либо специальной программой-проигрывателем, либо соответствующим образом оснащенной звуковой картой компьютера. Это так называемое командное кодирование звука.
Для записи файлов, содержащих закодированный таким образом звук, используются специальные программы. Практически всегда методом командного кодирования записывается музыка; команды содержат номер инструмента, высоту и продолжительность ноты. Записать, скажем, речь, шум, старую фонограмму или "живое" исполнение по способу командного кодирования невозможно — для этого нужно использовать прямую оцифровку.
Достоинство командного кодирования — компактность получающихся файлов. В самом деле, чтобы записать пару байтов, составляющих команду, много места не нужно. Поэтому такие файлы очень часто используются для распространения музыки через Интернет.
Недостатков у командного кодирования два. Первый нам уже знаком — не всякий звук можно записать этим способом. Второй недостаток — очень часто разные программы воспроизводят закодированный таким способом звук по-разному.
Командное кодирование используется, в основном, для записи и тиражирования музыки и имеет достаточно узкое распространение. А форматов записи закодированного командами звука всего два, и вот каких.
□ MIDI. Расшифровывается как Music Instruments Digital Interface — цифровой интерфейс музыкальных инструментов. Был разработан фирмой Yamaha еще в начале 80-х годов. Используется, в основном, для распространения музыки через Интернет и для создания фонового музыкального сопровождения Web-сайтов.
□ KAR. Используется для распространения записей караоке. Файлы этого формата практически такие же, как файлы MIDI, но, кроме команд воспроизведения звука, содержат тексты песен. Этот формат довольно популярен, по крайней мере, в русском сегменте Интернета.
Ни один из этих форматов не поддерживается Flash.
Командно-сэмплерное кодирование
Третий метод — своего рода комбинация первого и второго. Он называется командно-сэмплерным кодированием звука.
Заключается он в том, что в звуковом файле, как при командном кодировании, сохраняются команды для воспроизведения звука, содержащие номер инструмента, высоту и продолжительность ноты. Но, кроме того, файл хранит также небольшие фрагменты звучания того или иного инструмента, записанные способом прямой оцифровки. Такие фрагменты называются сэмплами. Фактически номер инструмента, содержащийся в каждой команде воспроизведения звука, указывает именно на сэмпл.
Проигрыватель, воспроизводя файл, читает команду и извлекает из нее номер сэмпла. Далее он считывает из файла нужный сэмпл и использует его для воспроизведения звука.
На заметку
В случае командного кодирования для воспроизведения инструментов в настоящее время также используются сэмплы. Однако эти сэмплы принадлежат не самому звуковому файлу, а программе-проигрывателю. Существует много разных проигрывателей, использующих свои специфические сэмплы, поэтому звук, воспроизводимый ими, зачастую различается.
Достоинств у командно-сэмплерного кодирования два. Первое — файлы имеют размер меньший, чем файлы, содержащие оцифрованный напрямую звук (но больший, чем звуковой файл, полученный командным кодированием). Второе — звук воспроизводится одинаково разными программами.
Как ни странно, но командно-сэмплерное кодирование звука не снискало большой популярности. Сейчас его используют только особые "малобюджетные" программы создания музыки, называемые трекерами. Файлы, создаваемые с помощью трекеров, называются трекерными модулями. Трекеры были особенно популярны в 80-х и начале 90-х годов прошлого века; сейчас же они доживают свои дни.
Программ, поддерживающих трекерные модули (кроме, собственно, самих трекеров), очень немного. Flash к ним не относится.
Параметры цифрового звука
Настала пора поговорить о параметрах цифрового звука. Если цифровое видео характеризуется тремя параметрами, то в случае цифрового звука их насчитывается четыре.
Внимание!
Дальнейший разговор затрагивает только звук, кодированный способом прямой оцифровки. Способы командного и командно-сэмплерного кодирования мы рассматривать не будем — в случае Flash они не актуальны. (Хотя для сэмплов они все же имеют значение, так как сэмплы — суть звуки, оцифрованные напрямую.)
Главный параметр цифрового звука нам уже знаком — это ширина потока данных. Она показывает, сколько места будет отведено для хранения массива звуковых данных, и значит, определяет качество аудиоклипа и размер файла, где он хранится.
Поскольку звуковые данные занимают значительно меньше места, чем данные видео, то значения ширины потока данных для звука меньше, чем для фильмов. Так, для распространения аудиоклипов через Интернет используются значения 96—128 Кбит/с. Если нужно получить клипы небольших размеров, пожертвовав его качеством, используются значения 24–64 Кбит/с. Если же важно именно качество, а размер не имеет особого значения, звук сжимают с шириной потока данных 256–320 Кбит/с, а то и большей, если такие значения поддерживаются кодеком.
Второй по значимости параметр — частота оцифровки звука, измеряемая в герцах. Она определяет, сколько раз в секунду звуковая карта измеряет уровень сигнала, и, соответственно, также задает качество цифрового звука.
Для оцифровки высококачественного звука используются значения 44,1 или 48 кГц — это так называемое "CD-качество" (качество компакт-диска). Если нужно получить файл меньшего размера, звук оцифровывают с частотой 22,05 или 24 кГц, а иногда — даже с меньшей. В студиях звукозаписи при необходимости получить максимальное качество применяют оцифровку с частотой 96 КГц ("профессиональное качество").
Третий параметр — разрядность — определяет, какое количество битов отводится под хранение каждого значения уровня сигнала. В настоящее время практически всегда под это отводится 16 бит (два байта); иногда, но очень редко также используется значение 8 бит (один байт). В студиях звукозаписи звук оцифровывают с разрядностью 24 бита (три байта).
Четвертый и последний параметр — количество каналов. Оно определяет количество отдельных массивов звуковых данных — каналов звука, хранящихся в одном файле. Так, стереофонический звуковой файл, скопированный нами с CD, содержит два таких канала. Разумеется, чем больше каналов звука хранится в файле, тем он больше, и наоборот.
Чаще всего для распространения через Интернет в программировании и Web-дизайне используется одноканальный (монофонический) или двухканальный (стереофонический) цифровой звук. На DVD записывается шестиканальный звук (так называемый "стандарт 5.1"), а самые современные звуковые карты поддерживают воспроизведение даже восьмиканального звука ("стандарт 7.1"). Но это не наш случай, так как Flash поддерживает только одно- и двухканальный звук.
Полезные советы по подготовке звука для импорта
Советы по подготовке цифрового звука практически совпадают с рекомендациями, данными в главе 16 для цифрового видео.
□ Удаляйте шумы из фонограммы.
□ Выставьте приемлемое значение громкости.
□ Обрежьте ненужные "хвосты". Оставьте только то, что действительно нужно.
□ Задайте подходящие значения параметров окончательной фонограммы. Подберите их, исходя из того, что было сказано выше.
□ Соблюдайте меру!
Программ для работы со звуком существует сейчас предостаточно — наверное, не меньше, чем программ для работы с видео. Среди них встречаются и коммерческие "монстры", и небольшие бесплатные утилиты, зачастую ничем не уступающие первым. Все эти программы вы можете найти в Интернете, в любом файловом архиве; там же вы можете отыскать документацию к ним. И посетите сайт — там помещено много сборников часто задаваемых вопросов (FAQ, Frequently Asked Questions — часто задаваемые вопросы) по цифровому звуку.
Какие форматы звука поддерживает Flash
А теперь выясним, какие форматы звука поддерживает Flash. Все они перечислены в табл. 17.1.
Все эти форматы предназначены для записи звука, полученного методом прямой оцифровки. Давайте немного поговорим о некоторых из них.
Формат WAV
Формат WAV (от английского wave — волна) был создан фирмой Microsoft еще в начале 90-х годов прошлого века в качестве стандартного формата хранения звуковых данных в операционной системе Windows. Сейчас используется также для записи звука, предназначенного для последующей обработки, для хранения сэмплов, помещения звуковых данных в различные программы, на Web-сайты и т. п. Для распространения музыки применяется очень редко. Поддерживается абсолютно всеми программами записи и обработки звука.
Файл формата WAV имеет "говорящее" расширение wav. Звуковые данные могут быть сжаты с использованием практически любого кодека; иногда, если аудиоклип невелик по размерам, их вообще не сжимают.
Судя по всему, формат WAV будет применяться и в дальнейшем. Пока что никаких причин от него отказаться нет.
Формат MP3
Формат MP3 был создан для распространения музыкальных файлов, сжатых кодеком MPEG 1 level 3. В настоящее время — самый популярный формат распространения музыки через Интернет, и не только. Поддерживается абсолютно всеми программами записи и обработки звука, за исключением некоторых узкоспециализированных.
Файл этого формата имеет "говорящее" расширение mp3. Звуковые данные всегда сжимаются с помощью кодека MPEG 1 level 3; использование других кодеков не допускается. Файл MP3 также может хранить дополнительные данные, называемые тегами MP3. В частности, с помощью тегов сохраняются имя исполнителя, название композиции, название альбома, год записи альбома, стиль музыки и пр.
Этому формату, похоже, уготована долгая жизнь. Несмотря на то, что многие фирмы — распространители музыкальной продукции настроены против него, MP3 полностью завоевал Интернет и сдавать завоеванные позиции не собирается. Больше того, этот формат не собирается уступать и потенциальным конкурентам (OGG Vorbis, MS WMA и др.), хотя последние, пожалуй, ему не уступят.
Импорт звука
Ну что ж, теория закончилась. Теперь можно уделить время практике — импортировать что-нибудь. И посмотреть, что из этого получится.
Для того чтобы импортировать в документ Flash звуковой файл, достаточно выбрать в подменю Import меню File один из хорошо знакомых нам пунктов Import to Stage или Import to Library. Вместо выбора первого пункта также можно нажать комбинацию клавиш
После довольно продолжительного времени файл будет импортирован. Разумеется, он будет помещен в библиотеку в виде образца-звука, имя которого будет совпадать с именем изначального файла. Но на рабочем листе ничего нового не появится — нам придется добавить звук к своей анимации самостоятельно.
Использование импортированного звука
Импортированный звук можно "оприходовать" точно так же, как и любой другой образец, созданный во Flash или импортированный из внешнего файла. Достаточно поместить экземпляр нужного образца-звука в отдельный слой, создать дорожку кадров нужной длины, задать кое-какие дополнительные параметры — и все!
Давайте поместим в готовую анимацию только что импортированный звук.
Создадим новый слой и ничего рисовать на нем не будем. Поместим в этот слой экземпляр образца-звука и растянем единственный ключевой кадр слоя до нужной длины. Дорожка кадров станет такой, как показано на рис. 17.1. Назовем ее дорожкой звука.
На рис. 17.1 хорошо видно, что дорожка звука отличается от обычной дорожки, создающей анимацию, тем, что прямо в растянутом кадре, составляющем эту дорожку, отображается небольшой график звука. Чтобы рассмотреть его получше, мы можем увеличить размер прямоугольников, которыми обозначаются отдельные кадры (как это сделать, было описано в главе 11).
Кстати, помещение звука в отдельный слой и создание для него отдельной дорожки кадров — обычная практика во Flash-анимации. Так нам самим будет проще работать со звуками, импортированными в фильм.
Теперь можно запустить воспроизведение готовой анимации. Импортированный нами звук будет проигран (если, конечно, на нашем компьютере установлена звуковая карта).
Чтобы временно приглушить звук, мы можем включить пункт-выключатель Mute Sounds меню Control. Сами звуки при этом никуда не денутся и при отключении этого пункта снова начнут воспроизводиться.
Теперь давайте выделим единственный кадр дорожки звука и посмотрим на панель Properties. В правой ее части появится набор элементов управления, с помощью которых мы сможем задать дополнительные параметры звука (рис. 17.2). Рассмотрим их.
В раскрывающемся списке Sound образец-звук, который должен воспроизводиться в данной дорожке. Выбор звука в этом списке — альтернатива созданию экземпляра звукового образца перетаскиванием из панели Library, удобная в случае, если эта панель скрыта. Чтобы отменить воспроизведение звука в последовательности кадров, достаточно выбрать в этом списке пункт None.
С помощью раскрывающегося списка Effect можно задать эффект, который будет применен Flash к воспроизводимому звуку (звуковой эффект). Этот список доступен только тогда, когда в списке Sound выбран какой-либо образец-звук, и содержит восемь пунктов, о которых мы сейчас поговорим.
Если выбран пункт None, никаких звуковых эффектов применено не будет, и звук воспроизведется "как есть".
При выборе пунктов Left channel или Right channel звук будет воспроизведен соответственно только в левом или только в правом канале. Это значит, что звучать он будет только в левой или правой колонке компьютера.
Если выбран пункт Fade left to right, то звук при воспроизведении будет плавно "перетекать" из левого канала в правый. Пункт Fade right to left вызывает обратное "перетекание" — из правого канала в левый. Это может быть забавным, если фрагмент изображения перемещается по рабочему листу слева направо или справа налево — звук будет "перемещаться" за ним следом.
Если выбран пункт Fade in, громкость звука будет плавно увеличиваться во время воспроизведения. Это может быть полезно, например, в заставке фильма. Пункт Fade out выполняет обратное действие — плавное уменьшение громкости звука, что может пригодиться при завершении фильма.
Выбор последнего пункта — Custom — позволит нам самим задать, как будет изменяться громкость и местоположение источника звука в пространстве (панорамирование) во время его воспроизведения. Как это сделать, мы выясним чуть позже.
С помощью раскрывающегося списка Sync задается метод синхронизации звука и изображения, т. е. когда звук начнет и закончит воспроизводиться. В этом списке содержатся четыре пункта, которые перечислены ниже.
Если выбран пункт Event, звук начнет воспроизводиться, как только Flash выведет на экран содержимое первого кадра дорожки, содержащей этот звук. Звук будет воспроизведен до конца, вне зависимости от того, кончилась ли содержащая его дорожка кадров или нет. Такие звуки в терминологии Flash называются сигналами (event).
Часто бывает так, что в одно и то же время воспроизводятся несколько сигналов. В этом случае Flash выполнит их смешивание, или, как говорят, профессиональные звукорежиссеры, микширование. Сигналы будут воспроизведены одновременно и, опять же, до конца.
Внимание!
Воспроизведение сигнала начнется только тогда, когда будет полностью загружен массив его данных. Поэтому, если вы собираетесь выкладывать свои фильмы в Интернет, не делайте сигналы слишком длинными, иначе пользователю, решившему просмотреть ваш фильм, придется очень долго ждать.
Если выбран пункт Start, то звук будет воспроизведен так же, как и при выбранном пункте Event, за одним исключением: если другой такой же звук уже воспроизводится в другой дорожке кадров, то первый воспроизводиться не будет. Фактически это такой же сигнал, но воспроизводимый в данный момент времени только один раз.
Выбор пункта Stop останавливает в данном кадре воспроизведение любого звука. Его можно использовать, чтобы заставить какой-нибудь сигнал "замолчать". Для этого достаточно создать новый пустой ключевой кадр сразу же за последовательностью, где воспроизводится этот сигнал, выделить его, выбрать в списке Sound нужный звук, а списке Sync — пункт Stop.
Сигналы очень часто используются для звукового оформления каких-либо событий. Таким событием может быть переход к какому-то кадру анимации, нажатие кнопки (о кнопках см. главу 18) и пр.
Если выбран пункт Stream, звук будет воспроизводиться синхронно с анимацией. Когда анимация закончится (все дорожки кадров будут воспроизведены до конца), закончится воспроизведение и этого звука. В терминологии Flash такой звук называется потоковым (stream).
Воспроизведение потокового звука начинается сразу же, как только проигрыватель Flash загрузит достаточное для этого количество звуковых данных. Остальная их часть будет загружена уже в процессе воспроизведения. Таким образом, зрителю не придется ждать, когда массив данных потокового звука будет полностью загружен, в отличие от сигнала, который перед началом воспроизведения обязательно должен загрузиться полностью.
Укажем еще на одно отличие потоковых звуков от сигналов. Оно заключается в том, что потоковые звуки микшируются при экспорте готового фильма в формат Shockwave/Flash. Flash "знает", когда именно будет воспроизведен тот или иной потоковый звук, поэтому сможет смикшировать потоковые звуки уже при экспорте, объединив их в новый массив звуковых данных. Проигрывателю Flash останется только воспроизвести готовый, смикшированный звук.
В отличие от потоковых звуков, сигналы могут быть воспроизведены в любой момент времени. В самом деле, кто знает, когда посетитель нажмет кнопку, к которой привязан сигнал, и нажмет ли вообще. Поэтому сигналы включаются в результирующий файл Shockwave/Flash в виде отдельных массивов данных и микшируются самим проигрывателем Flash при просмотре готового фильма.
В виде потоковых звуков в фильмы Flash включают фоновую музыку, голоса персонажей и пр. Обычно размеры таких звуков довольно велики, поэтому не стоит оформлять их в виде сигналов — фильм будет загружаться слишком долго, и посетитель потеряет терпение, ожидая, когда начнется "кино".
С помощью раскрывающегося списка, расположенного правее списка Sync, можно задать, какое число раз будет воспроизведен данный звук. Пункт Loop этого списка заставляет звук воспроизводиться снова и снова, пока не кончится дорожка звука (зацикливает звук). При выборе же пункта Repeat правее этого списка появится поле ввода, в которое мы сможем ввести нужное количество повторений этого звука.
Очень хорошая идея — для создания длинного звука взять короткий фрагмент и заставить его воспроизводиться нужное число раз. Таким образом можно сильно уменьшить размер результирующего файла Shockwave/Flash.
И последнее. Не стоит зацикливать потоковые звуки. Иначе Flash автоматически добавит к дорожке столько кадров, сколько длится каждое повторение этого звука. Результат — сильное увеличение размеров файла Shockwave/Flash, что вряд ли пойдет на пользу фильму.
Параметры звука
Flash содержит средства для задания характера изменения громкости и панорамирования звука в процессе его воспроизведения. Мы, собственно, уже познакомились с простейшими из них — это раскрывающийся список Effect панели Properties (см. рис. 17.2). Настала пора рассмотреть более сложные и мощные средства.
Давайте выберем в списке Effect пункт Custom или нажмем кнопку Edit, расположенную правее этого списка Effect. На экране появится диалоговое окно Edit Envelope (рис. 17.3).
Правка звука выполняется с помощью двух больших графиков, расположенных соответственно в верхней и нижней частях этого диалогового окна. Верхний график позволяет задать характер изменения громкости в левом канале звука, а нижний — в правом канале. Кроме того, в левом и правом нижнем углах этого диалогового окна находятся наборы небольших кнопок, которые весьма помогут нам в работе.
Между этими графиками находится временная шкала, проградуированная в секундах. Можно, однако, изменить градуировку с секунд на кадры, включив четвертую слева (последнюю) кнопку-переключатель в группе, расположенной в нижнем правом углу окна (см. рис. 17.3), эта кнопка помечена изображением кинопленки. Чтобы вернуть градуировку в секундах, достаточно включить третью слева кнопку-переключатель (с изображением часов). Первая и вторая слева кнопки, расположенные в этой же группе, позволяют соответственно увеличить или уменьшить масштаб графика.
Над кнопками, ниже графика панорамирования находится полоса прокрутки. С ее помощью можно одновременно прокручивать оба графика по горизонтали. Серые области на графике слева и справа обозначают соответственно начало и конец звучания.
В верхнем левом углу диалогового окна Edit Envelope находится раскрывающийся список Effect. Он дублирует своего "коллегу" из панели Properties.
Задание характера изменения громкости на каком-либо графике выполняется с помощью огибающей. Это тонкая черная линия, хорошо заметная на каждом графике. С ее помощью задаются "взлеты" или "падения" громкости в соответствующем канале нашего звука.
Чтобы переместить какую-либо точку огибающей на графике, нужно щелкнуть на ней мышью. В месте щелчка появится довольно крупный белый квадрат — маркер огибающей. Достаточно просто перетащить его на нужное место графика, и огибающая тотчас изменит свою форму.
С помощью огибающей мы можем заставить звук воспроизводиться с постоянно повышающейся или понижающейся громкостью. Также мы можем задавать изменение позиционирования звука — для этого достаточно заставить громкость звука понижаться в одном канале и повышаться — в другом. В общем, здесь все достаточно просто и наглядно.
Теперь еще раз посмотрим на временную шкалу. В крайних левой и правой ее точках хорошо заметны небольшие серые маркеры начала и конца звука. С помощью этих маркеров мы можем задать точки, где будет соответственно начато и закончено его воспроизведение. И эти точки совсем не обязаны совпадать с изначальными началом и концом импортированного звукового файла.
Пользуясь маркерами начала и конца звука, мы можем воспроизвести наш звук не с начала, а, скажем, с середины, и не до конца, а с обрывом, не производя в нем никаких изменений и не пользуясь внешними программами. В частности, с помощью этих маркеров мы сможем убрать ненужную тишину в начале и конце звучания.
В нижнем левом углу диалогового окна Edit Envelope находятся две кнопки, позволяющие воспроизвести полученный в результате правки звук. Правая кнопка (с направленной вправо треугольной стрелкой) запускает воспроизведение звука, а левая (с черным квадратом) — останавливает его.
Конечно же, после окончания работы нужно нажать кнопку ОК. Если же мы не собираемся сохранять заданные нами параметры, нажмем кнопку Cancel.
Работа с образцами-звуками
Мы можем переименовывать и удалять образцы-звуки так же, как и любые другие образцы. Также мы можем преобразовать любой образец-звук в разделяемый для совместного использования. Как это делается, описывалось в главе 8.
Также мы можем задать параметры любого образца-звука в диалоговом окне Sound Properties (рис. 17.4). Для этого достаточно выделить нужный образец-звук в списке панели Library и выбрать пункт Properties в контекстном или дополнительном меню этой панели.
Мы можем изменить имя образца-звука, введя его в поле ввода, расположенное в верхней части данного диалогового окна. (Изначально, как мы помним, оно совпадает с именем импортированного звукового файла.)
С помощью кнопки Import можно импортировать на место существующего звука другой. При нажатии этой кнопки на экране появится стандартное диалоговое окно открытия файла Windows. Выберем в нем нужный файл и нажмем кнопку открытия.
Нажав кнопку Test, мы можем прослушать импортированный звук. Заметим, что он будет воспроизведен в своем изначальном виде. Чтобы остановить воспроизведение, нужно нажать кнопку Stop.
В средней части диалогового окна Sound Properties, ниже поля ввода имени образца, приведены полное имя файла, из которого был импортирован этот звук, дата создания этого файла и параметры импортированного звука: частота дискретизации, количество каналов (моно или стерео), разрядность, продолжительность в секундах и размер его данных.
Чтобы обновить импортированный звук после его правки во внешней программе, нужно выделить в списке панели Library нужный образец-звук и в контекстном или дополнительном меню этой панели выбрать пункт Update. На экране появится диалоговое окно Update Library Items (см. рис. 8.20). Установим флажок против соответствующего файла в списке образцов этого окна и нажмем кнопку Update. После обновления образцов закроем окно Update Library Items, нажав кнопку Close.
Кстати, то же самое можно выполнить, нажав кнопку Update диалогового окна Sound Properties (см. рис. 17.4). В этом случае окно Update Library Items на экране не появится, и Flash выполнит обновление образца-звука немедленно.
Что дальше?
На этом рассказ об импорте и использовании звука в фильмах закончен. Собственно, на этом можно заканчивать и с анимацией. Третья часть книги о Flash 8 подошла к концу.
Четвертая же ее часть будет полностью посвящена программированию. Мы узнаем о том, что такое сценарии, поговорим о привязке их к кадрам фильма, клипам и кнопкам, а также пройдем краткий курс языка программирования ActionScript. И конечно, мы будем сами писать сценарии, управляющие различными элементами нашего фильма.
Конечно, углубляться в мир Flash-программирования мы не будем — эта книга посвящена исключительно графике и анимации Flash. Но знать самые начала программирования нам не помешает.