Это популярное сообщение. Murarius 10 569 Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-910632
Romann 623 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 22 минуты назад, ed_rez сказал: что таким же успехом можно косточки увести под землю. Не прав? А если непись будет бродить по второму этажу(к примеру на Агро) - идёшь ты по первому -> и мимо проплывает прицел с прикладом. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125537
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)). Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125539
ed_rez 16 111 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 @Romann , я же в виде "костыля" и в шутку. А технически можно увести хоть 100500 локаций в сторону. Понятное дело, что это не решение. Нужно нормально делать, а не "костыли" подставлять. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125540
sto1en 420 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 Вот, крупнее: И тоже как-то рандомно не скрывает. Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125544
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125546
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 14 minutes ago, TIGER_VLAD said: db.actor:get_actor_condition_float( Скорее всего, все _float() _int() и т.п. не реализованы. Нужно менять на прямое использование экспортированных свойств и экспортировать недостающие. 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125547
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125550
KRodin 493 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 21 минуту назад, dsh сказал: Ну, это можно попробовать задефайнить в движке, что бы переключаться между старым и новым. Посмотрю, что там можно сделать. 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125554
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 1 hour ago, Mr. Moderator said: Именно поэтому в том коммите я делаю: Ага, теперь понял. У нас оно уже немного отличается. У меня делается self._high_priority = false т.к. оставлено по историческим причинам и больше не используется. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125595
dsh 3 824 Опубликовано 12 Октября 2017 Поделиться Опубликовано 12 Октября 2017 @Mr. Moderator сейчас собирал движок, ругалось на отсутствие dxerr.lib и d3dx9.lib. Пока я их вручную не скопировал из проекта KD, движок не собирался. Это так и должно быть или я что-то не сделал? 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125687
KRodin 493 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 @dsh Сейчас я эти файлы в репо добавлю. У меня DirectX SDK установлен, и эти файлы берутся из него. А у тебя походу нет. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125743
dsh 3 824 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 @Mr. Moderator уже вижу, спасибо. DirectX SDK не входит в Windows 10 SDK, его нужно отдельно ставить? У меня стоят все версии Windows 10 SDK, которые VS предлагает к установке. Еще при запуске ругалось на d3dcompiler_47.dll, на его отсутствие. Скопировал его из старого движка. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125762
KRodin 493 Опубликовано 13 Октября 2017 Поделиться Опубликовано 13 Октября 2017 23 минуты назад, dsh сказал: его нужно отдельно ставить? Нет. 24 минуты назад, dsh сказал: Еще при запуске ругалось на d3dcompiler_47.dll, на его отсутствие. Скорее всего криво установлены рантаймы DirectX. У меня нормально запускается. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1125772
dsh 3 824 Опубликовано 14 Октября 2017 Поделиться Опубликовано 14 Октября 2017 @Mr. Moderator я начал потихоньку добавлять в движок не достающее. Но так как я в этом плохо разбираюсь, то копирую из xp-dev. Сейчас занимаюсь копированием доступа к свойствам еды, актора и т.п. Судя по всему, движок OGSR очень сильно кастрирован. Не только по сравнению с xp-dev, но и по сравнению с xray extenstions. Вообще, видя такое, у меня возникает ощущение, что возиться с движком OGSR - это не сильно перспективное занятие. Возможно, перспективнее в xp-dev добавить то, чего там не хватает для OGSE. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1126119
KRodin 493 Опубликовано 14 Октября 2017 Поделиться Опубликовано 14 Октября 2017 20 минут назад, dsh сказал: Возможно, перспективнее в xp-dev добавить то, чего там не хватает для OGSE. Я пытался, полгода назад где-то. Там работы ещё больше, на мой взгляд. А вообще, чего не хватает? Если что, пиши в ЛС, может подскажу чего. Я тоже буду постепенно добавлять кое-что. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1126131
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1126164
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1126356
SnipeRStalkeR 7 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 Возможно я не совсем туда пишу но: Я перенес модель РПК на анимации АК74 с аддонами однако при спавне в игре ствол появляется со всеми аддонами сразу и при спавне версии с магазином на 60 патронов в игре все равно у ствола 30 патронов. Я скопировал и переписал конфиг АК74 под рпк (сам конфиг ствола и конфиг со всеми вариантами ствола с аддонами). Может ствол надо прописывать где либо еще? Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1132413
Опричник 5 486 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 @SnipeRStalkeR Надо. Как минимум в файле w_ствол_ex.ltx Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1132431
sto1en 420 Опубликовано 4 Ноября 2017 Поделиться Опубликовано 4 Ноября 2017 1 час назад, SnipeRStalkeR сказал: Может ствол надо прописывать где либо еще? Нет, не надо. У тебя или в привязках обвесов косяк или в конфигах. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/13118-ogse-kb-razrabotchikov/page/35/#findComment-1132456
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти