![Вот такого результата мы сегодня достигнем. Вот такого результата мы сегодня достигнем.](https://habrastorage.org/getpro/habr/upload_files/a15/325/0e9/a153250e91471d21f07a9fde8dffddb2.gif)
Формат коротких видео:
Нам нужна модель. Делать её будем в программе Blender. Для начала, просто смоделируем сегмент гусеницы.
![У меня гусеница будет полотном. У меня гусеница будет полотном.](https://habrastorage.org/getpro/habr/upload_files/242/411/602/24241160285050414bc72680caca94c8.gif)
Далее, строим из сегментов что-то вроде колеса.
![Поворачиваем сегменты через один, и соединяем их в колесо. Поворачиваем сегменты через один, и соединяем их в колесо.](https://habrastorage.org/getpro/habr/upload_files/237/910/03a/23791003ae0105dd833e276059ffe3ea.gif)
Теперь можно собирать гусеницу нужного нам размера.
![](https://habrastorage.org/getpro/habr/upload_files/b09/3c4/34b/b093c434b6650b6210b0d263f4e10a93.gif)
Добавим заглушки по бокам, для внешнего вида.
![Форма сегментов и размер гусеницы совсем не важен, все на ваш вкус и цвет. Форма сегментов и размер гусеницы совсем не важен, все на ваш вкус и цвет.](https://habrastorage.org/getpro/habr/upload_files/2d3/732/d41/2d3732d419719ee11aaaafabef870718.gif)
Начнем делать анимацию. Выбираем объект и создаем два ключа, первый отвечает за нормальное состояние, второй управляет анимацией. У второго ключа выставляем значение 1.
![В Unity первого ключа видно не будет, только управляющий анимацией. Имена ключей можно не менять, в движке к ним обращаемся по индексу. В Unity первого ключа видно не будет, только управляющий анимацией. Имена ключей можно не менять, в движке к ним обращаемся по индексу.](https://habrastorage.org/getpro/habr/upload_files/470/210/0dd/4702100dd147c50ab5ea8ae8a05794a7.gif)
Когда ключ анимации выставлен на 1, заходим в режим редактирования и смещаем сегменты по кругу. Для удобства дублируем гусеницу чтобы точно знать положения сегментов.
Двигаем на 2 сегмента вперед и с помощью инструмента "магнит" подгонял вершины на свои места.
![Ничего сложного, точность нужна для зацикливания анимации,если вы сделали все так как на GIF, то у вас все будет замечательно работать. Ничего сложного, точность нужна для зацикливания анимации,если вы сделали все так как на GIF, то у вас все будет замечательно работать.](https://habrastorage.org/getpro/habr/upload_files/164/273/7c8/1642737c8ab84c9462971aee9eacba37.gif)
Готово. С моделью мы закончили, можно также сделать текстуру или просто материал. Переносим в движок и напишем небольшой скрипт.
![Если вам нужна более точная анимация ,можно добавить промежуточные ключи. Если вам нужна более точная анимация ,можно добавить промежуточные ключи.](https://habrastorage.org/getpro/habr/upload_files/916/177/850/916177850f281feb3113de4666181d5e.gif)
После импорта модели, в инспекторе объекта должен появиться Skinned Mesh Renderer. В вкладке BlendShapes находится нужный нам ключ, к нему мы и будем обращаться в скрипте.
![Я импортирую сразу в формате Blend. Я импортирую сразу в формате Blend.](https://habrastorage.org/getpro/habr/upload_files/5e0/bcd/cca/5e0bcdcca5e8b1e94993bdf141e10d04.gif)
Небольшой скрипт для управления анимации, её скорость будет зависеть от скорости самой гусеницы в игре, также как и направление анимации.
![](https://habrastorage.org/getpro/habr/upload_files/51e/dce/f67/51edcef675809fe6579ef353c481c8be.png)
Если запустить игру и подвигать гусеницу мышкой, анимация будет работать. Ниже видно что анимация будто проскальзывает,и смотреть на это не совсем комфортно.
![](https://habrastorage.org/getpro/habr/upload_files/f3a/b2e/10f/f3ab2e10ff76e4ab5b7f3353dc32768e.gif)
Длина сегмента гусеницы у меня равна 0.25, а двигаем мы на 2 сегмента(0.25 * 2=0,5) при значении ключа 1, нужно умножить магнитуду вектора движение на 2. Таким образом 1 метр анимации будет равен 1 метру передвижения в Unity.
![При импорте моделей, правильно устанавливайте масштаб. При импорте моделей, правильно устанавливайте масштаб.](https://habrastorage.org/getpro/habr/upload_files/c6c/136/a6c/c6c136a6ca08a90e625805d5e58a9ed9.gif)
Просто умножаем магнитуду вектора движения на 2.
![](https://habrastorage.org/getpro/habr/upload_files/f81/2d4/bd9/f812d4bd99e6dcb777193c2798606b7a.png)
Теперь все работает идеально
![Немного поправил материал в Unity. Немного поправил материал в Unity.](https://habrastorage.org/getpro/habr/upload_files/0a8/3ac/efd/0a83acefdd5b358f4682231145fcb860.gif)
Таким способом можно создавать анимацию разных видов гусениц, колес.
![](https://habrastorage.org/getpro/habr/upload_files/724/b5c/33c/724b5c33c6af966419f6ab809b6def4d.gif)
![](https://habrastorage.org/getpro/habr/upload_files/96a/b58/9ba/96ab589ba7bac204301b4dadb6eefa0b.jpg)