Чтение данных проекта After Effects из внешнего файла

Ссылки, описания, дополнительная информация для моих уроков на YouTube
Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Чтение данных проекта After Effects из внешнего файла


Теги:

Сообщение #1 aeplug » 19 апр 2016, 00:28

В этом уроке я предлагаю вместе разобрать один очень интересный проект, которым с нами поделился подписчик Максим Иванов, для автоматического чтение данных из внешнего файла. Для этого используются выражения в After Effects, а точнее несколько простых команд - evаl и evalFile. На их основе достигается полная автоматизация заполнения данными параметров слоев из текстового файла.
Этот метод очень пригодится тем, кто вынужден часто создавать типовые информационные видео, которые отличаются только содержанием текстовых слоев. Например прогнозы погоды, гороскопы, программы передач и другие видео вставки, которые вы можете видеть по телевизору.
В конце концов, в правильно настроенном проекте даже не требуется участие специалиста по After Effects. Всю работу по изменению данных вашего проекта может выполнять любой человек, умеющий набирать текст на клавиатуре компьютера! Все будет происходить автоматом!
https://www.youtube.com/watch?v=utIV-jLism8
Сам проект вы можете скачать для собственных экспериментов по ссылке внизу.
Вложения
Text From File PROJECT.rar
(52.22 КБ) 1295 скачиваний
Text From File PROJECT.rar
(52.22 КБ) 1295 скачиваний


Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Теги:


Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Объяснение как это работает

Сообщение #2 aeplug » 19 апр 2016, 14:44

Функция $.evalFile (файл) загружает файл с диска по указанному пути и выполняет в качестве скрипта JavaScript. Поэтому файл должен быть написан с соблюдением всех требований по синтаксису языка JavaScript. Подробное описание функции можно найти в документации от Adobe "JavaScript Tools Guide CC".
Описание evalfile.jpg
Описание evalfile.jpg (17.55 КБ) 10318 просмотров
Описание evalfile.jpg
Описание evalfile.jpg (17.55 КБ) 10318 просмотров

Проще говоря, можно сказать, что вместо этой команды подставляются строки из файла и выполняются как обычно. Аналого команды include в других языках.
Теперь если мы инициализацию всех важных переменных перенесем в этот файл, то сможем их менять в нем не зависимо от After Effects! Эту занудную обязанность можно даже поручить любому неквалифицированному работнику, не знакомому ни с After Effects, ни с видео производством вообще. Главное, что бы он смог редактировать простые текстовые файлы. Такие файлы обычно имеют расширение txt и содержат только строки текста без форматирования. Использование сложных файлов типа RTF, PDF, DOC и прочих, содержащих в себе много дополнительной информации о шрифтах и форматировании документа недопустимо.
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #3 aeplug » 19 апр 2016, 15:05

Второй интересной особенностью этого проекта является функция eval(). Ее название похоже на предыдущую, но работает она по другому. Вместо чтения файла она берет переданную ей в скобках строку текста и заменяет себя ею для выполнения.
Именно поэтому в проекте вместо

Код: Выделить всё

eval(thisComp.name)[0];

мы получаем ссылку на массив, имя которого зависит от композиции

Код: Выделить всё

_01_ПН_САХА_1[0];

А сам массив подпадет в скрипт из файла через $.evalFile.
За счет этого достигается необычная гибкость данных проекта, когда одни и те же выражения обращаются в итоге к разным участкам данных в зависимости от того, откуда они выполняются.
Описание eval() находится в том же файле документации "JavaScript Tools Guide CC".
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #4 aeplug » 13 май 2016, 00:51

Один из подписчиков прислал проект, который может открыться с относительными путями. Но работает он только, если открыть проект из Проводника (проверял в 2014 и 2015):
относительные пути.jpg
относительные пути.jpg (21.56 КБ) 10287 просмотров
относительные пути.jpg
относительные пути.jpg (21.56 КБ) 10287 просмотров

А если открыть проект из программы как обычно File - Open Project, то не работает:
не работает.jpg
не работает.jpg (10.54 КБ) 10287 просмотров
не работает.jpg
не работает.jpg (10.54 КБ) 10287 просмотров
Вложения
Project.zip
(410.78 КБ) 804 скачивания
Project.zip
(410.78 КБ) 804 скачивания
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


atatat
Наблюдатель
Наблюдатель
Сообщения: 50
Зарегистрирован: 05 июл 2016, 19:14
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение #5 atatat » 06 янв 2017, 21:11

aeplug,
а как можно изменить размер шрифта, например цифра 100 будет с размером который у текстового слоя, а у "км/ч" нужно чтобы был размер меньше. 100 км/ч должны быть в одну строчку, цифра 100 может меняться до 100000.

мой текстовый документ
var композиция1 = [<b>100 км/ч</b>];

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #6 aeplug » 06 янв 2017, 21:52

у меня нет информации о форматировании текста через переменные
так что только разделять на блоки и форматировать в After Effects как есть
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


atatat
Наблюдатель
Наблюдатель
Сообщения: 50
Зарегистрирован: 05 июл 2016, 19:14
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение #7 atatat » 06 янв 2017, 22:41

aeplug, а вот это textDocument.fontSize = 60; ? это из After-Effects-CS6-Scripting-Guide на 182 странице

Отправлено спустя 15 минут 5 секунд:
aeplug, если разделить на блоки то тогда например было число 10 км/ч изменилось на 1000 и просто загородит слово км/ч.

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #8 aeplug » 06 янв 2017, 23:28

Это же скрипты, не выражения. Выражения не могут менять внешний вид текста, только содержание. Во всяком случае я пока ничего подобного не видел.

Отправлено спустя 1 минуту 23 секунды:
atatat писал(а):Источник цитаты и просто загородит слово км/ч.

ну двигать то слой ты можешь формулами ) так что вычисляй размер и вперед для КМ
или вообще написать
Скорость (км/ч): 1000
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


atatat
Наблюдатель
Наблюдатель
Сообщения: 50
Зарегистрирован: 05 июл 2016, 19:14
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Сообщение #9 atatat » 06 янв 2017, 23:37

aeplug писал(а):Источник цитаты так что вычисляй размер и вперед для КМ

а как сделать это вычисление? можешь показать простенький пример?

Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 2802
Зарегистрирован: 18 мар 2016, 23:20
Откуда: С Ютуба
Благодарил (а): 18 раз
Поблагодарили: 274 раза
Контактная информация:

Сообщение #10 aeplug » 06 янв 2017, 23:44

SourceRectAtTime() Expression- Adobe After Effects tutorial - YouTube
https://www.youtube.com/watch?v=kI3yzx6CATg
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Вернуться в «Мои уроки»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей