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

Створення рівня, покрокове керівництво


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

У даному уроці спробую розповісти про основи роботи з Level Editor пакетом SDK, на прикладі створення найпростішого рівня.

У пакеті SDK вже досить багато готової геометрії, яку можна розміщувати на своєму рівні, але іноді хочеться вставити щось своє, це можна зробити, змоделювавши об'єкт у пакеті 3D моделювання Maya або 3D Studio Max.

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

Встановлення та налаштування плагіна
Установка для Maya
Установка плагіна полягає у копіюванні:

Усі файли з папки scripts_plugins\scripts до папки C:\Documents and Settings\UserName\My Documents\maya\scripts
Усі файли з папки scripts_plugins\ver-ххх до папки C:\Program Files\Autodesk\Maya_ххх\bin
Файли scripts_plugins\xray_path.ltx до папки C:\Program Files\Autodesk\Maya_ххх\bin
Установка для 3D Studio Max
Качаємо плагін. Розпаковуємо архів, копіюємо вміст папки plugin (саме plugin) у папку макса.

Налаштування
Далі в офіційному посібнику написано, що потрібний диск Х, ми доклали батник для створення цього диска і т.д. Можливо, хтось погодиться з таким варіантом, але я вирішив просто відредагувати файл xray_path.ltx і не мучиться з батником і диском.

Необхідно змінити лише перші два рядки файлу xray_path.ltx:

$server_root$ = false| false | e:\sdk\(це шлях до папки в якій у вас знаходиться SDK)
$local_root$ = false| false | e:\sdk\(це шлях до папки в якій у вас знаходиться SDK)
Після деякого шаманства запрацювало у такому вигляді:
$server_root$ = false| false | C:\Program Files\X-Ray SDK\level_editor\
$local_root$ = false| false | C:\Program Files\X-Ray SDK\level_editor\
Все, можна скористатися плагіном.

Налаштування одиниць виміру
Для того, щоб розміри об'єктів у редакторі збігалися з тими, що використовуються в X-Ray SDK, необхідно виконати відповідне налаштування.

Налаштування Maya
Для початку необхідно одиниці виміру перевести в метри (за замовчуванням у Maya 8.5 використовуються сантиметри). Робиться це у 2 етапи:

Заходимо в меню Window -> Settings/Preferences -> Preferences. У діалозі, що відкрився, в категорії Settings, знаходимо список Working Units -> Linear і вибираємо Meter, як показано на скріншоті (крок 1, крок 2).
Тепер, для зручності роботи, в налаштуваннях камери необхідно змінити дальність відображення з 10м на 1000м (див. скріншот крок 3)

Крок 1: вибираємо вказаний пункт меню

Крок 2: вибираємо одиниці вимірювання - метри

Крок 3: налаштовуємо камеру
Помічено глюк: після налаштування камери зображення може зникнути, в чому справа поки не розібралася, але ситуацію допомагає перемогти вибір у меню камери наступних двох пунктів:

Panel -> Perspective -> New
View -> Camera Settings -> View Compass
Налаштування 3D Studio Max
Налаштування полягає лише у виборі як одиниці вимірювання метрів.

Заходимо в меню Customize -> Units Setup... У групі Display Unit Scale ставимо перемикач на Metric, у списку, що випадає, шукаємо Meters.
Також необхідно натиснути кнопку System Unit Setup і прирівняти умовну одиницю до метра (тобто там де "1 Unit = 1,0 у випадаючому списку вибрати Meters. Прапорець "Respect System Units in Files" повинен бути включений)

Змінюємо одиниці виміру

Моделювання
Для нашого найпростішого рівня нам знадобиться створити просто бокс як террейн.

Створимо box розмірів 50м*50м*0,1м.

Зауваження та правила
Вся геометрія має бути створена в реальних світових розмірах (якщо стіл у реальному житті висотою 1 метр, значить його треба і в Maya робити висотою 1 метр, все гранично ясно і просто)
Bounding box персонажа має три стани: стоячи (1.8х0.7х0.7 у метрах), сидячи (1.5х0.7х0.7 у метрах) та дуже сидячи (1.2х0.7х0.7 у метрах).
Весь рівень має бути не більше 150 тисяч трикутників.
Сцена має складатися із груп. Назва групи формується за таким принципом: mp_ім'ярівня_назвгеометрії. Наприклад, у нашій тестовій сцені такі гурти: mp_atp_terrain, mp_atp_buildings. У групі може бути як один об'єкт, і кілька. Імена об'єктів усередині групи жодним чином не повинні збігатися з ім'ям групи. У межах однієї групи всі імена повинні бути унікальні.
Шейп об'єкта має містити правильне ім'я. Формується за таким принципом: об'єкт - ім'я_об'єкта, шейп - ім'я_об'єкта
Текстурування та призначення шейдерів
3D Studio Max
Відкриваємо Material Editor(M), виділивши один із зразків матеріалу, відкриваємо діалог Material/Map Browser, клацанням на кнопці Standart. Створимо новий матеріал XRayMtl, двічі клацнувши по ньому у списку.

Займемося налаштуванням параметрів матеріалу. X-ray матеріал, крім текстури використовує надбудову, що складається з трьох шейдерів - Engine, Compiler, Material.

Engine - відображення текстури в движку гри.
Compiler – використовується при компіляції рівня.
Material - ігровий матеріал (wallmark, sound та ін.).
Для початку налаштуємо шейдери. У Material Editor-e розгортаємо сувій XRay Params. У списках представлені різні варіанти шейдерів. Докладніше параметри шейдерів розглянуті у статті Опис шейдерів XRayMtl . Для нашого прикладу обмежимося встановленням наступних значень:

Engine - default
Compiler - default
Material - material/asphalt

Створення нового матеріалу XRayMtl

Налаштування XRay шейдерів матеріалу
Текстурування полягає у призначенні текстури процедурної картки Diffuse Color. Взагалі, у редакторі матеріалів (У свитку Maps) багато процедурних карт, але X-Ray mtl підтримує (експортує) лише одну, вказану вище. !Важливо - щоб експорт був, треба призначити картку в кнопку diffuse colour. Можна призначити будь-яку карту формату *tga, так само важливо щоб розмір текстури (ширина/висота) дорівнював ступені двійки (256, 512 і т.д.). Після присвоєння каналу diffuse colour будь-якої текстури НЕ ЗАБУВАЄМО ПРИСВОЇТИ МАТЕРІАЛ НАШОМУ ТЕРРАЙНУ і зробити Convert to Editable Mesh, інакше буде виліт програми. Робиться це двома способами: 1. Drug&drop матеріал із слота Material Editor'а на наш box. 2. Натисніть кнопку Assign Material to Selection (за умови, що ваш террайн виділено) у редакторі матеріалів. З.И. Якщо ви не задоволені тим, як текстура лягла на терайн, скористайтесь модифікаторами, наприклад, UVW Map. Потім не забудьте зробити Convert to Editable Mesh!

Question.gif Чи потрібно розписати процес призначення текстури каналу?
Пиши тут .
Експорт
3D Studio Max
Спочатку виділяємо всі об'єкти, які хочемо експортувати як єдиного об'єкта, тобто. все, що ми виберемо зараз у редакторі, буде представлено як одна модель. У нашому випадку, це один box.

Переходимо на командну панель Utilities, натискаємо кнопку More... У списку, що з'явився, в самому кінці бачимо XRay Export, вибираємо, тиснемо ОК. Після запуску модуля на панелі з'явиться новий сувій XRay Export, у списку Selected можна проконтролювати якісь об'єкти вибрані, натискаємо кнопку Export Editor Object... зберігаємо файл у папку {SDK folder}\import.

Запускаємо модуль експорту

Експорт об'єктів
Імпорт геометрії та текстури в пакет
Під час експорту з редактора (Maya && 3D Max) ми отримаємо файли *.object.

Запускаємо Level Editor і додамо нашу геометрію в Objects Library, робиться так: Objects -> Library Editor, відкриється діалог Object Library.

Редактор знайшов текстуру
Для зручності створимо нову групу для наших об'єктів, клацаємо у лівій частині вікна ПКМ та вибираємо Create Folder, перейменуємо у my_first_level. Виділяємо групу, і натискаємо кнопку Import Object, шукаємо наші *.object файли, після того як об'єкти додані можна подивитися, як вони будуть виглядати в грі, для цього ставимо галочку Preview і милуємося нашим об'єктом. Тепер можна закрити діалог Object Library.

Якщо використовували свою текстуру, її також треба додати в пакет, Images -> Check New Textures. Ця команда змушує редактор переглянути папку SDK/Import і додати нові файли до Texture List, файли мають бути у форматі Targa(*.tga). Не змінюючи нічого в діалозі імпорту текстур, натискаємо ОК. Все тепер наша текстура є у списку текстур редактора. Можна перейти до наступного кроку.

Діалог Object Library

Створення групи для об'єктів

Діалог імпорту текстур
Створюємо рівень
Приступимо до створення рівня, почнемо з розміщення об'єктів.

= Розміщення об'єктів 🙂
Тутор поки незакінчений, так що про докладну роботу в редакторі, збереження та компіляцію читаємо за посиланням нижче з кроку 6

Maya. Глава 1: Hello World чи перший кубик.
Підключення рівня до гри
Щоб рівень можна було створювати безпосередньо з гри, його необхідно додати до списку рівнів. Існує чотири випадки, розглянемо кожен.

SDK об'єднаний з грою
В даному випадку треба тільки відредагувати файл gamedataconfig mp map_list.ltx, вписавши в кожній з секції [deathmatch], [teamdeathmatch], [artefacthunt] назву свого рівня.

SDK не поєднано з грою, гра розпакована
В даному випадку треба також відредагувати файл gamedata\config\mp\map_list.ltx, вписавши в кожній з секції [deathmatch], [teamdeathmatch], [artefacthunt] назву свого рівня + скопіювати вміст папки [SDK folder]\gamedata\levels\назва рівня\ в папку [STALKER folder]\gamedata\levels\назва рівня\.

SDK не поєднано з грою, гра не розпакована
Повторюємо дії попереднього випадку, тільки папки треба буде створювати самому, файл gamedata\config\mp\map_list.ltx можна взяти з папки [SDK folder]\gamedata\config\mp\map_list.ltx

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

Текстури з [SDK folder]\gamedata\textures\user\ в папку [STALKER folder]\gamedata\textures\user\
Файл [SDK folder]\gamedata\textures\textures.ltx в папку [STALKER folder]\gamedata\textures\


   
Цитата