• Страница 2 из 2
  • «
  • 1
  • 2
Форум » GSC Game World » Школа модинга » Программы для работы с графикой
Программы для работы с графикой
СинийДата: Четверг, 30.01.2014, 05:43 | Сообщение # 11

Ветеран

Сообщений: 559
Репутация: 32

Статус:
Смарт-террейны в ЗП: создание и настройка лагерей сталкеровПонятие смарт-террейнов.

Смарт-террейн - это определенный скриптовый класс в игре, с помощью которого можно организовать заселение новых локаций в С.Т.А.Л.К.Е.Р., создавать постоянные и временные лагеря для НПС и монстров. Кроме этого, в смартах (назовем их так для краткости) организуются работы для НПС, реализуется логика для отдельных эксклюзивных персонажей, происходит респавн НПС и монстров, организуются укрытия от выброса для НПС.

С точки зрения игрока и НПС это определенная область на локации, вот как это выглядит в редакторе уровней:



Создание смарт-террейна в СДК ЗП.

Почему именно в редакторе уровней, спросите вы?
Допустим вы планируете большую, глобальную модификацию для игры, создаете свой новый или подключаете старый уровень к Зову Припяти и вам нужно заселить локацию. С помощью СДК это сделать гораздо быстрее и удобней, так как это инструмент, изначально предназначенный для разработки СТАЛКЕРа. Разбирая и собирая all.spawn, прописывая бесконечные текстовые секции в нем и постоянно загружая игру для съема нужных координат вы потратите в десятки раз больше времени. В СДК вы царь, бог и хозяин зоны, надеюсь убедил:) Поэтому в этой и других статьях будет рассматриваться работа только в редакторе уровней.

Разбор смарт-террейнов мы будем рассматривать на примере разобранной для СДК локации Escape (Кордон) от игры С.Т.А.Л.К.Е.Р. Чистое Небо, которую мы и будем заселять и запускать на движке ЗП.

Итак, запускаем наш СДК 0.7, загружаем локацию, далее во вкладке Edit Mode выбираем Spawn Elements, раскрываем свиток ai и выбираем smart_terrain. Далее как всегда, когда мы хотим разместить что-то на локации, выбираем вверху кнопку "чайника" или нажимаем клавишу A (Add), после чего курсор принимает форму стрелки и мы щелкаем в нужном месте, располагая наш смарт-террейн.
В данном случае мы создаем его в деревне новичков, около бункера Сидоровича.

Целесообразно добавить граф-поинт для конкретного смарта. Как вы помните, граф-поинты на локации служат для передвижения НПС и монстров по уровню в онлайне и оффлайне. Именно по ним, выбирая оптимальный путь движутся сталкеры от лагеря к лагерю и если вы хотите, чтобы они могли приходить в новый смарт-террейн, рядом с ним (или в центре) должен быть граф-поинт.
Создаем его: Edit Mode > Spawn Elements > ai >graph point
В ЗП граф-поинты еще и функционально привязаны к смартам, но это пока не важно.

Далее пропишем нужные параметры нашему смарту: ПКМ на нем > Properties:



Разберем подробней:

Name: имя смарта, состоящее из префикса уровня и собственно имени. Префикс у наc esc, а нужное имя пусть будет esc_a1.

ВАЖНО! Не используйте пробелы и кириллицу в любых названиях объектов в СДК и конфигах СТАЛКЕРА.

СОВЕТ:
Вы можете в принципе написать любое имя, например esc_a1_smart_terrain или esc_novice_lager_smart или любое другое, которое как вам кажется определит местоположение смарта на локации. НО! Когда вам нужно будет заселять локацию, расположить на ней два-три десятка смарт-террейнов, создать для них пути работ и анимпоинты, имена которых заметьте должны обязательно начинаться с имени смарта, то тогда вы натерев мозоли на клавишах поймете, что лучше имя для смарт-террейна - самое короткое! wink
А местоположение смарта можно описать в комменте в конфигурационном файле к нему.

Еще один параметр, на который обращаю ваше внимание - restrictor type. По умолчанию стоит NONE default restrictor и в принципе с ним все работает, но на разобранном уровне Затон от ЗП я увидел что в свойствах смарт-террейнов стоит тип рестриктора NOT A restrictor.
Честно говоря, не знаю в чем разница, в игре никак не заметно. Если кто знает, отпишитесь в комментах плз.

Ну и далее поле Custom Data, в котором прописываем следующую конструкцию:

[smart_terrain]
cfg = scripts\escape\smart\esc_a1.ltx

- т.е прописываем путь до конфигурационного файла для данного смарта.

Собственно все, больше в свойствах ничего трогать не нужно, пока на этом работу в СДК по созданию смарт-террейна можно считать законченной. Делаем Make Game, компилируем спавн, далее пойдет работа с конфигами.

Настройка конфигурационного файла смарт-террейна.

Давайте создадим в папке gamedata/configs/scripts папку escape - тут мы будем хранить наши конфиги и скрипты для данной локации. В ней создаем папку smart, в которой и создадим конфигурационный текстовый файл для нашего смарта, назовем его esc_a1.ltx.
В нем пропишем следующее:

[smart_terrain];esc_a1 - деревня новичков
squad_id = 1
max_population = 2

Это обязательная конструкция, которая должна быть в каждом конфиге смарта. Остальные параметры рассмотрим позже. Разберем подробней:

; - все что за точкой с запятой - комментарий, пишите что вам удобно.

squad_id = 1 - ID сквадов для этого смарта, должен быть уникальным для каждого смарт-террейна, иначе вылет. НО, для другой локации может опять начинаться с единицы и так далее.

max_population = 2 - максимальное количество сквадов (не НПС!), которые смарт-террейн может принимать в симуляции, т.е. сколько могут "заселиться" отрядов сталкеров в данный лагерь. Нужно понимать, что этот параметр работает для симуляционных отрядов, которые свободно перемещаются по локации, в самом смарте можно поселить гораздо больше постоянных и эксклюзивных сквадов, чем это число. Просто если в смарте число сквадов больше или равно max_population, то симуляционный сквад пойдет искать другой смарт-террейн.
Про сквады читаем в этой статье.

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

Регистрация смарт-террейна в симуляции.

Откроем файл gamedata/configs/misc/simulation_objects_props.ltx. В нем хранятся параметры смарт-террейнов и сквадов для симуляции их в игре. Для каждой локации прописываются секции объектов с параметрами. Давайте добавим туда свою:

[esc_a1]:default
territory = 1
sim_avail = true

Разберем подробней.

[esc_a1]:default - название и наследование класса смарт-террейна. Может принимать следующие значения:
default_base - база сталкеров
default_resource - ресурсы, смарты рядом с аномальными полями и работами для сбора артефактов.
default_lair - логово монстров.

sim_avail = true - очень важный параметр, определяющий доступность лагеря для симуляции. Если true - то смарт доступен для посещения симуляционными сквадами в т.ч и монстрами. Если false - лагерь не доступен для симуляции и респавн сквадов происходить в нем не будет! Учитывайте это. В данной строчке можно использовать стандартные условия для проверки, например:

sim_avail = {+start_simulation} true, false - лагерь будет доступен для симуляции только после получения инфопоршня start_simulation. Это очень удобно для старта симуляции на локации только после прохождения определенных квестов, чтобы ваш лагерь с нужными персонажами не вынесли раньше времени монстры или противоборствующие группировки.

Кроме этого в секции смарта можно указать строчку:

surge = 1

- которая определяет, что лагерь доступен для укрытия от выброса для НПС. Конечно еще нужно будет сделать точки путей укрытия и рестриктор укрытия (см. соответствующую статью).

Респавн НПС в смарт-террейнах.

Респавн НПС и монстров в ЗП (кроме скриптовых функций) происходит исключительно в смарт-террейнах. Для этого в конфиг-файле смарта создаем такую конструкцию:

respawn_params = respawn@esc_a1

[respawn@esc_a1]
sim_stalker

[sim_stalker]
spawn_squads = stalker_sim_squad_novice
spawn_num = 2

Разберем теперь подробно.

respawn_params = respawn@esc_a1 - ссылка на секцию респавна для данного смарта.

[respawn@esc_a1]
sim_stalker


- секция респавна со списком ссылок на секции сквадов, которые будут спавниться в этом смарт-террейне.

[sim_stalker] - собственно секция описания спавна конкретного отряда, в которой:

spawn_squads = stalker_sim_squad_novice - указываем какие сквады спавним (можно разные через запятую).

spawn_num = 2 - указываем общий максимум отрядов (не НПС!), который отреспавнится в данной секции. Тут можно использовать стандартные условия из xr_condition.script, например:

spawn_num = {+info1}2, 0 - при получении инфопоршня info1 будут респавнится 2 сквада, иначе 0, т.е. вообще респавна не будет. Это дает широкие возможности по организации заселения и респавна НПС и монстров, например можно спавнить симуляционных НПС и монстров в определенных местах только после прохождения нужных квестов.

Контроль смарт-террейна.

В ЗП у смартов предусмотрены следующие скриптовые состояния, которые можно отслеживать. Вот их описание из smart_terrain_control.script:

-- Состояние смарттеррейна
-- Может быть трех видов: normal, danger, alarm
-- normal - все как обычно, без ограничений
-- danger - в зоне контроля находится игрок с оружием. Нужно запереть двери и предложить ему убираться
-- alarm - игрок атаковал смарт. Нужно запереть двери и подождать время.

Думаю, тут объяснять ничего не нужно, все и так понятно. Всвязи с этим, в настройках смарт-террейна можно указывать следующую секцию:

smart_control = smart_control - ссылка на секцию контроля. И дальше собственно секция:

[smart_control]
noweap_zone = pri_a16_sr_noweap
ignore_zone = pri_surge_hide_a16; pri_a16_sr_light
alarm_start_sound = {-pri_b305_fifth_cam_end} pri_a16_base_alarm, nil
alarm_stop_sound = {-pri_b305_fifth_cam_end} pri_a16_base_relax, nil

Разберем подробней:

noweap_zone = - зона принудительного убора оружия, space restrictor с прописанным скриптом убора оружия у актора.

ignore_zone = зоны, в которых у неписей устанавливаются флаги combat_ignore_cond и combat_ignore_keep_when_attacked = true. Это нужно для организации баз сталкеров, в закрытых помещениях, чтобы при близком денжере (опасности) они не срывались в комбат и не тыкались носом в стены в поисках врага.

alarm_start_sound = - озвучка на начало атаки актора, звук, прописанный в script_sound_...ltx. Можно использовать стандартные логические проверки и условия.

alarm_stop_sound = - аналогично, только на конец атаки актора.

Все параметры в секции smart_control должны быть указаны, иначе вылет. Заметим, что эту секцию нужно делать для крупных баз и лагрей сталкеров, для обычных и симуляционных смарт-террейнов она необязательна.

Остальные параметры.

Вот еще несколько параметров, которые можно прописывать в конфигурационном файле смарта (взято со сталкервики):

respawn_only_smart = true - если true, из смарта не удаляются отряды в симуляции.

def_restr = pri_a16_sr_noweap - некая замена out_restr из ТЧ. Зона, где лагерь. За пределами - лагеря нет.

safe_restr = pri_surge_hide_a16; pri_a16_sr_light - зоны, в которых неписи бессмертны.

spawn_point = zat_sim_16_spawn_point - точка (way point) спавна НПС в данном смарте.

arrive_dist = 100 - на каком расстоянии от смарта отряд считается прибывшим в смарт и регистрируется в нем.

Радиус и время респавна.

В чистой (немодифицированной игре) С.Т.А.Л.К.Е.Р. Зов Припяти НПС в смарт-террейнах респавнятся через определенный промежуток времени, который изменить в конфиге нельзя. НО, есть один полезный скрипт (измененный smart_terrain.script), который добавляет следующие рабочие параметры в конфиг:

respawn_time = - промежуток времени, через который спавнить, указывать в секундах.

respawn_radius = - расстояние в метрах, на котором спавнить. Если игрок ближе, то не спавнится.

Таким образом можно гибко настраивать каждый смарт. Скачать этот полезнейший скрипт можно у нас в архиве полезностей.

Логика эксклюзивных персонажей.

Для того чтобы взять под логику определенных, эксклюзивных персонажей из смарт-террейна, нужно в конце конфиг-файла смарта добавить такую секцию:

[exclusive]pri_b35_envoy_after = pripyat\pri_b35_envoy_logic.ltx

Т.е. мы указываем имя работы (секции логики, в данном случае pri_b35_envoy_after) и ссылку на файл, в котором эта секция будет прописана.

Подробней о работах и анимпоинтах для смарт-террейна читайте в следующей статье.

Статью я взял со Сталкер2 , автор увы не указан ,Но главное  если кого интересует больше Тени Чернобыля , статья может быть только познавательной , как бы элементы те же ,все тоже но принцип спавна в Зове Припяти и Тенях чернобыля используется абсолютно разный , ТЧ работают  с CDK04 . а ЗП c CDK07
СинийДата: Суббота, 01.02.2014, 10:45 | Сообщение # 12

Ветеран

Сообщений: 559
Репутация: 32

Статус:
Лектор777@, представь себе такую вещь после спавна CDK нужно несколько часов чтобы комплировать карту и чем больше локаций тем больше гемороя , и вроде как если работал с картами в СDK  то с ними уже работать в ACDC нельзя могут не работать
СинийДата: Воскресенье, 02.02.2014, 07:50 | Сообщение # 13

Ветеран

Сообщений: 559
Репутация: 32

Статус:
Лектор777@, Поэтому  в основном команда состоит из мапера который делает карты или сшивает их ,а вот спавнер выбирает два пути либо он работает со скриптами и ACDC  , либо мапер дает карту сделанную на драфте и за тем спавнер спавнит всех НПС  Аномалии , арты графпоинты , смарты и многое другое в плоть до прописания диалогов в спавн файла all и только потом делают окончательную компиляцию локаций , так сделанные карты предпотчтительно  уже так и делать, нол всеравно дальше начинают работать скриптеры  , но есть еще путь по которому работают команды , этол просто берут готовый пак локаций  , или к примеру оригинальную карту и команда скриптеров делает все сама ,только иногда залазия в all.spawn  . Тебе наверно объяснять не надо если ты стал хорошим скриптером , ты делаешь  моды адоны которые можно просто дополнять в игру по ходу , без переигровок . Работая в ACDC или CDK этот мод в случае изменений нужно переигрывать с начала и даже фиксами тяжело исправить недочеты. 
Так что сам решай как тебе быть , но вроде как ты начал путь первый как в прочем и большинство , ACDC + скрипты.
СинийДата: Воскресенье, 02.02.2014, 12:38 | Сообщение # 14

Ветеран

Сообщений: 559
Репутация: 32

Статус:
Лектор777@, но скрипты всегда нужны , даже в первую очередь ,хотя этот этап  наиболее сложный
Форум » GSC Game World » Школа модинга » Программы для работы с графикой
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:
Посетители дня
Посетители:

Главная | Форум | Файлы | Статьи | Галерея

   |