Скрипти для спрощення робочого процесу в After Effects своїми руками

Вирази та скрипти для After Effects

Скрипти для спрощення робочого процесу в After Effects своїми руками. Частина 2.

Всім світ, браття!

Продовжуємо нести світло освіти та спрощення людям. Ну і трохи вислуховувати моє скиглення на предмет: "оооуу, як тут все невдооообно". Наступне, що вибивало мене в постійній роботі з векторними ілюстраціями, — це процес їхнього переведення в шейпи. Готуєш собі персонажа, перейменовуєш всі шари, ось Pelvis, тут у нас Leg_L а з цього місця Arm_forearm_R стирчить. Все зробив, назвав як треба і тут ти розумієш, що багато чого тобі доведеться переводити в шейпи. Натискаєш праву кнопку миші, тиснеш Create Shape from Vector Layer… і все починає божеволіти 🙂 Шари кудись відлітають, з'являється довбала приписка Outlines у кожному з них, крики, паніка. Загалом пишемо наступний скрипт.

скрипт, який переводить векторні шари в шейпи зі збереженням імені та індексу.

І перше з чим нам необхідно познайомитися в рамках цього завдання команди app.findMenuCommandId() і app.executeCommand(). Ми ж з вами намагаємося емулювати натискання на пункт меню, а в АЕ для цього є чудові команди, findMenuCommandId() шукає ідентифікатор команди за назвою, а executeCommand() - виконує цю команду.

Так що якщо на виділеному векторному шарі виконати

то він перетворюється на шейп.

Тепер потрібно видаляти слово Outlines та зробити можливість виділяти кілька шарів. І тут нам доведеться вирішити ще кілька складнощів. Справа в тому, що нам легко отримати набір виділених шарів (для цього композиція має масив selectedLayers), але отримати набір шейпів, які згенерувала команда «Create Shape from Vector Layer» так легко не вийде. До того ж ця командаігнорує послідовність вхідних шарів. А значить, якщо ти виділив шари з індексом 3,1,8,5 (у такій послідовності), то шейпи отримаєш у послідовності 1,3,5,8.

Тому логіка коду буде такою: запам'ятовуємо послідовність виділених векторних шарів, сортуємо їх за індексом, генеруємо шейпи, пересуваємо їх до оригінальних шарів на таймлайні: