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

Облаштування локацій у ЧН


Infernis
Ранг:
Майстер
Роль:
Модмейкер
Угруповання:
Воля
Записи:
905
Приєднався:
7 місяців тому
 

Ця стаття логічно є продовженням попередньої статті щодо перенесення локацій .

Відразу скажу, що тутор розрахований на ЧН, тож жодних питань щодо ПП не ставте.

 

Зміни назви локації

Для зміни назви локації відкриваємо файл configs\game_levels.ltx та шукаємо там свою локацію. Бачите рядок caption = "my_level"? Це посилання на розділ у файлі configs\text\rus\ui_st_pda.xml . Створюємо у файлі таку секцію:

<string  id = "my_level" > 
	<text > Мій рівень </text >
 </string >

Після цього в грі буде писати назву рівня не "my_level", а "Мій рівень"

 

Додавання завантажувального екрану на локацію

Для додавання завантажувального екрану локації йдемо в папку textures\intro від моди або чистої гри і шукаємо там завантажувальний екран своєї локації - intro_наша_локація . Потім просто копіюємо текстуру в нашу геймдату у відповідну папку.

 

Додавання фонової музики на локацію

Відкриваємо файли configs\game_maps_single.ltx та configs\game_levels_music.ltx . У файлі configs\game_maps_single.ltx прописуємо у секції нашої локації посилання на музичну секцію:

music_tracks                      = name_musics

І у файлі configs\game_levels_music.ltx :

[ name_musics ] 
music \ amb08				 = 4 , 22 ,   0.45 ,    20 , 40 
music \ amb04		    	 = 22 , 4 ,   0.55 ,    10 , 20   

Скрізь розглядатиму перший рядок:

  • music\amb08 - музичний трек який гратиме на локації
  • = 4, 22, - проміжок, в якому гратиме цей трек (час в ігровому годиннику, тобто тут амбіент гратиме з 4 ранку до 10 вечора)
  • 0.45, - гучність музики на локації
  • 20, 40 - що ці цифри означають, я не знаю, але думаю, що того, що ми вивчили, і так вистачить для налаштування звучання.

 

Розміщення локації на глобальній карті

Автор: Xmk (відредагував БАТЯ-STALKER)

 

Визначення bound_rect

Йдемо в папку levels \ my_level \ і відкриваємо там файл level.ltx. Якщо в ньому немає секції "[level_map]", потрібно її додати:

[ level_map ]
 bound_rect = -279.07 , -603.500 , 344.518 , -23.000 texture = map\map_my_level 
  • bound_rect – це ігрові координати текстури, щось на зразок сітки координат на глобальній карті. Чотири числа означають крайні точки координат – верхній лівий кут глобальної карти має координати 0,0, а нижній правий кут глобальної карти має координати 1024, 2634 . ЗВЕРНІТЬ УВАГУ , це не пікселі! Сама текстура має розмір 1024 * 2048 , а може бути і будь-якого іншого - але для гри висота карти береться рівною 2634 пункти, при тому, що ширина зберігається 1024 . Це дуже важливе зауваження – його важливість пояснимо далі.
  • Texture – це текстура картки локації. Саме вона показується на міні-карті у грі, саме вона ж НАКЛАДУЄТЬСЯ (так-так, сама накладається) на глобальну карту в тому місці, де ми захочемо.
  • bound_rect – це опис крайніх координат локації ВСЕРЕДИНІ самої локації. Тут, напевно, треба пояснити. Будь-хто мав справу з координатами на рівнях, помічав, що ікс і ігрек (висоту зараз не будемо брати до уваги) бувають не тільки позитивними, а й негативними. Крапка на рівні, що має координати (0,0), це не кут карти, як можна було б припустити, а десь біля її середини. Наприклад, на Кордоні точка з координатами 0,0 розташована неподалік посту Кузнєцова під мостом. А ось біля бункера Сидоровича координата ікс у гравця (або будь-чого іншого, будь-якого об'єкта в грі) буде негативна. А біля блокпоста військових (той, що на півдні, вниз дорогою від села новачків) координата ігор буде негативною. Так ось, у рядку bound_rect послідовно вказані мінімальні координати локації і наймаксимальні. Тобто найменший ікс, потім найменший гравець, потім найбільший ікс, і четверте число – найбільший гравець. Зверніть увагу, ці координати зовсім не там, де можна побігати. Ні. Йдеться про кутах локації, там де закінчується земля і починається порожнеча. На кордоні південно-західний кут має координати –317.164, –633.718, а північно-східний 404.880, 811.627. Точність вказана до тисячних.

Визначення global_rect

Параметр global_rect можна знайти у файлі configs\game_maps_single.ltx у секції своєї локації.

global_rect – координати прямокутника на глобальній карті, той шматочок куди буде вписано (накладено) карту локації, і де будуть з урахуванням масштабу відображатися всі мітки локації. Метод вказівки координат аналогічний, беруться два кути, перший північно-західний, другий південно-східний. Зверніть увагу, при визначенні координат на локації відлік ігрека йде знизу вгору, а навпаки, зверху вниз. Тобто точка з координатами 50, 100 буде вищою за точку 50, 200. А точка з координатами 50, 0 – взагалі на самому верху. У той час як точка з координатами 50, 2634 – на низу глобальної карти. Взагалі правило відліку координат від верхнього лівого кута текстури характерне для СТАЛКЕР, не знаю як для інших ігор, що використовують dds формат, може так само. Подивимося на глобальні координати карти Кордону на великій, глобальній карті.

global_rect=355.0,2011.0,576.0,2453.000000 Виходить, прямокутник куди буде вписана карта Кордону, визначений двома точками. Перша з координатами (на глобальній карті!) 355.0,2011.0, а друга з координатами 576.0,2453.000000. Навіщо стільки нулів – не питайте. Не знаю. Але за цими координатами видно, що карта Кордона буде вписана в прямокутник, який починається від 355 ікс і 2011 по ігор і закінчується на 576 ікс і 2453 по ігор. Разом на глобальній карті розмір карти Кордона становитиме 221*442 пункти. Повторюся - це не пікселі, а пункти, кількість яких визначена в другій секції файлу конфігурації, який ми зараз розбираємо.

Цікаво, що підземелля Агропрому, наприклад, на глобальній карті теж є – але для них відведено лише 2*3 пункти, і вони знаходяться майже посередині карти Агропрому! Саме тому коли гравець перебуває у підземці, його мітка завжди світиться в районі заводу, де ховався Крот при першому заході на локацію, та практично нерухома. Подібним чином зроблено і з лабораторією Х18 – вона на глобальній карті розташована праворуч від Радара, але розмір прямокутника всього 2*2 пункту.

Отже, у нас є локація, яка має карти – textures\map\map_lost_villiage.dds наприклад, bound_rect вже відомий.

Нам потрібно розмістити її на глобальній карті, наприклад, ось тут:

Відкриваємо файл ui_global_map.dds через Stalker Icon Viewer та знімаємо координати верхнього лівого кута майбутнього місця розташування локації:

На жаль, на скріншоті не видно курсору.

Отже, ми отримали координати: x=180, y=370

У конфізі глобальна карта має координати 1024,2634 , тоді як текстура всього 1024x2048 .

Що ми робимо? Запускаємо калькулятор і ділимо 2634 на 2048, у нас виходить 1.2861328125

Далі множимо координату y(370) на значення, що вийшло(1.2861328125), у нас виходити 475.86…. (округлимо)

Далі все просто, скажімо наша карта локації 100 на 100, задаємо в global_rect нашої локації 180.0, 475.86, 280.0, 575.86

  • 180.0 – координата x лівого краю текстури локації
  • 475.86 – число, яке ми одержали, координата верхнього краю текстури локації
  • 280.0 – координата x правого краю текстури локації. Додаємо до координати лівого краю локації ширину картки
  • 575.86 – координата y нижнього краю текстури локації. Додаємо до координати верхнього краю локації висоту карти

Ось власне, що в нас вийшло:

Всі. Наша локація повністю розміщена на глобальній карті.


   
Цитата