Анимация моба

Версия Minecraft
1.7.10
Сап, братаны. Есть готовая модель моба. Работает, с текстурой и тд всё хорошо, написал вручную
Сейчас встала проблема с анимацией
Суперклассом взял по умолчанию ModelBase, но в отличие от обычной модели игрока, у моей модели больше шейпов и сами шейпы (голова, ноги, руки) другого размера и находятся на других координатах
Пытался копировать анимацию из ModelBiped хотя-бы для головы, но и она отказывается ишачить. Мб проблема в setRotationPoint, ибо вообще без понятия, как там подбирается координата точки вращение, так что по сути пишу координату наугад
2020-02-15_10-02-26.png

На пике выше стоит только процесс создания шейпов. Тут как раз для каждого шейпа заданы стандартные параметры addBox (c ним проблем 0) и setRotationPoint (невиданный мне зверь) Дальше по коду идёт только создание всех остальных шейпов, так что в нём смысла нет.
На пике ниже код, продолжающийся сразу после создания всех шейпов. Я,если честно, не особо понимаю, что тут за что отвечает. Особенно, зачем вообще нужны переменные float, ибо я не нашёл, где они указываются и для чего нужны. Заранее благодарю за помощь и буду дико рад, если объясните мне что-нибудь из того, что я не понимаю
2020-02-15_10-14-48.png
 
Решение
Так! Я тя полюбил, я тя научу!
Вижу брата любителя блокнотов издалека )))

Записывай:
1. При создании шейпов первые три параметра - это смещение бокса от его точки вращения, соответственно влево, вниз и назад (не спрашивай почему автор выбрал именно такие направления. Сам задаюсь этим вопросом). Вторые три параметра - это размер бокса (ширина, высота, длина). Тут всё понятно... Последний - это оффсет. Только пойми правильно, оффсет не куда-либо, а во все стороны... Бокс будет расти.
2. setRotationPoint() - задаёт положение точки вращения твоего шейпа относительно центра модели... Центр, как правило, находится на координатах (0, 24, 0). Опять же, не спрашивай, почему выбраны именно такие координаты.
3. Вращение и анимация...
4,045
63
645
Так! Я тя полюбил, я тя научу!
Вижу брата любителя блокнотов издалека )))

Записывай:
1. При создании шейпов первые три параметра - это смещение бокса от его точки вращения, соответственно влево, вниз и назад (не спрашивай почему автор выбрал именно такие направления. Сам задаюсь этим вопросом). Вторые три параметра - это размер бокса (ширина, высота, длина). Тут всё понятно... Последний - это оффсет. Только пойми правильно, оффсет не куда-либо, а во все стороны... Бокс будет расти.
2. setRotationPoint() - задаёт положение точки вращения твоего шейпа относительно центра модели... Центр, как правило, находится на координатах (0, 24, 0). Опять же, не спрашивай, почему выбраны именно такие координаты.
3. Вращение и анимация... Вот тебе нормальный метод с нормальными названиями параметров:
Java:
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entity)
Думаю, теперь всё должно стать яснее...
Если не стало, то!
4. Собственно, анимация...
  • limbSwing - параметр, отвечающий за смещение моба... Каждый раз, когда он смещается, этот параметр увеличивается... Соответственно, пользуясь им (и тригонометрией) можешь легко задать движение ног. Но не забудь умножить его на limbSwingAmount. Поймёшь почему, если попробуешь.
  • limbSwingAmount - состояние движения моба. 0 - моб стоит, 1 - моб двигается... Среднее значение - моб разгоняется или тормозит.
  • ageInTicks - тупо тики жизни моба... Решай сам, что с ними делать.
  • netHeadYaw и headPitch - повороты головы.
  • оставшееся сам поймёшь )))
Удачи в твоём безнадёжном деле )))
 
Последнее редактирование:

VeniVidiVici

Санта Барбарис
327
15
198
Скачай MCAnimator, сделай там анимацию шейпов, экспортируй эту анимацию и на выходе получишь готовый код анимации

Аниматор робит только с моделями течне
Что не особо удобно, ну ла ладно Экспортирует он в жабе, но я не знаю, как вставить его в модель, куда его пихать, отдельным классом, или в класс модели

Посмею заметить, что MCAnimator работет не с Techne (с него конечно тоже можно импортировать модель), и не с оригинальным Biped.

У него свои классы рендера, и выданные им движения шейпов придётся ещё подгонять под Biped, так как у MCA немного изменённый метод самого рендера модели. Но анимированных мобов с ним клёпать действительно не сложно, учитывая, что он сразу выдаёт готовые классы, только адреса поправить.
 
Сверху