Простой RIG автомобиля в Blender

Автопогоня, популярный элемент в экшен повествовании, не обошел стороной и CG Cinematic'и. Здесь поделюсь методом быстрого рига авто в Blender без смс, принципиально подходящим для любого DCC c системой ограничителей - констрэйнов.


1.jpg

Итак, модель авто имеется в наличии, собственная или со sketchfab - не важно. Важно чтобы 4 колеса и остальной кузов были разными объектами. После необходимого объединения/разделения мешей добавим центры вращений с помощью "пустышек-контроллеров" Empty. По одному для каждого колеса, один для остального кузова и один общий, мастер -контроллер.
Разместим "пустышки" в местах воображаемого крепления колес к ступице, обнулим их вращение и привяжем объекты колес, как child объекты соответственно к каждому контроллеру "пустышке".
Empty.jpg

Остальной кузов назначим child-ом для контроллера кузова, все контроллеры сделаем child-ами мастер-контроллера, отвечающего за перемещение авто по сцене.
Плотный контакт с дорогой обеспечим связав контроллеры колес констрэйнами "Shrinkwrap" с объектом поверхности по которой собираемся "ехать". Установим необходимую дистанцию до поверхности, величиной, примерно равной радиусу колеса.


Shrink.jpg

Так как shrinkwrap отталкивается от сетки, деформацию дороги/рельефа displacement необходимо добавить через модификатор сетки, не шейдером. Для этого добавим карту Displacement в поле Texture,а координаты в модификаторе выставим в режим UV.

Disp.jpg

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

d2.jpg
d21.jpg

Чтобы передние колеса поворачивались одновременно, добавим контроллер "руля" и передадим его вращение по вертикальной оси с помощью констрэйна "Copy Rotation" контроллерам передних колес.

wheel.jpg

Если в реальном мире вращение колес двигает кузов авто, то в мире Blender движение кузова вращает колеса с помощью драйвера.
В меню правого клика на значении вращения по оси X одного из контроллеров колес выберем "ADD Driver", добавить драйвер, и пипеткой выберем мастер- контроллер. Если окно драйвера пропадет - еще раз правым кликом по тому же месту, вызовем "Edit Driver" редактировать драйвер. В поле переменной(VAR): объект - Мастер-контроллер авто. Тип - "Location Y" позиция по локальной оси Y. Сам тип драйвера - выражение,"Scripted Expression" - нехитрое умножение значения нашей переменной на -1. (при необходимости на другую постоянную величину)

LocDriver.jpg

Теперь при перемещении Мастер-Контролера по оси Y, контроллер колеса будет вращаться по оси X.

LocDriver1.jpg
Для удобства, с помощью Copy Rotation оси X передадим это вращение на остальные колеса, или же просто скопипастим драйвер.

Такой привод поможет в простом сценарии трогания/остановки. Для перемещения по сложной траектории, обычно это сплайн(Curve), используем позицию авто (Мастер-контроллера) на этом сплайне (Curve), как базовую переменную для задания вращения колес.
Добавим в сцену траекторию движения нашего авто - Bezier curve. Прикрепим с помощью констрэйна "Follow Path" мастер-контроллер к сплайну. Убедимся, что собственная позиция авто (контроллера) 0 по всем осям, а в констрэйне выбраны опции "fixed position" и "follow curve". Параметр "Offset" отвечает за позицию авто на сплайне, 0 - начало, 1 - приехали, конечная. Скопируем его как новый драйвер с помощью меню правого клика "Copy as New Driver"

SPDriver1.jpg

Тем же правым кликом вставим значение для вращения контроллера колеса по оси х

SPDriver2.jpg

И так как значения от 0 до 1 в радианах, малавато в градусах, умножим полученную переменную на примерно -100 (значение необходимо подбирать индивидуально, руководствуясь диаметром установленных на авто колес)
SPDriver3.jpg

Риг готов. Практическое применение можно оценить, посмотрев Cinematic секвенцию, сделанную 6 лет назад, на ноуте с 850gtx. Эх..

Этого простого рига достаточно для большинства задач, для энтузиастов же, есть отличное видео от aka studios
Спасибо за внимание.



497 0 850 1
0
RENDER.RU