Працювати над Avatar, Games of Thrones та Avengers: чим сфера CGI/VFX цікава для IT-спеціалістів

Привіт, мене звати Остап. У сфері VFX (Visual Effects) я працюю близько 10 років. Починав у одній з найвідоміших у СНД компаній — Terminal FX, а зараз займаюсь технічною організацією FX департаменту у Weta Digital у Новій Зеландії. Це студія, яка робила візуальні ефекти до фільмів «Avatar», «Games of Thrones», «Alita: Battle Angel» та ін.

У цій статті я розповім, чим цікава сфера CGI/VFX для програмістів, особливо для тих, хто хотів би змінити напрям, щоб мати трохи більше творчості у своїй роботі.

VFX — це технології, без яких візуалізація у сучасних блокбастерах була б зовсім не такою, як ми її бачимо зараз, або й цілком неможлива. Часто visual effects плутають зі special effects, які передбачають механічні та оптичні ефекти. Visual effects — це комп’ютерне опрацювання зображень, яке використовується у іграх, VR та телебаченні.

З кожним роком сфера VFX/CGI усе більше переймає від суміжних галузей. Такі слова, як DevOps, Scrum, Artificial Neural Networks, Big Data тут уже стають нормою, а отже й поле діяльності для спеціалістів розширюється. Але про все по порядку.

Як я потрапив у VFX

Для мене усе почалося з перегляду фільмів із захопливою графікою і питанням: «Як вони це зробили?». Ще навчаючись у львівському кінотехнікумі, пробував освоїти CGI/VFX самостійно, однак це далося нелегко: 10 років тому інформації було обмаль. Тоді я пішов працювати у львівський регіональний телеканал: робив заставки, усілякі рекламки. Але через півроку звільнився, бо розчарувався у тому, що побачив: рутинність завдань, відсутність перспектив і росту як спеціаліста.

У той же період (це, здається, був 2007 рік) у Львові стрімко розвивалися аутсорсингові IT-компанії. Я пройшов курси з програмування на Python, потім ще трохи знайомився з Java. Навіть запросили на роботу розробником в одну з компаній. Проте, пам’ятаючи свій досвід програмування в університеті, я відмовився. Зараз навіть дещо шкодую про це, але у виші ми програмували на Basic. Я взагалі не розумів, що ми робимо і який має бути кінцевий результат, і тому отримав хибне уявлення про те, що таке програмування.

Отож, думаючи, що я гуманітарій і точні науки не для мене (а, як виявилось, істина десь посередині), вирішив спробувати свої сили ще раз у комп’ютерній графіці, але тепер уже в Києві, де ринок CGI розвинений. Там одразу потрапив у вир подій і уже затримався на декілька років аж до переходу в одну із легендарних компаній у СНД — Terminal FX. Там я нарешті взяв участь у створенні VFX контенту, який собі уявляв. Я вдячний цьому колективу за те, що мав змогу бути його частиною.

Згодом захотілось побачити, що за обрієм, як люди працюють там. Почалися переїзди у різні країни: Польща, Австралія. 2018 року приїхав у Нову Зеландію. Зараз я працюю у студії Weta Digital у Веллінгтоні і займаюсь технічною організацією FX департаменту. Ця позиція називається FX Pipeline TD. Основне моє завдання — автоматизація процесів і написання інструментів, які б допомогли FX художникам «безтурботно жити» та без зайвих зусиль обмінюватись даними з іншими департаментами. За час роботи у Weta Digital вдалося долучитися до розробки «Alita: Battle Angel», «Pan» (2015), «Mortal Engines». Під час написання цього тексту завершуємо роботу над «Avengers: Endgame».

Про роботу в Terminal FX

У Terminal FX я починав з цілковито художньої позиції — compositing artist. Займався композицією, кольорами, інтегрував комп’ютерну графіку в реальне середовище. Потім перейшов на більш технічну роботу: дописував невеличкі скрипти, які полегшували життя іншим художникам, пробував автоматизовувати їхню роботу.

Потім почав займатися ефектами: вогонь, вода, повітря, хмари. Для цього вже необхідно було вивчати фізику тіл, закони Ньютона, як відбувається взаємодія, як горять речі, як відбувається окислення та ін. Трохи згодом знову перейшов у більш технічний напрям — допомагав це все автоматизовувати. А потім уже займався винятково розробкою інструментів, які б допомагали створювати такі феномени.

Звісно, можна ще додати багато градацій у професійному зростанні. Terminal FX — невелика компанія (20-30 людей), і тут спеціалісти охоплюють одразу багато обов’язків. А у великих компаніях (1000-2000 осіб) є безліч більш вузьких спеціалізацій. Наприклад, лише в одному R&D відділі можуть бути ті, хто переважно допомагають художникам і взаємодіють з ними, ті, хто більше займаються математикою, ті, хто частіше програмує, ті, хто займаються архітектурою програм. Є спеціалісти, які налаштовують потік даних з одного віділу у інший, є ті, які відповідають за паралельні обчислення, і ще багато інших.

У Terminal FX ми працювали над «Universal Soldier: Day of Reckoning», «Dragonheart 3» і багатьма іншими фільмами. Моїм першим проектом у компанії був фільм «Высоцкий. Спасибо, что живой» — зміна обличчя актора.

Завдання було досить зрозуміле: зробити з Безрукова Висоцького. От ми й робили :) Переглянули багато варіантів облич Висоцького і створили певну модель, базові правила, за умови дотримання яких інше обличчя було б максимально схожим на Висоцького. Потім уже пробували підігнати обличчя Безрукова під цю модель. Це, звичайно, не робиться так, як у фотошопі: 21-й, 22-й, 23-й кадр і підмальовуєте їх. Ми продивлялися кадри, знаходили в них щось спільне та підбирали алгоритм, намагались автоматизовувати. Але, звичайно, було багато нюансів, які підганяли вручну, адже, наприклад, були кадри з різних камер, хоч і в тому самому середовищі, і модель уже не працювала. Через складність проекту над цим фільмом взагалі працювала не одна компанія, а декілька.

Щодо інших цікавих розробок у Terminal FX, вони зробили власний унікальний продукт для менеджменту саме у сфері FX. З його допомогою режисери можуть відслідковувати прогрес у роботі, коментувати роботу художників, робити помітки на відео. Здається, в Microsoft є схожий більш універсальний аналог для проджект-менеджерів, який так і називається — Microsoft Project. Із менших задач, які ми вирішували, — бувало, деякі програми не підтримували потрібний нам формат зображення. Тоді ми їх дописували, адаптовували. Багато часу витрачали також на розробку пайплайну, щоб дані переходили максимально безпроблемно з одного відділу до іншого. Це система, яка допомагає художникам з різних відділів працювати над шотом, зберігає версії, автоматизує рутинні системні процеси. Таким чином, усі співробітники працюють в одній системі, обмінюються між собою даними, коментують і т. д.

Ринок CGI/VFX у світі й в Україні

На мою думку, у сфері VFX існує три основні компанії — лідери за інноваційністю, міні-світи, де створюють майже все власне. Вони мають великий штат розробників, часто співпрацюють з університетами і тому пропонують передові рішення в комп’ютерній графіці. Перші дві — це Disney, де взагалі винайшли комп’ютерну графіку, — Pixar, Industrial Light & Magic (одна з найстаріших компаній світу, заснована 1975 року, яка розробляла другого «Термінатора», «Парк Юрського періоду» ) і третя — Weta Digital. Остання з них наймолодша, заснована у 1993 році.

Звісно, є ще й інші немаленькі компанії. Можна розглянути ось таку світову карту VFX/Animation компаній, правда, вона трохи застаріла, і список компаній із пострадянських країн.

Загалом, якщо порівнювати з глобальним IT-сектором, то цей ринок менший, але він розвивається. Відкриваються нові компанії, Disney розвиває нові напрямки і шукає під них людей, «спалахами» бувають цілі кампанії з наймання спеціалістів.

На українському ринку компанії працюють на високому рівні, навіть якщо порівнювати їх зі світовими конкурентами. Не вистачає, можливо, масштабів і людей. Є компанії, які працюють лише на український ринок, і є ті, які співпрацюють із закордонними вендорами. Postmodern (підрозділ FILM.UA), Terminal FX — одні з найбільших.

Найчастіше їм віддають комп’ютерну графіку на аутсорс. Це щось подібне до аутосорсу в IT, але комп’ютерна графіка навіть більше підходить для цього, аніж програмні продукти, адже їх ще потрібно, наприклад, сапортити. А тут немає ніяких підводних каменів. І вендорам простіше довіряти графіку, адже вони можуть легко перевірити якість: якщо робота виконана погано, це одразу видно. А от у програмних продуктах замовник може виявити якісь критичні баги вже після продакшену. Звичайно, є в цій сфері і так звані «продуктові» компанії, які роблять лише великі проекти під ключ. Pixar, мало того, навіть самі пишуть сценарії, режисери постійно працюють разом з художниками.

На жаль зараз, наскільки я знаю, ситуація в Україні з відпливом кадрів трохи вдарила по комп’ютерній графіці загалом. Багато людей пороз’їжджались. Тому в компаніях відчувається гостра нестача спеціалістів. Але хочу підкреслити, що загалом українські компанії не є масштабними, мають невеликі штати людей, і тому просто не можуть витрачати ресурси на R&D-розробки для поліпшення картинки. Вони частіше наймають художників, аніж програмістів. Наприклад, у деяких закордонних компаніях співвідношення художників і програмістів може бути 10/2. Але знову ж таки, спеціалізацій багато, й вони часто перетинаються. Тому навпаки є можливість спробувати себе в новому напрямі.

З мого досвіду, оплата праці у цій сфері, на жаль, в середньому нижча, ніж у IT-секторі, але великою мірою це залежить від ринку країни. Деякі держави мають податкові преференції з боку держави на створення контенту для кіно — велику частину податку компаніям повертають, і вони мають можливість підвищити зарплату. Тоді фінансовий баланс між VFX і IT-сектором може вирівнюватись. Багато залежить від політики самої компанії, тому навіть в одному місті, але в різних компаніях, оплата праці може відчутно відрізнятись.

Канада (певні провінції), Австралія, Британія, Нова Зеландія борються за те, щоб представництво комп’ютерної графіки було саме в них. І, мені здається, Нова Зеландія — дуже активний представник такої боротьби. Ця країна має локації, де знімали фільми «The Lord of the Rings», які приваблюють велику кількість туристів. За один вхід у містечко Hobbiton просять близько 70 доларів. Ви заходите в усі ці будиночки, бачите, де і з яких ракурсів Пітер Джексон усе знімав, ви ходите по тих містках, по тому ж лісі. Навіть в аеропорту Веллінгтона, коли сідатиме літак, побачите напис хобітів «Middle of the Middle Earth». Нова Зеландія дістає великі бонуси за рахунок фільмів, тому й готова за них боротися. Без підтримки держави тут ніяк.

Джерело: learnz.org.nz

У Канаді, наприклад, вже інша ситуація. У цю країну найбільше аутсорсять комп’ютерної графіки. Напевно, важко знайти фільми, які б не створювалися в Канаді. Там величезна кількість малих компаній, які беруть замовлення по всьому світу, і країна заробляє саме на них.

Що потрібно знати

Сьогодні для тих, хто робить свої перші кроки у VFX, має бути простіше, адже інформація доступніша, середовище розвинуте і загалом усе більш впорядковане. Детально про VFX можна почитати на FX Guide. Там є багато інформації як з художніх тем, так і технічних.

Щодо знань, які потрібні для роботи, усе дуже залежить від спеціалізації і того, над чим ви працюєте. Наприклад, художник повинен розуміти, що таке композиція, колір, загалом володіти художніми якостями. Якщо ж хочете робити візуальні ефекти, необхідно розуміти, як відбуваються ці явища в реальному житті. Якщо ви йдете в анімацію, то маєте розумітися на анатомії, як людина рухається, як працюють м’язи, як людина може реагувати на різні ситуації, як відображаються емоції на її обличчі. Таких спеціалізацій багато, і вони дуже відрізняються.

Якщо ви йдете в більш технічну сферу, то там свої нюанси. Якщо це програміст, який займається рендером, то йому треба знати, наприклад, як проходить світло через різні об’єкти. Також у нашій роботі важлива ефективність, тому програмісти мають знати, як виконувати оптимізацію, зробити так, щоб процеси виконувались паралельно і швидко.

Художникам (маю на увазі людей, які створюють контент) перехід у VFX-галузь зазвичай дається простіше, ніж спеціалістам з IT-сектору, адже часто IT-шники просто не розглядають такі вакансії. Мені відомі декілька варіантів переходу:

  • Художник з VFX розказує знайомому програмісту про відкриті позиції у своїй компанії.
  • Програміст переїжає у місто, в якому є одна із провідних VFX компаній, і відповідно, вона на слуху.
  • Програміст випадково натрапляє на вакансію з VFX.

Також одна із явних перепон — це те, що великий VFX далеко від України і зазвичай необхідно переїжджати.

Вакансії і напрямки

Зазвичай, усіх, хто йде в цю сферу, об’єднує те, що їм подобається фінальний результат, візуалізація ідей. А займається вже кожен своїм напрямом. Чим складніші проекти, а, відповідно, і більші розміри компаній, тим більший спектр залучених спеціальностей.

Нині є багато вакансій, які поєднують CGI і класичне IT. Ось приклади вакансій: Senior DevOps Production Engineer, Software Engineer — Procedural Geometry & Simulation C++, Sr. Software Engineer, Machine Learning Researcher, Senior C++ developer.

Якщо людина володіє Machine Learning і Big Data, їй буде дуже легко ввійти в комп’ютерну графіку навіть без якихось додаткових знань. Для С++ чи, наприклад, Python розробника усе дуже залежатиме від конкретної позиції, на яку він подається. Для деяких позицій все-таки треба знати базові поняття в комп’ютерній графіці. Якщо ви подаєтеся на розробку рендера, то важливо знати алгоритми взаємодії світла і об’єктів. Якщо подаєтеся на симуляцію, то спитають, наскільки ви знайомі з відповідними математичними формулами. Зазвичай ще симуляції пишуть під конкретні види феноменів (вогонь, рідина чи щось інше). І можуть запитати щось, пов’язане з цим.

Якщо це розробки, пов’язані з внутрішніми інструментами компанії, яким важко знайти аналоги, то нічого не будуть питати стосовно цих технологій, а лише банальні речі про С++. Можливо, й без прив’язки до комп’ютерної графіки. Компанія розуміє, що вона не може запитати про ті технології, які недоступні ніде. Уже коли спеціаліст прийде на роботу в компанію, вона буде витрачати час на те, щоб навчити його цих технологій.

Є багато завдань для програмістів і поза комп’ютерною графікою, пов’язаних з функціонуванням компанії. Наприклад, те, як і коли стирати дані, який час валідації має пройти, як вони мають перейти на сервер, коли вони мають заархівуватися. Усе це автоматизовано.

Особливості роботи у CGI/VFX

Особливість роботи програміста у VFX у тому, що він багато спілкується із замовниками. А замовниками є художники або інші технічні спеціалісти в цій самій студії, для яких ви пишете інструменти. Вони в свою чергу на базі цього можуть створювати інші нові інструменти. Студія працює як один організм, це замкнений цикл. Таким чином, комунікаційні якості стають по-справжньому важливими, як і особиста відповідальність.

При відсутності комунікації художники можуть не розуміти, на якій стадії розробки той чи інший інструмент, які складності виникають у розробці певного функціоналу, на якій компроміс ми можемо піти, а це все може вилитись у фінальний неякісний продукт. З іншої сторони, розробники мають можливість поглянути в реальному часі на те, як їхні інструменти допомагають (або ж ні) в досягненні поставлених цілей. Особливість цього процесу в тому, що розробники працюють не для віртуальних користувачів, а для тих, з ким спілкуються за ранковою кавою або ж ходять разом на футбол.

У студії VFX величезну увагу приділяють самому робочому процесу: як різні відділи обмінюються між собою даними, як, наприклад, переходить інформація з FX-відділу у анімаційний. Це чимось схоже на Git-репозиторій тільки зі структурованою схемою для різного контенту і, відповідно, для різних даних.

Якщо говорити про класичний метод розробки, то часто у студій немає типового відділу тестування, але автоматизованим тестам відводиться особлива увага, і зазвичай за це відповідає розробник (TDD методологія доволі популярна). Причиною тому є спеціалізованість завдань і, відповідно, вміння використовувати середовище та інструменти. Часто тут використовують систему плавного впровадження продукту, яка залежно від ітерації збільшує кількість залучених людей, а це допомагає виправити баги ще на перших етапах користування.

Ще одна особливість: наш головний продукт — саме фінальне зображення. При його перегляді, можливо, зовсім не видно workflow, не зрозуміло, які технології були використані. Там просто добре видно пікселі, які бігають. Навіть спеціалістам з комп’ютерної графіки важко розрізнити, де художник обійшовся без технологій, а де технологія добре допомогла.

У класичному IT, як я гадаю, більший контраст між спеціалістами: є Java розробник, а є тестувальник, наприклад. У комп’ютерній графіці простіше змінювати рівень технічності, перейти в більш художній напрям або навпаки. І різниця між розробниками і художниками взагалі не така чітка. Тому й перехід дається простіше. Компанії навіть додатково заохочують спеціалістів час від часу змінювати свої позиції, напрямки роботи, щоб попередити вигорання.

Ще один цікавий бонус роботи в комп’ютерній графіці — це те, що ви ще до виходу фільму знаєте сюжет, які там були деталі, повороти, які режисер вирізав, і вони не увійшли в остаточну версію. Звісно, це вам буде цікаво, якщо цікавить сам фільм, над яким ви працюєте. Але розкривати ці подробиці публічно заборонено. Наприклад, у нас в компанії кожного місяця проводять додаткові курси, на яких розповідають, щоб ми були обережними з тим, що розказуємо про свою роботу. Не можна розповідати про технології виробництва і тим паче про сюжет. Компанія дуже ретельно слідкує за тим, щоб інформація не потрапила назовні.

