Гайд

Как сделать 3D-предметы и свои модели в текстурпаке Minecraft

Форма блока или предмета в Minecraft Java Edition задаётся его моделью: небольшим JSON-файлом из кубов внутри ресурспака. Положи в текстурпак новую модель, и форма изменится — без модов и без OptiFine: плоский меч станет объёмным, блок — плитой или ступенькой. В редакторе текстурпаков есть редактор моделей, который делает это прямо в браузере. Он одним кликом превращает плоский спрайт предмета в 3D-кубы, позволяет менять каждый куб и пишет файлы, которые нужны твоей версии игры. В Bedrock всё устроено иначе — об этом ниже.

Обновлено

Что такое модель в Minecraft

Java Edition 1.8 и новее рисует большинство блоков и предметов по файлам моделей из ресурспака:

  • assets/minecraft/models/block/ хранит модели блоков, например oak_slab.json. Файл blockstate в blockstates/ говорит, какую модель блок использует в каждом состоянии: плита снизу или сверху, бревно на боку.
  • assets/minecraft/models/item/ хранит модели предметов. Большинство предметов используют плоскую модель (item/generated): игра сама превращает спрайт 16×16 в тонкую фигуру. С 1.21.4 определение модели предмета в assets/minecraft/items/ говорит, какую модель показывает предмет.

В файле модели четыре основные части:

  • textures: имена текстур, которые использует модель, например "oak_planks": "minecraft:block/oak_planks". particle — текстура частиц при разрушении.
  • elements: кубы. Каждый идёт from от одного угла to до противоположного, в пикселях блока 16 × 16 × 16, и может выходить от -16 до 32 по каждой оси. Куб можно повернуть через rotation.
  • faces: для каждой стороны куба (down, up, north, south, west, east) — текстура, которую она показывает, часть текстуры (uv) и cullface, который убирает грань, когда эту сторону закрывает полный блок.
  • display: как модель повёрнута, сдвинута и масштабирована в инвентаре (gui), в руках, на земле, в рамке (fixed) и на голове.

Вот модель из одного куба в форме плиты — в том виде, в каком её пишет редактор моделей. В файле из редактора перечислено отображение для всех мест, а не только для инвентаря:

{
  "textures": {
    "oak_planks": "minecraft:block/oak_planks",
    "particle": "#oak_planks"
  },
  "elements": [
    {
      "from": [0, 0, 0],
      "to": [16, 8, 16],
      "faces": {
        "down": {
          "texture": "#oak_planks",
          "cullface": "down"
        },
        "up": {
          "texture": "#oak_planks"
        },
        "north": {
          "texture": "#oak_planks",
          "cullface": "north"
        },
        "south": {
          "texture": "#oak_planks",
          "cullface": "south"
        },
        "west": {
          "texture": "#oak_planks",
          "cullface": "west"
        },
        "east": {
          "texture": "#oak_planks",
          "cullface": "east"
        }
      }
    }
  ],
  "display": {
    "gui": {
      "rotation": [30, 225, 0],
      "translation": [0, 0, 0],
      "scale": [0.625, 0.625, 0.625]
    }
  }
}

Модели, написанные вручную, часто используют "parent", чтобы взять текстуры, кубы или отображение у другой модели. Редактор моделей вместо этого пишет самодостаточные файлы: всё, что он прочитал из родительских моделей, копируется внутрь, так что твой файл не зависит от других.

Как сделать 3D-предмет: пошагово

  1. Открой редактор текстурпаков и создай пак для Java под свою версию: 1.8 или новее, а чтобы предмет оставался плоским в инвентаре — 1.21.4 или новее.
  2. Переключи список на Вещи и открой предмет, например алмазный меч. На вкладке Вид нажми Изменить форму.
  3. Выбери 3D-предмет из спрайта. Каждый пиксель плоской картинки станет частью куба глубиной в один пиксель.
  4. Измени форму: щёлкни по кубу в 3D-окне или в списке, затем перемещай его, меняй размер, копируй или добавляй новые. В Грани можно дать грани другую текстуру или другую её часть.
  5. Открой Показ и проверь модель в инвентаре, от первого и третьего лица, на земле, в рамке и на голове. Поправь поворот, позицию или размер там, где что-то выглядит не так.
  6. По желанию, в 1.21.4 и новее: на вкладке Модель включи Плоский в инвентаре, чтобы в инвентаре осталась плоская иконка, а в руке была 3D-модель.
  7. Нажми Готово, экспортируй пак как .zip, положи его в папку resourcepacks и проверь в игре.
Редактор текстур с алмазным мечом, выбранным в списке «Items»: его спрайт 16×16 в пиксельном редакторе, а на вкладке «Preview» — плоский меч с кнопкой «Edit shape» под ним.
Открой предмет на вкладке «Preview» и нажми «Edit shape», чтобы открыть редактор моделей.
Редактор моделей с алмазным мечом — плоский спрайт без кубов. Варианты для начала: «3D item from sprite», «Full cube», «Slab», «Cross (plant)» и «Empty», в 3D-окне и на вкладке «Model».
У плоского предмета нет кубов: выбери «3D item from sprite».
Алмазный меч как 3D-модель из 19 кубов толщиной в один пиксель. Куб 5 выбран в списке кубов и показан со стрелками перемещения в 3D-окне, на вкладке «Cube» — его позиция (9, 11, 7.5) и размер (5 × 1 × 1).
Спрайт превращается в 19 кубов. Выбери куб, чтобы переместить его, изменить размер или грани.

Как работает «3D item from sprite»

Плоский предмет — это одна картинка, его спрайт, обычно 16×16 пикселей. Этот вариант берёт каждый непрозрачный пиксель и строит из них кубы глубиной в один пиксель, отцентрованные так же, как игра центрирует свои плоские предметы (от 7.5 до 8.5 по оси z). Пиксели в ряду объединяются в один длинный куб, а одинаковые ряды друг под другом — в прямоугольник, поэтому алмазный меч превращается в 19 кубов, а не в куб на каждый пиксель. Грани, которые полностью закрывает соседний пиксель, не создаются.

Каждая грань показывает соответствующие пиксели спрайта. Три пикселя в ряд, в столбцах с 5 по 7 строки 3, превращаются в такой куб:

{
  "from": [5, 12, 7.5],
  "to": [8, 13, 8.5],
  "faces": {
    "down": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "up": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "north": {
      "uv": [8, 3, 5, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "south": {
      "uv": [5, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "west": {
      "uv": [5, 3, 6, 4],
      "texture": "#layer0",
      "tintindex": 0
    },
    "east": {
      "uv": [7, 3, 8, 4],
      "texture": "#layer0",
      "tintindex": 0
    }
  }
}

Передняя сторона (south) показывает пиксели как есть, а задняя (north) — зеркально, как картинку, на которую смотришь сзади. Кубы продолжают использовать собственную текстуру предмета (#layer0), поэтому если перерисовать спрайт, перекрасится и 3D-предмет. Добавленные или стёртые пиксели меняют форму, только если снова выбрать 3D-предмет из спрайта. Предметы из нескольких слоёв, например зелья или кожаная броня, получают кубы для каждого слоя, и игра по-прежнему их окрашивает.

Дальше сделай предмет своим:

  • Сделай клинок толще: выдели его кубы и поменяй их позицию и размер по Z, например с 7.5 и 1 на 7 и 2.
  • Добавь куб для гарды или камня кнопкой + (или N) и дай его граням другую текстуру в Faces > Change.
  • Поверни куб в Вращение. До Minecraft 1.21.6 куб поворачивается только по одной оси, на -45°, -22.5°, 0°, 22.5° или 45°; редактор предлагает то, что принимает твоя версия.
  • Отменяй любое изменение через Ctrl+Z.

Как предмет держат в руке: Display

Вкладка Показ показывает модель в шести местах. У каждого есть поворот в градусах, позиция в пикселях (до ±80) и размер (1 — обычный, максимум 4).

В редактореГде показываетсяИмя в файле
ИнвентарьИнвентарь и панель быстрого доступаgui
От первого лицаВ твоей собственной рукеfirstperson_righthand (левая рука — зеркальное отражение)
От третьего лицаВ руке другого игрока или при виде F5thirdperson_righthand
На землеВыброшен на землюground
РамкаВ рамкеfixed
ГоловаНадет на головуhead

3D-предмет из спрайта сохраняет собственные настройки отображения предмета, поэтому 3D-меч держат так же, как плоский. Как в игре возвращает для места значения игры, а Без изменений убирает настройку. В Java 1.21.9 появилось место on_shelf для полок; редактор сохраняет значение из модели игры.

Вкладка «Display» с выбранным видом от третьего лица: 3D-алмазный меч в руке модели игрока и поля поворота правой руки (0, -90, 55), позиции (0, 4, 0.5) и размера (0.85).
В «Display» задаётся, как модель держат, носят и показывают, с превью для каждого случая.

Плоская иконка в инвентаре (1.21.4+)

Многие 3D-паки оставляют в инвентаре привычную плоскую иконку, а 3D-модель показывают только в руке. С Java 1.21.4 определение модели предмета может выбирать модель по тому, где показан предмет. Включи Плоский в инвентаре на вкладке Модель, и редактор:

  • сохранит твою форму как вторую модель, models/item/diamond_sword_3d.json, а плоскую diamond_sword.json оставит как есть;
  • напишет items/diamond_sword.json, который показывает плоскую модель в инвентаре (gui), на земле и в рамках (fixed), а 3D-модель — везде остальном:
{
  "model": {
    "type": "minecraft:select",
    "property": "minecraft:display_context",
    "cases": [
      {
        "when": ["gui", "ground", "fixed"],
        "model": {
          "type": "minecraft:model",
          "model": "minecraft:item/diamond_sword"
        }
      }
    ],
    "fallback": {
      "type": "minecraft:model",
      "model": "minecraft:item/diamond_sword_3d"
    }
  }
}

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

Вкладка «Model» с включённым «Flat in the inventory»: в инвентаре, на земле и в рамках остаётся плоская иконка. В заголовке теперь item/diamond_sword_3d.json.
«Flat in the inventory» (1.21.4+) сохраняет 3D-форму как вторую модель для руки.

Как изменить форму блока

С блоками всё так же. Открой блок на вкладке Preview и нажми Изменить форму. Редактор откроет модель, которую блок использует в том состоянии, на которое ты смотришь, а меню сверху перечисляет его другие модели, например верхнюю и двойную плиту. Оставь модель игры или начни с Полный куб, Плита, Крест (растение) или Пусто, затем добавляй, двигай и меняй размер кубов. Чтобы превратить камень в ступеньку, хватит варианта Slab и ещё одного куба:

Модель блока камня, переделанная в ступеньку: куб-плита 16×8×16 и второй куб 16×8×8 поверх его половины, на вкладке «Cube» — позиция и размер.
Камень в виде ступеньки: вариант «Slab» и ещё один куб.
  • Общие модели: некоторые блоки используют один и тот же файл модели. Если модель, которую ты правишь, использует другой блок, редактор скажет какой — он тоже изменится.
  • Предметы отдельно: предмет, который показывает модель блока, например плита в руке, при правке предмета получает свою модель предмета, так что блок сохраняет форму.
  • Меняется только вид: хитбокс, столкновения и свет задаются кодом игры. Камень в форме ступеньки по-прежнему останавливает тебя как полный блок, а соседние блоки всё так же скрывают грани, которые его касаются, из-за чего могут появиться сквозные щели.
  • Блоки, которые рисует код: у сундуков, кроватей, табличек, флагов и других блоков, которые игра рисует сама, нет модели блока, поэтому Edit shape для них недоступен. Предметам, которые рисует код, например щиту, можно дать модель — она заменит их вид.

Камень и некоторые другие блоки случайно выбирают одну из двух моделей: камень и его зеркальную копию, каждая ещё и повёрнута. Для всех случайных вариантов на вкладке Model ставит твою форму на все варианты, записывая файл blockstate блока. Запись "y": 180 сохраняет случайный поворот, а weight задаёт, как часто выбирается каждая запись:

{
  "variants": {
    "": [
      {
        "model": "minecraft:block/stone",
        "weight": 2
      },
      {
        "model": "minecraft:block/stone",
        "y": 180,
        "weight": 2
      }
    ]
  }
}

Какие файлы попадают в пак

Что ты меняешьФайлы в паке
3D-предметmodels/item/diamond_sword.json
3D-предмет, плоский в инвентаре (1.21.4+)models/item/diamond_sword_3d.json и items/diamond_sword.json
Форма блокаmodels/block/oak_slab.json
Форма блока на всех случайных вариантахmodels/block/stone.json и blockstates/stone.json

Все пути находятся внутри assets/minecraft/. Каждая версия Java начиная с 1.8 получает одни и те же файлы; только плоской иконке в инвентаре нужна 1.21.4 или новее. Редактор добавляет определение предмета или blockstate, только когда они нужны игре, а файлы моделей, которые уже есть в открытом паке, сохраняются и доступны для правки. При экспорте каждая модель проверяется на совместимость с твоей версией игры, и ты получишь предупреждение обо всём, что не загрузится.

Что менялось между версиями

ВерсияЧто изменилось для моделей
1.8Модели блоков и предметов стали JSON-файлами, которые могут заменять ресурспаки. Кубы поворачиваются по одной оси на -45°, -22.5°, 0°, 22.5° или 45°.
1.13Папки текстур переименовали из blocks и items в block и item, поэтому имена текстур в моделях тоже изменились.
1.15.2gui_light задаёт, освещена ли иконка в инвентаре сбоку (блоки) или спереди (предметы).
1.19.3Текстуры моделей должны лежать в папке, которую читают атласы текстур игры, например textures/block/ или textures/item/.
1.21.4Определения моделей предметов в items/ выбирают модель предмета, в том числе по тому, где он показан.
1.21.6Кубы можно поворачивать на любой угол от -45° до 45°.
1.21.9Новое место отображения on_shelf.
1.21.11Кубы можно поворачивать сразу по нескольким осям, на любой угол.

Редактор моделей следует этим правилам для версии, под которую сделан твой пак.

Установи и проверь

  1. Нажми Готово, чтобы выйти из редактора моделей, затем Экспорт — экспортируй пак как .zip.
  2. В Minecraft открой Настройки... > Наборы ресурсов... > Папка с наборами, положи туда zip (не распаковывая) и перенеси пак в Выбранные, выше других паков.
  3. Возьми предмет в руку, нажми F5 для вида от третьего лица, выброси его и поставь в рамку, чтобы проверить каждое отображение.
  4. Изменив модель, экспортируй снова, замени zip и нажми в игре F3 + T, чтобы перезагрузить паки.

Ещё помощь: Как установить ресурспак и Текстурпак не работает.

Bedrock Edition

Паки Bedrock устроены иначе, а редактор моделей делает только модели для Java:

  • Блоки: ресурспак Bedrock не может менять форму блоков игры. Блок своей формы — это новый блок, который добавляется аддоном с behaviour pack и файлом геометрии.
  • Предметы в руке: в Bedrock 3D-модель в руке задают attachables — файлы ресурспака с геометрией и анимацией Bedrock. Редактор текстурпаков их не делает, а Blockbench умеет.
  • С чего начать: в меню редактора моделей Скачать как геометрию Bedrock сохраняет модель как файл .geo.json (формат 1.12.0, одна кость, все кубы), чтобы импортировать его в Blockbench или аддон. Геометрия Bedrock использует одну текстуру, поэтому каждая грань сохраняет своё место на своей текстуре.

В паке Bedrock Изменить форму объясняет это вместо того, чтобы открыть редактор. Рисование текстур работает как обычно.

Частые проблемы

  • Фиолетово-чёрные грани: грань использует текстуру, которую игра не может найти: имя (#…), не заданное в textures, файл, которого нет ни в игре, ни в паке, или, с 1.19.3, текстуру вне папок атласа. Вкладка Model перечисляет такие проблемы вместе с кубом, на котором они есть.
  • Фиолетово-чёрный куб вместо модели: файл не загрузился. Обычные причины — сломанный JSON, куб за пределами от -16 до 32 или поворот, который версия не разрешает. Лог игры называет файл.
  • Модель вообще не видна: проверь, что пак выбран и стоит выше других паков, что у файла точно такие же имя и папка, как у модели, которую он заменяет, и что в 1.21.4 и новее у новой модели (например, копии _3d) есть определение предмета, которое на неё указывает.
  • В руке нормально, в инвентаре странно: поправь отображение Inventory, попробуй другое освещение инвентаря (сбоку или спереди) или включи Плоский в инвентаре.
  • Слишком много кубов: каждый куб добавляет грани для отрисовки. Для предмета в руке это почти не важно, но блок, который стоит тысячами, лучше делать простым. Оставляй объединённые кубы, которые создаёт 3D item from sprite, а не дроби их.
  • Угол не разрешён: до 1.21.6 куб поворачивается шагами по 22.5° до 45° и только по одной оси. Для поворота на четверть оборота поменяй размеры куба по двум осям местами; другие формы собирай из большего числа кубов.

Другие решения для паков в целом: Текстурпак не работает? Решения.

Частые вопросы

Нужен ли OptiFine или мод для 3D-предметов?

Нет. Ресурспаки Java умеют заменять модели блоков и предметов с 1.8, так что пак с файлами моделей работает в обычной игре. Он меняет все предметы этого типа.

Можно ли сделать 3D только переименованный предмет?

Простой заменой модели — нет. Паки, которые меняют только переименованные предметы, используют custom item textures (CIT) из OptiFine или мод, который их читает. С 1.21.4 определения предметов могут выбирать модель и по custom_model_data, который серверы и авторы карт задают командами. Редактор моделей меняет все предметы одного типа.

Можно ли сделать 3D-предметы в Bedrock?

Да, с помощью attachables в ресурспаке Bedrock, сделанных в программе вроде Blockbench. Этот редактор моделей делает модели для Java, но может скачать модель как геометрию Bedrock, чтобы начать с неё. Ресурспаки Bedrock не могут менять форму блоков игры.

Можно ли использовать модели из Blockbench?

Да. Модели блоков и предметов Java, экспортированные из Blockbench, — обычные файлы моделей. Положи их в пак под именем модели, которую они заменяют, и открой пак через Открыть пак: файлы сохранятся, а редактор моделей сможет их открыть и изменить.

Как вернуть исходную форму?

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

Можно ли делать 3D-предметы на телефоне?

Да. На телефоне 3D-окно находится над панелями, и всё делается касаниями. Пак всё равно остаётся паком для Java, так что играть с ним нужно на компьютере.