Секрети створення ландшафтів для BGE - Андрій Прахов

Більшість сучасних ігор хизуються красивою графічною картинкою. Важливе значення мають барвисті елементи пейзажу та ландшафту. В цьому уроці розглядаються способи створення ландшафту та текстурна заливка для Blender Game Engine (BGE), а також розкриваються деякі секрети реалістичності при мінімумі витрат.

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

Щоб уникнути подібних помилок достатньо знайти вільний час і подивитися на природний прототип. Вже при побіжному погляді на живу галявину стане видно, що трава неоднорідна за кольором, прогалини голої землі, можливо, якісь стежки. Тільки ось як втілити подібне у грі, особливо не витрачаючи свій час та ресурси комп'ютера?

Будуємо основу

Як правило, в основі будь-якого ландшафту лежить звичайний примітив – площина. Існують різні варіанти створення необхідних нерівностей: зміна геометрії за допомогою інструментів скульптурного моделювання, використання карт висот чи спеціальних скриптів. Звичайно все залежить відвимог гри до ландшафту. Наприклад, якщо пишеться авіасимулятор, то логічно використовувати карти висот, оскільки ландшафт у разі грає суто образотворчу роль. Коли ландшафт використовується як основа для розміщення об'єктів, необхідно вручну підганяти його геометрію. У цьому уроці ми розглянемо останній варіант із використанням генератора.

Якщо сценарій гри дозволяє, то найпростіше основу території закласти за допомогою спеціального скрипту. Генератор ландшафтів з'явився у Blender версії 2.49. Ми не розглядатимемо всі опції скрипту, а лише торкнемося необхідних для початкового знайомства з ним. Всі наступні дії описані у статті припускають мінімальне знання програми та ігрового двигуна BGE.

Створіть новий проект, видаліть наявний куб і відкрийте вікно Scripts Window у зручному для вас місці. Запустіть скрипт із меню Scripts -> Wizards -> Landscape Generator. В закладці Main розташовані основні функції початкового налаштування моделі. Є кілька варіантів: використовувати існуючий примітив (Assign Selected), створити новий (Add New Grid) або завантажити вже раніше збережений.

Ми працюватимемо з новими ґратами. Натисніть Add New Grid. Вікно, що з'явиться, дозволяє вибрати роздільну здатність і місце розташування сітки. За замовчуванням значення розміру встановлено на 256. Для використання у грі це просто надмірно. Тому встановіть значення в 128. Щоб ландшафт з'явився на місці 3D-курсора, натисніть кнопку At Cursor .

Отже, на місці курсору має з'явитися площина з великою кількістю полігонів. Що ж далі? Все просто. Закладка Noise містить велику кількість встановлених алгоритмів шумів. Достатньо вибрати необхідний, встановити бажані параметри, натиснути кнопки Randomise длягенерації та Update для оновлення екрана. Ось і все, основа для ландшафту створена.

прахов
Мал. 1. Чи не так, ця модель ідеально підходить для реалізації острова?

При необхідності можна доопрацювати модель за допомогою інструментів скульптурного моделювання.

Зробимо світ яскравішим

Якісна модель – це стать. Все залежатиме від умілого забарвлення. Як мовилося раніше, використання однотонного матеріалу – ознака поганого смаку. Необхідно також враховувати, що при наближенні до поверхні буде видно пікселізацію текстури. Відповідно, потрібна ще детальна текстура.

Отже, створіть новий матеріал. Для створення якісної картинки знадобиться мінімум три текстури: основна (припустимо камінь), вторинна (трава) та детальна у вигляді карти нормалей (Normal Map).

ландшафтів
Мал. 2. Основна (камінь), вторинна (трава) та карта нормалей (Normal Map).

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

Завантажте основну текстуру в перший слот матеріалу ( ) і в закладці Map input ( ) увімкніть кнопку UV (подібна дія необхідна і для інших текстур). Також потрібно буде налаштувати відблисні шейдери. Налаштування за промовчанням дають надто яскраві переходи. Перейдіть на закладку Shaders панелі матеріалів ( ) і трохи пограйтеся з параметрами Spec та Hard .

ландшафтів
Мал. 3. Однотонний похмурий краєвид з розмитою текстурою.

Гладка, розмита текстура - картинка просто огидна! Поліпшити положення можна, якщо накласти карту деталізації. У її ролі будевиступати дрібнозерниста Normal Map.

Додайте новий текстурний шар і завантажте карту нормалей. Не забудьте у панелі Map Image увімкнути кнопку Normal Map. Перейдіть на закладку Map To на панелі Material і виконайте такі дії: • вимкнути кнопку Col ; • активувати кнопку Nor; • бігунком Nor відрегулювати бажану різкість.

андрій
Мал. 4. Normal map надасть текстурі необхідної чіткості.

Помахи пензлем

Картинка почала виглядати набагато краще. Тепер давайте візьмемося малюванням на текстурі. Думаєте складно?

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

Відкрийте у будь-якому зручному для вас віконці UV/Image Editor. Перейдіть до об'єкта та натисніть . Тепер у вікні Image Editor необхідно створити нову текстуру у меню Image -> New. У віконці можна все залишити за замовчуванням, за винятком початкового кольору. Замініть пропонований чорний на білий. Перейдіть назад до панелі матеріалів.

Зараз займемося налаштуванням накладання. Відкрийте закладку Map To та виконайте такі дії: • вимкнути кнопку Col ; • увімкнути кнопки Stenci, Neg, NoRGB.

Додайте новий текстурний слот і завантажте текстуру зелені. Перейдіть у вікно UV/Image Editor і відкрийте створену білу текстуру. Для малювання на текстурі необхідно увімкнути спеціальний режим. Для цього активуйте пункт Texture Painting у меню Image. Натисніть клавішу , щоб переглянути плаваючу панель Image Paint . Саме в ній можна налаштувати розмір та колір пензля. Встановіть колір пензля у чорний.

створення
Мал. 5. З такими доопрацюваннями ландшафт виглядає набагато ефектніше.