Создание пользовательских моделей сущностей в Minecraft

published on 04 September 2024

Хотите добавить уникальных существ в Minecraft? Вот краткое руководство:

  • Используйте Blockbench для 3D-моделей и текстур
  • Экспортируйте модель как .json или .bbmodel
  • Интегрируйте в мод через Fabric или Forge
  • Добавьте анимации и эффекты
  • Оптимизируйте геометрию и ИИ

Ключевые этапы:

  1. Планирование концепции
  2. Моделирование в Blockbench
  3. Создание текстур
  4. Программирование поведения
  5. Тестирование и отладка

Нужны навыки 3D-моделирования и базовые знания Java. Начните с простых модификаций, постепенно усложняя. Регулярно тестируйте в игре и экспериментируйте!

Что нужно для начала

Для создания пользовательских моделей сущностей вам понадобятся:

Программное обеспечение и инструменты

Базовые навыки

  1. Основы 3D-моделирования: Работа с геометрией и текстурами
  2. Базовое программирование: Понимание JSON и кодирования
  3. Знание структуры Minecraft: Как устроены сущности и ресурспаки
Тип модели Рабочее пространство Blockbench Рабочее пространство MCreator
Блок Java Block/Item Forge/Fabric
Предмет Java Block/Item Forge/Fabric
Броня Modded Entity Forge
Живая сущность Modded Entity Forge/Fabric
Снаряд Modded Entity Forge/Fabric

Не бойтесь экспериментировать и учиться на ошибках. С практикой вы сможете создавать все более сложные модели.

Как работают модели сущностей в Minecraft

Модели сущностей - основа для всех движущихся объектов в игре. Вот их ключевые элементы:

  1. Корневой тег Содержит базовую информацию:
  • DataVersion
  • Position
  • Entities
  1. Структура сущности Описывает сущность набором данных:
Параметр Описание
Air Количество воздуха (в тиках)
CustomName Пользовательское имя
Motion Текущая скорость (м/тик)
Pos Координаты X, Y, Z
UUID Уникальный идентификатор
  1. Кости (bones) Формируют скелет модели:
  • Иерархическая структура
  • Основа для анимации
  • Содержат кубы видимой части
  1. Текстуры Накладываются через контроллеры рендеринга

  2. Атрибуты Определяют свойства (здоровье, урон и т.д.)

Пример структуры простой модели:

Корневая кость
├── Тело
│   ├── Голова
│   ├── Левая рука
│   └── Правая рука
├── Левая нога
└── Правая нога

При создании важно:

  • Выбрать базовый класс (например, PathAwareEntity для мобов)
  • Зарегистрировать сущность в ENTITY_TYPE
  • Создать рендерер для внешнего вида
  • Настроить атрибуты через FabricDefaultAttributeRegistry

Размер кубов влияет на UV-развертку текстуры. Для Bedrock лучше использовать целые числа.

Подготовка рабочего пространства

Для создания моделей сущностей нужно правильно настроить рабочее пространство:

Установка ПО

  1. Java Development Kit (JDK)
  • Скачайте с https://adoptium.net/releases.html
  • Для Minecraft 1.20.5+ нужна Java 21+
  • Для 1.18+ подойдет Java 17+
  1. IDE Выберите: | IDE | Преимущества | | --- | --- | | IntelliJ IDEA | Популярна, есть плагин Minecraft Development | | Eclipse | Бесплатная, поддерживается Forge |

  2. Blockbench

  • Скачайте с официального сайта
  • Запустите Launcher.exe
  1. Minecraft Forge
  • Скачайте MDK с сайта Forge
  • Распакуйте в пустую папку

Настройка

  1. Создайте папку resources для файлов сборки и ресурсов

  2. Создайте .bat файлы:

  • setup workspace.bat: gradlew setupDecompWorkspace
  • setup eclipse.bat: gradlew eclipse
  • build.bat: (пока пустой)
  1. Запустите setup workspace.bat, затем setup eclipse.bat

  2. Импортируйте проект в IDE

  3. Сгенерируйте конфигурации запуска

  4. Настройте переменные среды для JDK

Теперь вы готовы создавать пользовательские модели сущностей!

Планирование вашей пользовательской сущности

Перед моделированием важно спланировать сущность:

Генерация идей

  • Комбинируйте мобов: "Скелет в броне на пауке"
  • Модифицируйте существующих: "Быстрый крипер с 1 HP"
  • Создавайте тематических: "Призрачный светящийся паук"

Создание эскиза

  1. Сделайте набросок на бумаге или в редакторе
  2. Отметьте ключевые особенности
  3. Продумайте движения и анимации
Аспект Описание Пример
Базовая форма Основная структура Гуманоид, четвероногое
Особенности Уникальные элементы Светящиеся глаза
Текстура Цвета и узоры Камуфляж, чешуя
Анимации Ключевые движения Прыжки, атаки

Сущность должна вписываться в эстетику Minecraft. Используйте стандартные ассеты как отправную точку.

"Я планирую выпустить мод с OP или пользовательскими сущностями и хотел бы узнать идеи." - FluctuatingWorm

Сообщество Minecraft открыто для новых идей и готово помочь.

Когда у вас будет четкое представление о сущности, переходите к созданию модели в Blockbench.

Создание модели

Теперь создадим модель в Blockbench:

Использование Blockbench

Blockbench

  1. Установка: Скачайте Blockbench с официального сайта

  2. Создание проекта: "Новый проект" > "Сущность Minecraft Java"

  3. Размер текстуры: Обычно 64x64 пикселя

  4. Добавление костей: Используйте инструмент "Кость":

    • Корневая кость
    • Тело
    • Голова
    • Руки (левая и правая)
    • Ноги (левая и правая)
  5. Создание кубов: Добавьте геометрию к костям

  6. UV-маппинг: Используйте "Авто UV"

Советы по моделированию

  1. Придерживайтесь эстетики Minecraft
  2. Правильно устанавливайте точки вращения
  3. Используйте плоскости для мелких деталей
  4. Соблюдайте пропорции (1 блок = 16x16x16 пикселей)
  5. Оптимизируйте количество элементов

Пример структуры модели:

{
  "format_version": "1.12.0",
  "minecraft:geometry": [
    {
      "description": {
        "identifier": "geometry.ghost",
        "texture_width": 64,
        "texture_height": 64,
        "visible_bounds_width": 3,
        "visible_bounds_height": 3.5,
        "visible_bounds_offset": [0, 1.25, 0]
      },
      "bones": [
        {
          "name": "root",
          "pivot": [0, 0, 0]
        },
        {
          "name": "body",
          "parent": "root",
          "pivot": [0, 24, 0],
          "cubes": [
            {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]}
          ]
        },
        {
          "name": "head",
          "parent": "body",
          "pivot": [0, 24, 0],
          "cubes": [
            {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}
          ]
        }
      ]
    }
  ]
}

Создание качественных моделей требует практики. Экспериментируйте и улучшайте свои навыки с каждым проектом.

sbb-itb-b1cf51d

Добавление текстур

Создание текстур

Ключевые моменты:

  • Используйте редактор с поддержкой прозрачности (Photoshop, GIMP)
  • Стандартный размер - 64x64 пикселя
  • Создайте отдельные файлы для разных состояний

В Blockbench:

  1. Откройте вкладку "Текстуры"
  2. Нажмите "Новая текстура"
  3. Задайте параметры
  4. Рисуйте прямо в Blockbench

Применение текстур

В Blockbench:

  1. Выберите элемент модели
  2. Перейдите на вкладку "UV"
  3. Используйте "Авто UV"
  4. При необходимости настройте вручную

Для использования в игре:

  1. Создайте папку ресурспака
  2. Добавьте pack.mcmeta
  3. Создайте путь к текстурам
  4. Поместите текстуры в нужную папку

Для случайных текстур:

  1. Разместите в одной из папок:
    • etf/random/entity
    • optifine/random/entity
    • optifine/mob
    • minecraft/textures/entity
  2. Назовите файлы ИмяТекстуры#.png
  3. Создайте ИмяТекстуры.properties

"Случайные текстуры добавляют разнообразие. Например, зомби в пустыне с вероятностью 10/17 будет использовать zombie1.png, а зомби по имени Джон вне пустыни всегда будет использовать zombie3.png." - из документации OptiFine

Правильное применение текстур значительно улучшит внешний вид вашей модели.

Добавление движения

Как работает движение сущностей

Движение основано на компонентах:

  • minecraft:movement: скорость движения
  • minecraft:movement.basic: движение по земле
  • minecraft:jump.static: прыжки
  • minecraft:navigation.walk: навигация

Пример в файле поведения:

"components": {
    "minecraft:movement": { "value": 0.25 },
    "minecraft:movement.basic": {},
    "minecraft:jump.static": {},
    "minecraft:navigation.walk": { "avoid_water": true }
}

Создание и применение анимаций

  1. Создайте файл анимации JSON
  2. Определите анимацию в Blockbench
  3. Свяжите с моделью в клиентском файле

Пример анимации покачивания робота:

  1. Создайте animation.robot.sway
  2. Настройте ключевые кадры на 0, 0.2 и 1 секунду
  3. Добавьте ссылку в клиентский файл

Для сложных движений используйте setRotationAngles:

public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) {
    super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
    this.head.rotateAngleY = f3 / (180F / (float) Math.PI);
    this.head.rotateAngleX = f4 / (180F / (float) Math.PI);
    this.leftleg.rotateAngleX = MathHelper.cos(f * 1.0F) * -1.0F * f1;
    this.rightleg.rotateAngleX = MathHelper.cos(f * 1.0F) * 1.0F * f1;
}

Анимации могут включать звуки и эффекты частиц. Используйте контроллеры анимации для сложных последовательностей.

Добавление модели в Minecraft

Сохранение модели

  • Сохраняйте как .json или .bbmodel
  • Используйте только ASCII-символы в имени
  • Экспортируйте как "bedrock geometry"

Интеграция в мод

  1. Подготовка файлов
  • Текстура в resource_packs/custom/textures/entity
  • Модель в resource_packs/custom/models/entity
  • Установите identifier как "geometry.test"
  1. Регистрация сущности
public static final EntityType<CubeEntity> CUBE = Registry.register(
    Registry.ENTITY_TYPE,
    new Identifier("entitytesting", "cube"),
    FabricEntityTypeBuilder.create(SpawnGroup.CREATURE, CubeEntity::new).dimensions(EntityDimensions.fixed(0.75f, 0.75f)).build()
);
  1. Создание рендерера
EntityRendererRegistry.INSTANCE.register(EntityTestingMod.CUBE, (context) -> {
    return new CubeEntityRenderer(context);
});
  1. Точка входа клиента

В fabric.mod.json:

"entrypoints": {
    "client": [
        "com.example.entitytesting.EntityTestingClientMod"
    ]
}
  1. Тестирование

Используйте /summon entitytesting:cube для проверки.

Процесс может отличаться в зависимости от версии Minecraft и инструментов разработки.

Проверка и устранение проблем

Тестирование модели

  • Используйте /summon entitytesting:cube
  • Проверьте внешний вид и текстуры
  • Убедитесь в правильности анимаций

Распространенные проблемы и решения

Проблема Решение
Неправильное расположение частей Проверьте точки поворота в Blockbench
Текстуры не отображаются Проверьте имена файлов и пути
Модель не появляется Проверьте версию экспорта
Ошибки компиляции Измените версию экспорта в Blockbench
Неправильные анимации Используйте группы в Blockbench

При несоответствии модели:

  1. Проверьте точки поворота
  2. Убедитесь в правильности имен
  3. Удалите текстуру из Blockbench

"Моя модель свиньи в игре не соответствовала модели в Blockbench, ноги были неправильно расположены."

Советы:

  • Регулярно проверяйте модель в игре
  • Используйте правильное рабочее пространство в Blockbench
  • Согласуйте имена модели, идентификатора и текстуры
  • Оставьте класс сущности как "Entity"

Создание моделей сущностей - сложный процесс, но с правильным подходом вы сможете создать уникальные модели для Minecraft.

Продвинутые методы

Добавление специальных эффектов

  1. Частицы и звуки в анимациях

В Blockbench:

  • Используйте "Animate Effects"
  • Добавляйте ключевые кадры эффектов и звуков

В игре:

  • Определите идентификаторы в ресурс-паке
  • Поместите файл частиц в папку particles
  • Определите звуки в sound_definitions.json
  1. Эффекты зелий

Создайте собственный эффект:

public class МойЭффектЗелья extends MobEffect {
    public МойЭффектЗелья(MobEffectCategory категория, int цвет) {
        super(категория, цвет);
    }
    @Override
    public boolean applyEffectTick(LivingEntity сущность, int усилитель) {
        // Логика эффекта
        return true;
    }
}

Зарегистрируйте:

public static final Supplier<МойЭффектЗелья> МОЙ_ЭФФЕКТ_ЗЕЛЬЯ = MOB_EFFECTS.register("мой_эффект_зелья", () -> new МойЭффектЗелья(MobEffectCategory.BENEFICIAL, 0xffffff));

Оптимизация работы моделей

  1. Оптимизация геометрии
  • Используйте culfacing
  • Удаляйте скрытые грани
  1. Эффективные анимации
  • Используйте запросы MoLang
  • Применяйте контроллеры анимаций
  1. Оптимизация ИИ сущностей
Метод Эффект
Уменьшение частоты поиска пути Снижает нагрузку на сервер
Оптимизация выбора цели Уменьшает частоту вычислений
Отключение сканирования опасностей Экономит ресурсы для монстров
Оптимизация рейдов зомби Снижает шанс поиска жителей до 1/3

Эти методы могут снизить нагрузку на сервер на 22-25% и уменьшить пиковую нагрузку на 20-50%.

Итоги

Ключевые моменты

  • Используйте Blockbench для моделирования и текстурирования
  • Часто тестируйте модель
  • Оптимизируйте геометрию
  • Применяйте эффективные анимации с MoLang
  • Настраивайте поведение через JSON-файлы

Продолжайте экспериментировать

  • Начните с малого: модифицируйте существующую модель
  • Используйте инструменты разработчика:
Инструмент Применение
Visual Studio Code Редактирование JSON-файлов
Blockbench Визуальное редактирование
  • Изучайте работы других моддеров
  • Экспериментируйте с новыми идеями

"Поздравляем! Вы прошли долгий путь в своем моддинг-путешествии." - CodaKid

Создание модов - безопасный и увлекательный способ сделать Minecraft уникальным. Делайте резервные копии и начинайте с малого.

Дополнительная помощь и информация

Полезные руководства

  • Blockbench Wiki: Инструкции по моделированию и анимации
  • Плейлист ArtsByKev Blockbench Tutorials: Видеоуроки
  • Документация OptiFine: Информация о форматах CEM

Помощь сообщества

Платформа Особенности
Minecraft Forge Forums Разделы поддержки и разработки
Minecraft Forum Обсуждение модов и помощь

"Прочитайте FAQ перед публикацией в разделе поддержки." - Minecraft Forge Forums

При обращении за помощью:

  • Ожидается базовое знание Java
  • Тестируйте модели часто
  • Используйте редактор кода для JSON-файлов

Related posts

Read more

Built on Unicorn Platform