Динамические валлмарки (Dynamic Wallmark)
Динамические воллмарки - аналог обычных воллмарков, расставляемых в СДК, но у которых можно включать и выключать отображение прямо во время игры. Система позволяет добавлять или убирать воллмарки на уровне по ходу сюжета. В отличии от воллмарков, создаваемых в результате попадания пули или взрыва гранаты, эти воллмарки исчезнут не по таймеру, а исключительно при вызове функции, а также у разработчика есть больше механизмов по контролю расположения воллмарка. Примеры использования:
- В начале игры существует обычный лагерь сталкеров без каких-либо проблем, и по сюжету на этот лагерь происходит нападение в оффлайне, тогда после возвращение игрока, помимо тел, можно будет наблюдать появившиеся пятна крови и следы от пуль.
- Территория пустовала, и по ходу сюжета на ней поселилась какая-то группировка. После чего на стенах территории появились граффити, свойственные группировке, и различные указатели.
Создание динамического воллмарка
СДК
- На уровне в требуемом месте поставить спавн-объект ai/dynamic_wallmark.
- Настроить получившийся объект
- Объект имеет такие-же настройки, как и обычный спейс-рестриктор, но помимо этого имеет дополнительные настройки воллмарка и 2 кнопки контроля.
- На объект, как и на обычный спейс-рестриктор, можно повесить логику. К примеру, если к нескольким динамическим воллмаркам привязать логику включения "себя" при получении инфопоршня, то с помощью выдачи одного инфопоршня можно активировать или деактивировать сразу несколько воллмарков разом
ini
[logic]
active = sr_idle@off
[sr_idle@off]
on_info = {+info_to_activate_wallmarks} sr_idle@on %=switch_wallmark(true)%
[sr_idle@on]
on_info = {-info_to_activate_wallmarks} sr_idle@off %=switch_wallmark(false)%
- Настройки воллмарка идентичны настройкам из вкладки Wallmarks. Не рекомендуется менять шейдер воллмарка, выставленный по умолчанию, если только вы не знаете, что делате.
- Флажок в центре спавн-объекта представляет из себя нормаль к поверхности, на которую будет помещён воллмарк.
- Присутствуют 2 кнопки контроля: "Update" и "Convert Wallmark to Static".
- При нажатии на первую обновится предпросмотр воллмарка, то как он будет располагаться в самой игре. Сам воллмарк, который появляется в виде предпросмотра, никаким образом не сохраняется и не идёт в компиляцию.
- При использовании второй на месте динамического воллмарка сгенерируется обычный статический воллмарк с теми же самыми параметрами, что были и у динамического, при этом не удаляя объект динамического воллмарка из СДК. По сути, с помощью спавн-объекта динамического воллмарка можно запросто расставить на уровень однотипные статические воллмарки.
- Для добавления динамического воллмарка в игру требуется собрать только спавн.
Игра
По умолчанию, динамические воллмарки в игре отключены. Чтобы их активировать, нужно воспользоваться функцией
ini
level.switch_wallmark("клиентский объект", "true\false")Для использования этой функции в логике её нужно зарегистрировать в xr_effects.script. Например:
lua
function switch_wallmark(actor, npc, p) -- вызывается в логике объекта, который является динамическим воллмарком
local isOn = p ~= nil
if isOn then
isOn = p[1] == "true"
end
level.switch_wallmark(npc, isOn)
end