Главная / Моделирование / Техника
Если в модели используется инверсная кинематика, то в свойствах объектов, участвующих в кинематике, необходимо указать тип кинематического взаимодействия путем установки флажков привязки в закладке IK панели Hierarchy в 3dsmax. Поддерживаются два вида привязки: призматическая (перемещение вдоль оси Z) и вращательная (вращение вокруг оси Z). Ось Z – это ось пивота объекта. Привязка призматическая задается установкой флагов Bind Position и соответствующего параметра Axis Z. Привязка вращательная задается установкой флагов Bind Orientation и соответствующего параметра Axis Z. Нельзя одновременно использовать оба типа привязки. Следует так же сбросить флажки привязки по Axis X и Axis Y. ИК цепочка в движке считается от эффектора и вверх по родительским костям, до тех пор пока не попадется root или кость с terminator'ом. Все остальные параметры не используются и не рекомендуются к изменению. По умолчанию используется IK-привязка без ограничения. Чтобы установить пределы IK необходимо в свойствах объекта написать следующее.
Для призматической привязки (метры):
IKMin = минимальное смещение относительно базового положения
IKMax = максимальное смещение относительно базового положения
IKSpeed2 = максимальная скорость перемещения, метров в секунду
Для вращательной привязки (градусы):
IKMin = минимальный угол поворота базового положения
IKMax = максимальный угол поворота базового положения
IKSpeed2 = максимальная скорость поворота, градусы в секунду
Важно: Следует отметить, что ограничение (-45˚, 45˚) противоположно ограничению (45˚, 315˚), а ограничение (45˚, -45˚) считается ошибочным и рассматривается как (-45˚, 45˚). Для старых моделей можно не менять параметры. Там применялся параметр IKSpeed (вместо нового IKSpeed2), который измерялся в 1/20 метра и радианах для соответствующих привязок.
В модели такой техники должны быть кости pivot_front и pivot_back (соответствуют передней и задней осям), по ним определяется колесная база машины. Базовая кость модели должна находиться на одной линии с упомянутыми pivot'ами в проекции сверху.
Кости, имена которых начинаются с «wheel», вращаются при движении машины. Кости, имена которых начинаются с «steer», вращаются при повороте руля. На костях «wheel» и «steer» должна быть включена вращательная IK без лимитов. В базовой кости модели должны быть указаны параметры:
SteerMax = максимальный угол поворота руля, градусы WheelRadius = радиус колеса, метров (используется при анимации вращения) В .def модели нужны следующие строки в блоке {Chassis .......}:
{Locomotion ("locomotion")
{MaxSpeed 30}; максимальная скорость, км/ч
{StartTime 10} ; время разгона до макс. скорости с 0, seconds
{BrakeTime 0.6}; время торможения с макс. скорости до 0, seconds
{StopTime 1}; время остановки после отключения двигателя с макс. скорости до 0,
seconds
{Gears 0.35 0.5 0.7 1.0}; передаточные коэф-ты коробки передач
{RearGears 0.33 0.5}; передаточные коэф-ты коробки передач
{MaxSlope 30}; максимальный преодолеваемый угол подъема
{TurnRadius 3}; мин. радиус разворота для маневров, метров
{SteerOn 80}; скорость поворота колес, градусов в секунду
{SteerOff 80}; скорость возврата колес в исх. состояние, градусов в секунду
{SplineRadius 2}; ограничение радиуса поворота на сплайнах, метров
}