Ограничитель, позволяющий связать один тип свойства преобразования (позиция, поворот или масштаб) целевого объекта с тем же или другим типом свойства преобразования в объекте-владельце в заданном диапазоне значений (который может быть разным для каждого целевого свойства и свойства-владельца). Вы также можете переключаться между осями и использовать значения диапазона не как границы, а скорее как "маркеры" для определения соответствия между входными (target) и выходными (owner) значениями.
Чтобы повлиять на какой-либо объект, экземпляр TransformationConstraint должен быть добавлен к массиву Object3D.constraints.
target — целевой объект ограничителя.
Общие свойства смотрите в базовом классе TargetConstraint.
Какую систему координат использовать. Например, если вы экспортировали сцену из «Блендера»/«3дс Макса», то это значение должно быть 'Z_UP_RIGHT'. Подробнее в «Вердж3Д Вики». По умолчанию 'Y_UP_RIGHT'.
В «Вердж3Д» используется правосторонняя систему координат с осью Y, направленной вверх, но в «Блендере» и «3дс Максе» используется правосторонняя система координат с осью Z, направленной вверх (см. «Вердж3Д Вики»). Поэтому, чтобы исправить вращение для камер и света, необходимо устанавливать флаг fixCameraLightRotation = true. По умолчанию false.
Вектор fromMax управляет верхней границей диапазона входных значений независимо для каждой оси (X, Y и Z). По умолчанию (0, 0, 0).
Вектор fromMin управляет нижней границей диапазона входных значений независимо для каждой оси (X, Y и Z). По умолчанию (0, 0, 0).
Процент влияния ограничителя на объект. По умолчанию 1.0 (100%).
Используется для проверки того, являются ли данный или производные классы ограничениями Transformation. По умолчанию true.
Тип свойства, используемого в качестве входного. Может быть одним из 'POSITION', 'ROTATION', 'SCALE'. По умолчанию используется 'POSITION'.
Тип свойства для использования в качестве вывода. Может быть одним из 'POSITION', 'ROTATION', 'SCALE'. По умолчанию используется 'POSITION'.
Массив из трех элементов - переключателей осей, они позволяют выбрать, какая входная ось будет отображена на выходную ось X, Y и Z соответственно (по индексу). Каждый элемент в массиве может быть одним из 'X', '-X', 'Y', '-Y', 'Z', '-Z'. По умолчанию используется ['X', 'Y', 'Z'].
Указывает, как новое преобразование объединяется с существующим преобразованием. Зависит от mapTo:
'POSITION'
'ADD' — новые значения добавляются к существующим значениям осей.'REPLACE' — результат ограничителя заменяет существующие преобразования.'ROTATION'
'ADD' — новые значения добавляются к существующим значениям осей.'AFTER' — новое вращение добавляется после существующего, как если бы оно было применено к дочернему объекту владельца ограничений..'BEFORE' — новое вращение добавляется перед существующим, как если бы оно было применено к родителю владельца ограничения.'REPLACE' — результат ограничителя заменяет существующие преобразования.'SCALE'
'MULTIPLY' — новые значения умножаются на существующие значения осей.'REPLACE' — результат ограничителя заменяет существующие преобразования.
По умолчанию 'REPLACE'.
Пространство ограничиваемого объекта, используемое для расчёта ограничителя. Может быть одним из v3d.ConstraintSpaceWorld, v3d.ConstraintSpaceCustom, v3d.ConstraintSpaceLocal. По умолчанию v3d.ConstraintSpaceWorld.
Пользовательский объект, пространство которого используется для расчёта ограничителя. Работает только в том случае, если ownerSpace = v3d.ConstraintSpaceCustom. По умолчанию null.
Пространство целевого объекта, используемое для расчёта ограничителя. Может быть одним из v3d.ConstraintSpaceWorld, v3d.ConstraintSpaceCustom, v3d.ConstraintSpaceLocal. По умолчанию это v3d.ConstraintSpaceWorld.
Пользовательский объект, пространство которого используется для расчёта цели ограничителя. Работает только в том случае, если targetSpace = v3d.ConstraintSpaceCustom. По умолчанию null.
Управляет верхней границей диапазона выходных значений независимо для каждой оси (X, Y и Z). По умолчанию (0, 0, 0).
Управляет нижней границей диапазона выходных значений независимо для каждой оси (X, Y и Z). По умолчанию (0, 0, 0).
Тип ограничителя. Равен 'TransformationConstraint'.
По умолчанию fromMin и fromMax действуют как строгие границы для входного значения, любое значение за пределами этих границ будет "обрезано" до ближайшей границы. При включении useMotionExtrapolate поведение меняется - они становятся "маркерами" вместо строгих границ. Это позволяет получить пропорциональное (линейное) отображение между входным значением и соответствующим ему выходным значением. По умолчанию false.
Общие методы смотрите в базовом классе TargetConstraint.
О том как получить исходный код этого модуля читайте тут.