Развевающийся флаг в 3d max
Задача создать иллюстрации развевающихся флагов появилась одновременно с созданием проекта http://flags.redpixart.com/. Поэтому привожу небольшой мануал по одному из способов решения этой задачи. Сам по себе процесс моделирования развевающегося на ветру флага является частным случаем анимации материи. С помощью описанного приема можно создавать шторы, одеяла, одежду и многое другое.
Содержание
Создание флага
Для создания флага используем обыкновенную плоскость. Необходимо указать число разбиений по ширине и длине, чтобы изображение получилось более сглаженным. В примере я буду использовать плоскость размерами 20 на 30 с количеством разбиений равным пятидесяти.
Теперь добавим к плоскости модификатор UVW Map (он пригодится для наложения текстур). В его параметрах выбираем тип Planar, а затем снимаем галку с пункта Real-World Map Size:
Затем переходим непосредственно к самому основному. Добавляем модификатор Cloth. Первым делом кликаем по Object Properties, после чего появится новое окно свойств. В левой части необходимо выделить плоскость, которую мы используем для создания флага, далее переключить флажок с Inactive на Cloth. Чуть ниже в Cloth Properties выбрать одно из предустановленных значений (можно поиграться с параметрами самому, но я остановился на материале Silk). После этого остается только нажать Ok.
Остается настроить еще пару параметров. Прокручиваем свойства модификатора до вкладки Simulation Parameters. Здесь необходимо указать силу гравитации (можно кликнуть на кнопку Earth и значение -980 установится само) и один из важных параметров — cm/unit, который будет отвечать за физический размер флага. Чтобы было понятней — уменьшая или увеличивая это значение, мы меняем значение размеров куска материи для просчетов. Либо это будет шелковое полотонище 2 на 3 метра, либо кусок 20 на 30 сантиметров. При этом размеры на экране остаются постоянными.
Анимация флага
С настройкой физических параметров мы закончили, теперь перейдем к непосредственно к анимации. Поскольку флаг должен развеваться на ветру, необходимо этот самый ветер добавить. Create -> SpaceWarps -> Forces -> Wind. Остается придать ему нужное направление:
В настройках ветра необходимо указать нужную силу ветра, а кроме того будет нелишним задать значение турбулентности, чтобы ветер не просто дул прямо, а слегка колыхал флаг в разные стороны.
После того, как вы добавили ветер, необходимо указать в модификаторе Cloth флага, что этот ветер собственно будет на него дуть :) Для этого в свойствах модификатора Cloth нажимаем на кнопку Cloth Forces. В появившемся окне необходимо перенести ветер из Forces in Scene в Forces in Simulation и нажать Ok.
Если запустить симуляцию сейчас, то будет видно, как созданный флаг улетит, колыхаясь на ветру. Осталась самая последняя деталь — закрепить флаг. Для этого нужно развернуть модификатор Cloth и кликнуть по пункту Group:
Затем необходимо указать, какими точками будет крепиться созданный флаг. В качестве точек крепления я выбрал две угловые точки. Выделяем одну точку, затем с зажатым Ctrl выделяем вторую.
После того, как точки выделены нажимаем на кнопку Make Group. В выскочившем окошке соглашаемся с именем Group01 и жмем Ok. После этого вкладка Group примет следующий вид:
Затем в списке групп выделяем созданную Group01 и жмем по кнопке Drag:
Теперь вместо Group01 (unassigned) должно появиться Group01 (Drag):
После проделанных шагов можно смело запускать процесс Simulation и наблюдать за анимацией флага. Для этого кликаем на модификатор Cloth и нажимаем на кнопку Simulate:
Последний штрих
В процессе симуляции можно поиграться с параметрами гравитации и настройками ветра, чтобы добиться необходимых вам волн. Затем остается создать материал полотнища флага, где в качестве Diffuse Color указать карту Bitmap с необходимым вам изображением флага. На сайте http://flags.redpixart.com/ вы можете бесплатно взять изображения флагов в большом разрешении (размеры текстур от 2 000 пикселей по ширине, формат gif). Для этого достаточно перейти в раздел список стран и загрузить все флаги. После этого созданный флаг примет следующий вид:
Комментарии
to: Дмитрий
Всегда пожалуйтса!
Будьте любезны, подскажите, как ограничить движение флага по вертикали.
to: Юрий
Необходимо выбрать вместо двух угловых точек, которые фиксируют флаг, весь верхний ряд, либо выборочные вертексы (равносильно шторе на гардине). Это исключит вертикальные колебания.
Спасибо. Но тогда пропадет "живое" трепыхание флага. Задача — ограничить амплитуда колебаний сверху и снизу не фиксируя других точек кроме крайних левых.
to: Юрий
Юрий, навскидку приходят на ум три модели: убрать силу тяжести из системы и уменьшить силу ветра; либо — уменьшить размер полотнища, но тогда исчезнут волны на флаге; и третий вариант, приходящий на ум — увеличить силу ветра, чтобы суммарная сила была направлена практически горозионтально, т.е. аналогично первому варианту — уменьшается составляющая силы тяжести. К сожалению, нет времени проверить все это, если у вас что-либо выйдет — буду благодарен, если отпишетесь здесь о результатах)
просто супер. Подскажите а как теперь сделать эффект чтобы этот флаг как-бы спал из развернутого вида вниз, я закрепил верхние точки
как в ролике в английской премьер лиге развертываются на домах баннера с логотипами клубов http://rutube.ru/tracks/4587845.html?v=c03cf2a376f5e4004049631cdd901956
to: Андрей
Добрый день, Андрей. Я сейчас не могу сказать точно, поскольку нет времени проверить лично, поскольку я сейчас путешествую по Азии. Но первое, что приходит на ум — сделать сплайн-спираль, с несколькими витками. Затем сделать Extrude на ширину баннера с несколькими сегментами — чтобы все было гладко. Затем конвертировать в Mesh. По идее, у вас должен получитя эдакий свиток, либо рулон. Остается закрепить внешние края и сделать все, как в мануале. Ну разве что исключить ветер. Я так думаю, что должно сработать. Если будет время — отпишитесь пожалуйста здесь, думаю многим будет полезно.
Интересно, почему у меня симуляция останавливается на половине? Если комп нетянет, может есть способ вызуализировать по кускам?
to: Вячеслав
Тут возможно проблема в другом — при остановке должно появлятся окно с сообщениями об ошибках — такое возникает при, скажем так, перехлестывании полигонов — когда параметры материи настроены неверно и флаг пересекает сам себя.
Спасибо за урок, очень все хорошо получается!!!
to: Сибиряк
Всегда пожалуйста!

Спасибо за мини-урок