Ограничитель, который ограничивает положение объекта в пространстве своего родителя.
Чтобы повлиять на какой-либо объект, экземпляр MotionPathConstraint должен быть добавлен к массиву Object3D.constraints.
Конструктор не принимает на вход никаких аргументов.
Общие свойства смотрите в базовом классе Constraint.
Позволяет совершать крен. Крен означает, что объект наклоняется к центру кривизны кривой, по которой он движется, подобно мотоциклу, входящему в поворот, то есть это своего рода крен влево-вправо. По умолчанию false.
Масштабирует угол крена. По умолчанию 1.
Максимально допустимый угол крена в радианах. По умолчанию Infinity.
Массив сумм длин хорд. Длины хорд хранятся в виде:
[lengthOfChord1, lengthOfChord1 + lengthOfChord2, ...]
Последний элемент соответствует полной длине кривой. Замечание: не используется когда useChordLength установлен в false. По умолчанию [].
Общее количество хорд на кривой, используемое при включённом флаге useChordLength. Чем больше это число, тем равномернее будет движение объекта. Если chordsNum <= 0, данное число будет рассчитано автоматически. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию 0.
Упакованный массив контрольных точек NURBS-кривой. «Упакованный» означает, что контрольные точки хранятся следующим образом:
[point_1.x, point_1.y, point_1.z, point_2.x, point_2.y, point_2.z, ...]
Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].
Степень NURBS-кривизны, т.е. степень кривизны пути. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию 3.
В «Вердж3Д» используется правосторонняя систему координат с осью Y, направленной вверх, но в «Блендере» и «3дс Максе» используется правосторонняя система координат с осью Z, направленной вверх (см. «Вердж3Д Вики»). Поэтому, чтобы исправить вращение для камер и света, необходимо устанавливать флаг fixCameraLightRotation = true. По умолчанию false.
Объект останется заблокированным в одной точке вдоль кривой независимо от анимации. По умолчанию 0.0.
Если включено, вычисляет ориентацию объекта (вращение) по мере его движения вдоль кривой. По умолчанию true.
Ось ограничиваемого объекта, соответствующая фронтальному вектору, т.е. ось соответствующая тангенте к кривой. Одна из: 'X', '-X', 'Y', '-Y', 'Z', '-Z'. По умолчанию 'Z'.
Процент влияния, которое ограничитель оказывает на ограничиваемый объект. По умолчанию 1.0 (100%).
Указывает, что данный объект является экземпляром класса MotionPathConstraint. Только для чтения.
Массив узловых точек NURBS-кривой. Замечание: длина массива всегда равна количеству контрольных точек + степень + 1. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].
Как будет добавляться смещение к перемещению ограничиваемого объекта:
0 — трансформации перемещения и поворота будут применяться независимо (поведение «3дс Макса»).
1 — трансформация будет применяться как умножение матрицы (поведение «Блендера»).
По умолчанию 0.
Как будет добавляться смещение поворота к повороту ограничиваемого объекта:
0 — будет применяться только поворот ограничителя (поведение «3дс Макса» и «Майи»).
1 — сначала применяется поворот ограничителя, а затем смещение поворота (поведение «Блендера»).
По умолчанию 0.
Дополнительное смещение к value. Замечание: не работает если useFixedLocation равно true. По умолчанию 0.0.
Массив углов наклона (углы крена, углы поворота) в радианах в каждой контрольной точке кривой. Является альтернативой bank. Значения сохраняются в форме:
[tiltAngleForFirstPoint, tiltAngleForSecondPoint, ...]
Замечание: не работает если usePointsTilt равен false. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].
Тип ограничителя. Равен "MotionPathConstraint".
Ось ограничиваемого объекта, которая максимально выровнена с осью worldUpVector. Может быть одной из "X", "-X", "Y", "-Y", "Z", "-Z". По умолчанию - "Y".
Установите в true, чтобы двигать объект равномерно вдоль кривой. По умолчанию false.
Если равен true, параметр value будет ограничен интервалом [0.0, 1.0]. Замечание: не работает, если useCyclic равен true. По умолчанию false.
Установите в true, чтобы сделать параметр value цикличным, например если value = 1.6 то он станет 0.6, если value = -1.6 то он станет 0.4. По умолчанию false.
Установите в true, чтобы объект всегда фиксировался одной точкой на кривой, независимо от анимации, определённой в fixedValue. По умолчанию false.
Включить или выключить смещение объекта. По умолчанию false.
Аналогичен bank, но используется в случае, если определён массив pointsTilt. Замечание: не работает если bank равен true. По умолчанию false.
Включает/выключает смещение позиции объекта. Замечание: работает только если useObjOffset равен true. По умолчанию true.
Если равно true, объект следует пути со смещением расстояния, основанным на его исходном положении в мировой системе координат, сохранённом при первом вызове функции update. Замечание: работает только если useObjOffset равен true. По умолчанию false.
Текущее значение ограничителя. Должно быть в интервале [0.0, 1.0] если параметр useCyclic равен false. По умолчанию 0.0.
Массив весов для каждой контрольной точки. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].
Вектор в мировой системе координат, относительно которого выравнивается вектор upAxis. По умолчанию (0, 1, 0).
Общие методы смотрите в базовом классе Constraint.
Инициализирует путь кривой ограничителя. Замечание: всегда вызывайте этот метод при изменении параметров кривой.
О том как получить исходный код этого модуля читайте тут.