Ограничитель «Трансформация» (transformation constraint)¶
Этот ограничитель является более комплексным и универсальным по сравнению с другими ограничителями «трансформации». Он позволяет вам устанавливать положение, вращение или масштаб объекта/кости на основании положения, вращения или масштаба другого объекта/кости, смешивая и сопоставляя оси по вашему усмотрению. Примером может быть задание X-вращения шестерни на основе Y-координаты ре́льсы рядом с ней.
Ограничитель работает с диапазонами входных и выходных значений, по одному для каждой оси. Сначала он ограничивает входное значение диапазоном „Map From“, затем смещает и масштабирует его до соответствующего диапазона „Map To“. Это позволяет, скажем, сопоставить Y-координату в диапазоне (-3 м, 3 м) с X-вращением в диапазоне (0, 180°).
Опции (options)¶

Панель ограничителя Transformation.¶
- Цель (target)
Эталонный объект для чтения свойства трансформации. Если вы его не выбрали, значок ограничителя остаётся красным, и он не будет иметь никакого эффекта.
Для получения дополнительной информации см. раздел по общим свойствам ограничителей.
- Кость (bone)
Если „целью“ является арматура, вы можете выбирать здесь кость по своему желанию, чтобы использовать трансформацию только этой кости вместо всего объекта арматуры.
- Экстраполировать (extrapolate)
По умолчанию входные и выходные значения ограничиваются значениями Min/Max. При включении „экстраполирования“ им разрешено выходить за эти пределы. Это проиллюстрировано на графиках ниже, где ось X представляет входные данные (“Map From“ установлено на Min = 1 и Max = 4), а ось Y представляет выходные данные (“Map To“ установлено на Min = 1 и Max = 2).
- Цель/Владелец (target/owner)
Выбор пространства в котором будут производится расчёты. Для получения дополнительной информации см. раздел по общим свойствам ограничителей.
- Влияние (influence)
Управляет степенью влияния ограничителя на объект. Для получения дополнительной информации см. раздел об общих свойствах ограничителей.
Разметка от (map from)¶
Трансформация для считывания из „Цели“ (или „Кости“).
- Положение, Вращение, Масштаб (location, rotation, scale)
Тип трансформации для считывания.
- Режим (mode) Вращение (rotation)
Тип используемого вращения, включая различные порядки Эйлера, кватернион и другие режимы канала вращения. По умолчанию используется порядок Эйлера для владельца ограничения.
В режиме „Quaternion“ – каналы преобразуются в взвешенные углы таким же образом, как углы поворота в режимах „Swing and X/Y/Z Twist“.
- X/Y/Z - Мин., Макс. (X/Y/Z min, max)
Диапазон входных значений для каждой оси.
Разметка до (map to)¶
Трансформация, применяемая к владельцу ограничения.
- Положение, Вращение, Масштаб (location, rotation, scale)
Тип применяемой трансформации.
- Порядок (order) Вращение (rotation)
Какой порядок Эйлера следует использовать. По умолчанию используется порядок владельца ограничения.
- Исходная ось X/Y/Z (X/Y/Z source axis)
Для каждой из трёх выходных осей позволяет выбирать входную ось, из которой она должна брать своё значение. Вы можете выбирать одну и ту же входную ось несколько раз.
- Мин., Макс. (min, max)
Диапазон выходных значений для каждой оси.
- Смешать (mix)
Указывает, как результат ограничения будет комбинироваться с существующей трансформацией. Набор доступных вариантов варьируется в зависимости от типа трансформации.
- Заменить (replace)
Результат ограничения заменяет существующую трансформацию.
- Умножение (multiply) Масштаб (scale)
Новые значения умножаются на существующие значения осей.
- Добавить (add) Положение (location) Вращение (rotation)
Новые значения добавляются к существующим значениям осей.
- До оригинала (before original) Вращение (rotation)
Новое вращение добавляется перед существующим вращением, как если бы оно было применено к родительскому элементу владельца ограничения.
- После оригинала (after original) Вращение (rotation)
Новое вращение добавляется после существующего вращения, как если бы оно было применено к дочернему элементу владельца ограничения.
Примечание
По историческим причинам режим „Mix“ по умолчанию имеет значение „Add“ для положения и вращения и „Replace“ для масштаба.
При использовании „вращения“ цели в качестве входных данных, какими бы реальными они ни были, – ограничитель всегда будет «возвращать их обратно» к диапазону (-180 до 180). Например, если цель имеет „вращение“ равное 420 градусов вокруг своей оси X, значения, используемые ограничителем в качестве входных данных по X, будут следующими:
Таким образом, этот ограничитель не совсем подходит для трансформации объекта на основе вращения шестерёнки. Однако вращение шестерёнки на основе трансформации объекта будет работать нормально.
Аналогично, при трансформации с использованием параметров масштаба цели в качестве входных данных, какими бы реальными ни были значения, – ограничитель всегда будет принимать их абсолютные значения (т.е. инвертировать отрицательные).
Если минимальное значение выше соответствующего ему максимального значения, – оба будут считаться равными значению Max. Это означает, что вы не можете создавать «обратные» сопоставления.
Пример¶
В следующем примере мы добавляем ограничитель к шестерне, который будет задавать её вращение по оси X на основе положения ре́льсы по оси Y:
Target: Рельса (объект)
Map From: Location
Y Min: -3m
Y Max: 3m
Map To: Rotation
X Source Axis: Y
X Min: 0°
X Max: 180°

Перед перемещением рельсы.¶

После перемещения рельсы.¶
По умолчанию шестерня перестанет вращаться, если рельса выйдет за пределы диапазона (-3м, 3м). Вы можете включить опцию „Extrapolate“, чтобы это изменить.