Риг торсионной подвески танка со сложной гусеницей. Часть 1

Здравствуйте!

В этой статье хочу поделиться интересным методом создания рига танковой торсионной подвески со сложной гусеницей.




На форуме увидел, что этот вопрос интересует людей. Сам когда-то намучился с этой проблемой. Особая благодарность за помощь моему коллеге Александру Щетинину! И так приступим. Нарисуем объекты подвески танка и одну секцию траков. Для примера я упрощенно изобразил ходовую реального танка Леопард 2.



Добавим управляющие контроллеры вращением гусеницы, вертикальным перемещением катков и главный контроллер:



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



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



Обязательно устанавливаем кнопкой Make First первую точку в сплайне на ведущем колесе. Это чтобы гусеница при перемещении катков не сползала с зубьев, так как сплайн немного будет менять длину.



Сделаем Reset XForm. Проверим, чтобы направления локальных осей всех объектов совпадали. ЭТО ОЧЕНЬ ВАЖНО! Иначе потом можно поиметь трудноисправимые проблемы.

Устанавливаем пивот на траке посередине между шпильками, а на звене на шпильку трака.





Прилинкуем все объекты к главному контроллеру, кроме трака и звена, что бы при движении и наклоне главного контроллера все объекты следовали за ним.



Выделяем трак, заходим в закладку Motion, разворачиваем свиток Assign Controller и активируем PathConstraint.



Добавляем в Add Path наш сплайн траектории, устанавливаем галочки Fallow и Allow Upside Down, и выбираем ось вращения (в моём случае Y). Теперь изменением значения % Along Path можно перемещать трак по сплайну.



Заходим в Curve Editor, на параметре Percent нажимаем ПКМ и выбираем в меню Assign Controller… В нём активируем Float Expression



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



В окне Expression пишем выражение t*coonst, где const подбирается экспериментально (в моём случае const=0.1) и жмём Evaluate. Теперь при вращении контроллера вокруг локальной оси Х трак будет перемещаться по сплайну. Значение const отвечает за «чувствительность» перемещения. Если трак вращается не в ту сторону, что контроллер, то задаём отрицательное значение.



Теперь начинается магия! Создаём и запускаем скрипт взятый из этого весёлого, но содержательного видео: https://www.youtube.com/watch?v=OASsJBcV1iA&t=4244s

Выставляем желаемое количество траков, delta (подбирается экспериментально, чтобы расстояние между траками было одинаковое) и жмём Ctrl+E.



Выставляем соединительное звено между траками, проверяем, чтобы отверстия совпадали со шпильками, если надо, подгоняем чуть звено по длине (если всё сделать правильно по реальным размерам траков, создать сплайн длиной кратной шагу траков и их количеству, то подгонка не понадобится и delta, скорее всего будет равна 0). Также прокручиваем гусеницу первым и последним траком (по номеру в их названии) на ровный участок и проверяем там соосность.



Теперь будем вставлять звенья между траками. Создаём два Dummy в центрах отверстий звена. Обязательно проверяем, чтобы совпадали оси, если надо, то поворачиваем пивоты.



Конец части 1.

Часть 2
659 0 850 8
2
2017-04-20
Отличный урок, завтра с утра мы поддержим его в соц.сетях, 36 000 подписчиков!
2017-04-20
Спасибо! Буду рад, если он окажется полезен!
RENDER.RU