Роздуми про майбутнє VFX

За останні декілька років можна прослідкувати, як VFX-компанії відходять від розвитку різносторонніх великих проектів. Студії не намагаються розробити свої варіанти графічних програм, наприклад, Maya чи Katana. Натомість вони застосовують свої R&D ресурси для розробки власних вузькоспрямованих продуктів, таких як оптимізація симуляції рідини, постпроцеси для усунення шуму з зображень. З їхньою допомогою можна підняти існуючий інструмент на новий рівень, а також поєднати декілька фреймворків в єдину екосистему. Як результат, новим спеціалістам не потрібно адаптуватись до цілком нової системи роботи в компанії, а розробники мають менш рутинні завдання.

Як і у багатьох сферах, у VFX проглядається тенденція до пошуків здешевлення та підняття якості виробництва. Один із останніх трендів — Machine Learning. Використовується в усунені шумності зображення, створенні масок певних об’єктів на основі відео (rotoscoping), анімації обличчя персонажа за допомогою лише звукової доріжки і т. д.

Ось невелика підбірка відео Machine Learning для CGI: «Neural network creates its own animation», «Disney’s AI Learns To Render Clouds», «Rotobot, bringing Machine Learning to Roto».

Ось ще цікаве відео із CppCon про техніку розробки в Houdini — одному із найкращих програмних комплексів для створення CGI.

У VFX-студіях все більш популярною стає спеціалізація Pipeline TD. Це свідчить про бажання оптимізувати процеси, що частково перегукується з IT сектором і DevOps (хоча, звісно, великі компаній мають окремі позиції DevOps і Pipeline TD).

Scrum, Agile є далеко не новими для IT, але у VFX це нова хвиля, яка вносить інший підхід до організації праці. Ось хороша стаття від української компанії з цієї теми. Хоча у тих реалізаціях Scrum, Agile, що я бачив, часто саме людські якості були слабкою ланкою.

Digital Doubles — необхідність в CGI дублерах індустрія відчувала вже давно, але до використання такого прийому вдавались лише за особливих обставин і обмежено. Інакше на це було важко дивитись. З кожним роком якість створених двійників покращувалась, але й кількість залучених працівників збільшувалась. Так тривало до тих пір, поки не з’явилися фальшиві відео Обами, які були створені за допомогою Machine Learning більш дешевим і швидким способом. Це відкриває поле для цілком нових проблем, для врегулювання яких необхідні нові правила або ж більш жорсткі існуючі. Можливо, цей спосіб створення двійників радикально змінить роботу актора у кінематографі, але поки що технологія не дає цілком реалістичного результату, і погано те, що такі дані важко піддаються корективі. Тому, хоч на дворі уже 2019 рік, VFX-студії в більшості випадків віддають перевагу класичним методам створення дублерів.

Висновки

Звісно, я описав лише невелику частину цікавого зі сфери CGI/VFX і в першу чергу для того, щоб нагадати, що тут теж є життя для розробників. Якщо у вас є власне бачення програмування і вам би хотілося мати трохи більше творчості в роботі, то, можливо, комп’ютерна графіка — те, що вам необхідно. У цій сфері можна самостійно обрати баланс між творчістю і технічною роботою і проявити себе завдяки великій кількості напрямків.


За допомогу у підготовці статті дякую редакції DOU.

Похожие статьи:
Когда продукт — это сеть взаимосвязанных сервисов с большим количеством внешних зависимостей, то ответ на простой вопрос «Наш...
Сьогодні відбулася презентація проєкту Future Perfect — це національна програма популяризації англійської мови, яку координуватиме...
Артем Копанєв з 1 січня 2025 року залишив посаду операційного директора Genesis і зосередився на власному IT-продукті — застосунку...
Новые версии ReactOS 0.4.0 Kotlin 1.0 Vulkan 1.0 Docker 1.10 Go 1.6 TypeScript 1.8 htop 2.0 ESLint v2.0.0 FFmpeg 3.0 GitLab 8.5 Аналитика Ukraine has an army of nearly 100,000 IT professionals working...
В сети уже появлялись слухи о том, что компания Microsoft готовит к выпуску смартфон Microsoft Lumia 550. А теперь в блоге @evleaks появилось...
Яндекс.Метрика