Фундаментальные изменения в движке:
- Все модули движка линкуются статически, поэтому оставлен только DX11 рендер.
- Двиг переведён на С++20. Используются самые новые features, такие как
std::format
, и тд. - Интегрирован mimalloc - is a general purpose allocator with excellent performance characteristics.
Наиболее значимые изменения:
-
Теперь двиг поддерживает погоду из Зова Припяти. Тип погоды определяется по наличию специфичных для этой погоды строк в
fsgame.ltx
. Если их нет - используется ТЧ-стайл погода. -
Починен и возвращён оптимизированный MSAA. Крайне рекомендуется к использованию, потому что хорошо сглаживает провода и полупрозрачную геометрию. На настройках 2х/4х жрет не очень много fps.
-
В меню добавлена настройка размера шрифтов - особенно пригодится обладателям мониторов с сверхвысокими разрешениями. Регулируется ширина и высота шрифтов конс. командами
g_font_scale_x
,g_font_scale_y
. -
Возвращена многопоточная загрузка текстур. Теперь она даёт очень существенное ускорение загрузки игры. Управляется конс. командой
r_mt_texload
и соотв. опцией в меню. -
Реализовано Anomaly-style разделение расчетов худа для предметов в левой и правой руках + новая система коллизии худа для OGSR GA.
-
Добавлена поддержка 90% анимаций для оружия из Gunslinger Mod
-
Добавлена поддержка 3D PDA. Важный нюанс: для его работы слот пда должен быть активируемым:
[inventory]
slot_visible_8 = true ;pda
-
Переписан настройщик худа, теперь в нём можно настраивать позиции лазера и фонаря.
-
Добавлен настройщик положения оружия от третьего лица. Можно настроить положение оружия как у актора от 3 лица, так и у НПС. Настройка для состояния за спиной у нпс тоже работает.
Для включения режима настройки наводим курсор на НПС и набираем в консолиdbg_adjust_attachable_item имя_секции_оружия
или (что более удобно)dbg_adjust_attachable_item_in_slot номер_слота
.
LSHIFT
+Z
/X
/C
+PageUP
/PageDown
- настройка position (x,y,z)
LALT
+Z
/X
/C
+PageUP
/PageDown
- настройка rotation (x,y,z)
LSHIFT
+ENTER
- сохранение результатов в папкуlogs/_world/
Шаги для настройки регулируются командамиadjust_delta_pos
,adjust_delta_rot
-
Добавлена SFZ-стайл тряска рук при воздействии пси-ауры мутантов. Интенсивность тряски регулируется через
controller_amplitude
в секции[wpn_bobbing_effector]
-
Добавлено скриптовое управление demo_record:
level.demo_record_start()
level.demo_record_stop()
local HPB = level.demo_record_get_HPB()
level.demo_record_set_HPB(HPB)
-- направление
-- HPB.x Left\Right
-- HPB.y Up\Down
-- HPB.z Rotate Left\Rotate Right
local position = level.demo_record_get_position()
level.demo_record_set_position(position)
-- position x y z как обычно на уровне
level.demo_record_set_direct_input(true/false) -- управление прямым вводом
Так же поправлено управление игрой в режиме demo record. Включается на *
(звездочку DIK_MULTIPLY
)
-
Эффекты ppe теперь должны отображаться в режиме от 3 лица. Так же добавлена команда
g_effects_on_demorecord
что б эффекты были и в режиме demo_record. -
Добавил метод
game.stop_tutorial
и ЗП-стайл экшены для туториалов типа такого:
<action id="use" finalize="1">xr_effects.pri_a18_use_idol</action>
- Для статиков можно указывать прозрачность.
ogm
видео теперь тоже поддерживает регулировку прозрачности, как и обычные текстуры. Примеры:
XML:
<!-- color_alpha="192" указывает, что текстура будет иметь 25% прозрачности. Значение от 0 до 255, от полностью прозрачной (не видимой) до полностью оригинальной текстуры. При отсутствии этого параметра текстура показывается как есть, т.е. без доп. прозрачности. -->
<hud_gaz_blue x="0" y="0" width="1024" height="768" stretch="1" color_alpha="192"
light_anim="ui_slow_blinking_alpha" la_cyclic="1" la_texture="0" la_text="1" la_alpha="1" priority="30">
LUA:
local cs = get_hud():GetCustomStatic( hud_static )
cs:wnd():SetColorA( 128 ) --Здесь SetColorA установить прозрачность статика в 50%.
cs:wnd():SetColorA( 255 ) -- Этот вызов вернет статик к его оригинальному виду, т.е. без доп. прозрачности.
- Добавлен функционал работы с мешами из скриптов. Вкл/выкл их видимости, а так же анализ модели (дамп всех костей и мешей). Главная фича управления мешами (в отличие от костей) в том, что можно менять внешний вид модели ничего не делая с скелетом.
local item = db.actor:active_item()
if item then
item:dump_visual_to_log() --Распечатать в лог информацию о мешах и костях модели - мировой и худовой, если худовая доступна.
log3("--Mesh count of [%s]: [%s]", item:name(), item:get_mesh_count_hud()) --вывести кол-во мешей в худовой модели.
item:set_show_model_mesh_hud(0, false) --Установить видимость меша для худовой модели, в данном случае скрыть нулевой.
local shown = item:get_show_model_mesh_hud(0) --узнать показан ли меш
--Тоже самое для мировых моделей, подойдет для любых объектов наверно, не только для оружия.
item:set_show_model_mesh(4, true)
item:get_show_model_mesh(4)
item:get_mesh_count()
end
Прочие более мелкие изменения:
- Добавлена опция
volumetric_for_actor
для управления объёмным светом фонаря актора, т.к. у актора объемный свет выглядит не очень красиво. - Добавлена конс. команда
show_wnd_rect_names
для показа имён статиков при отладке UI. - Добавлена конс. команда
g_mouse_wheel_switch_slot
и соотв. опция в меню. - Добавлено чтение
hud_fov
из конфига оружия - Редактирование меток в пда перенесено на левую кнопку мыши
- Патрон в патроннике можно включить в конфиге оружия
CartridgeInTheChamberEnabled = true
- Xml парсер не будет игнорировать грубые ошибки в синтаксисе xml файлов. Однако оставлен режим совместимости в
[features]
:
;Игнорировать ошибки парсинга xml (в ТЧ они встречаются даже в оригинальной игре)
skip_shoc_xml_errors = true
- Добавлены звуки
snd_aim_start
,snd_aim_end
,snd_close_weapon_empty
- Для оружия с трёхстадиевой перезарядкой при расклине будет проигрываться первая и третья стадия перезарядки.
- Добавлена конс. команда
r_terrain_parallax_enable
и соотв. опция в меню. - Обновлён xrCompress. Добавлен ключ
-WW
для worldwide формата архивов, добавлен игнор пустых папок, добавлены настройки игнорируемых имен файлов, а не только расширений (см.xrCompress_Cfg.ltx
) - Фикс ситуации когда вместо оружия в руках нпс мог оказаться артефакт
- Команда
ai_use_torch_dynamic_lights
будет управлять объемным светом фонарей нпс, если он включен для них. Ранее эта команда не работала вообще. - Убран игнор ошибок в луа каллбеках. (на удивление в очень редких случаях ошибки там к сожалению могли игнорироваться)
- Фикс тумана для шейдера
models\transparent
- Добавлен метод
PlaySound("filename")
в класс меню. - При использовании движка с оружием из Gunslinger Mod, надо добавить в
system.ltx
:
[mod_ver]
mod_ver = "OGSR: Gunslinger Addon"
так будут активированы необходимые для него фиксы. Затычка от крашей в ode.dll например.