Сповіщення
Очистити все

Глобальне озеленення, додаємо траву на рівень


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

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

Теорія

У комплекті пакета SDK йде вже відкомпільований і налаштований список детальних об'єктів, файл SDK/rawdata/detail_list.dti. Сенс Detail List полягає у прив'язці детальних об'єктів до кольору намальованої особливим чином текстури, що визначає положення та тип детального об'єкта на рівні.

Структура текстури:

  • Колір визначає тип об'єкта відповідно до Detail List.
  • Альфа канал визначає щільність об'єктів.

Не люблю теорію, тому переходимо до практики, краще один раз зробити, ніж сто разів прочитати 🙂

Практика

Сподіваюся у вас вже є свій рівень на який ви хочете додати траву та листя, я візьму свій тестовий рівень.

Малюємо детальну текстуру

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

1. У Level Editor перейдемо на режим редагування детальних об'єктів;
2. У групі DO Commands натиснемо Object List. Відкриється редактор Detail Objects;
3. Завантажимо вже налаштований список деталей (SDK/rawdata/detail_list.dti).

Після завантаження списку у правій колонці ви побачите кольори та відповідні їм об'єкти, можна створювати нові кольори та їм присвоювати довільні об'єкти, це дає можливість мати різні об'єкти у будь-яких поєднаннях. Ну що ж, тепер ми знаємо якому кольору, що відповідає, можемо приступити і до малювання. Запустимо Photoshop, створимо новий файл розміром 512х512. Взагалі розмір то, можливо будь-яким кратним ступеня двійки, тобто. 128х128, 512х512, 1024х1024 і т.д.

Починаємо малювати розташування об'єктів на рівні відповідно до того кольору, що призначений у редакторі Detail Objects. Нагадаю, що альфа канал відповідає за густину об'єктів. Мій варіант текстури можна побачити праворуч (малював для наочності).

Зберігаємо текстуру в папку SDK/import у форматі Targa (TGA - 32bit/px, без стиснення).

Застосовуємо детальну текстуру до рівня

Переходимо до роботи з Level Editor-ом. Спочатку додамо нашу текстуру до редактора, Images -> Check New Textures. Ця команда змушує редактор переглянути папку SDK/Import та додати нові файли до Texture List. Не змінюючи нічого в діалозі імпорту текстур, натискаємо ОК. Все тепер наша карта є у списку текстур редактора. Нагадую, що редактор має бути у режимі роботи з детальними об'єктами.

Лезем Tools->Properties, або просто натискаємо "Enter", якщо не змінювали налаштування гарячих клавіш. У властивостях детальних об'єктів нам необхідно вибрати як базову текстуру нашу, клацаємо по полю Base Texture. Відкриється діалог Select Texture, у якому знаходимо нашу текстуру.

Snap List -> Commands -> Make List From Selected

Тепер переключаємося режим редагування Object, вибираємо об'єкти, які хочемо покрити детальними об'єктами, тобто. у нашому прикладі, що на даному етапі виберемо, то й буде покрито травою. Перемикаємось назад у режим редагування Detail Objects, необхідно заповнити Snap List, для цього даємо команду Snap List -> Commands -> Make List From Selected.

Список заповнений, проводимо першу ініціалізацію (DO Commands - First Initialize). У результаті у нас має вийти щось на кшталт того, що зображено на лівому скріншоті нижче, я спеціально вставив скрін вихідника текстури для порівняння.

Робота закінчена, залишилося зібрати та відкомпілювати рівень.

Компіляція

Компіляція детальних об'єктів здійснюється компілятором xrDO_light. Тобто. після складання рівня (Compile -> Build) компілюється рівень (xrLC), а потім прораховується освітлення для детальних об'єктів (xrDO_light). Отже, якщо довелося змінити щось у детальних об'єктах, немає необхідності заново компілювати рівень, досить прорахувати висвітлення детальних об'єктів і все, тобто. Compile -> Make Detail + xrDO_light


   
Цитата