Skip to content
Перейти к содержимому
Вернуться в блог
Создание кастомных сущностей Minecraft с Hephaestus-Engine

Создание кастомных сущностей Minecraft с Hephaestus-Engine

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
25 просмотров
TL;DR:Hephaestus-Engine - Java-библиотека для добавления кастомных моделей, сущностей и анимаций на серверах, совместимых с vanilla Minecraft. Создавайте в Blockbench, развертывайте с автоматически сгенерированными ресурс-паками.
GitHub - проект сообщества Minecraft

hephaestus-engine (unnamed/hephaestus-engine)

Рендеринг, анимация и взаимодействие с кастомными моделями сущностей на серверах Minecraft: Java Edition

Понравиться на GitHub ↑
★ 223 stars🐟 Java📜 MIT

Мечтали ли вы наполнить свой сервер Minecraft кастомными существами, которые действительно выглядят по-разному? Не ретекстуры или ресурс-паки, меняющие существующие мобов, а полностью новые сущности с уникальными моделями и анимациями. Вот где пригодится Hephaestus-Engine. Это Java-библиотека, позволяющая проектировать и развертывать кастомные модели直接 на серверах, совместимых с vanilla, без специальных ланчеров или хаков.

Что делает этот проект

Hephaestus-Engine - кастомная библиотека моделей и анимаций для серверов Minecraft: Java Edition. Она работает между кодом сервера и клиентом игрока, позволяя создавать сущности с кастомными 3D-моделями вместо стандартного вида Стива или Криппера. Проект поддерживает популярные платформы серверов, такие как Paper, Spigot, Minestom и Bukkit, поэтому, будь то небольшой модифицированный сервер выживания или большой PvP-арена, есть совместимая версия.

Библиотека решает проблему, обычно болезненной в vanilla Minecraft: она автоматически генерирует ресурс-пак, необходимый клиентам для просмотра кастомных моделей, а затем предоставляет его при подключении игроков. Вы проектируете модели в Blockbench (бесплатный веб-редактор 3D), экспортируете их и передаете в Hephaestus. Инжиниринг занимается остальным.


Почему кастомные модели важны на вашем сервере

Стандартные мобы Minecraft подходят, если вы используете vanilla. Но как только вы хотите кастомную битву с боссом, уникального NPC-продавца или просто подписную сущность, делающую ваш сервер запоминающимся, вы сталкиваетесь с проблемой. Вы не можете легко изменить внешний вид сущности без установки мода (который разбивает совместимость с vanilla) или полагаясь на невидимые армор-стенды с хитрыми дисплеями предметов (что запутано и лагает).

Hephaestus решает эту проблему, позволяя определять, как выглядит кастомная сущность и как она двигается, а затем обрабатывая всю магию сетевого взаимодействия,使 клиенты видят её. Вам не нужно, чтобы игроки устанавливали что-то дополнительное. Если они используют vanilla Java Edition с ресурс-паком, который вы предоставляете, они видят кастомные модели, как если бы они были частью игры.

Практический пример: представьте минигейм «защита башни», где волнами атакуют все более сложные механические враги. Без кастомных моделей вы застрянете с использованием стандартных мобов с креативными дисплеями предметов. С Hephaestus вы можете проектировать actual механических существ в Blockbench, анимировать их движение вперед, давать уникальные анимации атак и развертывать их как реальные сущности на сервере.


Настройка Hephaestus-Engine

Установка зависит от вашей системы сборки. Проект размещает свои артефакты в кастомном репозитории Maven, поэтому вам нужно указать ваш инструмент сборки на него.

Если вы используете Gradle (рекомендуемый подход), добавьте репозиторий unnamed в ваш build.gradle.kts:

kotlin
repositories {
 maven("https://repo.unnamed.team/repository/unnamed-public/")
}

Затем добавьте основную зависимость и любые адаптеры, которые вам нужны:

kotlin
dependencies {
 implementation("team.unnamed:hephaestus-api:0.1.0-SNAPSHOT")
 implementation("team.unnamed:hephaestus-reader-blockbench:0.1.0-SNAPSHOT")

 // Для Paper/Spigot
 implementation("team.unnamed:hephaestus-runtime-bukkit-api:0.1.0-SNAPSHOT")
 implementation("team.unnamed:hephaestus-runtime-bukkit-adapt-v1_20_R3:0.1.0-SNAPSHOT")

 // Для Minestom
 implementation("team.unnamed:hephaestus-runtime-minestom:0.1.0-SNAPSHOT")
}

Используете Maven? Сначала добавьте репозиторий:

xml
<repository>
 <id>unnamed-public</id>
 <url>https://repo.unnamed.team/repository/unnamed-public/</url>
</repository>

Затем добавьте теги зависимостей. Настройка проста, хотя вам захочется выбрать версию адаптера Bukkit, соответствующую версии Minecraft вашего сервера. На ранней стадии 2026 года недавние выпуски включают адаптеры для версий 1.20.x.

Один момент, на который стоит обратить внимание: это vẫn является снапшот-версией (версия 0.1.0-SNAPSHOT), что означает, что API может измениться. Она достаточно стабильна для использования в производстве на многих серверах, но если вы строите что-то критичное, следите за обновлениями проекта на GitHub.


Как работает конвейер моделей

Создание кастомной сущности涉ывает несколько шагов, но они не сложные. Сначала проектируйте модель в Blockbench. Если вы новичок в 3D-моделировании, не беспокойтесь. Blockbench имеет интерфейс, ориентированный на Minecraft, что делает его намного проще, чем традиционные инструменты 3D. Вы можете экспортировать своё творение как файл .json с включёнными текстурами.

Hephaestus читает файлы JSON из Blockbench нативно, поэтому вам не нужно промежуточное преобразование. Загрузите файл модели в код плагина, и инжиниринг автоматически сгенерирует ресурс-пак. Сгенерированный пакет отправляется подключающимся игрокам автоматически (хотя вы также можете размещать его на хостинге файлов, если предпочитаете).

Анимационная часть - где всё становится интересно. Blockbench позволяет ключевым кадрам анимаций внутри того же файла. Hephaestus читает эти анимации и делает их доступными через свой API. Но здесь есть гибкость: вам не нужно использовать систему анимаций напрямую. Библиотека позволяет подключаться к анимациям самостоятельно, поэтому вы могли бы запускать анимации асинхронно в одном потоке, распределять их по нескольким потокам для производительности или синхронизировать с событиями игры. Босс мог бы качать меч при атаке, возвращаться в режим ожидания при попадании, воспроизводить анимацию смерти при поражении. Вы контролируете тайминг.

Интеграция с Blockbench

Загрузчик Blockbench, вероятно, - это функция, которую вы будете использовать чаще всего. Вместо того, чтобы вручную писать описания моделей, вы проектируете всё визуально, а затем загружаете. Это сокращает время разработки, особенно если вы итерируете дизайны.

Загрузчик извлекает геометрию (модель сама по себе) и текстуры из файла Blockbench. Если вы текстурировали модель в Blockbench, эти текстуры сопровождают модель. Ваши игроки видят текстурированную модель, а не серую нетекстурированную замену.

Генерация ресурс-пака

Hephaestus автоматически генерирует ресурс-паки, что является значительной победой в удобстве использования. Нормально, распространение кастомных моделей включает ручное создание ресурс-паков, загрузку их на хостинг и управление версиями. Инжиниринг обрабатывает эту бумажную работу. Он создаёт необходимые определения моделей, текстуры и метаданные в правильном формате, а затем предоставляет их через ваш сервер. Игроки загружают его автоматически при подключении, предполагая, что они принимают серверные ресурс-паки.

Вы можете настроить генерацию, если это необходимо, но значения по умолчанию разумны. Это освобождает вас сосредоточиться на дизайне и геймплее вместо логистики ресурс-паков.


Советы и распространённые ошибки

Кастомные модели добавляют нагрузку на клиентскую часть рендеринга. Если вы развернёте 200 кастомных сущностей в одном месте, некоторые игроки на старом оборудовании могут испытывать лаг. Это не катастрофа, но хорошо протестировать на различных клиентах.

Также, кастомные модели выглядят правильно только если клиент загрузил ресурс-пак. Большинство серверов имеют включённую загрузку ресурс-паков по умолчанию, но некоторые игроки отключают это вручную. Эти игроки увидят vanilla-замены для ваших сущностей, что может быть диссонансом. Вы можете предупредить игроков об этом в MOTD вашего сервера, если это важно для вашей игровой механики.

Несовпадения версий могут возникнуть, если вы используете более новий формат файлов Blockbench, чем поддерживает ваша установка Hephaestus. Проверьте заметки к выпускам, если обновляете Blockbench и сталкиваетесь с ошибками загрузки.

Система анимаций гибкая, но это означает, что вам нужно написать код для запуска анимаций. В отличие от некоторых систем анимаций, которые автоматически играют в цикле, Hephaestus заставляет вас явно указывать, когда анимации запускаются. Это фактически особенность (полный контроль), но это означает больше кода с вашей стороны.


Подходит ли Hephaestus-Engine вам?

Если Hephaestus не ваш стиль, есть несколько других подходов. ModelEngine - плагин, делающий аналогичные вещи, но фокусируется больше на поддержке предустановленных моделей и автоматическом повторе анимаций. Он проще, если вы хотите быстрые результаты, но менее гибок, если вам нужный кастомный контроль. Ещё есть несколько мелких проектов, ориентированных на конкретные случаи использования, например, кастомные боссы или системы NPC, но они уже по объёму.

Для потребностей в кинематографии (если вы разрешаете игрокам настраивать внешний вид персонажей) вы также можете изучить Minecraft Skin Creator, который помогает управлять кастомными игровыми персонажами на вашем сервере. А если вы управляете белым списком для вашего сервера, Minecraft Whitelist Creator упрощает управление именами пользователей в большом масштабе.

Hephaestus занимает сладкую точку: он мощный и гибкий, не будучи чрезмерно сложным. Если вам нужный полный контроль над кастомными моделями и анимациями на сервере, совместимом с vanilla, он заслуживает серьёзного рассмотрения.

Hephaestus-Engine - солидный выбор, если вы управляете сервером Paper или Minestom и хотите добавить визуальный эффект без перехода в полноценную моддинговую территорию серверов. Он всё ещё находится в активной разработке, и снапшот-природа текущего выпуска означает, что он эволюционирует, но он используется в производстве на реальных серверах. Интеграция с Blockbench гладкая, генерация ресурс-паков - 真正 удобство, а гибкость анимаций мощна, как только вы узнаете, как её использовать.

Кривая обучения умеренная. Вам понадобится базовое знание Java для интеграции в плагины, и некоторая ознакомленность с 3D-моделированием (или готовность учиться Blockbench). Но если это не пугает вас, вы смотрите на инструмент, который может сделать ваш сервер действительно уникальным.

Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy