Ограничитель «Трансформация» (transformation constraint)

Этот ограничитель является более комплексным и универсальным по сравнению с другими ограничителями «трансформации». Он позволяет вам устанавливать положение, вращение или масштаб объекта/кости на основании положения, вращения или масштаба другого объекта/кости, смешивая и сопоставляя оси по вашему усмотрению. Примером может быть задание X-вращения шестерни на основе Y-координаты ре́льсы рядом с ней.

Ограничитель работает с диапазонами входных и выходных значений, по одному для каждой оси. Сначала он ограничивает входное значение диапазоном „Map From“, затем смещает и масштабирует его до соответствующего диапазона „Map To“. Это позволяет, скажем, сопоставить Y-координату в диапазоне (-3 м, 3 м) с X-вращением в диапазоне (0, 180°).

Опции (options)

../../../_images/animation_constraints_transform_transformation_panel.png

Панель ограничителя Transformation.

Цель (target)

Эталонный объект для чтения свойства трансформации. Если вы его не выбрали, значок ограничителя остаётся красным, и он не будет иметь никакого эффекта.

Для получения дополнительной информации см. раздел по общим свойствам ограничителей.

Кость (bone)

Если „целью“ является арматура, вы можете выбирать здесь кость по своему желанию, чтобы использовать трансформацию только этой кости вместо всего объекта арматуры.

Экстраполировать (extrapolate)

По умолчанию входные и выходные значения ограничиваются значениями Min/Max. При включении „экстраполирования“ им разрешено выходить за эти пределы. Это проиллюстрировано на графиках ниже, где ось X представляет входные данные (“Map From“ установлено на Min = 1 и Max = 4), а ось Y представляет выходные данные (“Map To“ установлено на Min = 1 и Max = 2).

Опция Extrapolate.
../../../_images/animation_constraints_transform_transformation_extrapolate-1.png

Экстраполяция отключена: выходные значения ограничены диапазоном „Map To“.

../../../_images/animation_constraints_transform_transformation_extrapolate-2.png

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

Цель/Владелец (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, будут следующими:

    ((420+180)modulo360)180=60180=120

    Таким образом, этот ограничитель не совсем подходит для трансформации объекта на основе вращения шестерёнки. Однако вращение шестерёнки на основе трансформации объекта будет работать нормально.

  • Аналогично, при трансформации с использованием параметров масштаба цели в качестве входных данных, какими бы реальными ни были значения, – ограничитель всегда будет принимать их абсолютные значения (т.е. инвертировать отрицательные).

  • Если минимальное значение выше соответствующего ему максимального значения, – оба будут считаться равными значению 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°

../../../_images/animation_constraints_transform_example_before.png

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

../../../_images/animation_constraints_transform_example_after.png

После перемещения рельсы.

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