Как сделать локацию для сталкер

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

Материал из 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. Совет как запустить быстро карту: в корневой папке с ЗП создаём батник, в него вгоняем:

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

Источник

Создание текстуры локации для отображения на мини-карте и в PDA

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

Содержание

Этап 1: Настройка игры

Запустите игру, в её опциях выберите, тип рендера: Статическое освещение. Примените, а после перезапустите игру.

Теперь в опциях игры, перейдите в «Расширенные» настройки: там поставьте все ползунки на максимум. Снова примените, и выйдите из игры.

Этап 2: Установка специальной погоды

Выберите, как вам удобнее это сделать:

Для этого в файле game_maps_single.ltx, папки gamedata/configЧН и ЗП, папка gamedata/configs), найдите нужную вам локацию, и укажите ей погоду: weathers = map

P.S. После создания текстуры, вы можете указать прежнюю погоду.

Этап 3: Процесс создания текстуры

Запустите игру. Перейдите на нужную вам локацию. Выполните пункт 2.2, если пожелали не выполнять пункт 2.1.

Введите в консоли команду: demo_record 1

Появятся мигающие красные надписи, нажмите на клавиатуре F11.

ВНИМАНИЕ: чтобы на текстуре не было посторонних надписей, не наводите на какого-либо npc перекрестие, перед нажатием F11.

Этап 4: Местонахождение текстуры и её конвертация

Готово! Вы сделали текстуру вашей локации.

Найти её вы можете, по умолчанию, в папке:
Путь для ТЧ: Мои документы/stalker-shoc/screenshots
Путь для ЧН: Мои документы/stalker-stcs/screenshots
Путь для ЗП: Мои документы/stalker-cop/screenshots

ВНИМАНИЕ: цифры в квадратных скобках, это координаты bound_rect. Они понадобятся для правильного отображения игрока на локации.

Чтобы текстура работала в игре, её нужно конвертировать из .tga в .dds. Для этого используйте любой графический редактор, поддерживающий формат .dds.

Например, Adobe Photoshop с NVIDIA Texture Tools for Adobe Photoshop. Если выбрали этот графический редактор, то прочтите эту статью: Изменение текстур

Этап 5: Интеграция текстуры в игру

После того, как вы сконвертировали текстуру вашей локации в .dds, переименуйте её в map_название_вашей_локации, и поместите в папку gamedata/textures/map

Теперь нужно указать вашей локации текстуру. Для этого откройте файл game_maps_single.ltx, найдите в нём свою локацию, и укажите: texture = map\map_название_вашей_локации

Также в данном файле нужно указать вашей локации её координаты bound_rect и global_rect.

Источник

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

Как сделать локацию для сталкер

Создание анимации через файл *.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 не будет опубликован. Обязательные поля помечены *