Использование Ipo driven shape keys для коррекции деформации в суставах
Использование Ipo driven shape keys для коррекции деформации в суставах (Также полезно для симуляции мускулов).
Этот вид нежелаемой деформации очень распространен когда делаешь привязку человеческих моделей и это попытка исправить это.
Я предпологаю, что вы имеете уже законченныю модель и арматуру (кости), чтобы привязать ее. Запомните, что как только вы начнете добавлять ключевые формы (shapekeys) вы не сможете легко объединять объекты или делать радикальные изменения в геометрии.
Желательно, чтобы вы произвели описываемый процесс перед добавлением IK-solvers к вашей модели. Также убедитесь, что центр объекта выравнен относительно плоскости локальной симметрии, так как ключевые формы не дают вам двигать его позже.
Чтобы работать с ключевыми формами хорошо бы добавить новый экран и разделить рабочее пространство на ИПО, 3д вид и Редактор действий (Action Editor) окна. Иметь диалог числового ввода (Numeric input dialog) в окнах 3д вида и ИПО также важно. Убедитесь что ИПО окно находится в режиме форма (shape) в свертываемом меню.
Лично я люблю иметь 3д окно во всю высоту экрана и две вертикальные панели с панелями кнопок маленькое Скрипт (Script) окно как раз чтоб был виден его заголовок.
Арматура должна быть сделана модификатором (Modifier) для вашего меша. Убедитесь, что вы не используете старый метод Parenting. Если ваш меш привязан (paranted) к арматуре, то вы увидете кнопку «Make Real» в панели кнопок (buttons panel). Нажмите на эту кнопку, чтобы удалить привязку и назначить модификатор.
Я буду использовать веса деформации (Weights) для этого примера. Веса дадут вам больший контроль чем зависимости (Envelopes) и мой совет вам использовать только веса.
Чтобы иметь возможность редактировать меш во время дефомирования арматурой важно чтобы модификатор арматуры был включен во время интерактивного просмотра и применен к сетке в режиме редактирования.
Если используется модификатор подразделения поверхности (subsurface modifier), то эти же аттрибуты должны быть включены. Вы включаете их с этими весами. Редактирование меша во время деформации является новой фичей Блендера 2.4.
Изначально, когда я начал писать этот текст я советовал сглаживать веса деформации, для того чтобы они сделали часть работы и сделали легче редактирование корректирующих форм. Но после проведенной работы я выяснил, что это может быть достаточно трудно.
Проблема в том, когда вершина имеет влияние более чем одной кости, моделирование на деформированном меше становится сложным, потому что в данной версии блендера вершина движется непредсказуемо.
Сглаженное против не сглаженного.
Не имея сглаженных влияний, то есть, имея вершины которые не принадлежат более чем одной группе сделают вашу работу легче, но вам придется моделировать всю деформацию, когда иначе бы комбинированные веса делали бы. Вы также должны будете моделировать из беспорядочных пересекающихся точек. Поэтому пока лучше сглаживать веса.
Если вы выберете сглаживание весов деформации, то выделите арматуру и перейдите в режим позы (pose mode), нажав Ctrl + TAB. Затем выделите меш и идите в режим рисования весовых карт (paint mode). Можете выбрать кость правой кнопкой мыши так же используя Ctrl + TAB. Выделите кость правой кнопкой и вращайте ее. Тем временем, левой кнопкой мыши вы можете рисовать весы. Этим самым вы можете улучшить деформацию до тех пор пока вы не получите грани пересекающиеся друг с другом. Это хорошее начало для корректируемой формы.
Вы можете добавить новую формы нажатием i или используя «Add Shape Key» кнопку в панели редактирования. Если ваш меш не имел до этого каких-либо форм, то вам придется создать два ключа форм. Первый ключ форм станет базой, который никогда не должен быть изменен.
Чтобы привязать ключ к повороту кости, перейдите в ИПО окно и используйте «Добавить драйвер (Add Driver)» кнопку (имейте числовой ввод нажав n) чтобы добавить новый драйвер. В поле OB: вы вводите название арматуры. Появится выбор драйвера где вы должны выбрать «Pose (Поза)». Затем в поле OB: вы вводите имя кости поворот которой будет управлять ключом. Вы также должны выбрать канал драйвера для ключа, который будет поворотом по оси, что вращает эта кость.
Перейдите в 3д вид и посмотрите на значения в числовом диалоге, который определяет ограничения вращения для применяемого ключа. В этом примере вращение ограничено от 0 до 60.
Перейдите обратно в ИПО редактор и нажмите i. Это создаст одно из основных наложений (mapping) по умолчанию. Вы можете также создать свою кривую ctrl+правая кнопкамыши в ИПО окне. Заметьте, что значения величин представляются в десятках единиц, то есть 18 = 180о.
Теперь время начать редактирование меша. Проверьте, что выбран правильный ключ, не базовый или какой-либо неверный.
Настало время для веселья. вращайте вашу кость, перейдите в режим редактирования и начинайте двигать е самые вершины, чтобы компенсировать деформацию. Периодически покидайте режим редактирования и вращайте кость, чтобы увидеть как она себя ведет. Вы заметите если кость повернута на слишком большой угол, то будет слишком тяжело редактировать вершины. Поэтому они должны себя вести как будто они находятся в не деформированном состоянии.
В момент когда это не может быть избегнуто. Я выяснил, что делая небольшие круговые движения мышкой помогает исправить отсающие точки.
Чтобы сделать ключ активным в через определенный уровень вращения, то должна быть создана ИПО кривая похожая на эту. Линейная интерполяция дает хорошие результаты. Пик относится к углу кости где этот ключ имеет максимальное влияние. Заметьте, что в увеличении внизу ИПО окна показывают значение угла. Важно установить значение угла обратно на 0 когда здесь будет другой ключ или ключи будут препятствовать друг другу и создавать сложность для редактирования меша.
Теперь трюк - чтобы сохранить вам работу создания драйверов, в заголовке ИПО окна вы увидите две кнопки, используемые для копирования и вставки кривых через буфер обмена.
Скопируйте кривую в буфер, выделите ключ, что не имеет драйвера, нажмите «ДобавитьДрайвер (Add Driver)» кнопку и затем вставьте кривую. Вам не нужно создавать новую кривую. Просто отрегулируйте ее, измение имя кости драйвера и канала драйвера.
Вы можете создавать больше ключевых форм на величину вращения кости, например, сгибание колена где при сгибающейся ноге начнет появляться масса растяжения в чашке бедре.
Я выяснил, что имея слишком много ключей на небольшую величину поворота делает это слишком трудным.
Вы можете смотреть несколько кривых одновременно нажимая мышкой на ключи с Shift клавишей в ИПО окне.
Возвращение к редактированию данного ключа может быть довольно запутанным. Ставя значения вращения с которыми вы желаете ассоциировать ключ с его названием поможет возвращаться редактировать определенный ключ. Например, ключ, который вы назначаете для 60о вращения по Х оси бедренной (thigh) кости может называться thigh60X.L или X60LeftThigh, как захотите, так вы узнаете, что вращать левую бедренную кость надо на 60о по Х оси перед входом в режим редактирования до тех пор пока вы держите этот ключ активным для редактирования.
Редактирование деформированного меша может быть очень сложным из-за проблемы пространства вершин. Вершину иногда просто невозможно контролировать когда пытаетесь ее перемещать.
Единственное решение я нашел для безнадежных случаев это редактирование ключа с вращением кости драйвера на 0о. Модель будет выглядеть очень странно, но это будет только временно, чтобы получить нужный результат и по крайней мере вы сможете с адекватно ведущими себя вершинами.
... Быстрый путь сделать это не покидая режима редактирования меша и не поворачивая кость это переключение состояния модификатора в интерактивном дисплее (кнопка с крестиком).
Вот экспериментальная модель ноги которая использует три ключа с определенным нахлестом в своих пределах вращения. Это может вам помочь.
Чтобы отзеркалить эти новые ключевые формы конечностей на другую сторону вы можете использовать RVK mirror скрипт который вы можете скачать на главной странице. Вы создаете новые отзеркаленные ключи используя «flip» параметр.
Вторая часть, проблема комбинированных вращений.
Все описанное здесь работает когда вращения происходят только по одной оси. Когда больше осей включено в поворот, то создание форм становится сложным и придется искать другое решение.