Душан Малкович — дуже талановитий розробник ігор із Сербії. Він уже досить давно працює над цим особистим проектом. Ми розпочали дискусію про побудову візуалізованого простору майже рік тому, і тепер, через весь цей час, 80.lv раді представити докладну статтю про створення дизайну оточення, вибір рушія та інструменти, що допомагають у візуалізації.

Оригінал статті

Переклад Наталії Третякової.

Вступ

Привіт, мене звати Душан Малкович, і я із Сербії. За професією я математик, але створення відеоігор завжди було моєю пристрастю. Ще змалечку мене зачаровував світ ігор, і те, як це все працює, так виник мій інтерес до цього фаху. Зараз я очолюю аналітичний відділ і займаюся технічним дизайном в Eipix Entertainment, тобто відповідаю за математичні розрахунки роботи ігрових систем.

Навчаючись у старшій школі, а пізніше і в університеті, я дуже цікавився комп'ютерною графікою та математикою, тому почав вивчати різні рушії. Традиційні методи візуалізації були «недостатньо хороші» для мене (за швидкістю рендерингу, звичайно ж)

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

Вибір рушія Unreal Engine

Поправді, починав я з CryEngine. Тоді це був єдиний рушій з підтримкою розрахунку глобального освітлення в реальному часі (real time GI), і він був значно досконаліший за решту представлених на ринку. Справа в тому, що він мене зовсім розчарував, адже він має численні баги, а співтовариство розробників дуже мале, тож я вирішив, що час рухатися далі.

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

UE4 має безліч опцій, покликаних полегшити ваше життя, якщо ви працюєте в ігровій або суміжній індустрії. Однак варто зупинитися на одній конкретній функції (як не дивно, це не Blueprints) — прогресивний механізм візуалізації. Чому саме на ньому? Спробую пояснити на прикладі, щоб не бути марнослівним. Уявіть собі розробника, якому потрібно створити високополігональну модель якого-небудь продукту, а потім продемонструвати її. Йому, звичайно ж, потрібно її відрендерити. Ось він звітує перед своїм босом, або перед самим собою, і тут постає питання: «А як це виглядає в блакитному кольорі?» Тоді цей хлопець іде й робить іще один рендер, і ще один, і ще. Ось тут використання UE4 може мати вирішальне значення, адже він робить можливим рендер вашої супервисокополігональної моделі в режимі реального часу: змінюйте кольори, додавайте ефекти, пробуйте різні кути огляду, змінюйте моделі освітлення — і все це в режимі реального часу. Неперевершено.

Архітектурна візуалізація

Робота над цим проектом почалася, коли я ще на повну ставку працював у Endtimes Studio. Ми працювали над пригодницькою грою в жанрі «look and click» з підтримкою віртуальної реальності, що звалася «Plugged», і для підтримки життєздатності проекту потрібне було стороннє фінансування. Тому я зайнявся залученням інвесторів, що цікавляться архітектурною візуалізацією. Поступово це стало моєю основною роботою, адже я закохався в проект: мені стали в пригоді мої навички програмування, моделювання та текстурування, щоб досягти того, що ми маємо зараз. Це було дуже захопливе заняття, та й зараз залишається таким, адже я постійно працюю над удосконаленням цієї роботи.

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

Але в UE4 поєднати ці два елементи досить просто. Взагалі, єдине, що вам потрібно — хороший комп'ютер, а все інше буде виконано для вас. Одна з найбільш корисних функцій — автоекспозиція, за її допомогою освітлення налаштовується з урахуванням того, як його сприймає око в різних ситуаціях.

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

Пошук ресурсів

Для UE4 недостатньо доступних ресурсів, але, як на мене, це просто чудово, і ось чому. Коли щось стає загальнодоступним (бібліотеки ресурсів та матеріалів, програмні сценарії і т.д.), зникають фантазія і творчість, починається гіпервиробництво і все руйнується — усі раптом стають розробниками ігор.

От наприклад сучасні ігри: процес спрощений настільки, що ніхто взагалі не думає про те, що робить, просто знаходять якийсь архів і створюють щось точнісінько таке, як і минулого року.

Що ж стосується цього проекту, я використовував усього потрошку, адже я — майстер на всі руки. Значна частина того, що ви бачите, зроблена мною, дещо взято з безкоштовних бібліотек і змінено на місці. Майже всі матеріали — мої (я витратив багато часу на глибоке вивчення UE4), а текстури — поєднання моєї роботи з Google Images.

Створення освітлення

Робота з освітленням в UE4 здається складною, доки ви не ознайомились з основами. Я використовував такі налаштування: направлене джерело світла (Directional light) з’єднане з небесною сферою, атмосферне світло (Skylight) з власним скайбоксом і точкове світло (Point lights), щоб виділити окремі місця.

Головний секрет полягав у «твіках». Я витратив багато часу на роботу над постефектами (Post Processing Volume) та з’ясування того, які налаштування дозволяють отримати найкращі результати для кожної окремої сцени. Це було на початкових етапах, адже освітлення вимагає одноразового налаштування, оскільки майже всі об'єкти візуалізованого простору є статичними. Я використовував статичне освітлення, оскільки в той час за допомогою рухливих джерел світла неможливо було досягти високих результатів, хоча побачивши новий Unreal Kite Demo я повністю змінив свою думку.

Чи не найважливіше, про що слід пам’ятати при використанні статичного освітлення — підвищити роздільну здатність світлових карт (Light Maps), а також встановити дуже високу величину непрямих відскоків (Indirect Bounces). Я використовував також інші ефекти, такі як «Світлові шахти» (Light Shafts), «Відблиски об’єктива» (Lens Flares) та «Світіння» (Bloom), усі вони мають вирішальне значення при створенні атмосфери.

Створення ландшафту

Для мене створення ландшафту стало одним із найскладніших етапів проекту, адже я «всього лише» моделював його за допомогою вбудованих інструментів UE4... а я не моделлер і не художник. Коли рельєф був готовий, я використав створений мною тессельований матеріал, і вигляд став трохи кращий. Потім слід було додати камені, і з ними зображення нарешті стало на щось схоже. На останньому етапі я додав рослинність, і ось тепер ландшафти заговорили. Дерева й трави настільки змінюють краєвид, що на них ніяк не можна заощаджувати ресурси.

Про що не можна забувати, створюючи оточення за допомогою UE4

Я не можу виділити одного найважливішого елемента, для мене візуалізована сцена подібна до годинникового механізму — все має бути синхронізоване, і візуально і технічно, жоден елемент не повинен виділятися. Хоча як на мене план і ескіз, складені перед початком роботи, стануть вам у пригоді.

Особисто я зазвичай починаю з того, що мені вдається не дуже добре, і в даному проекті це було моделювання. Я створив/зібрав 80% моделей ще до початку роботи з рушієм. Крім того, щоразу, коли в мене щось не виходить, я звертаюся по допомогу до своїх друзів та колег із Endtimes Studio та Eipix Entertainment, а також через інтернет.

Інші інструменти

У процесі я використовував безліч інструментів: 3ds Max для моделювання та управління UV розгорткою, Photoshop для створення текстур і карт різних типів (шорсткості, відображення тощо) та Speed ​​Tree для моделювання більш складних рослин (дерев, кущів тощо). Якщо хочете, щоб ваші моделі виглядали «заяложеними», можете використовувати такі програми як Substance Painter, Substance Designer або Quixel Suite. У даній сцені все має виглядати новим і свіжим, тож я ними не користувався. Головне, що вам потрібно — щось для моделювання і щось для роботи з текстурами, все інше — це просто доповнення.