И так нам потребуется:
1) отдельный блендшейп таргет (на него будем применять кластеры).
2) копия модели головы (нужна для ориентирования контроллеров).
3) скрипт Rivet.
Выделяем на основном меше два эйджа между которыми хотим установить ривет, запускаем скрипт, появляется объект rivet1. В нем надо обнулить весь ротейт и сбросить с него зависимости (выделяем RotateXYZ и жмем Break Connections). Рисуем какой нибудь сплайн, который будет контроллером, и затаскиваем его в ривет (то есть делаем его ниже по иерархии) И наконец, вращаем по оси Y как нам угодно, например чтобы Y был вдоль кожи.
Создаем две пустые группы одна в другой (просто не выделив ничего жмем два раза Ctrl+G). Нажимаем Insert, и зажав кнопульку V, тащим пивот этих групп к пивоту ривета. Поворачиваем группу родитель так же как ривет (Теперь оси транслейта Контроллера и Второй группы совпадают). Далее открываем коннекшн эдитор и соединяем транслейт контроллера и транслейт второй группы (то есть двигая контроллер мы будем двигать группу).
Теперь выделяем нужное колличество ветриксов на блендшейп таргете и создаем кластер (настраиваем вес по вкусу). И наконец выделяем вторую группу, затем выделяем кластер, и создаем Point constrain (все эти пляски с группами нам были нужны из за того, что кластер должен быть с нетронутым пивотом, а контроллер мы повернули. все усложняется тем, что в конструкции с риветом легко сделать луп зависимостей. Идея в том, что мы создаем что то (не обязательно группы), что будет совпадать осями транслейта с контроллером и связываем транслейт контроллера и этого объекта. Так вот, пойнт констрейну все равно как расположены оси двух объектов, объекты просто будут привязаны друг к другу в пространстве.
И наконец! Берем копию головы делаем новый ривет в том же месте, что и первый. Голову затаскиваем в иерархию джойнта головы. Теперь выделяем новый ривет, далее выделяем старый ривет и делаем Orient Constrain. (Это нам необходимо вот почему: Ривет плох тем, что если мы деформируем меш в том месте где мы его создали, он лихо по вращается, и чаще всего не так как нам хотелось бы. Именно поэтому мы разбили связи на ротейте в самом начале, НО! если бы мы оставили все так как есть, то оси контроллера всегда бы оставались на месте не зависимо от того как повернута голова. Так вот если повернуть голову на 180 градусов, то ось контроллера на столько же не повернется и мы его потащим в одну сторону, а деформация будет в противоположную! Поэтому мы прилепили новый ривет на голову, которая не будет деформироваться, и как бы позаимствовали из нее глобальные вращения головы.)