Вернуться на Оглавление

Cloth

Туториал написаный Dunky on Sunday 16th Feb 2003

 

Эта обучающая программа демонстрирует, как использовать моделирование ткани в XSI 3.0.

Введение

О SoftImage | XSI сложилось мнение, что его - моделирование ткани, не очень хорошее. Но эта обучающая программа покажет Вам, что Вы можете фактически достигать реалистических результатов.

Мы охватим различные типы ткани от занавески и скатерти до расширенных установок  cloth - типа одежды.

Начало

Начнем с создания основной сетки, на которую будет влиять гравитация и которая будет взаимодействовать с основным объектом - сферой.

Сначала мы должны создать ткань, это будет простая плоскость-сетка. Get->Primitive->Polygon Mesh->Grid.

С сеткой, все еще выбранной, идите к меню Simulate(нажмите 4 на клавиатуре) и затем Create->Cloth->From Selection.

Откроется диалоговый бокс, Вы можете пока его закрыть, мы откроем его позже. Теперь мы хотим заставить ткань двигаться. Поскольку ткань никогда не перемещается сама по себе (в реальном мире), на неё обычно воздействует некоторая внешняя сила: ветер, гравитация, столкновения и т.д.

Мы начнемся с гравитации. Get->Force->Gravity. Выберите вашу сетку-ткань, и затем Modify->Environment->Apply Force и выберите значок Gravity (правый щелчок, чтобы закончить выбор). Если Вы теперь нажмете play, Вы будете видеть, что  ткань попадает под gravity(гравитацию).

Теперь создадим препятствие для ткани. Get->Primitive->Polygon Mesh->Sphere. Разместите сферу снизу ткани. Выберите ткань, и идите Modify->Environment->Set Obstacle. Щелкните сферу. Ткани теперь в качестве препятствия назначена сфера.

При этом откроется новый  диалоговый бокс.

Это окно отображает параметры для столкновения сферы и ткани. Прежде, чем мы настроим ткань, сначала запускаем animation, и см., как столкновение сферы с тканью работает.

Вам, вероятно, придется делать ваши симуляции ткани дольше, чем заданное по умолчанию время - 100 кадров. Чтобы изменить число кадров, выберите ткань и идите  на Select и нажимите на ClothOp, это откроет диалоговый бокс свойства ткани снова.

Под Range изменяем номер конечного кадра (frame) так, чтобы симулирование ткани длилось дольше

Теперь запустите animation снова, и Вы будете видеть полотно ткани на сфере, и ткань деформируется в сфероподобную форму. Однако, Вы обратите внимание, что Вы видите сферу через ткань.

Имеется множество различных способов решить эту проблему. Одни увеличивают число полигонов в сетке ткани и сферы, так что симуляция имеет большее количество точек, для вычисления и более точна. Другие увеличивают итерации в frame, это значение определяет сколько раз столкновение будет проверено в frame. Так, если ткань прошла сквозь сферу, им придется пробовать повторно  вычислять и перемещать ткань назад к вершине сферы. Эти методы иногда очень хороши для некоторых обстоятельств, но занимают дольше времени для вычислений. Для быстрого результата, Вы можете изменять  параметр по Push Length. Он управляет смещением между тканью и поверхностью сферы.

Так например поскольку ткань проходит сквозь  сферу, увеличивая Push Length скажем до 0.2, ткань теперь сталкивается на 0.2 единицы выше сферы. Это побуждает ткань, чтобы не проходить сквозь сферу.

Как я упомянул выше, Вы можете увеличивать количество полигонов в вашей ткани, это будет делать вашу cloth animate  сглаженной и выглядеть более реалистичной.

Это <http://www-scm.tees.ac.uk/users/group1/panda_site/tutorials/cloth/images/cloth_01_tut.avi> показывает ткани draping  двух сфер.

Я откорректировал установку Трения, так что ткань скользит не так быстро, но быстрое скольжение может понадобиться, если Вы хотите моделировать материал подобно шелку.

Затем я буду создавать занавес, чтобы представить Вам новые внешние силы, такие как wind (очень напоминает гравитацию) и nails.

Здесь я создал основную стену с отверстием для окна и простую сетку для занавеса. Имеются два пути, которыми Вы можете закрепить вершину занавеса к стене. Один путь состоит в том, чтобы использовать установку по имени Nail(Гвоздь) или  использовать кластеры.

Мы сначала освоем методику Nail. Она - в основном такая же, как и методика кластера, они оба работают реалистично.

Сначала выберите вашу сетку-занавес, и Create->Cloth->From Selection. Затем чтобы прикрепить занавес к стене, войдите в режим tag/point (нажмите "T") и выберите верхний ряд точек, которые Вы желаете прикрепить к стене. Create->Cloth->Local Cloth Cluster применит отдельные параметры ткани для верхнего ряда точек. Вы можете затем выбрать параметр Nail.

Это означает, что самые верхние точки не будут перемещаться вообще, независимо от того, какие силы применяются к ним, но остальная часть ткани будет, поскольку она имеет - собственное отдельное симулирование ткани, примененное к ней.

Чтобы добиться того же результата без использования nails, Вы можете выделите всё точки на ткани кроме верхних точек и применить ткань simualtion, это означает, что  занавес будет двигаться подобно ткани, и лишь верхние точки останутся стационарными, поскольку не имеют никакой simualtion примененной  к ним.

Теперь для занавеса, чтобы записать колыхание от ветра, мы должны применить внешнюю силу wind. Get->Force->Wind.

Применение ветра к ткани - то же самое как применение гравитации. Выберите ткань, затем Modify->Environment->Apply Force и выбираете значок  wind.

Если Вы анимируете силу  wind(ветра), Вы можете заставить ткань колебаться.

Эта ссылка http://www-scm.tees.ac.uk/users/group1/panda_site/tutorials/cloth/images/cloth_02_tut.avi> показывает ткань, колеблющейся на ветру.

Затем мы рассмотрим создание более расширенного моделирования ткани, типа одежды для characters. Это - то, когда проблемы начинают заползать в моделирование. Много достижений используются при создании одежды, поэтому имеются много факторов, чтобы на это посмотреть. Имеются намного больше столкновений и более комплексные привлеченные модели. Например, если Вы создаете jacket на человеческом теле, Вам придется произвести много испытаний столкновения чтобы модель и ткань никогда не смогли пересекаться. Также, руки людей могут двигаться вокруг много и в различных направлениях, так что ткань должна быть способна двигаться с телом во всех направлениях и вести себя соответственно.

Имеется пара способов создать элемент одежды для character. Polys или NURBS. Лично я предпочитаю polys, потому что они относительно просты в моделировании в XSI. Плюс я люблю subdivisions в XSI. Вы можете subdivided тканевой object и он возьмет привычку дольше вычисляться.

С NURBS Вы можете использовать stitching инструмент в моделировании ткани. Это позволяет Вам соединять две NURBS поверхности вместе и они будут двигаться подобно одной части ткани. Это особенно полезно, если Вы захотели присоединить рукав к костюму..

Для начала мы создадим рукав на руке. Это покажет, как ткань может взаимодействовать с анимируемым object (рукой).

Чтобы стартовать создайте цилиндр для руки. Get->Primitive->Polygon Mesh->Cylinder.

Я увеличил subdivisions немного, чтобы заставить цилиндр иметь еще несколько многоугольников, так чтобы они взаимодействовали с тканью получше. Я также переместил несколько точек ближе к центру цилиндра, потому что это станет локтем руки и потребует изгиба в середине. Большее количество точек в середине - хороший изгиб руки. (Но говорю Вам ткань закроет это, так что Вы никогда не будете видеть - lol).

 

Затем создайте скелет руки и envelope цилиндр к нему.

Animate Toolbar, Create->Skeleton->Draw 3D Chain. Установите его в центр вашего цилиндра с соединением в середине цилиндра, чтобы действовать как локоть.

Выберите цилиндр, затем Deform->Envelope->Set Envelope. Middle select скелет в explorer view. Теперь, если Вы перемещаете null, Ваша рука  изогнется.

Рука - установлена, теперь создадим рукав ткани.

Я снова создавал цилиндр, слегка больший чем рука, я затем удалил полигоны из обоих торцов цилиндра, так чтобы он стал полым - подобно реальному рукаву.

Теперь добавим симуляцию ткани. Я хотел закрепить конец рукава, фиксированно к телу - так чтобы рукав не мог бы фактически уменьшаться с рукой. Поэтому я применяю симуляцию ткани ко всему рукаву кроме конечных точек. Этим путем ткань будет работать - но всегда оставаться фиксированной на одном конце.

Идите на инструментальную панель simulate, Create->Cloth->From Selection. Ваш рукав будет теперь двигаться, но останется зафиксированным в корне.

Теперь прибавляем силы и столкновения. Modify->Environment->Apply Force. Выберите значок гравитации. Если Вы запустите animation теперь, Вы будете видеть падение ткани вниз.

Сделаем взаимодействие ткани с рукой -  Modify->Environment->Set Obstacle, выбираем руку. Открывается новый диалоговый бокс.

Установим тип препятствия как Actual Shape, это придаст намного более реалистическое взаимодействие.

Если Вы запускаете вашу animation, Вы будете наблюдать падение ткани и остановку, когда она касается руки. Как в первом примере выше, имеется множество способов остановить выпирание руки через ткань. Если Вы измените Push Length к 0.2, это заставит ткань сталкиваться рукой, на 0.2 единицы быстрее, останавливая ткань при соприкосновении с рукой.

Чтобы сделать это немного более интересным, мы будем теперь анимируя руку видеть, работает ли ткань должным образом. Анимируйте изгиб руки и затем воспроизведите. Вы обратите внимание, что ткань взаимодействует с рукой.

Вы обратили внимание, что имеются много параметров, которые Вы можете изменять для моделирования ткани. Простой способ просмотреть их в действии, состоит в том, чтобы использовать вкладку Preset. Здесь Вы можете выбирать между диапазоном предварительных типов установки ткани.

Вы можете также изменять трение между тканью и рукой. Изменение этого может сделать скольжение ткани подобно шелку, или задерживать ткань на руке. Изменение массы - очень полезный параметр, он может заставить вашу ткань напомнить тяжелую часть ковра или части легкого шелка, развевающегося на ветру.

Теперь мы создадим одежду для character, от простой юбки до костюма.

Это изображение ниже имеет юбку, моделирование ткани было с очень восточными к установками. Это идентично вышеупомянутому примеру (рукав). Юбка сделана из цилиндра с удалением торцов. Верх прикреплен к талии human's. Гравитация применена, и юбка - установлена, чтобы взаимодействовать с человеческим телом. Единственные реальные проблемы с этим моделированием - получение реалистичности движения юбки. Чтобы создавалось не слишком тяжелое и воздушное движение.

Эта animation <http://www-scm.tees.ac.uk/users/group1/panda_site/tutorials/cloth/images/skirt_01.avi> показывает юбку с симуляцией ткани, примененной к ней.

А теперь рассмотрим «единое» пальто для character.

Это - то, где вещи начинают идти неправильно и многое нужно исправить. Но как только Вы приобретаете навык этого, Вы можете получать довольно хорошие результаты.

Сначала Вы будете нуждаться в вашем character. Базируясь на его форме / размере Вы можете сформировать пальто вокруг него. Удостоверитесь, что ваше пальто полое, это путь, которым столкновение будет работать. Если руки не настроены и т.д, столкновение не будет работать правильно.

 

Как только Вы смоделировали ваше пальто, проверьте что не имеется никаких точек перекрывания. Например, тело не выглядывает где-нибудь через пальто, это заставит симуляцию идти неправильно. На этой установке, я constrained верх пальто к шее, чтобы пальто скользило оставаясь вверху неподвижным.

Чтобы сделать это, я выбрал верхние точки вокруг воротника пальто. Я создал Cluster with Centre. Это дало мне null, управляющий кластером, я constrained этот null к шее. Так всякий раз, когда шея будет передвигаться, вершина пальто будет следовать за ней. Теперь настроим остальную часть пальто, чтобы оно следовало за телом - назначим симулирование ткани. Выберите остающиеся точки на пальто (не воротник). Как только применяется гравитация и тело установлено - как collsion, пальто должно двигаться с character, при анимации. Однако, вероятно будут иметься несколько проблем, которые мы должны решить.

Во-первых, Вы обратите внимание, что тело может выглядывать через пальто в некоторых областях. Теперь Вы можете увеличивать ваши meshes  итерации много раз, это может помочь, но будет сажать ваш ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР. Лучший путь -  увеличение Push Length, как обсуждено в вышеупомянутых примерах. Это должно решить проблемы столкновений.

Вы вероятно обратите внимание что, что ваше пальто возможно будет очень stretchy и bounce на всем протяжении полотна. Это -  потому что несколько установок нуждается в точной настройке.

Во-первых, понизите установку Tolerance(Допуска), это увеличит точность одежды. Я хотел более тяжело смотрящееся пальто, и значит увеличение веса здесь также  помогает.

Но главные параметры, чтобы корректировать находятся под Stiffness – Resistance to… – эти settings могут очень затрагивать просмотр вашей ткани. Shear фактор позволяет quad(четверке) ткани оставаться неискаженной, сохраняя наибольшее сходство с формой original. Установка высоких значений Bend, делает действие ткани подобно коже, которая является идеальной для этого пальто, низкие значения, создают большую похожесть на атлас / шелк. Наконец, увеличение значения Stretch предотвращает ткань от наличия эластичности. Более низкое значение позволяет ткани деформироваться без сопротивления.

Имеются намного больше факторов для рассмотрения, но я охватил главные, наиболее важные.

Следующая animation <http://www-scm.tees.ac.uk/users/group1/panda_site/tutorials/cloth/images/bruce_coat_03.avi> показывает быстрый тест деформации пальто,  при анимации character.

Остались вопросы? Стучите на мою электронную почту   <mailto:duncan_burch@hotmail.com?subject=cloth_01_tut> и я буду видеть, смогу ли я помочь!                                                                                                                                                                   

Перевод:knezee@yandex.ru   2003г

Оглавление

Hosted by uCoz