Constraint

MotionPathConstraint

Ограничитель, который ограничивает положение объекта в пространстве своего родителя.

Чтобы повлиять на какой-либо объект, экземпляр MotionPathConstraint должен быть добавлен к массиву Object3D.constraints.

Конструктор

MotionPathConstraint()

Конструктор не принимает на вход никаких аргументов.

Свойства

Общие свойства смотрите в базовом классе Constraint.

.bank : Boolean

Позволяет совершать крен. Крен означает, что объект наклоняется к центру кривизны кривой, по которой он движется, подобно мотоциклу, входящему в поворот, то есть это своего рода крен влево-вправо. По умолчанию false.

.bankScale : Float

Масштабирует угол крена. По умолчанию 1.

.bankLimit : Float

Максимально допустимый угол крена в радианах. По умолчанию Infinity.

.chordLengths : Array

Массив сумм длин хорд. Длины хорд хранятся в виде:

[lengthOfChord1, lengthOfChord1 + lengthOfChord2, ...]

Последний элемент соответствует полной длине кривой. Замечание: не используется когда useChordLength установлен в false. По умолчанию [].

.chordsNum : Integer

Общее количество хорд на кривой, используемое при включённом флаге useChordLength. Чем больше это число, тем равномернее будет движение объекта. Если chordsNum <= 0, данное число будет рассчитано автоматически. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию 0.

.cvs : Array

Упакованный массив контрольных точек NURBS-кривой. «Упакованный» означает, что контрольные точки хранятся следующим образом:

[point_1.x, point_1.y, point_1.z, point_2.x, point_2.y, point_2.z, ...]

Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].

.degree : Integer

Степень NURBS-кривизны, т.е. степень кривизны пути. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию 3.

.fixCameraLightRotation : Boolean

В «Вердж3Д» используется правосторонняя систему координат с осью Y, направленной вверх, но в «Блендере» и «3дс Максе» используется правосторонняя система координат с осью Z, направленной вверх (см. «Вердж3Д Вики»). Поэтому, чтобы исправить вращение для камер и света, необходимо устанавливать флаг fixCameraLightRotation = true. По умолчанию false.

.fixedValue : Float

Объект останется заблокированным в одной точке вдоль кривой независимо от анимации. По умолчанию 0.0.

.follow : Boolean

Если включено, вычисляет ориентацию объекта (вращение) по мере его движения вдоль кривой. По умолчанию true.

.frontAxis : String

Ось ограничиваемого объекта, соответствующая фронтальному вектору, т.е. ось соответствующая тангенте к кривой. Одна из: 'X', '-X', 'Y', '-Y', 'Z', '-Z'. По умолчанию 'Z'.

.influence : Float

Процент влияния, которое ограничитель оказывает на ограничиваемый объект. По умолчанию 1.0 (100%).

.isMotionPathConstraint : Boolean

Указывает, что данный объект является экземпляром класса MotionPathConstraint. Только для чтения.

.knots : Array

Массив узловых точек NURBS-кривой. Замечание: длина массива всегда равна количеству контрольных точек + степень + 1. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].

.objOffsetMode : Integer

Как будет добавляться смещение к перемещению ограничиваемого объекта:
0 — трансформации перемещения и поворота будут применяться независимо (поведение «3дс Макса»).
1 — трансформация будет применяться как умножение матрицы (поведение «Блендера»).
По умолчанию 0.

.objOffsetRotMode : Integer

Как будет добавляться смещение поворота к повороту ограничиваемого объекта:
0 — будет применяться только поворот ограничителя (поведение «3дс Макса» и «Майи»).
1 — сначала применяется поворот ограничителя, а затем смещение поворота (поведение «Блендера»).
По умолчанию 0.

.offsetValue : Float

Дополнительное смещение к value. Замечание: не работает если useFixedLocation равно true. По умолчанию 0.0.

.pointsTilt : Array

Массив углов наклона (углы крена, углы поворота) в радианах в каждой контрольной точке кривой. Является альтернативой bank. Значения сохраняются в форме:

[tiltAngleForFirstPoint, tiltAngleForSecondPoint, ...]

Замечание: не работает если usePointsTilt равен false. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].

.type : String

Тип ограничителя. Равен "MotionPathConstraint".

.upAxis : String

Ось ограничиваемого объекта, которая максимально выровнена с осью worldUpVector. Может быть одной из "X", "-X", "Y", "-Y", "Z", "-Z". По умолчанию - "Y".

.useChordLength : Boolean

Установите в true, чтобы двигать объект равномерно вдоль кривой. По умолчанию false.

.useClampValue : Boolean

Если равен true, параметр value будет ограничен интервалом [0.0, 1.0]. Замечание: не работает, если useCyclic равен true. По умолчанию false.

.useCyclic : Boolean

Установите в true, чтобы сделать параметр value цикличным, например если value = 1.6 то он станет 0.6, если value = -1.6 то он станет 0.4. По умолчанию false.

.useFixedLocation : Boolean

Установите в true, чтобы объект всегда фиксировался одной точкой на кривой, независимо от анимации, определённой в fixedValue. По умолчанию false.

.useObjOffset : Boolean

Включить или выключить смещение объекта. По умолчанию false.

.usePointsTilt : Boolean

Аналогичен bank, но используется в случае, если определён массив pointsTilt. Замечание: не работает если bank равен true. По умолчанию false.

.usePosOffset : Boolean

Включает/выключает смещение позиции объекта. Замечание: работает только если useObjOffset равен true. По умолчанию true.

.useRelative : Boolean

Если равно true, объект следует пути со смещением расстояния, основанным на его исходном положении в мировой системе координат, сохранённом при первом вызове функции update. Замечание: работает только если useObjOffset равен true. По умолчанию false.

.value : Float

Текущее значение ограничителя. Должно быть в интервале [0.0, 1.0] если параметр useCyclic равен false. По умолчанию 0.0.

.weights : Array

Массив весов для каждой контрольной точки. Замечание: всегда вызывайте метод init для применения изменений. По умолчанию [].

.worldUpVector : Vector3

Вектор в мировой системе координат, относительно которого выравнивается вектор upAxis. По умолчанию (0, 1, 0).

Методы

Общие методы смотрите в базовом классе Constraint.

.init() → this

Инициализирует путь кривой ограничителя. Замечание: всегда вызывайте этот метод при изменении параметров кривой.

Исходный файл

О том как получить исходный код этого модуля читайте тут.