Вот такого результата мы сегодня достигнем.
Вот такого результата мы сегодня достигнем.

Формат коротких видео:

Yandex

YouTube

Нам нужна модель. Делать её будем в программе Blender. Для начала, просто смоделируем сегмент гусеницы.

У меня гусеница будет полотном.
У меня гусеница будет полотном.

Далее, строим из сегментов что-то вроде колеса.

Поворачиваем сегменты через один, и соединяем их в колесо.
Поворачиваем сегменты через один, и соединяем их в колесо.

Теперь можно собирать гусеницу нужного нам размера.

Добавим заглушки по бокам, для внешнего вида.

Форма сегментов и размер гусеницы совсем не важен, все на ваш вкус и цвет.
Форма сегментов и размер гусеницы совсем не важен, все на ваш вкус и цвет.

Начнем делать анимацию. Выбираем объект и создаем два ключа, первый отвечает за нормальное состояние, второй управляет анимацией. У второго ключа выставляем значение 1.

В Unity первого ключа видно не будет, только управляющий анимацией. Имена ключей можно не менять, в движке к ним обращаемся по индексу.
В Unity первого ключа видно не будет, только управляющий анимацией. Имена ключей можно не менять, в движке к ним обращаемся по индексу.

Когда ключ анимации выставлен на 1, заходим в режим редактирования и смещаем сегменты по кругу. Для удобства дублируем гусеницу чтобы точно знать положения сегментов.

Двигаем на 2 сегмента вперед и с помощью инструмента "магнит" подгонял вершины на свои места.

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

Готово. С моделью мы закончили, можно также сделать текстуру или просто материал. Переносим в движок и напишем небольшой скрипт.

Если вам нужна более точная анимация ,можно добавить промежуточные ключи.
Если вам нужна более точная анимация ,можно добавить промежуточные ключи.

После импорта модели, в инспекторе объекта должен появиться Skinned Mesh Renderer. В вкладке BlendShapes находится нужный нам ключ, к нему мы и будем обращаться в скрипте.

Я импортирую сразу в формате Blend.
Я импортирую сразу в формате Blend.

Небольшой скрипт для управления анимации, её скорость будет зависеть от скорости самой гусеницы в игре, также как и направление анимации.

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

Длина сегмента гусеницы у меня равна 0.25, а двигаем мы на 2 сегмента(0.25 * 2=0,5) при значении ключа 1, нужно умножить магнитуду вектора движение на 2. Таким образом 1 метр анимации будет равен 1 метру передвижения в Unity.

При импорте моделей, правильно устанавливайте масштаб.
При импорте моделей, правильно устанавливайте масштаб.

Просто умножаем магнитуду вектора движения на 2.

Теперь все работает идеально

Немного поправил материал в Unity.
Немного поправил материал в Unity.

Таким способом можно создавать анимацию разных видов гусениц, колес.

YouTube

Yandex Zen

Комментарии (10)


  1. aamonster
    26.03.2022 08:04
    +6

    Похоже, это были очень длинные 5 минут...


  1. GennPen
    26.03.2022 10:00
    +4

    Почему от передних колес не остаются следы?


    1. VadimCoder
      26.03.2022 10:56
      +2

      1. Это не колеса, а катки.

      2. Следы должны оставатся от гусениц, гусеницы занимают место всех трех катков, и автор решил, что след будет оставатся от начала гусениц, а не от конца.


      1. z3ro
        27.03.2022 08:02
        +2

        хм, тогда если они остановятся и поедут назад, то следы могут быть не совсем правильные


        1. ChemodenStudio Автор
          28.03.2022 13:58

          Касаемо гусеницы, line renderer который рисует следы перемещается в концы в зависимости от направления.С одиночными "колесами" все обстоит немного по другому.


    1. ChemodenStudio Автор
      28.03.2022 13:56

      Вообще вы правы)) Этот момент был уже исправен ,но к сожалению после публикации))


  1. 13_beta2
    26.03.2022 20:21
    -1

    А сову научите рисовать?


    1. ChemodenStudio Автор
      28.03.2022 13:58

      Я очень плохо рисую,прошу прощения))


  1. EdeLwisS
    27.03.2022 08:02

    проще наверное сделать Нормал мэп+ текстуру и ее анимировать


    1. ChemodenStudio Автор
      28.03.2022 14:00

      Да,безусловно.Но такую форму гусеницы нормал мапой не выдавишь.