Учебники / Изменение моделей сущностей Minecraft

Этот учебник относится конкретно к официально поддерживаемой архитектуре модификации надстроек .

Резюме

Это руководство предназначено для опытных пользователей! Ожидается, что вы знакомы с форматом данных JSON. В противном случае ознакомьтесь с разделами JSON в руководстве по надстройке Behavior. В этом руководстве мы рассмотрим:

  • Обзор формата модели Minecraft JSON
  • Как изменять модели

Требуемое время

34 минуты

Необходимые инструменты

Вам понадобятся следующие программы, чтобы следовать этому руководству : Это будет сложно

Текстовый редактор

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

Начало работы

В этом уроке мы будем модифицировать крипер, чтобы у него было 3 головы! Прежде чем мы изменим крипер, давайте посмотрим на код, из которого состоят наши модели.

Формат модели Minecraft

Модели Minecraft определены с использованием JSON в файле с именем mobs.json . Игроки могут найти его в пакете ресурсов Vanilla Minecraft по адресу Vanilla Resource Pack/models/mobs.json . Этот файл содержит определение для каждой модели сущности. Каждое определение выглядит примерно так:

Псевдокод шаблона объекта
 "geometry.entityname": {"texturewidth": x, "  textureheight ": y," кости ": [{" name ":" название части тела "," pivot ": [x, y, z]," cubes ": [{" origin ": [x, y, z]  , "size": [x, y, z], "uv": [x, y]}]}]} 

Примечание. Это просто примерный обзор того, как устроена модель каждой сущности. Если бы вы использовали это как есть, это не сработало бы!

format_version Версия формата this использование модели
geometry.entityname Имя объекта, которому эта модель принадлежит
texturewidth Ширина текстуры в пикселях для этого объекта
textureheight Высота текстуры в пикселях для этого объекта
кости Кости, составляющие скелет существа. Кости содержат геометрические данные, на которые влияет кость. Обратите внимание, что здесь может быть несколько костей, разделенных запятыми.
name Имя кость
pivot Точка в пространстве, вокруг которой будет вращаться часть тела. Например, голова лианы вращается вокруг точки в нижнем центре куба, составляющего его голову.
вращение Вращение всей группы по осям x, y и z. Обратите внимание, что игра перезапишет вращения на некоторых осях, если использует их для анимации.
mirror Может иметь значение true или false . Если true, отражает UV-отображение всей группы по оси x.
neverRender Сделать эту заметку куба визуализированной во время геймплей, например vindicator и evoker hood
cubes Геометрия, которая принадлежит кости. Обратите внимание, что кость может состоять из нескольких кубов, разделенных запятыми.
origin Положение этого куба, относительное к происхождению объекта. Обратите внимание, что это положение — это нижняя передняя левая точка куба.

Пример: Для куба тела лианы вершина, обведенная красным кружком, является исходной точкой для куба тела.

size Размер куба. Обратите внимание, что куб 16x16x16 имеет такой же размер, как и отдельный блок!
uv Координата в пикселях того места, где эта кость находится в текстуре сущности. Обратите внимание, что сначала указывается пиксель x (по горизонтали), затем пиксель y (по вертикали). Обратите внимание, что этот пиксель должен быть верхним левым углом квадрата, который текстурирует куб.

Пример: Красный пиксель — это пиксель, который вы хотите указать для UV для « тело »кость для лианы (« uv »: [16, 16] ). Затем тело будет текстурировано с использованием текстуры в области, обведенной пунктирной линией.

mirror Может быть истинным или ложным. Если true, отображает UV-отображение всего куба по оси x.
inflate Раздувает куб, расширяя его в каждом направлении по заданному номеру. Число может быть отрицательным. Inflate не влияет на отображение UV.

Кости и анимация

Кости — это то, что мы используем для анимации модели. Думайте об этом как о человеческом скелете! В человеческом теле кости движутся мышцами, и ваша плоть движется вместе с ними. В 3D-анимации кости перемещаются с помощью анимации, которая, в свою очередь, перемещает присоединенную к ним геометрию!

Важное примечание!

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

Убедитесь, что вы правильно называете свои кости! Название костей для сущности должно быть таким же, как в пакете ресурсов Vanilla Minecraft.. Анимация и рендеринг модели полагаются на правильность этой информации, как описано выше!

Изменение Creeper

Теперь, когда мы рассмотрели, как формат модели Minecraft настроен, давайте немного доработаем лиану. Мы собираемся сделать так, чтобы у него было 3 головы: 2 снизу и 1 сверху, как пирамида.

  • Сначала найдите раздел geometry.creeper в файле mobs.json Vanilla Minecraft и скопируйте его. .
    • Vanilla Resource Pack/models/mobs.json
  • Создать новую папку в вашем пакете ресурсов с именем models
  • Создайте новый файл JSON с именем mobs.json и сохраните его в папке с новыми моделями
  • Введите пару фигурных скобок ( {} ) в ваш новый mobs.json , а затем вставьте geometry.creeper из файла модели Vanilla после левой фигурной скобки.
  • Теперь давайте сначала немного сдвинем его исходную голову влево. Для этого мы собираемся изменить компонент x исходной точки кости с именем « head » с -4 на -8.
  • Теперь скопируйте все в квадратных скобках для « кубиков » для « head ». Это должен быть просто текст, выделенный серым.
    mobs.json — geometry.creeper — head section
  {"name": "head", "pivot": [0.0, 18.0, 0.0], "cubes": [{"origin": [-8.0, 18.0, -4.0], "size": [8, 8,  8], "uv": [0, 0]}]}, 
  • Добавьте запятую после правой фигурной скобки для только что скопированных строк.
  • Вставьте скопированные строки после запятой.
  • Добавьте запятую после правой фигурной скобки для строк, которые вы только что вставили.
  • Вставьте скопированные строки снова после новая запятая
  • Теперь у вас должно быть 3 пары фигурных скобок в « кубиках », у каждой из которых есть источник, размер и объект uv
  • В первых скопированных строках мы собираемся переместить эту головку вправо, изменив компонент x в исходной точке на 0 с -8
  • Во второй копии измените компонент x в origin равно -4, а компонент y — 26
  • Ваша головная секция для лианы теперь должна выглядеть (новый текст серым цветом):
    mob s.json — geometry.creeper — head section
 {"name": "head", "pivot": [0.0, 18.0, 0.0  ], "кубики": [{"origin": [-8.0, 18.0, -4.0], "size": [8, 8, 8], "uv": [0, 0]}, {"origin":  [0.0, 18.0, -4.0], "size": [8, 8, 8], "uv": [0, 0]}, {"origin": [-4.0, 26.0, -4.0], "size"  : [8, 8, 8], "uv": [0, 0]}]}, 

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

Результаты

Трехголовый лиан.

Добавляем еще

Если вы хотите изменить модель другого объекта, не забудьте добавить запятую после правой фигурной скобки geometry.creeper .

Псевдокод пример

Не забывайте запятую! (выделено красным)

 {"geometry.creeper": {//материал модели} ,  "geometry.chicken": {//модель  stuff}} 

Поздравляем!

Если вы дошли до этого места, теперь вы должны знать все, что вам нужно знать, чтобы создавать свои собственные модели сущностей!

Если вы хотите создать настраиваемую сущность, которая использует настраиваемую модель вместо стандартной, то создание настраиваемой модели необходимо.

Редактор 3D-моделей можно использовать для простого создания пользовательской модели, но вы также можете использовать описанный выше метод для создания пользовательской модели. Файл пользовательской модели должен находиться в resource_pack/models/entity/. Если вы ищете ванильный, модель обычно называется model_name.geo.json , но только model_name.json также работает

Оцените статью
Gamicon.ru
Добавить комментарий