Это популярное сообщение. 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 Опубликовано 9 Сентября 2017 Поделиться Опубликовано 9 Сентября 2017 25 минут назад, KD87 сказал: Также есть собранный вариант в инсталляторе, вместе с СДК. Могу выложить. Думаю тоже не помешает. 3 Мать: 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Это популярное сообщение. KD87 718 Опубликовано 9 Сентября 2017 Это популярное сообщение. Поделиться Опубликовано 9 Сентября 2017 https://drive.google.com/open?id=0B69Rogp6_VJ6RGVodmR5Sm1IWU0 6 1 Ссылка на комментарий
dsh 3 824 Опубликовано 9 Сентября 2017 Поделиться Опубликовано 9 Сентября 2017 @KD87 выкладывай конечно, пригодится. Т.е. все функции прямого доступа к памяти из x-ray extensions не реализованы и нужно все переделывать на использование экспортированных методов? А все остальное, из XE, оно реализовано? А то, что было в ogse.dll, оно все реализовано? Менеджер погоды, вроде, на это завязан, шейдеры, возможно. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KD87 718 Опубликовано 9 Сентября 2017 Поделиться Опубликовано 9 Сентября 2017 Да, все сделано. Переделывать нужно. Впрочем, учитывая, что база уже переделана, правки себе несложно будет внести. Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 (изменено) @KD87 меня не это по большей части беспокоит. Все эти изменения смерджить можно. У меня в моде используется доступ к памяти для вещей, которых нет в огсе. Ну да там видно будет. Ты сам планируешь продолжать работу на движком? Изменено 10 Сентября 2017 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @KD87 начал смотреть скрипты. Ох, похоже с совместимостью будут проблемы. Сразу же наткнулся на - if sl ~= 4294967295 and npc:item_in_slot(sl) then + if sl ~= 255 and npc:item_in_slot(sl) then Т.е. изменен тип числа, возвращаемого active_slot()? А где еще такое изменение сделано? m_story_id тоже изменено? Формат сейва со стороны движка прежний или изменился как-то? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KD87 718 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 3 часа назад, dsh сказал: if sl ~= 255 Только это изменено, теперь No_ACTIVE_SLOT = 255. Больше нигде не менялся формат. 1 Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @KD87 лихо ты обработку friedly fire отключил в xr_motivator. А я помню, когда-то, кто-то из вашей команды хвастался, как у вас круто friednly fire обрабатывается и никто не погибает. Зря, мне кажется, ты убрал это. Ведь по сути - это компенсация несовершенных скриптов. У себя я еще добавил, что бы и от дружественных гранат не погибали. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
sto1en 420 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 На данном этапе вылет при запуске AE (остальные редакторы запускаются) и при выходе из игры (постоянно) - это нормально? Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
KD87 718 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 2 часа назад, dsh сказал: лихо ты обработку friedly fire отключил в xr_motivator Так она сделана через костыли. Малой кровью было не сделать нормально. Вот и выключил. 58 минут назад, sto1en сказал: На данном этапе вылет при запуске AE (остальные редакторы запускаются) и при выходе из игры (постоянно) - это нормально? Поставь ключ -nosound у АЕ. Игра у меня нормально работает. 1 Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @KD87 эмм... т.е. коллбек, вызываемый перед обработкой хита, не реализован? Это же тогда какой-то кастрированный движок получается, по сравнению с уже используемым. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
nasar75 3 868 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 Все работает. Правда, при первом запуске игры вылезла ошибка: Посмотрел - и правда, в папке bin нет файла d3dcompiler_47.dll. Взял его из игры. Куды девался - без понятия - антивирус вроде не ругался, комп сразу перезагрузил. Может, какой файл побился.... Да, вот хеш-суммы файлов, проверить бы... Скрытый текст STALKER_OGSR_build_1.exe CRC32: BCFE78B5 MD5: FE324189721388D772696E6A8BD5673C SHA-1: 4E6306B5D01EB2632A5A56A2DB34203A55E0BFC5 STALKER_OGSR_build_1-1.bin CRC32: D73CCB15 MD5: E57BF771F256FE8737A43155C0020D65 SHA-1: 7351D59806AB2F350A8525818B6154ABEDBC5DF9 STALKER_OGSR_build_1-2.bin CRC32: 3B7027DB MD5: D1BDA34171104A66F0949DDBCAF77CC5 SHA-1: 1D5637E8F4F12FA102E366D4DBE6BB85254C9B1D STALKER_OGSR_build_1-3.bin CRC32: F82F4D57 MD5: FFF34E6C4732CD6272A6290ABB67B751 SHA-1: E2FABA0BFCE4292FA3D84480D4BDCEF45DDDA469 STALKER_OGSR_build_1-4.bin CRC32: 8858C8B7 MD5: 456182B0B62D805AD799670677118ACA SHA-1: 386FA3BCA268218CC5CEDD825BFD3712BE18A3D0 STALKER_OGSR_build_1-5.bin CRC32: 0F94E839 MD5: 924C6738A705F521176F9E3975CFAFA9 SHA-1: 905CC614E29AF23133AC778554B46172BEA957EF STALKER_OGSR_build_1-6.bin CRC32: 94DFB7A4 MD5: 67788E369700E55597678D40005AC4C4 SHA-1: D3DEB698C58B3F2FE7A8A96772D45EFC5124C678 AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64 правки Золотой Шар Ссылка на комментарий
KD87 718 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 (изменено) @nasar75 Забыл положить. У меня-то всегда стоит последний редист от WinSDK, проблем не ощущаю. 18 минут назад, dsh сказал: @KD87 эмм... т.е. коллбек, вызываемый перед обработкой хита, не реализован? Это же тогда какой-то кастрированный движок получается, по сравнению с уже используемым. Нету экспорта класса хита в скрипты. Потому забил. Да и не нужно это все. Имея исходники, надо пихать все внутрь, а не тащить наружу. Вызов lua из cpp - это адские накладные расходы. Проще френдлифайр сделать в движке. Экспортировать хит в скрипты не вижу смысла. Изменено 10 Сентября 2017 пользователем KD87 Ссылка на комментарий
KRodin 493 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @KD87 Цитата Структура проекта достаточно жестка и предполагает четыре папки в корне: * 3rd_party - папка с исходниками, заголовками и библиотеками импорта сторонних производителей. Нужна для сборки движка и СДК. Брать по ссылке ***. А где ссылка-то? OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
Romann 623 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 5 минут назад, Mr. Moderator сказал: где ссылка? http://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/?do=findComment&comment=1116958 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
KRodin 493 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @Romann Там нету папки 3rd_party. OGSR Discord server: https://discord.com/invite/Q6QDxbNcfR Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 30 minutes ago, KD87 said: Имея исходники, надо пихать все внутрь, а не тащить наружу. Это вопрос философский. Как по мне, так движок должен предоставлять только базу, а остальное скрипты должны делать. В движке должно работать только то, что является критическим для производительности или стабильности. Ведь это же тоже самое, что тащить GUI в ядро OS. Ой, а ведь кто-то именно так и сделал. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @KD87 я наверное что-то неправильно делаю. Пытаюсь собрать движок и получаю кучу ошибок вида 7>x:\ogsr-engine\ogsr_engine\xrcdb\frustum.h(9): fatal error C1083: Cannot open include file: 'fixedvector.h': No such file or directory 16>x:\ogsr-engine\ogsr_engine\etools\stdafx.h(18): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 15>x:\ogsr-engine\ogsr_engine\xrsound\stdafx.h(27): fatal error C1083: Cannot open include file: 'vorbis/codec.h': No such file or directory 21>x:\ogsr-engine\ogsr_engine\xr_3da\device.h(14): fatal error C1083: Cannot open include file: 'ftimer.h': No such file or directory Я что-нибудь не доставил? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
KD87 718 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 @dsh Вызов CPP -> Lua примерно в 60 (шестьдесят!) раз медленнее, нежели вызовы CPP->CPP. Где ж тут философия? Колбеки - зло для производительности, и, хотя избавиться от них нельзя, надо их использовать по минимуму. Сделай в конфиге группировки настройку frendlyfire = false и добавь в движок пару строк. @Mr. Moderator Потом как-нибудь залью архив. Ссылка на комментарий
KD87 718 Опубликовано 10 Сентября 2017 Поделиться Опубликовано 10 Сентября 2017 (изменено) @dsh Собирай коммит с меткой BUILD_1 из ветки main. Архив 3rd_party Изменено 10 Сентября 2017 пользователем KD87 2 2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти