Модификация MuscleStrand — часть 1

Screenshot of Veda muscles rig 01

 

Я предлагаю Вашему вниманию описание приемов по работе с CAT Muscle Strand (MuscleStrand) в 3dsmax, которые я использовал при работе над Ведой, а так же дополнительный инструментарий специально разработанный мной.

Muscles comparison

A. Веретенообразная мышца B. MuscleStrand object C. Модифицированный MuscleStrand объект

MuscleStrand представляет собой набор сфер, образующих форму, похожую на веретенообразную мышцу, при этом  MuscleStrand не является мышцей как таковой и не имеет физических свойств настоящей мышцы. MuscleStrand  работает в двух режимах Bones и Mesh, я использую оба режима в зависимости расположения мышцы и того, как она будет воздействовать на модель тела.

Режим Bones

Режим Bones превращает MuscleStrand объект в цепочку связанных друг с другом сферических объектов, взаимодействующих с моделью тела через Skin modifier. Каждая сфера передает свою трансформацию в пространстве заданным в Skin вершинам модели тела. Размер сфер в этой цепочке задается с помощью кривой, тем самым формируется форма мышцы, а параметры Squash/Stretch дополнительно изменяют форму мышцы при растяжении и сжатии. В этом режиме я использовал MuscleStrand для деформации плеч, бедер и запястий, там где использование только костей не давало приемлемого результата.

Режим Mesh

Режим Mesh объединяет цепочку сферических объектов в единый объект. Используя SkinWrap modifier или SkinFX плагин можно перенести изменение формы MuscleStrand мышцы на модель тела. В отличие от режима Bones  MuscleStrand в режиме Mesh не предназначен для работы с модификатором Skin.

Так же MuscleStrand в режиме Mesh можно использовать для достижения slide эффекта. К сожалению в 3ds max нет встроенного модификатора позволяющего настроить slide эффект для всего тела (частично он реализован в CATMuscle).
Недостатком режима Mesh является внешний вид мышцы, ее ребристая форма и наличие лишних вершин мешают как визуальному восприятию мышц в риге, так и их функциональности.

Модифицированные мной MuscleStrand мышцы значительно улучшили деформацию некоторых частей тела Веды: шеи, спины, рук и ног. Для связи этих мускулов с телом я использовал режим StickyBind из плагина SkinFX (схожий в работе с SkinWrap modifier).

veda-ballet-after-modified-musclestrands
Screenshot of Veda muscles rig 02

Модификация MuscleStrand объекта в 3ds max

Цель модификации MuscleStrand — придать  объекту сглаженную форму для правильной работы slide эффекта, а так же избавится от лишних вершин. Для этого я использовал Editable Mesh modifier.

В чем отличие Poly от Mesh объекта в 3ds max?

Difference between poly and mesh in 3dsmax

Poly структура в 3dsmax предоставляет значительно больше инструментов при моделирование объектов чем Mesh структура. Выбирая между Poly и Mesh для моделирования безусловно стоит выбрать именно Poly. Но, тем не менее, существуют задачи, где применение Mesh более оправдано, чем Poly.
Несмотря на то, что Poly является по сути эволюцией Mesh, она при этом имеет ряд существенных отличий и ограничений в своей работе.

На рисунке видно, что при изменении формы Poly объекта — Edit/Editable Poly перестраивает внутренние грани полигона, изображенные пунктиром, таким образом, что бы не допустить их пересечения. А при работе с Mesh объектом (Edit/Editable Mesh) перестроения не происходит. Дополнительные вычисления приводят к тому, что Poly объекты деформируются медленнее, чем Mesh объекты.

 

Skin modifier

Увеличить производительность работы Skin modifier’а можно если cконвертировать базовый объект из Editbale Poly в Editable Mesh и только потом применять Skin Modifier.

CAT MuscleStrand

При перестройке модели MuscleStrand объекта нужно использовать Edit Mesh modifier, чтобы избежать  «прыжков» ребер объекта.

 

 

После модификации MuscleStrand объект имеет правильную форму мышцы и не содержит лишних вершин. В таком виде он больше подходит для создания slide эффекта и удобен в работе со SkinWrap/SkinFX.

Ограничения по работе с модифицированным MuscleStrand:

Проблема: При создании рига, используя link метод объект мышцы не деформируется. Причиной является Edit Mesh modifier.

Устранение 1: Вместо Link использовать Position Constraint.
Устранение 2: Использовать написанный мной scripted modifier — MuscleStrand Mod (не публиковался)

Проблема: При применении любого модификатора к MuslceStrand, включая Edit Mesh, MuscleStrand деформируется не верно (в версиях 3dsmax 2013+)

Устранение: Используя Tools -> Snapshot создать копию основной части MuscleStrand объекта. Используя Edit Mesh modifier модифицировать полученную копию. Привязать полученную копию к основной части MuscleStrand используя SkinWrap modifier.

 

Публикации по теме

 

11 комментариев

  • Спасибо, хороший прием. В 3ds max 2012, мускул деформируется как у Вас в методе, отлично. Но у меня не получилось деформировать CAT muscle strand с модификатором «edit mesh» в 3ds max 2014 и 2015.

    • Спасибо за комментарий Кирилл! Действительно описанный мной в этой статье метод не работает с последними версиями 3dsmax (включая 2016sp1). Я добавил в раздел этой статьи «Ограничения по работе с модифицированным MuscleStrand» описанную Вами проблему и метод ее решения.

  • Спасибо за уроки и объяснения, хотя сам использую для мускульных дефомаций примитивы, масштаб и перемещение которых заскриптованы( или wire связь) на углы сгиба рук-ног, с применением Expose Transform Point. метод кропотливый, но позволяет экспорт в fbx в игр движки. Получается риг из шевелящихся кубиков, к которым скинится сетка)). Как я не бился, но не смог сделать из Skin Wrap — SkinFX. Хотя, по логике SkWrap должен допускать скольжение под кожей и Push мышц, в связи с встроенным в него алгоритмом радиуса действия вершин ведущей сетки. Жаль.
    Посещаю ваш сайт не оч часто, но регулярно)))

    • Спасибо за комментарий! Рад слышать что информация в статьях Вам интересна 🙂 . К сожалению Adsk став владельцем SkinFX так и не захотел его интегрировать в 3ds max 🙁 , а с полноценным слайдингом остался только Hercules plugin. Остается лишь надеятся, что Adsk прислушается к нашим пожеланиям в этом вопросе и добавит полноценный инструментарий для работы с мускулами. DataChannel modifier который добавили в 2017 3ds max внушает в это надежду.

      • Все мускульные плагины и ухищрения, к сожалению являются внутримаксовскими. То есть не позволяют выносить полные анимационные данные за пределы макса. Только выход на рендер:) Я вот только сейчас набрел на способ конвертации тянущихся squash костей в обычный XYZ Масштаб. И уже это позволяет через Skin выносить данные. Еще дело в том, что формат fbx воспринимает только основные трансформации + skin+ morph. Возможно это связано с политикой Autdsk — не интегрировать в макс некоторые нужные вещи. Ведь все равно риггеры и сетаперы дописывают недостаюшие инструменты. Таким образом говорят и CAT появился и прочие фишки:))

  • Здравствуйте. Не пробовали студию частиц mParticles в максе для имитации мышиц?
    Настоящий скелет + мышцы (с контролем объёма).
    Понимаю что муторно и архизатратно.

    • Нет не пробовал. Думал над подобным вариантом, но такую идею отбросил. Я даже не припомню, встречал ли я описание похожей системы. Если у Вас есть ссылки на мускулы сделанные через партиклы (не важно в каком софте) скиньте пожалуйста ссылки, интересно было бы посмотреть.

      • Уроков на «мячик» полно, а вот как сделать часть мячика — большой вопрос.
        Видел упоминание (без подробностей) для ткани максовской. (настройки типа резина). Пробовал повторить… и опять та-ки упёрся в связывание областей с контроллером.

      • Основная проблема — сохранение объёма. То что видим сейчас либо деревянное при взаимодействии, либо паролоновое. Мышцам помимо тряски и сжима/разжима нужна «силиконистость» в определённых направлениях и способность взаимодействовать оболочкой с другими телами и мышцами.

        • Да soft-body мускулы с сохранением объема при деформации решили бы задачу, о которой вы говорите. Но создавать самому такие мускулы используя партиклы боюсь это утопия.
          У меня уже нет веры, что для макса появятся новые системы мускулов в ближайшее время. Есть правда надежда что в Fabric Engine (или Houdini Engine ) появятся мускулы и можно будет их использовать внутри макса.
          Вынужден был перейти с 2012 макса на 2017-18 под который из мускулов есть только Hercules, так что пришлось пока отложить вообще работу с мускулами 🙁 .

  • Я скиню оболочку на примитивы, поведение которых скриптую как поведение мышц. Но чем деталльнее нужна проработка, тем больше нужно примитивов….. И скининг плавно переходит в своеобразный морфинг))))) Я так понимаю, что все упирается в аппаратную мощность. Все реал тайм симуляции волос, мышц и прочего и их коллизии с флексом, трубуют мощности просчетов. Вот через годик — другой, если будем живы, под мощное железо и создатут плагины. Я так думаю.

Добавить комментарий