
Эта глава начинает демонстрацию работы с базовыми инструментами в риге.
Как следует из названия constraints ограничивают движения различных объектов. Существует множество констрейнтов и все они ограничивают разные параметры. «К примеру стоит задача сделать движение саней по неровной поверхности, можно сначала использовать geometry constraint, это привяжет сани к поверхности. Затем можно использовать normal constraint, чтобы сани ровно стояли на поверхности. После того, как вы создадите эти ограничения, вы указываете позиции саней на вершине и внизу холма. На этом анимация завершена»(1).

Geometry constraint + normal constraint
Также констрейнты используют для связи движения нескольких объектов, например нужно добавить пуговицу персонажу, которая будет приклеена к пиджаку, даже если он будет развиваться на ветру, для этого можно привязать пуговицу к поверхности объекта с помощью point on poly.
Это не единственное решение. В риггинге есть множество возможных решений задачи.

Point on poly
Maya включает следующие констрейнты:
• Point constraints • Aim constraints • Orient constraints • Scale constraints • Parent constraints • Geometry constraints • Normal constraints • Tangent constraints • Point on Poly constraints • Closest Point constraints • Pole Vector constraints
Point constraint присоединяет один объект к другому по перемещению и ведомый объект начнет следовать за ведущим по перемещениям. Чтобы применить point constraint нужно выбрать сначала тот объект, за которым будут следовать, а затем тот, что будет следовать, такой алгоритм применяется ко всем констрейнам. Также можно присоединить 3 объекта и последний выбранный объект будет брать половину от перемещения объектов каждого из ведущих (если сдвинуть один из ведущих объектов на 1 сантиметр, а второй оставить неподвижным, то ведомый объект сдвинется на 0.5 сантиметра). Такой алгоритм также может работать на многих констрейнтами.
Point constraints
Orient constraint делает тоже, что и point constraint, но не с перемещениями, а с вращениями.
Orient constraints
Parent constraints присоединяет объекты и по перемещениям, и по вращениям, но имеет принципиальное отличие от двух предыдущих. Если создать привязку с помощью point и orient constraints, то ведомый объект будет перемещаться за ведущим в отношении своей глобальной оси. Если же привязать через parent constraints, то ведомый объект начнет вращаться вокруг ведущего.
Parent constraints
Aim constraints привязывает вращения так, что ведомый объект всегда будет нацелен на родительский. Этот констрейнт часто используют для рига глаз.
Aim constraints
Scale constraints привязывает изменения размера ведомого объекта к ведущему. Его чаще всего используют, чтобы сделать на основном контроле персонажа глобальное изменение размера всех его частей. В процессе риггинга создается множество различных соединений, которые имеют свои размеры, и чтобы увеличить персонажа в размере целиком нужно завязать изменения всех его частей на одном атрибуте основного контрола.
Scale constraints
Geometry constraints, как было продемонстрировано в первом примере, привязывает любой объект к поверхности геометрии и при перемещении ведомого объекта в пространстве он скользит по поверхности ведущей геометрии.
Normal constraints ориентирует ведомый объект так, чтобы он соответствовал векторному направлению ведущего объекта. По отдельности этот констрейнт редко применяется, его часто используют с geometry constraints, чтобы создавать эффект скольжения по поверхности, например сделать скользящую по щеке слезу.
Normal constraints + geometry constraints
Tangent constraints привязывает ориентацию ведущего объекта к кривой таким образом, чтобы при движении объекта вдоль кривой направляющая ось ведущего всегда указывала в направлении кривой. Можно использовать если нужна анимация полета птицы или самолета по траектории.
Tangent constraints + geometry constraints
Closets point применяют к двум объектам: геометрии и любому другому объекту. Он создает два локатора один из которых привязан к геометрии также, как если бы он был привязан geometry constraints, второй не имеет каких-либо привязок к геометрии. Между этими локаторами рассчитывается наименьшее расстояние и при движении локатора, непривязанного к геометрии, двигается тот, что привязан и он стремится перемещаться на те части геометрии, которые наименее удалены от подвижного локатора.
Point on poly позволяет присоединить любой объект к вертиксу или полигону на геометрии так что как бы не изменялась ведущая геометрия, ведомый объект будет приклеен к тому же месту. Point on poly можно приклеить усы к геометрии персонажа.
Point on poly
Pole vector более комплексный констрейнт, который схож по своей работе с aim constraint. Он также направляет вектор ведомого объекта в направлении ведущего, но применяют его при создании IK системы конечностей. Данный вектор создается напротив локтевого или коленного суставов и контролирует вращение и перемещения сустава, не затрагивая при этом конечные суставы.
Pole vector