Carrigger Script

⚡️Скрипт для риггинга четырехколесных транспортных средств ⚡️

[3ds max 2019 – 2026] 

️ гибкий продуманный риг всех основных частей автомобиля

➡️ уникальная система вращения колес при движении абсолютно в любом направлении

➡️ масштабирование в реальном времени

️ полный контроль над подвеской

️ реализована геометрия Аккермана при повороте передних колес

️ настройки угла развала для каждого колеса

️ предустановки для дрифта, езды на двух колесах и др.

️ 3 режима езды (свободная, по сплайну, по поверхности) с возможностью попарной комбинации режимов

️ новая революционная система прилипания к поверхности под любым наклоном

️ спидометр

️ симуляция физики подвески

️ запекание анимации

➡️ импорт готового рига в любую сцену с полным сохранением работоспособности

➡️ возможность оснастки множества автомобилей в одной сцене

Все скрипты от 3dbazooka имеют универсальный установщик. Просто перетащите файл Carrigger.mzp во вьюпорт (либо запустите его через Scripting → Run Script), выберите язык установки и следуйте инструкциям.

! Внимание ! На версиях 3ds max 2019-2020 не рекомендуется запускать скрипт сразу после установки во избежание появления ошибок или даже вылета программы. После перезапуска 3ds max скрипт работает без ошибок.

Интерфейс прост и интуитивно понятен. Всего необходимо выделить в сцене и добавить в риг следующие элементы: поочередно четыре колеса, поочередно четыре тормозных колодки (опционально) и корпус (вся остальная геометрия). Например, выделяем все объекты в сцене (их может быть сколько угодно), относящиеся к переднему правому колесу, после чего кликаем по соответствующей иконке. Иконка окрасится в зеленый цвет, а все выделенные ранее элементы добавятся в список под ней. В случае ошибочного добавления геометрии в один из списков, нужно еще раз кликнуть по соответствующей иконке – выделение обнулится, после чего начать добавление заново. Для добавления тормозных колодок, необходимо активировать опцию “Brake Pads”. Когда все иконки окрашены в зеленый, можно жать кнопку “RIG”. Если что-то пошло не так, например произошла попытка добавить одну и ту же геометрию в разные списки, скрипт сообщит об этом.

Риг работает на любом четырехколесном транспортном средстве независимо от его габаритов.

Все контрольные объекты (далее контролы) заморожены на перемещение и вращение относительно Главного контрола. Главный контрол заморожен относительно нулевых координат сцены. После их изменения для возвращения на место необходимо нажать кнопку “Transform To Zero” в кастомных атрибутах Главного контрола. Если необходимо заморозить контрол(ы) в новой позиции, то жмем кнопку “Freeze Tranform”.

Все контролы заблокированы на трансформацию по тем осям, по которым их не следует перемещать, вращать или масштабировать. Далее возле каждого контрола будут указаны те оси, по которым они могут трансформироваться. Например, [pos XY*, rot XYZ, scl ***] означает, что объект можно перемещать по осям X и Y, вращать по всем трем осям и вообще нельзя масштабировать.
→ Масштабировать можно только главный контрол, поэтому на остальных контролах будет только позиция и вращение.

➡️ Ctrl_ROOT (красная двусторонняя стрелка)
[
pos XYZ, rot XYZ, scl XYZ]

Главный контрольный объект. Трансформирует весь риг. Имеет все степени свободы. При перемещении по локальной оси Y происходит автоматическое вращение колес при любом повороте Главного контрола в плоскости XY при перемещении в режиме Speed Algorithm (см. вкладку “Wheels Rotation”), и абсолютно любом повороте в любом направлении при перемещении в режиме Quality Algorithm. Для анимации перемещения авто, необходимо анимировать именно этот контрол. Также можно масштабировать риг с его помощью, колеса продолжат корректно вращаться в соответствии с новым диаметром. Имеет кастомные атрибуты в стеке модификаторов с дополнительными функциями, описанными далее.

➡️ Ctrl_rot (зеленая стрелка) [pos *Y*, rot **Z]

При вращении контрола по локальной оси Z происходит поворот передних колес для симуляции поворота авто влево или вправо. При повороте реализована геометрия Аккермана – внутреннее колесо поворачивается на больший угол, чем внешнее, чтобы обе оси колес проходили через одну точку — центр вращения автомобиля, лежащий на оси задних колес (см. вкладку Advanced Parameters”).

Также при повороте по умолчанию передние колеса поворачиваются на угол развала в 2°, который регулируется от 0° до 10° в стеке “Advanced Parameters”.

➡️ Ctrl_Drift (фиолетовая окружность со стрелкой) [pos ***, rot **Z]

При вращении контрола по оси Z весь автомобиль поворачивается относительно центра контрола, при этом происходит ускоренное вращение задних колес. Необходим для симуляции дрифта.

➡️ Ctrl_wheel_rot_** (желтые звезды) [pos ***, rot X**]

4 контрола для каждого колеса. При вращении вручную происходит прокрутка соответствующего колеса. Необходимы для более гибкого рига.

➡️ Ctrl_ ** (голубые прямоугольники) [pos XYZ, rot ***]

4 контрола для каждого колеса. При перемещении контрола происходит перемещение соответствующего колеса и симуляция работы амортизаторов в этом месте.

➡️ Ctrl_Wheel_** (коричневые окружности) [pos XYZ, rot XYZ]

4 контрола для каждого колеса. При перемещении контрола проиcходит трансформирование только колеса без подвески.

➡️ Ctrl_Susp_** (зеленые двусторонние стрелки) [pos XYZ, rot ***]

4 контрола для каждого колеса. При перемещении контрола происходит симуляция работы только амортизаторов в этом месте.

➡️ Ctrl_Susp_Move (розовая окружность в синем прямоугольнике)
[
pos XY*, rot ***]

При перемещении окружности идет симуляция работы всех амортизаторов в зависимости от направления ее движения. HP_susp_limits отображает ограничения перемещения контрола. Отрегулировать чувствительность данного контрола можно в стеке “Options”. Необходим для более гибкого рига.

Freeze Transform – команда для заморозки трансформаций Главного контрола (в том числе масштабирования).

Transform to Zero – команда обнуляет трансформации всех контролов и возвращает их в исходное положение. Также все параметры в кастомных атрибутах, за исключением стека “Rig Type” возвращаются к значениям по умолчанию.

Bake Animation – простой, но мощный инструмент для запекания анимации. Нужно выбрать диапазон кадров и частоту запекания, а также необходимые трансформации (position, rotation, scale). Кнопка “Bake Car Geometry” запекает всю геометрию авто, после чего предложит удалить риг из сцены. В случае отказа, риг останется, но уже не будет связан с геометрией.

→ Чем больше объектов в риге и чем больше диапазон кадров, тем дольше будет происходить запекание.

Delete Animation – удаляет все ключи анимации со всех контролов.

Delete Rig From Scene – удаляет весь риг из сцены, оставляя геометрию.

Susp. sensitivity – меняет чувствительность контрола Ctrl_Susp_Move.

Clear Animation Cache – при использовании в движении Quality Algorithm (см. вкладку “Wheels Rotation”) во время анимации иногда происходят непредсказуемые случаи проворота колес или поворота не в том направлении. Тогда необходимо нажать на эту кнопку и все наладится.

В этом стеке настраиваются режимы езды.

FreeRide SelfRoll – при анимации свободного перемещения авто из одной точки в другую, чтобы не настраивать анимацию поворота корпуса в нужном направлении, можно просто включить этот тумблер для поворота кормуса по касательной к Motion Path. Вращение колес подстроится автоматически.

Add Path – кнопка для перехода в режим перемещения по кривой (сплайну). Доступные типы кривой – Spline, Line, Arc, Helix, NURBS кривая. Выбираем сплайн, жмем по кнопке, после чего имя сплайна отобразится в списке ниже, а автомобиль переместится на первую вершину сплайна. С этого момента станут доступны следующие параметры перемещения по кривой.

Кнопка + – добавляет в список 2й сплайн. Между сплайнами можно плавно переключаться в любой момент времени с помощью вертикального тумблера рядом со списком. Этот параметр анимируемый.

Clear Path – очищает списки кривых и переводит автомобиль обратно в режим свободной езды.

Percent – регулирует процент перемещения по кривой (кривым).

Automatic Rotation – опция дает возможность автоматического поворота передних колес в сторону изгиба кривой (ых) при движении по сплайну(ам). При добавлении первого сплайна в сцене появляется зеленый Point перед корпусом автомобиля, являющимся детектором чувствительности. Спиннером можно регулировать степень чувствительности автоповорота от нуля до десяти.

→ При активации движения по кривой, скрипт автоматически применяет к “Path Constraint – Percent” Bezier Float контроллер вместо стандартного Linear Float, что позволяет регулировать скорость движения по кривой (ым) вручную. Для этого после создания ключей анимации и с выделенным Главным контролом необходимо перейти в режим редактирование кривых (нажав кнопку Open Curve Editor) и настроить кривую Безье перемещения по пути под свои нужды.

Constant Velocity – если включено, активирует равномерное перемещение по всей длине сплайна (ов) с постоянной скоростью в случае, если кривая в Curve Editor (см. предыдущий рисунок) является прямой. Если выключена, скорость перемещения будет зависеть от изгибов сплайна.

Add Ground – кнопка для выбора поверхности перехода в режим движения по ней. Начиная с версии скрипта 1.1 реализована уникальная система прилипания к поверхности, которая не допускает развал кузова и колес при любом ее наклоне.  Кроме того, положение Главного контрола относительно поверхности – сверху или снизу, не играет роли.

Доступные типы поверхности – любая геометрия. Выбираем поверхность, жмем по кнопке, после чего активируется прилипание колес к выбранной поверхности, а имя поверхности отобразится в списке ниже. Начиная с версии 1.1 добавлена возможность добавлять не одну, а сколь угодно много геометрических объектов в качестве поверхностей, что добавляет огромные возможности для анимации – симуляция езды через мелкие, но глубокие ямы, плавное преодоление препятствий грубой формы, симуляция полета авто и т. д. (вспомогательные поверхности лучше скрыть из рендера) Для добавления следующей поверхности необходимо повторно нажать “Add Ground”.

Кроме того, при покидании колес поверхности, они переносятся по оси Z до пивота этой поверхности, а не пивота Главного контрола, что в большинстве случаев исключает разлет автомобиля на части.

Conform Value – степень “приклеивания” автомобиля к поверхности. Анимируемый параметр – от нуля до ста.

При выборе нескольких поверхностей автомобиль “приклеится” к той, что будет ближе в Главному контролу.

Clear Ground – удаляет все поверхности из памяти, “отклеивает” колеса и переходит в режим свободной езды.

→ Режимы движения автомобиля по кривой и по поверхности могут работать одновременно.

Возможность делать тоже самое, что и с помощью контролов Ctrl_**, только используя спиннеры/слайдеры. Используйте то, что более удобно.

Offset – перемещает весь автомобиль по оси Z вверх или вниз, не задействуя при этом Главный контрол.

Остальные параметры – для каждого колеса отдельно.

 The Rotation Algorithm (Speed/Quality) – начиная с версии 1.1 в скрипт добавлен уникальный алгоритм вращения колес, независящий от дочерних или материнских контроллеров. По умолчанию стоит алгоритм Speed – классический быстрый алгоритм вращения, который может при определённом повороте Главного контрола не совсем корректно работать, выдавая прокручивания колес, которые тем не менее совсем не заметны при быстрой езде. Переключение спиннера на Quality включает новый алгоритм вращения, который при любых начальных условиях дает физически корректное вращение колес.

Кроме того, так как этот алгоритм не зависит от контроллеров, а считает абсолютное движение в сцене, Главный контрол можно линковать к чему угодно, и накладывать на него position контроллеры, такие как Path constraint или Position Constraint или даже Attachment Constraint. При перемещении материнских объектов Главного контрола колеса все равно продолжат вращаться. Однако, этот алгоритм требует значительно больше ресурсов, чем классический, поэтому может тормозить анимацию или работу в сцене, особенно на слабых ПК.

Четыре спиннера с обозначением колес дают возможность полностью отключить или замедлить автоматическое вращение колес при перемещении Ctrl_ROOT или Ctrl_rot. Поможет при симуляции резкого торможения, когда корпус еще движется, а колеса уже не вращаются. При этом контролы Ctrl_wheel_rot_ все равно будут работать.

Reverse – опция для изменения направления вращения всех колес. Полезна при симуляции езды автомобиля по поверхности, кода авто стоит на месте, а плоскость движется.

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

Left Bank – поворот корпуса на левые колеса.

Right Bank – поворот корпуса на правые колеса.

Wheelie – поворот корпуса на задние колеса.

Suspension Steering Sensitivity (SSS) – степень чувствительности реакции подвески на поворот с помощью зеленой стрелки. Регулируется от нуля до десяти.

Camber Angle – настройки угла развала. Регулируются для каждого колеса.

Camber Steering Sensitivity – регулировка угла развала передних колес при повороте зеленой стрелки. По умолчанию стоит 1, что соответствует двум градусам. Регулируется от нуля до 5ти (десяти градусов).

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

Со следующими параметрами необходимо экспериментировать для достижения желаемого результата.

Mass [0÷10000] – масса авто. Увеличение массы приводит к тому, что «подергивающиеся» вторичные движения становятся более выраженными. По умолчанию стоит ÷ 2500.

Drag [0÷10] – чем ниже значение, тем больше эффект «подергивания». Значение по умолчанию ÷ 2.

Tension [0÷100] – натяжение пружины. Значение по умолчанию ÷ 2.

Dampening [0÷10] – демпфирование пружины. Значение по умолчанию ÷ 0,5

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

При активации опции, показывает скорость движения автомобиля в соответствии с выбранным FPS (по умолчанию ÷ 30). В зависимости от скорости статус бар окрашивается от зеленого к темно-красному цвету. Показывает как км/ч, так и мили/ч. Диапазон – [0÷250] км/ч или [0÷155] миль/ч. По умолчанию выключен, чтобы не тратить ресурсы.

→ Для совпадения скорости на спидометре с визуальным отображением скорости движения автомобиля на превью анимации, параметр FPS в группе “Speed” должен совпадать с таковым в настройках “Time Configuration”. В случае, когда, например, необходимо зарендерить slow motion шот, FPS в “Time Configuration” нужно поставить побольше. Тогда автомобиль во вьюпорте будет перемещаться медленно, но на спидометре будет отображаться его реальная скорость.

➡️ 1.1 – 09.2025

        – в главном интерфейсе изменен порядок добавления колес и тормозных колодок на более логичный и удобный;

        – после рига на геометрию больше не накладывается модификатор XForm;

        – после наложения рига авто больше не переносится в нулевые координаты, а остается на месте;

        – убрано вращение колес при перемещении вперед-назад контрола «зеленая стрелка»;

        – при повороте зеленой стрелки реализована геометрия Аккермана;

        – при повороте зеленой стрелки реализованы повороты передних колес на угол развала в 2° (настраивается от нуля до десяти градусов);

        – добавлены настройки угла развала для каждого колеса;

        – добавлена опция заморозки контролов в меню кастомных атрибутов;

        – добавлена опция регулировки чувствительности работы подвески при перемещении круглого контрола;

        – в режим езды по сплайну добавлена анимируемая опция плавного перемещения между 2мя сплайнами;

        – добавлена анимируемая опция регулировки чувствительности автоповорота при езде по сплайну;

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

        – в режим езды по поверхности добавлена опция добавления любого количества геометрических объектов в качестве поверхностей;

        – в режим езды по поверхности добавлена анимируемая опция плавного прилипания к поверхности;

        – добавлен новый алгоритм вращения колес с возможностью переключения между старым и новым;

        – добавлена функция реверса вращения колес;

        – добавлена функция езды на 2х колесах – левых, правых, или задних;

        – оптимизирован код, скорость наложения скрипта увеличена, устранено множество мелких багов и ошибок.

➡️ 1.0 – 12.2024

        – оригинальный релиз