Установить limit rotation при инверсной кинематике

Список разделов Blender 3D Анимация

Описание: Вопросы и обсуждения аспектов анимации в Blender
Модератор: exooman

Сообщение #1 FNH563C74Q » 06.11.2019, 17:53

Столкнулся с проблемой: применив констрейн инверсной кинематики не могу установить лимиты вращения для костей. Устанавливаю лимиты в панели Bone > свиток Inverse Kinematics.
Изображение Изображение Изображение

но когда тяну за таргет, то лимиты нижней кости не работают

Изображение
FNH563C74Q
Сообщения: 7

Сообщение #2 stark » 06.11.2019, 21:32

FNH563C74Q, у тебя IK-цепочка значит 2 кости и для каждой в Bone -> Inverse Kinematics ты поставил ограничения. Ну, значит, всё правильно сделал. Меня смущает зелёный цвет кости "к_шея", что там за ограничитель (Constraint) висит, он точно нужен? Чудес не бывает и должно быть объяснение. Кинь одну арматуру без мешей, гляну.

И зачем тебе вообще IK на голову? Больно причудливо выглядит. Ты и IK Pole Target в этом случае собрался управлять? :-D

P.S. Ух какой непривычный уже интерфейс 2.79 после 2.80.
stark M
Сообщения: 2246


Сообщение #3 FNH563C74Q » 07.11.2019, 08:15

stark, спасибо, что отреагировал на мой вопрос, не обращай внимание на цвета костей на скриншоте, это я пробовал разные способы, вешал всякие констрейны, но ничего не помогло :facepalm: .
Вот файл проекта (он с мешем, так что если меш мешает, просто выдели его и нажми H, ты это знаешь, я уверен) https://yadi.sk/d/H-aJh9EssbT_YQ

Собственно не важно, на голову применяется IK или на другие части тела, принцип-то один. Что руки, что ноги, что голова, при IK уходят почему-то за лимиты ?:-|

Т.е. проще говоря, мне хочется добиться того, чтобы части тела персонажа имели те же ограничения, что и у нормального человека, а не вращались как им вздумается вокруг своей оси :beer: Но при инверсной кинематике почему-то это не выходит, а хотелось бы избежать вот таких моментов
Изображение

PS, если хочешь открыть мой проект в версии 2.8, достаточно просто открыть его в предыдущей версии блендера, выделить меш с арматурой, скопировать Ctrl+C и в 2.8 вставить Ctrl+V (думаю, что ты в курсе, так, на всякий случай). Мне просто более привычен 2.79
FNH563C74Q
Сообщения: 7

Сообщение #4 stark » 07.11.2019, 13:40

FNH563C74Q, проблема в том, что корень IK-цепочки крутится совершенно свободно даже если его ограничить в Bone->Inverse Kinematics. Все младшие звенья IK-цепочки следуют ограничениям и ты можешь в этом убедиться, укоротив или удлинив IK-цепочку.

Можно сделать такой "финт ушами": скопировать эти две кости IK цепочки в параллельную цепочку, разделив управляющую и деформирующую цепочки. Т.е. IK цепочка теперь не деформирует меш, а деформирующие кости копируют с IK-костей поворот через Copy Rotation Constraint, но кроме того ограничены через Limit Rotation Constraint. Но не скажу что это здорово.

Изображение

Если честно, никогда не задумывался об этой особенности IK и не испытывал всвязи с этой особенностью проблем. Дело в том, что если применять IK к рукам или ногам, то корнем цепочки будет тазобедренный или плечевой сустав, который очень свободно крутится и тут скорее аниматор сам разберётся, до какого угла его нормально поворачивать. Ну а поворот в колене/локте ограничить уже работает.

Может стоит задать вопрос разработчикам почему IK Solver игнорирует ограничения на поворот у корневой кости цепочки.

Добавлено спустя 29 минут 14 секунд:
P.S. ИМХО ты слишком много внимания уделяешь ограничениям. Вот ты точно знаешь, что тебе надо, допустим 20 градусов ограничение, а не 21, 22, 25? Почему не оставить это на усмотрение аниматора? Вдруг ему надо будет чуть сильнее чем ты разрешаешь и неважно что что-то при этом чуть испортится или будет немного неанатомично? Может наоборот нужна выраженно неестественная поза?

По мне надо просто дать удобные "ручки" с минимальным набором ограничений (вроде нога в колене только по одной оси поворачивается и т.п.). IK для головы выглядит неудобным. А удобным выглядит завести отдельную кость в основании шеи и объявить её ручкой. Копировать с неё вращение на голову на 100% а на кости шеи дробно, там 50% если кость шеи одна, 33% и 66% если две.
Для удобства аниматора назначить на ручку shape и рисовать его не в основании шеи а на месте деформирующей кости головы. Чтобы как-будто аниматор за голову берёт и крутит. Для полноты эффекта иметь ориентацию ручки и кости головы одинаковой через копирование в СК World или Pose на 100%.

Это я в CG Cookie FlexRig подсмотрел, вроде не дураки делали ;) Его тяжело изучать правда с его-то заморочками адаптации под разных персонажей. Он так-то открытый, но почему-то непонятно как скачать и ссылка на Blendswap ведёт вникуда. Но если интересно - то вот его кто-то выложил в баг-репортах Blender.
stark M
Сообщения: 2246


Сообщение #5 FNH563C74Q » 07.11.2019, 16:45

stark, большое спасибо за разъяснения и, что потратил на меня своё свободное время. В общем-то я так и предполагал, что в блендере просто не реализована возможность ограничивать корень IK цепочки. Твоя идея выглядит перспективно, пусть сдвоенные цепочки выглядят не очень изящно, но это работает. Для моего проекта это шаг вперёд. Премного благодарен за помощь!
FNH563C74Q
Сообщения: 7

Сообщение #6 stark » 07.11.2019, 17:03

FNH563C74Q, и тебе спасибо, шаг вперёд - это хорошо :)
stark M
Сообщения: 2246



Вернуться в Анимация

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость