A Good Place — мод, работающий только на стороне клиента, добавляющий в Майнкрафт динамическую анимацию при размещении блоков.
При установке к большинству блоков, размещенных в игре, применяется анимация по умолчанию . Однако некоторые конкретные блоки, такие как махровые цветы или грядки, не затрагиваются. Эта система также работает с блочными сущностями, что позволяет расширить возможности.
Настоящая сила мода заключается в его настройке . Игроки могут изменять каждый аспект анимации: от размера до вращения и продолжительности.
Внимание: чтобы отобразить анимацию при первом запуске мода, вам нужно будет выбрать его пакет текстур в меню игры.
Как работает персонализация?
Для игроков, желающих пойти дальше, A Good Place предлагает систему конфигурации, основанную на файлах JSON. Включен пакет примеров, который поможет пользователям настроить анимацию. Вы также можете посетить вики мода , чтобы получить доступ ко всей документации.
Начиная
Чтобы начать, перейдите в папку Resource Pack Minecraft . Там вы найдете пример пакета, содержащий:
- Файл README.md с подробным описанием структуры файла.
- Папка
placement_animations
, в которую вы можете добавлять или изменять файлы JSON.
Чтобы протестировать анимацию, просто сохраните изменения, включите внутриигровой пакет текстур и наблюдайте за изменениями.
Структура анимации
Анимации в A Good Place определяются несколькими параметрами, сгруппированными в файлах JSON. Вот основные элементы, из которых состоит анимация:
- предикаты : определяют блоки, к которым применяется анимация.
- Priority : устанавливает приоритет анимации, если несколько файлов нацелены на одни и те же блоки.
- масштаб : начальный размер блока при размещении.
- Scale_curve : настраивает кривую перехода шкалы.
- перевод : добавляет движение в определенном направлении (x, y, z).
- вращение : определяет угол поворота блока.
- Rotate_curve : настраивает кривую перехода для вращения.
- высота : изменяет начальную высоту блока.
- звук : позволяет добавить звуковой эффект при размещении.
Простой пример анимации
Этот файл JSON применяет анимацию к каменному блоку ( minecraft:stone
). При размещении блок появляется с уменьшенным масштабом и плавным переходом:
jsonCopyEdit{
"predicates": [
{
"predicate_type": "tag_match",
"tag": "minecraft:stone"
}
],
"scale": 0.2,
"scale_curve": 0.92
}
Фильтры и предикаты
Предикаты позволяют фильтровать блоки, к которым следует применить анимацию. Вот основные доступные типы:
- match_blocks : нацелен на один или несколько конкретных блоков или тег блока.
- not : исключает блоки, соответствующие заданному предикату.
- Any_of : анимация применяется, если один из перечисленных предикатов истинен.
- has_collision : проверяет, есть ли у блока коллизия.
- is_double_block : определяет двойные блоки (например, клумбы или большие цветы).
Расширенный пример с несколькими условиями
Этот файл JSON применяет анимацию ко всем блокам, кроме цветов и кустов сладких ягод . Исключенные блоки — это те, которые соответствуют предикатам is_double_block или has_collision :
jsonCopyEdit{
"predicates": [
{
"predicate_type": "any_of",
"predicates": [
{
"predicate_type": "block_match",
"blocks": "#minecraft:flowers"
},
{
"predicate_type": "block_match",
"blocks": [
"minecraft:sweet_berry_bush"
]
}
]
},
{
"predicate_type": "not",
"predicate": {
"predicate_type": "is_double_block"
}
},
{
"predicate_type": "not",
"predicate": {
"predicate_type": "has_collision"
}
}
]
}
В этом примере будут затронуты только блоки, которые не являются двойными блоками и не имеют коллизий .
Объяснение кривых
Параметры, заканчивающиеся на _curve (например, scale_curve
или translation_curve
), определяют плавность анимации посредством экспоненциальной кривой:
- 0 : Линейная анимация с плавным развитием от начала до конца.
- Близко к 1 : анимация медленнее в начале и быстрее в конце (восходящая вогнутость).
- Близко к -1 : быстрая анимация в начале и медленная к концу (нисходящая вогнутость).
Значение 1 или -1 недопустимо.