Вы не авторизованы.

Apophysis. Анимация с помощью скрипта Animation render

Давайте рассмотрим такую замечательную вещь, как анимация в программе Apophysis.

Наверняка, если вы уже научились создавать красивые фрактальные картинки в Апофизисе, то скорее всего вы задумывались и об анимации. Анимация в Апофизисе может быть очень красивой, примеров с такой анимацией полным-полно на You Tube. Однако сразу оговорюсь, что за эту красоту нужно платить личным и компьютерным временем, ибо анимация в программе Апофизис довольно длительный процесс.

Как правило, напрямую анимировать фракталы в Апофизисе не получится, анимация осуществляется посредством так называемых скриптов. По сути, скрипт - это некий программный код, который сообщает программе, что конкретно нужно сделать и в какой последовательности. Скрипты для Апофизиса можно писать самому (если вы конечно знаете как это делать, тем более Апофизис - свободное программное обеспечение с открытым исходным кодом), если же вы этого не умеете, то вам остаётся подгружать в Апофизис заранее скачаные скрипты и менять некоторые их параметры в редакторе скриптов. Для работы со скриптами анимации я рекомендую использовать программу версии 7Х 15В, версия 15С, почему то некорректно работает с некоторыми скриптами, безмерно растягивая диалоговые окна. С версией 15D вы можете поэкспериментировать, т.к. я с ней пока не работал. Все примеры, использованные в данном руководстве, сделаны именно в версии 15В. На сегодняшний момент, существует довольно много скриптов анимации, написанных разными людьми, но описывать все скрипты не имеет смысла, ибо многие их них делают практически одно и тоже!! Итак, приступаем к изучению!!!

Анимация с помощью скрипта Animation render

Это простой способ анимирования фракталов, он даёт просто вращение. Но не спешите разочаровыватся, даже простое вращение может быть очень эффектным и красивым, всё зависит, то того насколько красив фрактал, который вы хотите анимировать. Как правило очень эффектно вращаются спиралевидные и 3D фракталы!! Для этого способа анимации нам понадобится скрипт Animation render 2.0 (иногда он называется чуть по другому: Animate render 2.0). Очень часто он идёт в комплекте со скачанной программой, если же у вас его нет, на нашем сайте вы можете его скачать вместе со всем необходимым в разделе Файлы.  (Набор для анимации в Апофизисе)

Открываем скрипт в Апофизисе: жмём Script - Open:

В появившемся диалоговом окне ищем наш скрипт, там где вы его сохранили и открываем. Как видим ничего не происходит, и не произойдёт, пока мы не нажмём кнопку запуска скрипта, вот она:

Но не будем торопится, если мы сейчас нажмём кнопку запуска скрипта, то начнётся рендер анимации с настройками по умолчанию, а они далеко не лучшие. Чтобы настроить анимацию по своему вкусу, нужно отредактировать некоторые параметры скрипта. Это делается след. образом: после открытия скрипта (а мы его уже открыли) выбираем пункт меню Script - Edit:

Перед нами откроется вот такое окно редактирования скрипта:

Как видите оно представляет собой нечто похожее на какой-то текстовый редактор с пронумерованными строками и кнопочками управления в правой части. Очень часто авторы скриптов вписывают в скрипты своё авторство, а также пишут некоторые советы и указания перед теми параметрами, которые можно менять. Собственно, что вы и можете видеть на скрине. В строках 3,4 указано что данный скрипт разработан Марком Таунсендом (разработчик Апофизиса) в сентябре 2003 года. А вот в строке 8 к примеру уже идет первое указание: выберите размер для отрендеренных кадров (Set the size of the rendered frames.)

Итак, какие параметры в этом скрипте можно изменить, чтобы изменить анимацию так сказать "под себя"? Самое первое, с чем нам предлагается поэкспериментировать, это - ширина и высота кадра!!! Смотрим строки 9 и 10:

Renderer.Width - означает ширину кадра.
Renderer.Height - означает высоту кадра.

Обратите внимание, параметры которые можно изменять, имеют своё название, после чего стоит двоеточие и знак = . После знака равенства могут стоять цифры либо какие-то команды. В нашем случае, в строках 9,10 после знака равенства стоят цифры, означающие ширину и высоту будущих кадров в пикселях. Допустим я хочу, чтобы моё видео анимации имело размер 480х360 пикселей. Для этого строки 9 и 10 меняем след. образом:

9 Renderer.Width := 480; Это будущая ширина кадра.

10 Renderer.Height := 360; Это будущая высота кадра.

Т.е. просто мышкой щелкаем курсор в соответствующей строке, стираем цифры (только цифры!!!) после знака равенства, и вписываем новые. На скрине выше, вы можете заметить, что я уже сделал это, т.к. по умолчанию в скрипте идёт 320х240 пикселей. Какой размер выбрать вам? Всё зависит от ваших целей, для чего вы делаете анимацию. Для дальнейшего видеомонтажа желательно делать анимацию не менее 768 пикселей по горизонтали. Допустим, если хотите сделать анимацию для дальнейшего просмотра на DVD, то выставляйте размер 768х576 пикселей (если вам нужно соотношение сторон 4:3). Для обычных (не широкоэкранных, и уже устаревающих) моделей телевизоров, это соотношение самое оптимальное, т.к. при просмотре не будет черных полос сверху и снизу. Если же анимация готовится для широкоформатных телевизоров (или мониторов), коих сейчас подавляющее большинство, нужно выставлять соотношение ширины и высоты в соотношении 16:9, например 720х406. Подбирать размер кадра для соответствия одной из двух пропорций (4:3 или 16:9) очень легко. Допустим я хочу, чтобы ширина кадра была 576 пикселей. Как мне подобрать высоту, чтобы пропорция была 4:3? Если поделить 4 на 3, то получается величина равная с округлением до сотых 1,33. Это постоянная величина, т.е. для любого видео с пропорциями 4:3, если мы поделим ширину кадра на его высоту, то получим примерно это же число. Если 4:3=1.33, то для моего случая я получаю след. выражение 576:Х=1,33 где Х это и будет высота кадра, которую необходимо найти. Следуя школьному курсу математики (а ведь Х в данном выражении это делитель), чтобы найти делитель мы просто берём 576 и делим на 1,33, получаем примерно 433 пикселя, это и будет нашей нужной высотой кадра. Таким же "макаром", составя такое простейшее выражение, можно найти и необходимую ширину кадра, по его высоте. Всё это абсолютно применимо и для видео с пропорцией 16:9, только в этом случае вместо 1,33 будет 1,78 (16 делим на 9, получим с округлением до сотых 1,78).
Кстати, если хотите сгенерить HD анимацию, пожалуйста, выставляйте нужный размер кадра, проблем нет. Итак с размером кадра определились, переходим к след. параметру.
Следующий параметр самый важный. Это - плотность рендеринга (Flame.SampleDensity). Смотрим строчку под номером 19:

Этот параметр отвечает за качество отрендеренных кадров. Чем он выше, тем чище будет картинка. Если этот параметр делать слишком низким, картинка будет шуметь и иметь зернистость, особенно если в флейме присутствуют плагины blur.
Для достижения наилучшего качества картинки, этот параметр следует выставлять не менее 1000, идеал 2000. Выше ставить не рекомендую, особой разницы в качестве вы не заметите, а время рендера увеличится в разы. На первый раз вместо 10 по умолчанию, поставьте значение от 200 до 500.
Идём далее. След. параметр - количество отрендеренных кадров. Смотрим строку 20:

По умолчанию скрипт рендерит 100 кадров. Можно выставить больше, а можно и меньше. Тут опять всё зависит от ваших целей. При выборе количества кадров, необходимо учитывать следующее: длительность анимации которую вы хотите получить и систему цветности в которой будете монтировать вашу анимацию. Напомню, что в системе цветности PAL скорость кадров составляет 25 кадров в секунду, а в системе NTSC 29,97 кадров в секунду (грубо 30). Рекомендую собирать анимацию на 30 кадрах в секунду, большее количество кадров обеспечивает бОльшую плавность. К примеру я хочу, чтобы моя анимация длилась 15 секунд, и собирать я её буду на 30 кадрах в секунду, следовательно количество кадров необходимое для моей анимации будет равно 450 (15 секунд умножаю на скорость 30 кадров\сек). 
Для того, чтобы скрипт отрендерил именно такое количество кадров, меняем значения в строке 20 на следующие:

for j := 0 to 449 do // 450 frames

Обратите внимание, что отсчёт ведётся не с первого, а нулевого кадра. Или например, вы хотите, чтобы скрипт отрендерил 800 кадров, то строку меняем след. образом:

for j := 0 to 799 do // 800 frames Я думаю принцип понятен.

След. параметр находится в строке под номером 22:

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

Как я уже упоминал, фрактальную анимацию можно использовать в видеомонтаже. Если же вы допустим хотите использовать анимацию в качестве анимированного бэкграунда (например в анимированом DVD меню), то она будет намного эффектней и профессиональней смотрется, если будет бесшовной. Т.е. зритель визуально не будет воспринимать в каком моменте анимация закончилась и началась по новой. Сделать это можно изменив след. параметр:

В скобочках нужно ввести некое число, чтобы анимация получилась бесшовной. Как его найти? Очень просто: нужно число 360 (скрипт даёт вращение, а полный оборот вокруг оси равен 360 градусам) разделить на количество кадров, которое вы хотите отрендерить. В моём случае, я хочу отрендерить 450 кадров. Поэтому я 360 делю на 450 и получаю 0.8. Именно это число и нужно вписывать в скобочки вместо 3.6 (оно стоит там по умолчанию).

С основными настройками скрипта мы закончили. Осталось прописать папку вывода готовых кадров и формат в котором они будут выводится. Смотрим строчку 33:

Я рекомендую делать так, чтобы путь к папке с кадрами был как можно короче и не содержал кириллицу. Лучше всего создайте папку с английским названием в корне жесткого диска. Например: D:\frames\. Чтобы не "парится" с прописыванием пути, просто зайдите в папку, куда будут выводится кадры, скопируйте её путь в адресной строке и вставте в скрипт. Важно: обязательно чтобы после названия папки стоял слэш иначе скрипт будет рендерить кадры в папку уровнем выше, а не в ту, в которую вы хотите.

Например: Renderer.Filename := 'D:\frames\' + Format('%.2d', [j]) + '.bmp';

Синим цветом выделено, как нужно правильно прописывать путь к папке для выходных кадров. В конце строки (см. скрин) пишем формат выходных кадров. Для достижения наилучшего качества рекомендую использовать несжатые форматы, лучше всего оставить bmp по умолчанию. Вот и всё, осталось лишь запустить наш скрипт, запускаем зелёный треугольничек:

Если всё нормально, то запустится процесс рендера кадров:

Как я уже упоминал, анимация в хорошем качестве будет рендерится довольно долго. Пока рендерятся кадры, коротко о кнопках управления скриптом:

1 Новый скрипт. Если вы умеете писать скрипты, эта кнопка для вас. Нажимайте на неё и пишите свой скрипт.

2 Открыть скрипт. Открывает любой другой скрипт или этот же самый на жестком диске вашего компьютера. Скрипты имеют расширение asc.

3 Сохранить скрипт. Очень полезная кнопка. Допустим вы настроили этот скрипт по своему желанию, выставили разрешение и качество, отрендерили анимацию, и если вы хотите в след. раз рендерить анимацию с такими же настройками, то просто сохраните ваш отредактированный скрипт, чтобы потом лишний раз не вводить все настройки заново. В след. раз просто надо будет открыть ваш сохранённый скрипт и нажав на зелёный треугольничек запустить рендер анимации.

4 Запуск скрипта.

Чуть ниже находятся ещё две неактивные кнопки, они активны только в процессе рендеринга и останавливают процесс рендера кадров.
После окончания процесса рендера, в выбранной вами папке будут находится отрендеренные программой кадры. Их нужно склеить в видео.

Можно использовать для этого любую подходящую программу, умеющую преобразовывать последовательность кадров в видео. Я по старинке использую VideoMach версии 5.8.4. Ссылки на скачивание смотрите в начале статьи.

Открываем программу, выбираем Файл - Открыть файлы мультимедиа, либо жмём на эту кнопочку:

В открывшемся диалоговом окне, открываем нашу папку с отрендеренными кадрами и открываем самую первую картинку:

Программа выдаст такое окошко, спрашивая что нужно сделать: открыть последовательность изображений, или открыть единичный файл. Нам нужно первое:

Жмём Ок. Всё, программа открыла последовательность изображений и её можно сохранить в видеофайл. Хотя вы можете поэкспериментровать, т.к. эта программа является простейшим видеоредактором, и в ней можно произвести небольшой монтаж, наложить разные фильтры и т.д. Хотя я рекомендовал бы пользоваться более профессиональными редакторами.

Настало время экспортировать нашу анимацию в отдельный видеофайл. Жмём Файл - Сохранить как или на эту кнопку:

После этого открывается вот такое окно сохранения файла:

1 - Здесь имеются три вкладки: основные настройки находятся на вкладке Файлы, на вкладках Видео и Аудио, находятся соответствующие дополнительные настройки.

2 - Режим вывода. Как нужно вывести файл: только видео, только аудио, видео и аудио и т.д. Сейчас нам нужно только склеить кадры в видеофайл, никакой аудиодорожки мы не накладываем, поэтому можем смело выбрать Video only.

3 - Программа предлагает разрезать выходной файл на части, если его размер будет более 2 гигабайт. Это имеет смысл только в том случае, если затем наше видео будет экспортироватся на сменные носители с файловой системой Fat, Fat32, а также на DVD болванки в режиме записи DVD-ISO (в ней не поддерживаются файлы более 2 Гб). Если вы будете "резать" болванку с файловой системой UDF, тогда проблем нет, эта файловая система нормально относится к таким большим файлам. Мы же хотим сохранить видео на жёсткий диск компьютера, где файловая система NTFS поэтому в этом пункте можем смело выставить No splitting. Хотя если вы выберете формат видео AVI (см. скрин) программа так или иначе все равно выставит настройку на разрезку файлов более 2 ГБ.

4 - Здесь выбираем папку сохранения готового видео и задаём ему название.

5 - Запуск вывода видео

Формат видео - об этом пункте скажу отдельно. Из видеоформатов предлагаемых программой для сохранения наиболее подходят три: Avi, WMV и MOV. Какой выбрать - дело ваше. Я обычно готовлю анимацию для последующего монтажа и выбираю AVI. Но не просто AVi. По опыту я знаю, что чем меньше сжатий и пересжатий испытывает видеофайл в монтаже, тем выше качество готового видеоролика, поэтому я стараюсь сохранить исходное качество. Для этого я перехожу на вкладку Video и нажимаю на кнопку Настройки кодека

Открывается окно настройки кодека:

В списке Select codec будет отображены все кодеки установленные в вашей системе. И вот тут я выбираю пункт Full frames, uncompressed. Т.е. по сути программа создаст видео из кадров абсолютно без никакого пережатия, а следовательно и без потерь в качестве. Единственный минус, несжатое AVI видео занимает большой объём, поэтому для длительного хранения этот формат не очень подходит. Я предпочитаю сделаные таким образом "авишки" потом перекодировать в формат mov, с помощью программы Xvid4PSP с максимальными настройками качества, сделанные таким образом футажи занимают мало места, а потери качества при этом незначительные. Также в настройках видеоформата вы можете выбрать формат WMV, при этом в пункте разделить выходной файл, программа всё-таки "разрешит" выставить No splitting. Далее опять переходим на вкладку Video, жмём настройки кодека и в открывшемся окне выставляем след. настройки:

Обратите внимание: битрейт я выставляю максимальный, чем выше битрейт, тем выше качество. Далее жмём Ок. С настройками кодеков разобрались, теперь смело жмём запуск и через несколько секунд наша фрактальная анимация готова. Ниже я привожу примеры анимации созданные с помощью данного скрипта. Вариантов два, как и обещал, я немного поэкспериментировал с настройками в строке 22.

Первая анимация отрендерилась с настройками по умолчанию: for i := 0 to Transforms - 1 do

Во второй анимации, я изменил настройки на такие: for i := 1 to Transforms - 1 do

Как видите немного изменился характер вращения. Немного о скорости рендера: 450 кадров анимации (480х360 пикселей, плотность рендеринга 1000) рендерились на моей машине (Intel Core i5 2500) c 16:56 до 19:46, т.е. 2 часа 50 минут. Скорость рендера у вас зависит от вашей машины, а конкретно от процессора. Не имеет смысла наращивать сильно большие объёмы ОЗУ, скорость рендера практически не увеличится, а вот чем мощнее процессор, тем выше скорость рендера.

P.S. Перед тем как анимировать фрактал, лучше убедится и посмотреть насколько он красиво вращается. Как это  сделать? Я не знаю в какой версии программы работаете, я работаю в версии 15В. В моей версии по умолчанию уже встроен скрипт, который если его запустить, показывает в небольшом просмотровом окошечке вращение фрактала. Благодаря этому я могу посмотреть насколько эффектно вращается фрактал и решить для себя, анимировать его или нет.

Если у вас такой скрипт не встроен по умолчанию в программу, то вы можете сделать следующее: щелкаем Script - Edit script и в уже знакомом окне редактирования скрипта вводим следующий код:

{ Rotate the reference triangle continuously }
{ Hit any key to stop }
Flame.SampleDensity := 1;
while not Stopped do
begin
RotateReference(3.6);
Preview;
end;

 

Запустите скрипт. Если всё нормально, то у вас откроется небольшое окошечко где будет видно, как вращается фрактал. Если вам нравится смело приступайте к анимации. на этом руководство к этому способу анимации закончено. Всем удачи!!!

Оцените материал
(1 Голосовать)
Прочитано 1557 раз Последнее изменение Четверг, 10 Июль 2014 16:25

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены