Перейти к основному содержимому

BetterModel

Анимированные 3D-модели BetterModel в роли NPC TypeWriter, с действиями анимации, управлением костями и кинематиками.

Платныеv1.5Сущности и модели
ТребуетсяTypeWriter0.9BetterModelQuest extension (TypeWriter)Basic extension (TypeWriter)Entity extension (TypeWriter)RoadNetwork extension (TypeWriter)

Обзор​

BetterModel соединяет плагин BetterModel с TypeWriter. Вы создаёте модель и её анимации в Blockbench, устанавливаете её в BetterModel, а затем используете в TypeWriter как сущность: определение (definition) указывает, какую модель использовать, экземпляр (instance) размещает её в мире, и к ней применим обычный механизм сущностей TypeWriter (аудитории, активности, взаимодействия, говорящие в диалогах).

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

Возможности​

  • Сущности-модели — определение и экземпляр превращают любую модель BetterModel в NPC с поддержкой аудитории, активности и взаимодействия.
  • Автоматические анимации — анимации простоя, ходьбы, движения боком, прыжка, полёта, атаки, получения урона и взаимодействия воспроизводятся по состоянию сущности, а их названия можно менять.
  • Действия с анимациями — запуск или остановка анимации на размещённой модели от любого триггера.
  • Управление костями для каждого игрока — показ или скрытие костей и настройка свечения, оттенка, блеска зачарования и яркости в зависимости от criteria.
  • Пользовательские хитбоксы — области клика, привязанные к костям, через Hitbox либо автоматические из костей hitbox модели.
  • Замена костей — подмена кости костью из другой модели через Attachment или Passenger.
  • Анимации игрока — воспроизведение анимаций конечностей игрока BetterModel на игроке через действие или в кинематографической сцене.
  • Кинематографические сцены — управляйте моделью по записи с помощью кинематографической сущности и снимайте её камерой на кости.
  • Индикатор взаимодействия — у моделей с именем над именем показывается индикатор взаимодействия или диалога, управляемый целями взаимодействия и записями взаимодействий.

Установка​

  1. Установите на сервер BetterModel и убедитесь, что он загружает ваши модели. Для камеры на кости нужен BetterModel 2.1.0 или новее; расширение собрано под BetterModel 3.3.0.
  2. Установите официальные расширения TypeWriter Quest, Basic, Entity и RoadNetwork (расширение собрано под все четыре).
  3. Получите BetterModel в магазинах (см. кнопки выше) и положите JAR-файл в plugins/Typewriter/extensions/.
  4. Перезапустите сервер. В логе появится [BetterModelExtension] BetterModel detected: initializing. Если BetterModel отсутствует, будет BetterModel plugin not found; extension disabled.
  5. Поместите свои модели в BetterModel и сгенерируйте его ресурспак согласно документации BetterModel. Игроки должны принять ресурспак, чтобы видеть модели.

Быстрый старт​

Разместим анимированного NPC, который машет рукой, когда по нему кликают:

  1. В веб-панели TypeWriter откройте страницу static и добавьте BetterModel Definition. Задайте modelId равным имени вашей модели в BetterModel, включите named и задайте displayName.
  2. В defaultAnimationSettings проверьте, что idle, walk и interact соответствуют названиям анимаций вашей модели (по умолчанию это idle, walk и interact).
  3. Откройте страницу manifest и добавьте BetterModel Instance, задайте definition равным только что созданному и захватите spawnLocation инструментом позиции.
  4. По желанию добавьте Bone Visibility в data определения, чтобы скрыть кость (например шляпу) от игроков, не соответствующих criteria.
  5. Добавьте entity interact event и действие Play Entity Animation. Задайте entity равным экземпляру, а animation — названию пользовательской анимации.
  6. Нажмите Publish и кликните по NPC в игре.
Хитбоксы

По NPC можно кликнуть только там, где у него есть хитбокс взаимодействия. Назовите кость hitbox в Blockbench или добавьте запись Hitbox. Если нет ни того, ни другого, используется один бокс, покрывающий всю модель.

Как это работает​

Определение содержит то, что является общим (модель, названия анимаций, хитбоксы, данные). Экземпляр содержит позицию, дополнительные данные и activity. Записи data экземпляра применяются после записей определения, поэтому экземпляр может переопределять своё определение.

Конфигурация​

У расширения нет файла конфигурации. Моделями, конечностями и ресурспаком управляет BetterModel.

Две папки BetterModel используются по имени: сущности используют модели, зарегистрированные в BetterModel, а действия и кинематографические сцены игрока читают модели конечностей игрока из папки players BetterModel (например steve, alex).

Записи​

Записей: 15, сгенерированы из исходного кода расширения.

Действия3
Кинематики4
Сущности2
Данные сущностей6

Устранение неполадок​

NPC невидим. Проверьте в логе Model '...' not found. modelId должен совпадать с моделью, загруженной BetterModel. Если не совпадает, расширение пробует модель под названием steve, а если и её нет, ничего не создаёт. Также проверьте, что игрок принял ресурспак.

NPC появляется, но по нему нельзя кликнуть. Хитбокс взаимодействия берётся из кости, в имени которой есть hitbox или hit_box, или из записей Hitbox. Если в модели нет ни того, ни другого, создаётся один бокс, покрывающий модель, высотой не менее 1,8 блока. Измените hitboxYOffset в defaultAnimationSettings, если боксы парят на неправильной высоте (по умолчанию -1.6).

Анимация ничего не делает. Названия анимаций — это названия из модели Blockbench с точным написанием. Для Play Player Animation modelId должен быть моделью конечностей из папки players BetterModel, а не обычной моделью.

Снаряжение, огонь и другие ванильные данные не действуют. У модели нет ванильных метаданных сущности. Лог один раз выводит предупреждение вида '...' has no BetterModel equivalent and is ignored. Для снаряжения в основной руке, второй руке и шлема нужны кости с тегами ri, li и ph в Blockbench (иначе в логе сказано, что у модели нет кости для этого слота); слоты брони не поддерживаются. Неравномерный 3D-масштаб использует только значение X.

Камера на кости не двигается. Она остаётся на месте, пока модель не видна игроку или кость не найдена. Проверьте boneName (регистр не учитывается) и что задан либо entityCinematic, либо instance; если заданы оба, побеждает кинематографическая сущность.

Модель пропадает после смены мира или переподключения. Расширение перезагружает модели после входа, возрождения, телепортации и загрузки ресурспака с небольшими задержками (до 5 секунд). Если модель всё равно отсутствует, перезайдите; модели кинематографических сцен удаляются при смене мира и когда игрок выходит.

Связанные расширения​