Текстуры по умолчанию находятся в папке textures. Представляют собой файл картинки с расширением png, с другими расширениями картинок ванильный майнкрафт java не работает.
Чтобы текстуры блоков работали они должны иметь одинаковую высоту и ширину.
Большинство непрозрачных блоков делают прозрачные пиксели непрозрачными. Блоки по типу стекла, которые имеют "вырезанную" прозрачность, делают все пиксели с непрозрачностью менее 10% полностью прозрачными, а все остальные пиксели полностью непрозрачными. Другие блоки отображают полупрозрачность так как она есть. Все предметы, а так же некоторые блоки и сущности, которые полупрозрачны по умолчанию поддерживают полупрозрачность.
Если файл не существует ни в одном пакете ресурсов, в том числе в пакете по умолчанию, он отображается в виде пурпурно-черной текстуры шахматной доски
Создание
Для создания текстуры можно использовать любой графический редактор, я использую gimp, так как он бесплатный и с довольно обширными функциями. Вы же можете использовать тот редактор, который вам удобен.
Замена существующих текстур
Все текстуры используемые в игре можно найти в архиве версии(*корневая_папка_майнкрафта/versions/ВЕРСИЯ.jar).
Открываем архивом там будет папка assets.
Нам сейчас нужна папка textures (assets/minecraft/textures) в ней все файлы текстур. А дальше все просто: находим нужную нам текстуру, в нашем ресурспаке даем название нашей текстуре такое же как и в архиве версии и помещаем по такому же пути как и в архиве версии.
Анимация
Для анимации потребуется создать кадры в вашей текстуре сверху вниз причем ширина и высота каждого кадра должны быть равны. Пример с анимированной текстуре ока края:
Для того чтобы анимация заработала нужно создать файл, управляющий анимацией. Такой файл имеет расширение mcmeta. Создаем текстовой файл и переименовываем его в название текстуры с расширением + .mcmeta (например для stone.png файл будет называться stone.png.mcmeta). В нём будет следующая json структура
{
"animation": {
"interpolate": <true/false>
"width": <Число>,
"height": <Число>,
"frametime": <Число>,
"frames": [
{
"index": <Число>,
"time": <Число>
}
]
}
}
animation - тег который предопределяет анимацию, он важен.
interpolate - если true, Minecraft генерирует дополнительные кадры между кадрами с интервалом между ними больше 1. По умолчанию false.
width/height - ширина/высота плитки в прямом отношении, а не в пикселях. Это не используется в файлах vanilla, но может использоваться пакетами ресурсов для создания кадров, которые не являются идеальными квадратами.
frametime - устанавливает время по умолчанию для каждого кадра с шагом в один игровой тик (0,05 секунды). По умолчанию 1.
frames - тег который включает в себя теги кадров. может так же содержать порядок чисел, соответствующих положению кадра сверху
index - число, соответствующее положению кадра сверху, при этом верхний кадр равен 0.
time - время в тиках, чтобы показать этот кадр, переопределяя «frametime» выше.
Не все теги использовать обязательно, я рассказал о них чтобы вы знали, что они существуют.
Для создания есть два путя использования этих тегов
1) Очевидный, проще некуда. Проигрывает каждый кадр раз в то число тиков которое укзазано как <Число тиков>
{
"animation": {
"frametime": <Число тиков>
}
2) Лучший по моему мнению. каждому кадру можно указать время проигрывания в тиках <Число тиков>.
{
"animation": {
"frames": [
{
"index": 0,
"time": <Число тиков>
},
{
"index": 1,
"time": <Число тиков>
},
{
"index": 2,
"time": <Число тиков>
},
...
{
"index": n,
"time": <Число тиков>
}
]
}
}
Ну думаю на это все если есть вопросы то задавайте