Сталкер как создать локацию

Создание сингл локации через СДК ЧН

Материал из S.T.A.L.K.E.R. Inside Wiki

Думаю что многие хотели бы сделать свою сингловую локацию для ЗП через СДК ЧН,и после выхода патча на него это стало возможным.в этом уроке я вас научу создавать собственные локации.

Нам необходимо(Если СДК ЗП,то 1,2 и 3 не нужно):

2.X-ray SDK 0.6 upgrade [2]

3.Папка configs и scripts натроенная под ЗП : [3]

4.Террейн, готовый для СДК(Я просто взял декомпилированный уровень из билда 1114)

Приступим к работе:

1.берём конфиги из СДК: game_maps_single.ltx и пишем

game_levels.ltx заменяем весь текст на ниже приведённый

2.Далее работа в СДК

Вот информация от Бардака:

Для относительно быстрой компиляции карты, но с качеством выше чем draft, в свойствах своей карты (Scene->Options), где настраиваем качество компиляции, сначала выбрать Draft, затем Custom и выставить следующие значения’:

1.Теперь нам нужно сделать на уровне AI сетку

Теперь наш уровень готов к компиляци.Для этого нажимаем по очереди: Compile\

Теперь нужно скомпилировать уровень: 1.для этого берем файл xrLC.bat и в него пишем

для компиляции уровня

2.Теперь файл xrDO.bat и пишем в него

3.берем файл xrAI.bat и вгоняем в него для компиляции AI сетки

4.После удачной компиляции пишем в этот же батник строки для создание all.spawn

И всё готово,берем следующее:

Всё это помещаем в игру

Использовалась некоторая информация от Pihan13 и Kostya_V

Источник

Создание сингл-уровня для ТЧ

Материал из S.T.A.L.K.E.R. Inside Wiki

Всем привет! Сейчас я расскажу, как мне удалось создать уровень для одиночной игры без подключения к существующим локациям.

Содержание

Инструментарий.

Первые шаги.

Давайте всё настроим по порядочку:

1. В game_graphs.ltx прописываем наш уровень: почти в самом конце дописываем:

2. В game_levels.ltx следующие работы: вписываем

В ЗП можно добавлять уровни с числом от 183 и выше.

3. В game_levels_music.ltx : добавляем

Если поняли указываются звуковые файлы из папки sounds

теперь пишем секцию ниже:

5. Теперь нужно подредактировать конфиг в СДК, чтобы в граф-поинт можно было указать наш уровень.

Открываем level_editor\gamedata\config\game_levels.ltx. Вписываем тоже что и в game_levels.ltx от ЗП (см. п. 1) (именно наш уровень со своим уникальным идентификатором) С конфигами всё. Теперь приступим к самому моделированию.

Моделирование геометрии уровня.

Работа в SDK

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

Сборка АИ-сетки.

Настройка сцены.

Сборка Локации

После проверки что всё настроено, ничего не забыли, и не влепили лишнего переходим к сборке.

Компиляция карты

Если вы добавляли детали (траву к примеру), то после компиляции xrLC следует выполнить компиляцию xrDO_light:

После нажатия ОК, через некоторое время появится окно компилятора. Компиляция на Draft’е не занимает много времени и ресурсов вашего компьютера. Но для компиляции уровней на высоком кач-ве лучше закрыть все ресурсопрожорливые приложения. Не даром у многих во время компиляции на таком качестве, компилятор вылетает с логом «Out Of Memory». По окончанию компиляции уровня будет написано: Congratulations!. Сейчас заходим в папку level_editor\gamedata\levels, берём папку pihan (это результат нашей компиляции)и кидаем её в ЗП\gamedata\levels. Едем дальше.

ВНИМАНИЕ!

Данная стать в значительной степени устарела.

КАТЕГОРИЧЕСКИ предупреждаем

Используйте только официальный софт от разработчиков игры, а именно: Официальный xrAI для SDK 0.4

За более подробной информацией обратитесь на AMK форум

Работа с aiwrapper’ом и грандиозное завершение.

т.е. к примеру написали в батник

сохранили батник, запустили, всё прошло, пишем далее:

опять сохранили, запустили, прошло и так все 6 шагов.
Сейчас весь результат работы с аивраппером помещается в level_editor\2215\gamedata. После последней команды будет создан уже и all.spawn и game.graph, но это всё не то.
После всего пишем в батник заветную команду:

Эта команда перешьёт и all.spawn, и части уровня.

Всё, отныне файл game.graph зашит в all.spawn, а то что нам надо лежит в папке level_editor\3502\gamedata

Из этой папки (из 3502) берём:
1. Из gamedata\levels\pihan берём всё содержимое и кидаем в папку ЗП\gamedata\levels\pihan с заменой существующих файлов.
2. Из gamedata\spawns берём all.spawn (он по идее как то по другому сейчас называется, переименуйте в all.spawn) кидаем в ЗП\gamedata\spawns.
3. Также скидываем в геймдату ЗП текстуры, звуки, модели (если надо).
4. Совет как запустить быстро карту: в корневой папке с ЗП создаём батник, в него вгоняем:

Собственно всё. Мучайтесь. Данный урок позволяет создать локацию, но не объединяет локации (как объединить аллспавны формата ЗП, я пока не знаю).

Источник

Обустройка локаций в ЧН

Материал из S.T.A.L.K.E.R. Inside Wiki

Данная статья логически является продолжением предыдущей статьи по переносу локаций.

Сразу скажу, что тутор рассчитан на ЧН, так что никаких вопросов насчет ЗП не задавайте.

Содержание

Необходимые программы

Изменения названия локации

Для изменения названия локации открываем файл configs\game_levels.ltx и ищем там свою локацию. Видите строку caption = «my_level»?Это ссылка на секцию в файле configs\text\rus\ui_st_pda.xml. Создаем в файле такую секцию:

После этого в игре будет писаться название уровня не «my_level», а «Мой уровень»

Добавление загрузочного экрана на локацию

Добавление фоновой музыки на локацию

Открываем файлы configs\game_maps_single.ltx и configs\game_levels_music.ltx. В файле configs\game_maps_single.ltx прописываем в секции нашей локации ссылку на музыкальную секцию:

И в файле configs\game_levels_music.ltx:

Везде буду рассматривать первую строчку:

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

Автор: Xmk (отредактировал БАТЯ-STALKER)

Определение bound_rect

Идем в папку levels\my_level\ и открываем там файл level.ltx. Если в нем нет секции «[level_map]», то нужно ее добавить:

Определение 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, в то время когда текстура всего 1024×2048.

Что мы делаем? Запускаем калькулятор и делим 2634 на 2048, у нас получается 1.2861328125

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

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

Вот собственно, что у нас получилось:

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

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

Напоследок

Статья еще не закончена и будет дополняться (теперь вряд ли).

Источник

Советы начинающим

Сталкер как создать локацию. Смотреть фото Сталкер как создать локацию. Смотреть картинку Сталкер как создать локацию. Картинка про Сталкер как создать локацию. Фото Сталкер как создать локацию

Создание анимации через файл *.seq

Создание новой группировки

Назовем нашу группировку (айди) grom

Добавляем группировку в таблицу, прописываем отношение к другим группировкам, НЕ ЗАБЫВАЕМ добавлять по еще одному значению по вертикали!

;(порядок должен совпадать с communities_relations)
[communities_sympathy]
actor = 0.0
bandit = 0.0
dolg = 0.0
ecolog = 0.0
freedom = 0.0
killer = 0.0
army = 0.0
monolith = 0.0
monster = 0.0
stalker = 0.0;0.01
zombied = 0.0
grom = 0.0

Сюда тоже добавляем в таком же порядке.

P.S. В пункте 6 Все штуки «[» и «]» заменить на » «

Добавление физического объекта на локацию

В этой статье я подробно напишу как добавить на локацию физический объект через all.spawn. Создадим на затоне на Земснаряде газовую плиту (В комнатке или как там она называется =))))

Нам потребуются файлы: all.spawn и распаковщик all.spawn’а.

Положим сам all.spawn в распаковщик и нажимаем Декомпиляция или по другому там написано Decompile. Нажимаем начинается распаковка. Все готово.

Теперь открываем файл alife_zaton и найдем например под номером [215]

[215]

В section_name не писать что попало а писать само секционное имя.

В name можно написать любое имя например напишем zaton_gaz_plita

Если будете спавнить несколько таких плит то имя должно БЫТЬ ИНДИВИДУАЛЬНЫМ т.е если вы ещё захотите заспавнить плиту с таким именем то в name напишем zaton_gaz_plita_2 и т.д понятно? =)))

game_vertex_id Гейм вертекс

level_vertex_id Левел вертекс

visual_name тут уже идет на саму модель плиты то вот что мы напишем dynamicskitchen_roomgaz_plita_small

Ну а остальные строчки не важны =)))

Ну что же приступим? =))

А alife_zaton важно посмотреть последний номер если он например [1920] то при создании нового вы должны написать [1921] ну т.е должно быть индивидуальным

за поворот объекта отвечает значение direction. Нужно указать x, y, z значения поворота объекта на уровне.

Если кто-то не понял обращайтесь ко мне в асю : 555905622

Или на мыло: kirill_95-08@mail.ru

Изменение старта главного героя

1) ACDC для ЗП
(narod.ru/disk/17377026000/ACDC%20Cop.rar.html)
2) Блокнот (надеюсь он у тя есть XD )
3) Снималка координат (в поисковике так и введи СКАЧАТЬ
СНИМАЛКУ КООРДИНАТ ДЛЯ СТАЛКЕРА)

4) ActivePerl-5.10.0.1004 (в поисковике так и введи СКАЧАТЬ
ActivePerl-5.10.0.1004)

5) Распакованная игра

Чуть не забыл руки! Но если руки растут не оттуда, наверное, это ноги! 😉

Начнем:
1) Скачиваем ActivePerl-5.10.0.1004

2) Скачиваем ACDC

3) Устанавливаем ActivePerl-5.10.0.1004

4) Открываем папку gamedata/spawn/ копируем от туда файл
all.spawn

5) Открываем папку в которой находится ACDC

6) Вставляем туда all.spawn

7) Распаковываем all.spawn соответствующим bat файлом
(decompile.bat) если нет такого, проделываем такие
операции:

8) После этого открываем игру, бежим в то место где хотим
начинать игру, снимаем координаты. Координаты должны
выглядеть так:

x=
y=
z=
game_vertex=
level_vertex=

[982]
; cse_abstract properties
section_name = actor
name = zaton_actor

position = x,y,z

direction =0,0,0
s_flags = 0x29

game_vertex_id = game_vertex

level_vertex_id = level_vertex

; cse_visual properties
visual_name = actorsstalker_neutralstalker_neutral_1

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0xc2ba3333
upd:creature_flags = 0x99
upd:position = x,y,z
upd:o_model = 0
upd:o_torso = 2.81339907646179,-0.0120869996026158,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_trader_abstract properties
money = 15000
trader_flags = 0
character_profile = actor
cse_alife_trader_abstract__unk1_u8 = 1

upd:actor_state = 0
upd:actor_accel_header = 0
upd:actor_accel_data = 0
upd:actor_velocity_header = 0
upd:actor_velocity_data = 0
upd:actor_radiation = 0
upd:actor_weapon = 215
upd:num_items = 0

11) x,y,z – меняем на цифры свои «смотри пункт 8»,
level_vertex и game_vertex то же меняем на свои

Вывод сообщения на экран

Изменение HUD’a

Файлы

Советы:

Спавн предметов

Спавн аномалии

attack_animation = idle —?(скорее всего партикл)

Создаем собственную еду

Для начала отрываем файл: items из директории: gamedataconfigsmisc

Идём в самый конец файла и добавляем туда это:

(Показываю на примере водки)

[my_napitok]:booster
$spawn = «food and drugsmy_napitok »
cform = skeleton
visual = dynamicsdevicesdev_vodkadev_vodka.ogf
description = st_my_napitok_descr

inv_name = st_my_napitok
inv_name_short = st_my_napitok
inv_weight = 0.6 ;0.2

inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 5
inv_grid_y = 2
cost = 150

bone_name = bip01_r_hand
position_offset = 0.0,0.0,0.0
angle_offset = 1.570790,1.570790,3.92699

break_particles = destroy_fxdestroy_bottle
break_sound = materialbottlecollidebottle_break_1

Теперь поясню:

inv_name = st_my_napitok — ссылка на имя
inv_name_short = st_my_napitok — ссылка на имя
inv_weight = 0.6 ;0.2 – вес предмета(изменяйте первое число)

inv_grid_width = 1 – высота иконки по клеткам
inv_grid_height = 1 – ширина иконки по клеткам
inv_grid_x = 5 – координата иконки по оси х
inv_grid_y = 2 – координата иконки по оси y
cost = 150 — стоимость

attach_bone_name = bip01_r_hand — не трогайте

bone_name = bip01_r_hand
position_offset = 0.0,0.0,0.0
angle_offset = 1.570790,1.570790,3.92699

break_particles = destroy_fxdestroy_bottle
break_sound = materialbottlecollidebottle_break_1

use_sound = interfaceinv_vodka — не трогать

После того как всё сделали, сохраняем.

Идём в файл: st_items_equipment. В папке: gamedataconfigstextrus

Сразу после строчки: пишем это:

Название которое будет высвечиваться в игре

Любое описание какое захотите.

Сделали? Если да то сохраняем и идём дальше…

Нам осталось только добавить наш супер-напиток торговцу, Бороде например

Итак, идём в файл: trade_zat_a2_barmen в папке: gamedataconfigsmisctrade

И везде где есть слово еда: прописываем по аналогии с другой едой, например с хлебом.

Не следует забывать о том, что надо писать название которое понимает игра. В нашем случае это : my_napitok

Спавн НПС через скрипт

Tris. Скажу ему спасибо.

Как создать тайник

Надеюсь, распаковывать all.spawn умеем?

После распаковки открываем файлы alife_zaton
Например находим строчки под номером [52]

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 293223
object_flags = 0xffffff3f
custom_data =
Внимание. надо сменить [52] на [1866] нельзя чтобы были номера одинаковыми.

; cse_alife_object properties
game_vertex_id = 0 гейм вертекс
distance = 0
level_vertex_id = 293223 левел вертекс
object_flags = 0xffffff3f
custom_data =
Если хотите рюкзак пропишите это:

; cse_alife_inventory_box properties
tip = inventory_box_use

Координаты можно отснять прогой Position Extraktor

И вот что выйдет

; cse_alife_object properties
game_vertex_id = 14
distance = 0
level_vertex_id = 133074
object_flags = 0xffffff3f
custom_data =
Всё запаковываем all.spawn и появится файлик new. Копируем его в сталкера в папку spawn и переименовываем в all.spawn

Параметры погоды

sky_rotation = 0 ; определяет положение (азимут) скайбокса на описываемый час. Если выставить в соседних секциях разные значения азимута, то в переходах между секциями скайбокс будет плавно совершать вращение от одного значения к другому.

sky_color = 1.0, 1.0, 1.0 ; это цвет неба, или, точнее, цвет рассеянного света,
формат из 3 цифр, как и в параметрах ниже, подразумевает цветовую модель RGB, учитывая то, что здесь максимальная интенсивность цвета (255), здесь равна 1.0.

Аналогично эффекту смешивания в фотошопе (screen). НО! Опытным путем установлено, что движок может работать со значениями больше единицы.

far_plane = 350 ; это, судя по всему, дальность видимости (расстояние, на котором «обрезается» карта).

fog_distance = 350 ; в DX9 это расстояние, на котором туман фактически «прекращает» действовать. непосредственно дымка, интенсивность которой задаётся fog_density, «висит» в радиусе fog_distance. за пределами этого радиуса часть геометрии «съедается»
и вместо неё отображается небо (скайбокс). правильно подобранная текстура неба имитирует вдали клубы тумана. а уже дальше снова проявляется геометрия уровня (холмы и т.д.). в DX8-режиме туман рудиментарен и обсуждать его нет особого смысла.

fog_color = 0.043, 0.043, 0.055 ; непосредственно сам цвет тумана. При слишком высоких значениях параметра объекты вдали будут светлее неба, поэтому если вдали видим «белые сосны», то проблема именно в этом параметре.

fog_density = 0.9 ; это плотность тумана, выставив значение в 0, можно увидеть четкие края карты, а если поставить значение больше единицы, то туман будет виден прямо перед носом.

rain_density = 0.2 ; это плотность дождя, действует, видимо, как и туман. Примечательно, что зависимость от параметра нелинейна, и значение 0.2 практически не отличается от единицы. Чтобы сделать действительно слабый дождь, надо экспериментировать с очень маленькими значениями.

rain_color = 0.21, 0.21, 0.27 ; цвет (непосредственно капель) падающего дождя.

thunderbolt = thunderbolt_collection_default ; это имя заготовки грозы, если грозы не предусмотрено, значение можно оставить пустым.

bolt_duration = 0.35f ; это собственно продолжительность фазы вспышки молнии. выставив высокое значение, можно вовсе получить не молнию, а некое плавно нарастающее свечение.

lmap_color = 1.0, 1.0, 1.0 ; видимо, цвет лайтмапа.

sun_color = 0.0, 0.0, 0.0 ; свет солнца, его интенсивность также влияет на тени, если солнце не светит, теней от него не будет. Зависимость глубины тени от значений света не линейна.

env_ambient = ambient_env_rain ; это набор звуков окружения.

Создание оружия

Все эти файлы мы должны подготовить перед тем как начать. Если вы готовы то продолжим.

За характеристики отвечают эти строки:

И нужно будет исправить эту строку: hud и поставить = wpn_ak47_hud Должно получиться так: hud = wpn_ak47_hud

Отрываем файл: weapons

И видим такую структуру:

#include «w_ak74.ltx»
#include «w_ak74u.ltx»
#include «w_fn2000.ltx»
#include «w_rpg7.ltx»
#include «w_knife.ltx»
#include «w_bolt.ltx»
#include «w_f1.ltx»
#include «w_rgd5.ltx»
#include «w_gd5.ltx»
#include «w_rg6.ltx»

Прописываем по анологии, должно получиться так:

Всё сохраняем, и идём дальше.

Открываем файл: st_items_weapons

Советский автомат Ак-47.

Проверяем, если всё правельно сохраняем, и идём вперед.

Открываем файл: mp_ranks

После того как везде прописали сахраняем.

Отрываем файл trade_zat_b30_stalker_trader.

Открываем Файл inventory_upgrades

отрываем файл stalkers_upgrade_info

Пример:

wpn_pm
wpn_pb
wpn_fort
wpn_ak47 —Наше оружие

Потом ищем Азота и делаем тоже самое.

Добавление места для сна

И меняем на:

И также меняем на:

function sleep(actor, npc)
local sleep_zones = <
«произвольное название вашего места»,
«zat_a2_sr_sleep»,
«jup_a6_sr_sleep»,
«pri_a16_sr_sleep»,
«actor_surge_hide_2»
>

Собираем all.spawn. Готово! Теперь после запуска игры с новым all.spawn у нас будет спальное место в барже Ноя (координаты брались оттуда).

Вывод информации о своём моде в главном меню

Я увидел в sgm версию мода, хотел попытатся сделать тоже самое но ничего не вышло. Методом проб и ошибок я научился выводить версию и название мода изменив всего 3 файла, а в sgm наверно таких файлов штук так 10 и тем более своих.

Сегодня я напишу в этом уроке как выводить инфу о своем моде в главном меню.

Сложность: очень очень очень легко

В самом начале видим вот это:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *