Гусеница на Unity за 5 минут
Вот такого результата мы сегодня достигнем.
Формат коротких видео:
Yandex
YouTube
Нам нужна модель. Делать её будем в программе Blender. Для начала, просто смоделируем сегмент гусеницы.
У меня гусеница будет полотном.
Далее, строим из сегментов что-то вроде колеса.
Поворачиваем сегменты через один, и соединяем их в колесо.
Теперь можно собирать гусеницу нужного нам размера.
Добавим заглушки по бокам, для внешнего вида.
Форма сегментов и размер гусеницы совсем не важен, все на ваш вкус и цвет.
Начнем делать анимацию. Выбираем объект и создаем два ключа, первый отвечает за нормальное состояние, второй управляет анимацией. У второго ключа выставляем значение 1.
В Unity первого ключа видно не будет, только управляющий анимацией. Имена ключей можно не менять, в движке к ним обращаемся по индексу.
Когда ключ анимации выставлен на 1, заходим в режим редактирования и смещаем сегменты по кругу. Для удобства дублируем гусеницу чтобы точно знать положения сегментов.
Двигаем на 2 сегмента вперед и с помощью инструмента «магнит» подгонял вершины на свои места.
Ничего сложного, точность нужна для зацикливания анимации, если вы сделали все так как на GIF, то у вас все будет замечательно работать.
Готово. С моделью мы закончили, можно также сделать текстуру или просто материал. Переносим в движок и напишем небольшой скрипт.
Если вам нужна более точная анимация , можно добавить промежуточные ключи.
После импорта модели, в инспекторе объекта должен появиться Skinned Mesh Renderer. В вкладке BlendShapes находится нужный нам ключ, к нему мы и будем обращаться в скрипте.
Я импортирую сразу в формате Blend.
Небольшой скрипт для управления анимации, её скорость будет зависеть от скорости самой гусеницы в игре, также как и направление анимации.
Если запустить игру и подвигать гусеницу мышкой, анимация будет работать. Ниже видно что анимация будто проскальзывает, и смотреть на это не совсем комфортно.
Длина сегмента гусеницы у меня равна 0.25, а двигаем мы на 2 сегмента (0.25×2=0,5) при значении ключа 1, нужно умножить магнитуду вектора движение на 2. Таким образом 1 метр анимации будет равен 1 метру передвижения в Unity.
При импорте моделей, правильно устанавливайте масштаб.
Просто умножаем магнитуду вектора движения на 2.
Теперь все работает идеально
Немного поправил материал в Unity.
Таким способом можно создавать анимацию разных видов гусениц, колес.
YouTube
Yandex Zen