ConditionalVideos
Представьте: игрок впервые заходит на ваш сервер, и вместо сухого системного сообщения его встречает короткий кинематографичный ролик. Или кто-то впервые добывает алмаз — и на экране вспыхивает эффектная сцена с поздравлением. Именно такую атмосферу создаёт мод ConditionalVideos для Minecraft. Он превращает обычные игровые события в повод показать зрителю видео — локальное, по ссылке или прямо из YouTube.
Это не просто проигрыватель. Мод работает по принципу «сервер решает — клиент показывает»: серверная сторона отслеживает условия, а нужному игроку отправляется команда на воспроизведение. Такой подход делает ConditionalVideos отличным выбором для серверов, сюжетных карт, квестовых сборок и ролевых проектов, где важна погружённость.
Что умеет ConditionalVideos
Главная фишка мода — гибкая система триггеров. Вы один раз настраиваете условие, а дальше клиенты сами получают и проигрывают видео в нужный момент. Среди возможностей стоит выделить:
- Больше десятка типов триггеров — от первого входа до порогов по счёту в таблице очков.
- Плейлисты для каждого условия с переходами cut или fadeOut/In, зацикливанием и тайминговыми переключениями.
- Текстовые оверлеи с заголовком и описанием, поддержкой цветовых кодов и настройкой прозрачности.
- Отдельная громкость для каждого клипа и возможность пропуска.
- Очередь воспроизведения — если несколько условий сработали одновременно, ролики идут по порядку, а не перебивают друг друга.
- Публичный API для других модов, желающих добавить собственные условия.
Источники видео поддерживаются через WATERMeDIA: локальные файлы, прямые ссылки, YouTube в высоком качестве, клипы Twitch и Kick, TikTok, SoundCloud и многое другое.
Совместимость и версии Minecraft
Мод активно развивается и поддерживает несколько веток игры. Ниже — актуальный список загрузчиков:
- Minecraft 1.20.1 — Fabric, Forge 17+
- Minecraft 1.21.1 — Fabric, NeoForge 21+
- Minecraft 1.21.11 — Fabric, NeoForge 21+
- Minecraft 26.1.2 — Fabric, NeoForge 25+
- Minecraft 26.2 — Fabric, NeoForge 25+
На версии 26.2 игра может работать с любым рендерером. Видео воспроизводятся и на Vulkan, но поддержка этого рендерера пока экспериментальная — Minecraft поставляет его как опциональный предпросмотр, поэтому OpenGL остаётся самым безопасным выбором, если возникнут проблемы.
На клиенте обязательно нужны WATERMeDIA: Multimedia API (v3.0.0.23+), WATERMeDIA: Native Binaries (v3.0.0.6+) и Fabric API (только для Fabric). Без них воспроизведение просто не заработает, так что не пропускайте этот шаг при установке.
Как установить ConditionalVideos
Установка не требует глубоких знаний, но порядок важен. Если вы задаётесь вопросом, как установить ConditionalVideos правильно, придерживайтесь простой последовательности:
- Установите подходящий загрузчик — Fabric, Forge или NeoForge — для вашей версии Minecraft.
- Скачайте ConditionalVideos и поместите файл мода в папку mods.
- Добавьте WATERMeDIA: Multimedia API и Native Binaries, а для Fabric — ещё и Fabric API.
- Запустите игру один раз, чтобы сгенерировались конфиги.
- Отредактируйте файлы в папке config под свои условия и видео.
Кстати, если не хочется возиться с ручной сборкой, лаунчер foxygame.net позволяет поставить ConditionalVideos буквально в один клик — каталог дополнений сам подберёт совместимую версию под ваш загрузчик. Это заметно экономит время новичкам.
Конфигурация делится на три файла: conditionalvideos.json отвечает за клиентские и одиночные правила, conditionalvideos-server.json хранит авторитетные правила для выделенного сервера, а conditionalvideos-common.json управляет поведением воспроизведения. В мультиплеере именно серверный конфиг считается источником истины, а локальные видеофайлы автоматически рассылаются клиентам и кэшируются при повторном подключении.
Поддерживаемые условия
Простые условия используют один ключ конфига, а ключевые — карту вида id → условие. К простым относятся:
- firstJoin — срабатывает при входе игрока в мир или сессию. Всегда в приоритете: если во время загрузки сработали другие условия, firstJoin проигрывается первым, а остальные встают в очередь.
- playerDeath — запасной ролик для любой смерти.
- totemUsed — игрока спас тотем бессмертия.
- bedSleep — игрок начал спать в кровати.
Ключевые условия позволяют точнее настроить сценарий: deathByEntity (смерть от конкретного существа, перекрывает playerDeath), entityKilled, advancementCompleted, dimensionChanged, itemObtained, itemCrafted, recipeUnlocked, scoreboard и custom. Последний не имеет встроенного детектора — он вызывается только через API или команду play.
Сравнения в таблице очков
Условие scoreboard сравнивает счёт игрока с заданным значением через компаратор: equal, less, greater, lessOrEqual или greaterOrEqual (по умолчанию). Сравнение срабатывает по фронту: как только условие выполнилось, оно запускается один раз и «взводится» заново только после того, как станет ложным и снова истинным. Поскольку счета сохраняются вместе с миром, уже выполненное сравнение не сработает повторно после перезахода.
Настройка и управление
Каждое условие содержит плейлист в поле videos и несколько общих флагов. repeatableInSameSession определяет, может ли условие срабатывать многократно за сессию, а playlistLoop зацикливает плейлист. По умолчанию предварительно настроен только firstJoin — остальные условия начинаются с пустого {}.
Каждый элемент плейлиста описывает один клип: источник, возможность пропуска, фон, заголовок, описание, громкость, переход и момент переключения nextAt. Переход относится к входящему элементу: если у videos[1] указан fadeOut/In, плеер плавно гасит первый клип и проявляет второй, а cut даёт мгновенную смену кадра.
Конфиг устойчив к ошибкам: одна некорректная запись не стирает весь файл — она пропускается и логируется, а все валидные записи сохраняются. При синтаксической ошибке JSON файл остаётся нетронутым, а значения по умолчанию применяются только в памяти на текущую сессию, так что опечатку можно спокойно исправить.
Общие настройки воспроизведения
Файл conditionalvideos-common.json создаётся автоматически с безопасными значениями. videoQuality в режиме AUTO выбирает лучший доступный поток, а другие значения принудительно задают качество для многовариантных источников вроде YouTube. alwaysShowCursor не даёт курсору скрываться, allowGameSounds оставляет звуки Minecraft во время ролика, blockMatureContent блокирует контент для взрослых, а debugLogging включает подробную диагностику.
Команды и управление в игре
По умолчанию клавиша пропуска не назначена, поэтому работает ESC. Свою клавишу можно задать в разделе «Управление» → Conditional Videos. Короткое нажатие переключает на следующий элемент плейлиста или закрывает воспроизведение, если он последний. Удержание заполняет белую полосу — отпустите после заполнения, чтобы пропустить весь плейлист. Флаг skippable = false отключает оба жеста и скрывает подсказку.
Для уровня прав 2+ и консоли сервера доступны команды /conditionalvideos play, stop и pause. Команда play принудительно запускает условие, игнорируя ограничение «один раз за сессию», stop закрывает воспроизведение и очищает очередь, а pause переключает паузу текущего ролика. Ключи условий используют простую форму для базовых триггеров или вид type/key для ключевых.
Локализация и API для разработчиков
Интерфейс и строки команд уже переведены на en_us, es_es, es_ar и es_mx. Добавить новый язык просто: положите файл <locale>.json в ресурспак по пути assets/conditionalvideos/lang/. Разработчики могут регистрировать собственные условия и управлять воспроизведением через небольшой стабильный публичный API в пакете org.mateof24.conditionalvideos.api.
ConditionalVideos — это тот случай, когда техническая мощь сочетается с творческой свободой. Вы получаете кинематографичные моменты там, где раньше были лишь текстовые уведомления, и полный контроль над тем, как и когда они появляются. Если вам нужна атмосфера на сервере или в сюжетной карте, этот мод стоит попробовать.
===ARTICLE===