Перейти к контенту
Zander_driver

OGSE: КБ разработчиков

Рекомендуемые сообщения

"Конструкторское бюро" OGSE.
Все о платформе, разработке, использовании материалов Old Good Stalker Evolution, а также всяческие предложения по дальнейшему развитию.

 

Исходники ogse.dll: https://yadi.sk/d/smv9hMa3gqGf5


Собирать только VS 2005 или VS 2008. В противном случае не взлетит.
Вроде бы внешних зависимостей никаких, необходимые файлы уже включены в проект.

 

Создаете файл с именем level.puddles в папке с нужной локацией. Открываете файл в текстовом редакторе и вносите туда записи вида:



[south_blockpost]
center = -84.61,-34.95,-347.90
max_depth = 0.5
radius = 30

[south_blockpost] - имя. Никакой роли не играет, служит лишь для ориентирования. Должно быть уникальным в пределах одного файла.
center - координаты центра лужи на локации
max_depth - максимальная глубина лужи. Выбирается таким, чтобы актор в самом низком присяде не смог в нее "нырнуть" с головой.
radius - размер лужи.
 
Определение координат для луж несколько заморочено. Связано это с тем, что не в любом месте можно поставить лужу - она может быть лишь в локальном углублении. Для выявления таких углублений предлагаю следующий вариант (именно им пользовался я). Декомпилируете локацию, загружаете в сдк. Удаляете ВСЕ объекты, кроме террейна, далее работаете только с ним. В свойствах террейна увеличиваете его вертикальную координату так, чтобы координатная сетка в сдк была полностью под ним. Затем понемногу "опускайте" террейн обратно. В тех местах, где будет появляться координатная сетка, и будут находиться локальные углубления. Киньте там калаш (или другой объект), узнаете координаты. Для большей заметности помогает сделать сетку "погуще".
Другой способ предложил Deathdoor. Сделайте очень большую плоскость в майке, обтяните заметной текстурой. Потом вставьте ее на локацию в LE под террейн, ну и двигайте потом вверх. Принцип аналогичен вышеописанному - там, где будет проступать плоскость, там локальное углубление.

 

При реализации этих эффектов довольно быстро стало понятно, что далеко не каждый источник света с ними выглядит хорошо. Потому была внедрена система пообъектной настройки фларов и объемного света. Для каждого источника можно включать или выключать эти эффекты отдельно двумя способами:
1) В all.spawn. Найдите секцию лампы, возьмите оттуда light_flags. Объемный свет включается путем выставления в light_flags флага 0x40, флары - флага 0х80. Выключаются эффекты снятием соответствующих флагов. Модифицируете флаг, собираете спавн, начинаете новую игру, наблюдаете появившиеся эффекты. Можно новую игру и не начинать, тогда перепишите нет-пакет лампы скриптом в игре. Для новичков в hex-исчислении: открываете виндовый калькулятор, переключаете в программистский режим, выбираете режим Hex. Выставление флагов производится функцией Or, снятие - функцией Xor.
2) В СДК. Поскольку расставление эффектов является больше дизайнерской задачей, сделал небольшую правку СДК: https://yadi.sk/d/3ZujqzlMgqJ6p. С ней просто запускаете LE, в опциях спавн-объекта лампы появятся флажки Enable Flare и Volumetric.

 

Прежде всего, понадобится утилитка, изготавливающая объемный туман, понимаемый OGSE-модом: https://yadi.sk/d/NXAUhXucgqJfP
Далее:
1) Запилите в 3d редакторе модель тумана и экспортируйте ее в obj. Вот простенькая модель, если кому лень запускать майку: https://yadi.sk/d/jvrU3XDjdSRvw
2) Создайте папку meshes в папке с fvolume_maker;
3) Скиньте модельку туда;
4) Запустите fvolume_maker. Параметры для батника:
-config <string> файл с конфигом объемов. Если не указано - будет fvm_config.ltx
-source <string> файл, куда сохраняем готовые объемы. Если не указано - будет level.fvolumes
-append <true|false> экспериментальная опция, позволяет не переписывать, а дополнять существующий файл *.fvolumes
Про файл конфигов. Он содержит записи вида:
[test]
position = 0.267,2.688, 91.776
rotation = 0.0,0.0,0.0
scale = 1.0,1.0,1.0
 
Все очевидно. Имя секции - имя вашей модельки. Position, rotation - позиция тумана на локации и поворот относительно осей.
Scale - растяжение модельки тумана по осям.
 
5) После окончания работы программы получится файл level.fvolumes. Нужно запихать его в папку с локацией. Для каждой локации такой файл нужен отдельный.
6) Правите конфиг туманов. Это файл config/environment/fog_volumes.ltx. 
Он содержит записи вида:
[test]
color = 1.0,1.0,1.0,1.0
max_density = 0.5
Тут еще очевиднее, чем раньше. Color - цвет тумана, max_density - плотность тумана. 
1 - ничего не видно через 1 метр, 0,5 - ничего не видно через 2 метра, и т.д. Обратная зависимость, короче.
7) Включаете опцию r2_volumetric_fog, загружаете локацию и ищете свой туман на локе.
 
Для удобной настройки есть консольная команда reset_fv. При ее вызове применяются изменения color и max_density.

 

Для создания и редактирования диалогов очень удобно пользоваться редактором диалогов за авторством Mlandrinus: https://yadi.sk/d/qmUaU5VIgqKCh. Кидаете в папку со сталкером, запускаете, дальше все в целом понятно. Конфиги должны быть распакованы.

 

Вид текстур в тепловизоре определяется настройкой material в textures.ltx. Имеется два пресета - для морд/тел/брони и для оружия. По сути, различие между пресетами заключается в том, что оружие при стрельбе греется и это учитывается. Если вы хотите применить для текстуры пресет для тела неписей, поставьте material в пределах 0,6-0,7. В данном случае 0,6 - холодная геометрия, 0,7 - горячая. Для оружия применяйте диапазон 2,85-2,95. Впрочем, в случае оружия лучше ставить всегда минимум (2,85), чтобы нормально выглядел эффект нагрева оружия.
Цвета в тепловизоре также можно настроить. Откройте shaders/r2/ogse_config.h. За цвета отвечают параметры IKV_DEAD_COLOR (цвет холодной геометрии), IKV_LIVE_COLOR (цвет горячей геометрии), IKV_MID3_COLOR, IKV_MID2_COLOR, IKV_MID1_COLOR (промежуточные "опорные" цвета). Все параметры приведены в RGB, подбирайте где-нибудь в пэинте.
Далее можно не читать, если вы не понимаете, для чего в игре параметр material. Если же вы понимаете и негодуете насчет того, что приходится менять ваши любимые настройки текстур ради тепловизора, внимайте.
Интервал значений material для тепловизора также можно изменить. За это отвечают параметры IKV_PRESET_1_MIN, IKV_PRESET_1_MAX (первый пресет) и IKV_PRESET_2_MIN, IKV_PRESET_2_MAX (второй пресет) в том же ogse_config.h. Правило конвертации - в ogse_config.h вносится значение (material + 0.5) / 4. Т.е., если нижний предел для первого пресета у вас 0,8, то IKV_PRESET_1_MIN назначаете равным (0,8+0,5)/4 = 0,325. Выглядит, странно, да, но вот так работает движок. И не без причины.

 

Есть такие консольные команды:
Цветокоррекция: r2_color_grading [0.0, 0.0, 0.0, 0.0]
Известный эффект, "подкрашивает" картинку на экране в выбранный цвет. Поставьте какой-нибудь синий цвет, мигом узнаете ранние Battlefield. Фича мощная, однако, требует некоторых усилий дизайнеров, поскольку цвет должен зависеть от локации и игровой ситуации.
 
Оптимизация отрисовки травы: r2_details_opt [0.0, 0.0, 0.0]
Три параметра, все три - расстояние в игровых метрах. Смысл такой: в игре трава рисуется квадратами 2х2, т.е. в одном "гнезде" четыре куста травы. С этим параметром по достижении первого расстояния перестает рисоваться один куст из четырех, по достижении второго - два куста из четырех, по достижении третьего - три куста из четырех. При тщательной настройке позволяет сберечь фпс без ухудшения картинки.

 

 



  • http://www.amk-team.ru/forum/uploads//ratings/bf.gif × 5
  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 3

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 V92   

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@V92, Это не исправить. Ограничение в 65536 объектов - это размер двухбайтового поля в каждом объекте + масса кода, завязанного на этот размер. Даже имея исходники с полной перекомпиляцией потребуется изрядно переписать часть кода, а просто бинарными правками там ничего не сделать.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
k01jan   

и >64 костей, по ходу тоже.. Не желает СДК экспортировать :(

Но ЭТО ж как-то сделали?!!

Изменено пользователем k01jan

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@V92, оно же скриптовыми костылями до миллионов увеличивается ;)

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@k01jan, насчёт 64 костей ситуация к сожалению печальная. Самих то костей может быть 65536, и хранятся они в массиве переменной длины. А вот флаги их видимости хранятся в 64-х битной маске. Судя по используемым алгоритмам, даже если удастся загрузить модель с бОльшим числом костей в игру, то они попросту будут не видны.

 

Но я пытаюсь понять, откуда так много костей. Вот одна рука - 18 костей, две 36, ствол: корпус, затвор, патрон в патроннике, спусковой крючок, магазин, гранатомёт и его спусковой крючок, граната, глушитель, прицел, ещё + 10 костей. Итого 46 костей. На что можно потратить ещё 18?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 BFG   

 

 

откуда так много костей. Вот одна рука.......
Можно набрать и побольше чем 46, на вполне стандартной модели.

Вот например 54 кости b155e15253a87c6cd849054781f43dec5eb49d20

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@BFG, ну что сказать, надо экономить кости =) На мой взгляд, на оружии здесь перерасход. Про руки не скажу, не знаю. Но даже запас в 10 костей даёт свободу для добавления как минимум пяти-шести аддонов.

 

А вообще конечно нелепое ограничение. Выглядит так, что разрабы не хотели влезать в базовые классы костей и навесили заплатку в виде этого поля флагов для поддержки скрывания. Как по мне - чистая халтура.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
k01jan   

 

 

откуда так много костей

Откуда ж мне знать. Модель Эмки из ОГСЕ. 62 штуки. +4 добавил (по паре прицелов и магазинов).
 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот вам 62 кости, только эта зараза не компилится из-за больших букв в названии пары костей.

3292153.jpg 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 V92   
оно же скриптовыми костылями до миллионов увеличивается

А вот это уже интересно, можно поподробнее? Мне тут сказали, что скриптово такое не сделать, но если все-таки сделать - то это решает все проблемы. А то я уж движок собирался ковырять, хотя без понятия где и что.

 

Вообще ситуация в целом вот какая: хочу подключить к моду новые локации. Но сейчас в среднем используется ~42000 объектов, так что для нормального заселения локаций может просто не хватить оставшегося, особенно учитывая, что локи из ЗП в моде тоже не заселены (всё скриптово). Вот поэтому я и подумал, что нужно как-то это ограничение обойти. Может, есть другие способы, кроме увеличения хранилища?

 

Вторая проблема из этой же серии. Хотелось бы заменить определенные уже существующие в моде локации на новые, более проработанные, но так, чтобы не полетел весь спавн и граф, и желательно - без НИ. С геометрией проблем нет, а вот с АИ-сеткой... Вы в ОГСЕ занимаетесь этим вопросом, может посоветуете что-то по поводу сетки? Каким способом вы с ней работаете в ОГСЕ? Спасибо.

Изменено пользователем V92

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 BFG   

@V92, Если ты хочешь заменить уже существующие локи в моде, то АИ и граф слетят без вариантов, 100 %.

Если ты хочешь добавить новую локацию к ужЕ существующим, то способ совмещения графа и добавления АИ-сетки, чтобы не пострадал спавн всего остального, есть.

Читай статью @kamikazze на Вики - http://www.stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BB%D0%BE%D0%BA%D0%B0%D1%86%D0%B8%D0%B9_%D0%BA_%D0%BC%D0%BE%D0%B4%D1%83

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 V92   

@BFG, это я читал, знаю. Оттуда же и про геометрию узнал. А как в ОГСЕ тогда заменяли существующие локи? Подключали как новые и заново заселяли? 

Добавлено BFG,

kamikazze говорил, что юзал спец-утилиту. Скорей всего она подходит исключительно для ОГСЕ.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
k01jan   
вам 62 кости

А вот - 64. И всё работает.. Что я делаю не так?

Проблема в том, что больше не получается.

P.S.: а регистр разве имеет значение? И что мешает поменять? Для мешей и текстур, вроде, допустимо. Во всяком случае русские буквы CLR переваривает.

P.P.S.: А можно ссылке на модельку со скрина?

 

Изменено пользователем k01jan

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Но ЭТО ж как-то сделали?!!

 

В ЧН-ЗП лучше с одной стороны, что руки и оружие это две разные модели, тут проще уместиться с кучей аддонов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
k01jan   

@Dyadka_Yar, согласен. Правда, там своих проблем хватает.. Да и что толку теоретизировать, этот мод-то на ТЧ.

Изменено пользователем k01jan

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Malandrinus, неплохо бы добавить в ТЧ поддержку моделей ЧН-ЗП, там в СДК есть опция MotionExport-Force 16 bit Motion, с ней анимации намного лучше экспортируются, часто если модель из другой игры после экспорта в ogf в ней в анимации перезарядки смещаються магазин, затвор и прочие части оружия, и с этой опцией эти проблемы исчезают, но в ТЧ СДК ее нет, так что получить идеальную анимацию не получаеться. Жаль что вы на исходники не перешли, так хоть можно было бы классы оружия доделать, а то у автоматов даже нет разных анимаций спринта в зависимости есть подствольник или нет, то же с курками двухстволки, у пистолетов автоматического огня нет, то есть не получиться сделать АПС с затворной задержкой, и прочие недоработки.

Изменено пользователем Dyadka_Yar

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 V92   

 

 

что юзал спец-утилиту

Хм...утилита самодельная? А нельзя ли её адаптировать? Или слишком сложно?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Мне тут сказали, что скриптово такое не сделать

Интересно кто. Я пока не могу подробнее рассказать. Просто говорю что пилить движок тут явно ни к чему. В твоей задаче так точно. Разумеется миллионы я имел ввиду суммарно, а не на одной локации (хотя и это можно попробовать сделать). Алгоритмов можно придумать не один и не два, и они, как показала практика, просты, действуй.


  • http://www.amk-team.ru/forum/uploads//ratings/thumb_up.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
 V92   

Подскажите, какая текстура отвечает за БТР на Кордоне (блокпост у Свалки)? Пытаюсь перенести кордон в ОП-2, и получается такое:

46ffd81e63aat.jpg

 

Как исправить?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

×