Всем привет! Сегодня мы с вами научимся юзать анимацию для блока.

Например, вы решили сделать плавно открывающуюся дверь, как я, но посчитали что не трушно использовать какие то левые апи. Этот тутор для вас!

Суть работы AnimationAPI- это плавный переход из одного блокстейта в другой. Грубо говоря, если в обычной ванили у нас есть только константа — блокстейт(вспомним матан ( f(state) = const )), то тут мы уже имеем функцию, которая является зависимой от времени( f(state) = t ).

Тутор будет написан на примере открываниязакрывания двери.
Итак, давайте посмотрим что нам надо:
1) Нам нужны JSON файлы моделей. Джва штука. Один для статической части и один для динамической части.
2) Нам нужны будут тайл нашего блока, и сам блок.

Основная запара здесь конечно с JSON-ами этими деревянными, нежели с кодом.

Посему давайте с них и начнем. Первым делом нам понадобится файл с параметрами анимации, который нам надо расположить по пути modid:asms/block/doortest.json

КАК сделать АНИМИРОВАННЫЕ предметы и блоки в МАЙНКРАФТЕ! РЕСУРС ПАК!

< //Это не предназначено для копипастинга. «parameters»: < // триггер end_anim указывает нам что к переменной click_time нужно прибавлять 1 «end_anim»: [ «compose», [ «+», 1 ] , «#click_time» ], //этот триггер вычитает по единице из #end_anim «trigger_anim»: [ «-«, «#end_anim» ], //это триггер прогресса, он вычитает по единичке каждый тик, пока не будет 0. То есть 20 раз. «progress»: [ «-«, «#click_time» ] >, //это клипы, или ключевые точки анимации. //У нас тут в данном случае имеется два пограничных состояния и два промежуточных «clips»: < //закрытое состояние. «Тождественно» обычному состоянию «closed»: «#identity», //открывающееся состояние. Тут используется «opening»: [ «trigger_positive», [ «slerp», «#closed», «#open», «#identity», «#progress» ], «#trigger_anim», «!transition:open» ], //открытое состояние, в данном случае мы устанавливаем для клипа open модель «open»: [ «apply», «soviet:[email protected]», 0 ], «closing»: [ «trigger_positive», [ «slerp», «#open», «#closed», «#identity», «#progress» ], «#trigger_anim», «!transition:closed» ] >, //это просто список состояний, которые у нас есть. Важно соблюдать порядок. «states»: [ «closed», «opening», «open», «closing» ], //перемещения. Тут мы указываем какое состояние должно в какое перейти. К примеру, закрытое //переходит в закрывающееся и так далее «transitions»: < «closed»: «opening», «opening»: «open», «open»: «closing», «closing»: «closed» >, «start_state»: «closed» >

Читайте также:  Как папа роб играет в Майнкрафт

Итак, второй файл который нам понадобится, это файл собственно анимации. Его нужно расположить по пути modid:armatures/block/bigdoor_open.json Насколько я понял, его название должно быть идентично названию динамической модели.

< «joints»: < //части модели, которые нужно анимировать. Их количество должно быть равно количеству элементов в динамической модели. «door»: < «0»: [ 1.0 ], «1»: [ 1.0 ], «2»: [ 1.0 ], «3»: [ 1.0 ], «4»: [ 1.0 ], «5»: [ 1.0 ], «6»: [ 1.0 ], «7»: [ 1.0 ], «8»: [ 1.0 ], «9»: [ 1.0 ], «10»: [ 1.0 ], «11»: [ 1.0 ], «12»: [ 1.0 ], «13»: [ 1.0 ], «14»: [ 1.0 ], «15»: [ 1.0 ], «16»: [ 1.0 ], «17»: [ 1.0 ], «18»: [ 1.0 ], «19»: [ 1.0 ], «20»: [ 1.0 ], «21»: [ 1.0 ], «22»: [ 1.0 ], «23»: [ 1.0 ], «24»: [ 1.0 ], «25»: [ 1.0 ], «26»: [ 1.0 ], «27»: [ 1.0 ], «28»: [ 1.0 ], «29»: [ 1.0 ], «30»: [ 1.0 ], «31»: [ 1.0 ], «32»: [ 1.0 ], «33»: [ 1.0 ], «34»: [ 1.0 ], «34»: [ 1.0 ], «35»: [ 1.0 ], «36»: [ 1.0 ], «37»: [ 1.0 ], «38»: [ 1.0 ], «39»: [ 1.0 ], «40»: [ 1.0 ]>>, //А вот и тутошние клипы «clips»: < «closed»: < //loop — параметр состояния. Если true то анимация продолжит отображаться //если значение превысит 1(конечную точку), //если false, то остановится в финальном положении «loop»: false, //тут собственно список переменных(которые мы задали в начале), в моем случае //»door» и то что с ними можно делать. «joint_clips»: <>, //какие то события можно делать в каких то точках. Я не пользовался этим, хз «events»: <> >, «open»: < «loop»: true, «joint_clips»: < «door»: [ < //это дебажные настройки. Выбираете интерполяцию, вид трансформации и т д. //Подробнее, какие они бывают, можете почитать в доках форге(единственное полезное что там есть) «variable»: «origin_x», «type»: «uniform», «interpolation»: «linear», «samples»: [ 0.794 ] >, < «variable»: «origin_z», «type»: «uniform», «interpolation»: «linear», «samples»: [ 0.255 ] >, < «variable»: «axis_y», «type»: «uniform», «interpolation»: «linear», «samples»: [ 4 ] >, < «variable»: «angle», «type»: «uniform», «interpolation»: «nearest», «samples»: [ -90, 0, 0 ] >] >, «events»: < >> > >

Читайте также:  Сколько весит алмазный блок в Майнкрафте

Итак два json файла для анимации у нас есть. Давайте сделаем теперь наш блок и тайл и зарегистрируем всю эту шнягу.
Сперва блок. Для удобства я стырил в одном месте хороший BlockBase для этого дела. Расширимся от него.

Спойлер: BlockBase

И наш блок.

Переходим теперь к следующему — это тайлэнтити.

Не забываем создать блокстейт. Он будет выглядеть немного необычно, но в целом, он такой же как обычно.

< «forge_marker»: 1, «defaults»: < «model»: «soviet:bigdoor» >, «variants»: < «normal»: [<>], «inventory»: [ < «model»: «soviet:bigdoor», «submodel»: < «door»: < «model»: «soviet:bigdoor_open» >> >], «facing»: < «north»: < «transform»: «identity» >, «south»: < «transform»: < «rotation»: < «y»: 180 >> >, «east»: < «transform»: < «rotation»: < «y»: 270 >> >, «west»: < «transform»: < «rotation»: < «y»: 90 >> > >, «static»: < «true»: < «model»: «soviet:bigdoor» >, «false»: < «model»: «soviet:bigdoor_open» >> > >

Но у нас горит ошибка на методе load, ведь его нету. Давайте сделаем его в методе ClientProxy
Собственно это метод, подгружающий и регистрирующий модель IAnimationStateMachine

Не забываем зарегистрировать блок как обычно(блок и рендер) и тайлэнтити
А регистрация данного тайлэнтити происходит вот так
1 аргумент — наш тайл, второе это AnimationTESR с нашим тайлом.

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

В итоге получается что то такое



Да и вообще я этот тутор для себя написал, чтобы не потерять
Читайте также:  Багровый гриб в Майнкрафт как вырастить

Автор Maxik Просмотры 1,353 Первый выпуск 3 Мар 2019 Обновление 3 Мар 2019 Оценка 5.00 звёзд 2 оценок

Источник: forum.mcmodding.ru

Как сделать анимацию блоку?

Я решил, что многим это будет полезно. Заходим в файл с текстурпаком, открываем файл terrain.png, и выбираем блок, для которого будем делать анимацию. Я выберу блок алмазной руды, а вы вибирайте любой, на ваше усмотрение.

Как сделать анимацию блоку?

затем открываем terrain.png в Adobe Photoshop.

Как сделать анимацию блоку?

Выделяем блок и определяем его как узор во вкладке «редактирование».

Как сделать анимацию блоку?

Далее создаём прозрачный документ с шириной блока и высотой, ну например, 1028 (высота зависит от «крутости» анимации, чем больше высота, тем больше кадров в вашей анимации). И в стиле слоя задаём ему наш с вами узор.

Как сделать анимацию блоку?

Затем, мы начинаем делать, непосредственно, саму анимацию. Я хочу, чтобы мой блок блистал звёздами.

Как сделать анимацию блоку?

Ну, и наконец, самое главное — сохраняем наш документ (если это алмазная руда), под именем custom_terrain_50. Цифры в названии документа зависят от местоположения блока.

Как сделать анимацию блоку?

Вот, собственно, и всё, друзья мои!

Источник: www.minezone.pro

КАК СДЕЛАТЬ АНИМИРОВАННУЮ ТЕКСТУРУ ДЛЯ MINECRAFT

Бесплатно скачать последнюю версию Minecraft можно по ссылке:

НОВЫЕ АНИМИРОВАННЫЕ ТЕКСТУРЫ В МАЙНКРАФТ

Как сделать анимированные текстуры в майнкрафт? Ответ здесь!

Как сделать анимированные блоки в майнкрафт пе 1.9+ — гайд по ресурс пакам №1

Как делать анимированные текстуры в майнкрафт — MrCrayfish’s Animation Creator

КАК СДЕЛАТЬ АНИМИРОВАННЫЕ ТЕКСТУРЫ [майнкрафт туториал]

Как создать 3Д ресурспак . How create 3d resourcepack in minecraft

КАК ПОМЕНЯТЬ ТЕКСТУРЫ НАЗВАНИЕМ В МАЙНКРАФТ НА НАКОВАЛЬНЕ. 1.14.-1.14.4

КАК СДЕЛАТЬ АНИМИРОВАННУЮ КАРТИНУ В МАЙНКРАФТ БЕЗ МОДОВ И БЕЗ КОМАНДНЫХ БЛОКОВ

Источник: www.vomine.ru