Это популярное сообщение. Murarius 10 532 Опубликовано 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) Ссылка на комментарий
St-Himik 3 Опубликовано 6 Декабря 2015 Поделиться Опубликовано 6 Декабря 2015 @Malandrinus, а ОГСЕ без сюжета вариант использовать? Zunetime TEAM Ссылка на комментарий
Malandrinus 615 Опубликовано 6 Декабря 2015 Поделиться Опубликовано 6 Декабря 2015 без сюжета вариант использовать? Конечно, как и любую другую сборку. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
k01jan 816 Опубликовано 7 Декабря 2015 Поделиться Опубликовано 7 Декабря 2015 (изменено) Нужен ли такой болт? Изменено 7 Декабря 2015 пользователем Kirgudu Добавлено Ааз, 1 Января 2016 Сразу бросился в глаза размер болта, при таких габаритах, с собой больше пары десятков не возьмешь, мне кажется гильзы были бы уместней. 1 Ссылка на комментарий
Маньяк 453 Опубликовано 7 Декабря 2015 Поделиться Опубликовано 7 Декабря 2015 нужен ли такой болт? Тут вопрос в практичности. Помнится, в некоторых модах имел место быть данный болтик, но частенько сама анимация подбрасывания болта могла сыграть злую шутку над игроком. К примеру, нужно разрядить электру, чтобы быстро пробежать - жмем ЛКМ и попадаем как раз во временной промежуток данной анимации подбрасывания. В итоге, болт не летит по назначению, а мы получаем хороший разряд "дефибриллятора". 1 Я не кусаю всех подряд, жертву выбираю...(с) Исповедь вампира ( Король и Шут ). Ссылка на комментарий
k01jan 816 Опубликовано 7 Декабря 2015 Поделиться Опубликовано 7 Декабря 2015 сейчас, разве, не больше подбрасывается? Руки меняются, так что участвуйте.. Чтобы не плакать потом, что "не такие" анимации Ссылка на комментарий
Маньяк 453 Опубликовано 7 Декабря 2015 Поделиться Опубликовано 7 Декабря 2015 (изменено) Про ПЫСовскую анимацию даже не упоминал, там по сути та же система с перекладыванием из руки в руку и которая также может подвести не вовремя. Понятное дело, что вводили эти телодвижения, чтобы наш ГГ казался менее статичным. Представленная вами анимация сама сравнительно удачная, но хотелось бы, чтобы срабатывание подкидывания болта было максимально растянуто по срокам ( если это возможно ), ну или вообще исключить его. Изменено 7 Декабря 2015 пользователем Маньяк Я не кусаю всех подряд, жертву выбираю...(с) Исповедь вампира ( Король и Шут ). Ссылка на комментарий
Yamato 420 Опубликовано 24 Января 2016 Поделиться Опубликовано 24 Января 2016 Доброго всем... Подскажите плиз как к старым стволам ( ак, вал и т.п.) прикрепить новые открытые прицелы ( тюльпан, кобра и т.п.) За рание пасиб. Ссылка на комментарий
Mari 1 990 Опубликовано 24 Января 2016 Поделиться Опубликовано 24 Января 2016 @Yamato, никак. На них скриптовой базы нет. Да и стволы так себе. Оно тебе надо? Ссылка на комментарий
k01jan 816 Опубликовано 25 Января 2016 Поделиться Опубликовано 25 Января 2016 @Yamato, добавить старым стволам кости, привязать к ним новые аддоны, переанимировать. Ну, и конфиги поправить. Ссылка на комментарий
HellRatz 2 815 Опубликовано 13 Февраля 2016 Поделиться Опубликовано 13 Февраля 2016 Товарищи разработчики. А что за скрипт ogse_integrity такой, что он делает? Я как-то не понял его назначения Проверка файлов перед запуском игры? И можно ли без него жить, как говорится. GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
KD87 718 Опубликовано 13 Февраля 2016 Поделиться Опубликовано 13 Февраля 2016 Скрипт проверяет наличие архивов и выводит в лог содержимое геймдаты. Нужно для того, чтобы сразу посылать с вылетами тех, кто ставит сторонние правки или ковыряет файлы. В остальном не нужен, можно выкинуть. 1 2 Ссылка на комментарий
k01jan 816 Опубликовано 29 Февраля 2016 Поделиться Опубликовано 29 Февраля 2016 А вот флаг, кому не нравятся перчатки Ссылка на комментарий
HellRatz 2 815 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 (изменено) Ребята, может кто подсказать как работать с ОГСЕ-таймерами (они же АМК)? Вроде создаю все по аналогии, а при срабатывании (Запуске, старте его работы) таймера - вылет.Создаю такую функцию, она вызывается по определенному условию, и из этой функции вызывается собственно таймер: function test_func() ogse.start_timer("test_funcc",math.random(2,4)) -- старт таймера с рандомным диапазоном срабатывания действия по окончанию end В ogse.script заношу по аналогии этот код, который должен отработать по завершению времени таймера: ["test_funcc"] = function(params_string) actor_hit.test_funcc() -- запуск функции, которая должна запуститься по окончанию времени таймера end, Затем, когда срабатывает определенное действие и вроде как запускается таймер, точнее должен запуститься, я ловлю вылет: E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp CScriptEngine::lua_error LUA error: %s d:\games\s.t.a.l.k.e.r\gamedata\scripts\ogse.script:533: attempt to index upvalue 'main_variable_tbl' (a nil value) И вот.. Бьюсь. Не знаю что делать и что ему не нравится. Вроде делаю все как у разработчиков (Создание таймера, имею ввиду), а все же вылетает. Сразу скажу, что пробовал не только "start_timer", но и остальные типы таймеров, а так же задавал не только рандомное время, но и фиксированное. Толку нет. К слову квик-таймеры я нормально создаю, все работает. Не понимаю. Изменено 1 Марта 2016 пользователем HellRatz GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
dsh 3 824 Опубликовано 1 Марта 2016 Поделиться Опубликовано 1 Марта 2016 (изменено) @HellRatz, я правильно понимаю, что тебе нужны сохраняемые таймеры? Посмотрел start_timer(). Это явно устаревшая штука. Я вот так делаю: ogse_st_mgr.delayed_fun_start( script_name() .. ".restore_power_delayed" ) :set_delay( math.random( 1, level.get_game_difficulty() * 2 + 3 ) ) :init( script_name() .. ".restore_power_delayed" ) :start( true ) function restore_power_delayed() set_actor_power_max( 1 ) end Это просто пример использования. Можно вот так: function start_gtimerDHMS( name, d, h, m, s, fname, ... ) return ogse_st_mgr.delayed_fun_start( name ) :set_gdelayDHMS( d, h, m, s ) :init( fname, ... ) :start() end start_gtimerDHMS( nil, d, h, m, 0, ( script_name() .. ".end_af_transform" ), table.concat( result, "," ), t.udacha, t.pos.x, t.pos.y, t.pos.z, t.gv, t.lv, t.info_portion, table.concat( from_komp, "," ), t.remove_anomaly, t.remove_anomaly_id, level.name() ) сделать свою библиотечную функцию, что бы меньше писать. В общем, как, когда нравится. И имей ввиду, у этих таймеров параметр у start() имеет огромное значение. Без него таймер медленный, т.е. сработает не в строго указанное время, а + X. X зависит от загруженности метода update. Т.ч. если нужна точность, то всегда используй :start( true ) Изменено 1 Марта 2016 пользователем dsh 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
k01jan 816 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 Black Evil Rifle Ссылка на комментарий
Mari 1 990 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 Ой. это ужас какой то на крыльях ночи. Перебор для старой М16 я считаю. Кольян, АК-102 по прежнему без нормальных анимаций? Рука игнорирует тактическую рукоятку? Ссылка на комментарий
k01jan 816 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 (изменено) @Mari, Прицелы: сток Кольт и через переходник Марк4, Аког, ЕОТех и попробую 3X Magnifier Магазины: 20, 30 и яйцаПока, наверно, без подствола. А кому перебор, тот не ставит аддоны. Проблем-то? Пользуйтесь штатными двадцаткой и кольтовской оптикой. К сожалению, пока нет. Модель и анимации 102 доступны всем желающим улучшить. Изменено 2 Марта 2016 пользователем k01jan 1 Ссылка на комментарий
Anim_rouge 30 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 Вот тут есть каноничный подствол для М16, делать masterkey даже не предлагаю. Может лучше нормальную М16А2 с планкой поверху сделать, а то это выглядит форменным издевательством, вангую что от первого лица будет смотреться совсем "прекрасно". 2 Ссылка на комментарий
k01jan 816 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 (изменено) даже не предлагаю А чё? Может, и лучше.. Вот только эта метла - та самая XM16E1.. Каноничная.. Изменено 2 Марта 2016 пользователем k01jan Ссылка на комментарий
Anim_rouge 30 Опубликовано 2 Марта 2016 Поделиться Опубликовано 2 Марта 2016 @k01jan, Чё не предлагаю? все равно ни кто не будет делать) А вот 4-х рядный магазин предложил бы, валяется на там же, автор - Tigg Мы тут с тобой немного по оффтопим... XM16E1 - это экспериментальный вариант, чуть позже ставший М16А1. Вполне логично использовать М16А2, времен войны в заливе (1991-ый) и конфликта в Ираке (2003), которая позже поставлялась проамериканскому режиму Ирака, а еще лучше - вариант А4, 94-го года производства, который флат-топ, с планкой поверху, чтобы не извращаться с переходником на рукоятку для переноса. Если мне память не изменяет, в ОГСЕ М16 пользуют только наймиты, которые как раз приходят из-за кордона и имеют доступ к любому вооружению. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти