Риггинг гусениц танка в Blender

6 марта 2015 55 комментариев Артем Слаква Анимация и риггинг

В этом уроке мы будем создавать риггинг гусениц танка. Для этого будут использоваться драйвера, ограничители и физическая симуляция (riggid body). В конце урока создадим объект, с помощью которого будем производить управление танком. А именно движение вперед/назад и повороты.

Финальный результат

Видеоурок

Текстовая версия

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

С помощью модификатора Array создайте 6 цилиндров, примените его, сделайте каждый цилиндр отдельным объектом и установите центр объекта в геометрическом центре каждого цилиндра:
tank1
Добавьте еще два цилиндра большего размера. Добавьте кривую Безье и с ее помощью создайте путь, по которому будет вращаться гусеница танка (обратите внимание на геометрический центр кривой):
tank2
Добавьте в сцену куб и создайте из него звено цепи. Добавьте два модификатора и настройте одинаковое расстояние между звеньями гусеницы. После этого примените оба модификатора, сделайте каждое звено отдельным объектом (как мы делали цилиндры в начале), а также установите центр объекта в его геометрическом центре:
tank3
После кривую можно удалить. Результат должен быть примерно следующим:
tank4
Включите 2-й и 3-й слои. Выделите все звенья и сделайте активным любое из них (желательно по середине). Сделайте их активными объектами и свяжите между собой. После этого Вы заметите, что в месте активного объекта одна связь отсутствует. Выделите эти два несвязных звена и таким же образом свяжите их:
tank5
Перейдите не 3-й слой, выделите все связи (ограничители) и переместите их лишь на 3-й слой (просто уберите со второго). Измените центр вращения на Individual Origins и поверните их на 90 градусов по оси Y:
tank6
Добавьте плоскость в качестве пола, сделайте ее пассивным объектом и запустите анимацию (на вкладке рендера можно выставить 60 кадров в секунду для более быстрой анимации):
tank7
Чтобы повысить качество физических взаимодействий, на вкладке сцены увеличьте указанные значения:
tank8
Примените масштабирование к звеньям и установите для них вес равным 5:
tank9
Измените форму первого цилиндра, и настройте для него следующие параметры на вкладке физики (форма, отступ, трение):
tank10
Добавьте в сцену пустышку (Single Arrow) и куб (назовите его body). Примените для куба параметр Scale. На вкладке физики установите для него вес равным 50:
tank11
Выделите пустышку и создайте для нее ограничитель Generic Spring. Разрешите цилиндру вращаться лишь по оси X:
tank12
Таким же способом создаем ограничения для первого маленького цилиндра. Но в отличии от верхнего, разрешим ему немного изменять свое положение по оси Z:
tank13
tank14
Теперь создадим еще одну пустышку, которая будет выступать в качестве подвески и контролировать положение цилиндра. Расположите ее как показано на изображении, затем выделите цилиндр и создайте для него ограничитель Limit Distance. Затем свяжите пустышку с телом танка (Ctrl + P — Object (Keep Transform)):
tank15
Продублируйте обе пустышки и цилиндр на второе колесо (а первоначальный цилиндр удалите). Выделите пустышку Single Arrow и добавьте 4 драйвера для указанных значений. Для каждого создайте переменную var, в качестве параметра укажите пустышку первого маленького колеса и скопируйте путь соответствующего параметра:
tank16
После этого продублируйте колесо с драйверами на оставшиеся 4, а первоначальные цилиндры удалите:
tank17
Удалите последний цилиндр и добавьте на его месте кольцо. Необходимо создать «шестеренку» которая будет вращать гусеницу. Звеньев в моей цепи 75, поэтому кольцо я создал с 28 вершинами. Затем с помощью инструмента Bevel придал ему соответствующую форму:
tank18
Далее из этого кольца создайте примерно следующую форму и на вкладке физики установите для него указанные параметры:
tank19
Затем также как и для первого цилиндра — ограничитель для пустышки, позволяющий вращаться лишь по оси X:
tank20
Добавьте еще одну пустышку (plain axes) и для нее установите ограничитель Motor. Активируйте угловой мотор, установите его максимальную и текущую мощности:
tank21
Увеличьте продолжительность анимации до 2000 и запустите ее для теста (помимо количества кадров, на вкладке сцены в меню Rigid Body Cache установите параметр End равным 2000). На данном этапе можете изменять веса различных частей, увеличивать/уменьшать пределы ограничителей… в общем тестируйте, играйтесь и добивайтесь желаемых результатов.

Продублируйте левую половину и снова займитесь тестами и улучшением:
tank22
Теперь добавим пустышку, с помощью которой будем управлять мощностью двигателя. Добавьте новую пустышку Cone в центре координат и подымите ее лишь по оси Z (X и Y должны быть равны 0). Выделите одну из пустышек, к которым назначен ограничитель Motor и создайте драйвер для параметра Tangent Velocity. Затем просто скопируйте данный драйвер на вторую пустышку. Теперь перемещая пустышку Cone по оси Y мы управляем направлением движения танка.
tank23
Чтобы научить танк разворачиваться, необходимо создать еще одну переменную для драйвера Tangent Velocity и дополнить формулу. Различия же будут лишь в том, что для правой стороны переменная var2 будет принимать отрицательные значения, а левая — положительные:
tank24
Последний штрих, это заменить все текущие низкополигональные объекты высокополигональными. Таким образом мы избавимся от искажения гусениц в местах изгиба и в конце концов получим танк, а не палочки на колесах :)

Делитесь своими успехами в комментариях. Удачи!

источник урока

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.