Это популярное сообщение. Murarius 10 533 Опубликовано 23 Января 2015 Это популярное сообщение. Поделиться Опубликовано 23 Января 2015 "Конструкторское бюро" 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, т.е. в одном "гнезде" четыре куста травы. С этим параметром по достижении первого расстояния перестает рисоваться один куст из четырех, по достижении второго - два куста из четырех, по достижении третьего - три куста из четырех. При тщательной настройке позволяет сберечь фпс без ухудшения картинки. 5 4 Литературка (избранное): "Координаты избушки" (2023) --- "Колобок времени" (2019) --- "Пиво и жлоб" (2018) --- "Лекарство против морщин" (2013) --- "Когда все пройдет" (2013) Креатив (бесперспективное): Dominanta --- Сон на земле Досвиданьице (слезное): Смена администратора (2024) Ссылка на комментарий
Romann 623 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 22 минуты назад, ed_rez сказал: что таким же успехом можно косточки увести под землю. Не прав? А если непись будет бродить по второму этажу(к примеру на Агро) - идёшь ты по первому -> и мимо проплывает прицел с прикладом. 1 Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 56 минут назад, dsh сказал: Как минимум, не реализован коллбек перед обработкой хита и я сильно подозреваю, что есть ещё не реализованные фичи. Нету имитации нажатия/удерживания/отпускания клавиши и еще нужно проверить получение и установку всех свойств актора( db.actor:get_actor_condition_float(float), db.actor:set_actor_condition_float(float), db.actor:get_actor_float(float), db.actor:set_actor_float(nil, new_value ,float)). Ссылка на комментарий
ed_rez 16 109 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 @Romann , я же в виде "костыля" и в шутку. А технически можно увести хоть 100500 локаций в сторону. Понятное дело, что это не решение. Нужно нормально делать, а не "костыли" подставлять. 1 Ссылка на комментарий
sto1en 420 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 Вот, крупнее: И тоже как-то рандомно не скрывает. Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 51 minutes ago, Mr. Moderator said: что из-за этого Ну, это можно попробовать задефайнить в движке, что бы переключаться между старым и новым. А вот этот коммит не понял: https://github.com/KRodinn/OGSE_0693_Optimized/commit/be4597706496ba810682b3f4f4754c6879b4b932 В коммите никакой table.insert() не фигурирует. Или не работает конструкция t.prop = nil ? 56 minutes ago, Mr. Moderator said: Ну и при переходе на исходники надо избавляться от от всяких m_net_utils, amk_netpk и прочих кривых скриптов Это-то конечно да, но когда в анамнезе костыли АМК + солянки + ОП-2... 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 14 minutes ago, TIGER_VLAD said: db.actor:get_actor_condition_float( Скорее всего, все _float() _int() и т.п. не реализованы. Нужно менять на прямое использование экспортированных свойств и экспортировать недостающие. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KRodin 493 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 1 минуту назад, dsh сказал: В коммите никакой table.insert() не фигурирует https://github.com/KRodinn/OGSE_0693_Optimized/blob/be4597706496ba810682b3f4f4754c6879b4b932/gamedata/scripts/ogse_st_mgr.script#L353Если там self._high_priority == nil, то в таблицу ничего не добавится, и сработает ASSERT тут: https://github.com/KRodinn/OGSE_0693_Optimized/blob/be4597706496ba810682b3f4f4754c6879b4b932/gamedata/scripts/ogse_st_mgr.script#L266 Именно поэтому в том коммите я делаю: self._high_priority = not not high_priority После этого всё работает нормально. 1 OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
KRodin 493 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 21 минуту назад, dsh сказал: Ну, это можно попробовать задефайнить в движке, что бы переключаться между старым и новым. Посмотрю, что там можно сделать. 1 1 OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 1 hour ago, Mr. Moderator said: Именно поэтому в том коммите я делаю: Ага, теперь понял. У нас оно уже немного отличается. У меня делается self._high_priority = false т.к. оставлено по историческим причинам и больше не используется. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 @Mr. Moderator сейчас собирал движок, ругалось на отсутствие dxerr.lib и d3dx9.lib. Пока я их вручную не скопировал из проекта KD, движок не собирался. Это так и должно быть или я что-то не сделал? 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KRodin 493 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 @dsh Сейчас я эти файлы в репо добавлю. У меня DirectX SDK установлен, и эти файлы берутся из него. А у тебя походу нет. 1 OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
dsh 3 824 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 @Mr. Moderator уже вижу, спасибо. DirectX SDK не входит в Windows 10 SDK, его нужно отдельно ставить? У меня стоят все версии Windows 10 SDK, которые VS предлагает к установке. Еще при запуске ругалось на d3dcompiler_47.dll, на его отсутствие. Скопировал его из старого движка. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KRodin 493 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 23 минуты назад, dsh сказал: его нужно отдельно ставить? Нет. 24 минуты назад, dsh сказал: Еще при запуске ругалось на d3dcompiler_47.dll, на его отсутствие. Скорее всего криво установлены рантаймы DirectX. У меня нормально запускается. 1 OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
dsh 3 824 Опубликовано 14 Октября 2017 Поделиться Опубликовано 14 Октября 2017 @Mr. Moderator я начал потихоньку добавлять в движок не достающее. Но так как я в этом плохо разбираюсь, то копирую из xp-dev. Сейчас занимаюсь копированием доступа к свойствам еды, актора и т.п. Судя по всему, движок OGSR очень сильно кастрирован. Не только по сравнению с xp-dev, но и по сравнению с xray extenstions. Вообще, видя такое, у меня возникает ощущение, что возиться с движком OGSR - это не сильно перспективное занятие. Возможно, перспективнее в xp-dev добавить то, чего там не хватает для OGSE. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KRodin 493 Опубликовано 14 Октября 2017 Поделиться Опубликовано 14 Октября 2017 20 минут назад, dsh сказал: Возможно, перспективнее в xp-dev добавить то, чего там не хватает для OGSE. Я пытался, полгода назад где-то. Там работы ещё больше, на мой взгляд. А вообще, чего не хватает? Если что, пиши в ЛС, может подскажу чего. Я тоже буду постепенно добавлять кое-что. 1 OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
dsh 3 824 Опубликовано 14 Октября 2017 Поделиться Опубликовано 14 Октября 2017 (изменено) @Mr. Moderator в данный момент не хватает прямого доступа к свойствам, которые загружаются из конфигов. Для еды, например, это eat_health, eat_radiation и другие eat_. Для актора - всякие sprint_koef и т.п. Это я уже скопировал из xp-dev, завтра запушу, посмотришь, правильно ли все, а то я почти наощупь это делаю. Для брони доступ ко всем свойствам нужен, для артефактов тоже самое. Сегодня ещё обнаружил, что нет методов is_actor_sprinting(), is_actor_climbing() и т.п. Уже придумал, как и куда добавить, т.к. в xp-dev их тоже нет. Завтра, думаю, смогу добавить. Ещё несколько функций из level не хватает. Например level. vertex_id( pos ). Наверняка ещё что-то. Изменено 14 Октября 2017 пользователем dsh 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 15 Октября 2017 Поделиться Опубликовано 15 Октября 2017 @Mr. Moderator Вот, посмотри пожалуйста. Правильно все сделал? https://github.com/dsh2dsh/OGSR-Engine/commit/6acb36153d91710e8ea602a1da20654755f90ec9 https://github.com/dsh2dsh/OGSR-Engine/commit/c9b08c5293d304e1cf72d9d1faeeb9c447877ad8 https://github.com/dsh2dsh/OGSR-Engine/commit/8718ae7479b999e7f46f150d338c9b50549f470a https://github.com/dsh2dsh/OGSR-Engine/commit/ac1f8629d9763b75f498dc363266d100889dbe11 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
SnipeRStalkeR 7 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 Возможно я не совсем туда пишу но: Я перенес модель РПК на анимации АК74 с аддонами однако при спавне в игре ствол появляется со всеми аддонами сразу и при спавне версии с магазином на 60 патронов в игре все равно у ствола 30 патронов. Я скопировал и переписал конфиг АК74 под рпк (сам конфиг ствола и конфиг со всеми вариантами ствола с аддонами). Может ствол надо прописывать где либо еще? Ссылка на комментарий
Опричник 5 333 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 @SnipeRStalkeR Надо. Как минимум в файле w_ствол_ex.ltx Desktop: i7-11700k/Gigabyte Z590 D/64 Гб DDR4-3600 (2х32Гб)/GTX 1070Ti 8Гб/30" WQXGA+24" WUXGA (portrait)/ADATA Legend 960 4Тб + 3HDD (9Тб)/Thermaltake smart BM2 - 650Вт/Win10+QtTab \\\ Дополнения к ОГСЕ 0693 /// \\\ OGSRmod ///\\\АМК-дискорд///\\\Балкон/// Ссылка на комментарий
sto1en 420 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 1 час назад, SnipeRStalkeR сказал: Может ствол надо прописывать где либо еще? Нет, не надо. У тебя или в привязках обвесов косяк или в конфигах. 1 Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти