157

Гусеница на Unity за 5 минут

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

Для начала нам нужна модель. Делать её будем в программе 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 - https://www.youtube.com/channel/UC_2szy5rCH69La6ESR1gOtA

Yandex Zen - https://zen.yandex.ru/id/6117c82108886f2f5afbc207

6
Автор поста оценил этот комментарий

Следов после первой пары колёс нет. Переделать!

Иллюстрация к комментарию
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Не вопрос, сделаем))
0
продам монеты за BTC
Автор поста оценил этот комментарий

Способ конечно интересный, имеет право на существование, но что если танков несколько видов, с разной длиной и шириной гусеницы? Придётся под каждую модельку танка делать свою модель гусениц, и каждую так вот вершинами анимировать?)
На Хабре довольно давно была статья, вроде так и называлась "Танк на Unity3d", жаждущий да возгуглит. Там чувак ставил WheelCollider как катки, а остальное делал динамически. Если не ошибаюсь, центры катков были ориентирами, по радиусу катка и направлению на следующий высчитывались координаты, и между катками генерились полигоны-гусеницы. А движение делалось то ли через шейдер, то ли просто через встроенный сдвиг текстуры.
Если так нужны красивые трёхмерные сегменты, их тоже можно спавнить вокруг катков при старте и динамически двигать.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Конечно, я не утверждаю что этот метод единственный или правильный. Можно написать код который сгенерирует меш любой формы и размера. гусли и также сделат шейпкей. Можно вооще все сделать физикой, или наоборот просто двигать карту высот в шейдере. Я разрабатываю проект и просто решил поделиться методом который использовал))
0
Автор поста оценил этот комментарий

Давай пили Nether Earth в этой механике :)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Прикольно)), еще бы понять что в этой игре делать надо
показать ответы
0
DELETED
Автор поста оценил этот комментарий

Я не критикую ни в коем случае. Не подумайте. 

Посмотрев на вашу работу, у самого возникла пара идей для проверки. Есть у меня сомнения, что пользовать нормали - легче по ресурсам.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Нормали безусловно будут меньше кушать, но одной нормалью, инетересной геометрии гусеницы не достигнешь. Можно использовать карту высот, но она сама по себе создает лишнюю геометрию на меше.
6
DELETED
Автор поста оценил этот комментарий

хм... а не проще и "дешевле" ювишку с нормалмапами смещать а не полики?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Да, можно двигать карту высот.
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества