diablo_ 392.03589.2 7 июня 2006 в 00:00
Имитация развевающегося флага
с помощью модуля CLOTH в Maya 3.0
Уроки по иммитации развевающейся ткани или флага достаточно часто встречаются в Интернете. Но попыток сделать это с помощью модуля Cloth нам еще не встречалось. Поэтому мы хотели бы поделиться своим опытом, полученным при изучении сцен из примеров к модулю Cloth еще в Maya 2.0 . Хотя сцена с развевающимся флагом входила в комплект поставки Maya , описания того как сделать эту сцену нам не встречалось.
Итак, приступим
Шаг 1
Создайте новую сцену, а лучше всего проект под любым названием. Например: flag .
Убедитесь, что модуль Cloth у Вас подгружен. Для этого откройте окно Window > Settings/Preferences > Plug-In Manager и проверьте включен ли plug-in CpClothPlugin.mll . Если нет, то включите его.
Шаг 2.
Создайте Polygonal Plane с параметрами:
Width - 7
Height - 14
Subdiv.Width - 5
Subdiv.Height - 10
Переместите его на 7 единиц по оси Y и на 9 единиц по оси Z, также поверните на –90 градусов по оси X. Переименуйте в " windSourse ".
Создайте Polygonal Cylinder с параметрами:
Radius - 0.1
Height - 12
Остальные параметры по умолчанию. Также переместите его на 6 единиц по оси Y и на 5 единиц по оси Z. Переименуйте во " flagshtok ".
Создайте 4 кривые с Curve Degree - 1 Linear , так чтобы они пересекались в конечных и начальных точках (согласно требованиям модуля Cloth ) и описывали прямоугольник с вершинами в точках:
1 вершина - (0, 11, 4.5)
2 вершина - (0, 11, -9)
3 вершина - (0, 5, -9)
4 вершина - (0, 5, 4.5)
Сгруппируйте эти кривые в группу " curves_for_Flag " и временно сделайте эту группу невидимой.
Шаг 3.
Выделите план windSourse и сделайте его источником частиц. Для этого, выделив windSourse , перейдите в Меню Dynamics , выберите Particles > Emit from Object . После этого у windSourse появится потомок emitter1 . Выберите его и в Channel Box измените следующие параметры:
Emitter Type - Surface
Rate - 2
Scale Rate by Object - on
Speed - 0.05
Переименуйте emitter1 в emitterWind .
Проиграйте анимацию и убедитесь что частицы двигаются в отрицательном направлении оси Z. Выделите созданные при этом частицы particle1 переименуйте в " particleWind ", вызовите Attribute Editor , откройте закладку Per Particle (Array) Attributes и, если отсутствует раздел lifespanPP , добавьте этот атрибут. Для этого выполните команду меню Attributes > Add Atributes , в появившемся окне выберите закладку Particle , найдите параметр lifespanPP и нажмите кнопку Add . Закройте окно Add Attributes .
В появившемся поле lifespanPP нажмите Правую Кнопку Мыши (ПрКМ) и удерживая ее в контекстном меню выберите Creation Expression . В появившемся окне Expression Editor в поле Expression наберите следующее:
particleWindShape.lifespanPP = 5;
и нажмите Create .
Затем переключите закладку Particle на Runtime и введите следующее:
vector $pos = particleWindShape.position;
if ( ($pos.y > 14) || ($pos.y < 3) || ($pos.z < -5) )
{
particleWindShape.lifespanPP = 0;
}
нажмите кнопку Create .
Данный Expression будет уничтожать частицы если их позиция больше 14 единиц по оси Y, меньше 3 единиц по оси Y и меньше чем на –5 единиц по оси Z. В Channel Box измените параметр Lifespan Mode на lifespanPP only .
Проиграйте анимацию и убедитесь что частици испускаются из windSourse не ниже 3 единиц и не выше 14 удиниц по оси Y и двигаются в отрицательном направлении оси Z.
Шаг 4.
При выделенных частицах particleWind создайте два поля:
airField1
turbulenceField1
(Меню Dynamics , закладка Fields , разделы Air и Turbulence , а выделение частиц необходимо для автоматической привязки воздействия этих полей на частицы particleWind ).
Выделите airField1 и измените следующие параметры в Channel Box :
![]() |
Magnitude - 7 |
Выделите turbulenceField1 и измените следующие параметры в Channel Box :
![]() |
Magnitude - 11 |
Щелкните в Channel Box на поле атрибута Phaze Z ПрКм и во всплывающем меню выберите Expressions , в появивщемся окне Expression Editor наберите следующее:
turbulenceField1.phaseZ = time;
Нажмите кнопку Create и закройте окно Expression Editor . Переименуйте turbulenceField1 в turbField_Particles . Проиграйте анимацию, частицы particleWind должны двигаться хаотично, ускоряться и исчезать при достижении по оси Z координаты –5.
Шаг 5.
Щелкните Левой Кнопкой Мыши (ЛКМ) в любом окне видов для отмены выделения. Создайте непривязанное к чему-либо radialField (Dynamics > Fields > Radial) . Измените в Channel Box следующие параметры:
![]() |
Magnitude - 250 |
Переименуйте radialField1 в " radialField_Wind ". Теперь необходимо выполнить несколько связей. Мы предпочитаем использовать для этого Hypershade и его Work Area . Но можно настроить связи и не прибегая к его помощи.
Во-первых вызовите окно Connection Editor (Window > General Editors > Connection Editor) .
Во-вторых вызовите окно Outliner (Window > Outliner) и в меню Display включите Shapes . В поле Outliner найдите и выделите particleWindShape . Перейдите в окно Connection Editor и нажмите кнопку Reload Left . Затем в Outliner выберите radialField_Wind , перейдите опять в окно Connection Editor и нажмите кнопку Reload Right . В меню Left Side Filters окна Connection Editor включите Show Hidden и затем аналогично в меню Right Side Filters окна Connection Editor включите Show Hidden . Теперь вы готовы для установки связей. В левом поле Connection Editor найдите и выделите параметр Centroid , затем найдите и выделите в правом окне параметр Translate . Таким образом Вы установили связь между параметрами:
particleWindShape.centroid > radialFieldWind.translate
Аналогично создайте связи:
particleWindShape.cachedWorldCentroid >
> radialFieldWind.ownerCentroid
particleWindShape.cachedWorldPosition >
> radialFieldWind.ownerPosData
particleWindShape.cachedWorldVelocity >
> radialFieldWind.ownerVelData
particleWindShape.auxiliariesOwned >
> radialFieldWind.owner
Проиграйте анимацию. Поcле первого кадра иконка radialFieldWind должна находиться в центре частиц particleWind и совершать небольшое хаотическое движение. Теперь можете отменить режим Shapes в Outliner .
Выделите windSourse, particleWind, radialFieldWind, airField_Particles, turbField_Particles и сгруппируйте их в группу " wind_Group " (это только для удобства работу, можно не выполнять этого).
Шаг 6.
В Outliner выделите группу " curves_for_Flag " и сделайте ее видимой. Затем выделите все 4 кривые в группе " curves_for_Flag ", перейдиле в меню Cloth и создайте Garment (Cloth > Create Garment) . При этом будет автоматически создана и панель panel1 . Выделите panel1 и переименуйте на " panel_Flag ". Теперь Channel Box в разделе INPUTS > cpDefaultProperty измените следующие параметры:
![]() |
U Bend Resistance - 3.3 |
Затем в разделе OUTPUTS > cpStitcher измените параметр:
Base Resolution - 150
В разделе OUTPUTS > cpSolver измените параметры:
Start Frame - 0
Frame Samples - 1
Relax Frame Length - 0
Шаг 7.
Выделите созданный модулем меш cloth1 . В любом окне видов нажмите ПрКМ и удерживая ее из Pop-up меню выберите Vertex , выделите 2 верхние и 2 нижние, ближайшие к flagshtok вершины, затем, удерживая клавишу " Shift ", выделите сам flagshtok и выберите Cloth > Constrains > Transform . Данная операция создаст эффект привязки флага к флагштоку. Проиграйте анимацию. Вы должны видеть как cloth1 спадает вниз и повисает на флагштоке.
Аналогично при выбранном cloth1 из Pop-up меню выберите Vertex , выделите все вершины и, удерживая " Shift ", выделите radialField_Wind и выберите Cloth > Constrains > Field . Данная операция создаст воздействие поля radialField_Wind на cloth1 .
Выберите частицы particleWind , удерживая " Shift " выделите Cloth1 и выполните Dynamics > Particles > Make Collide . Выделите particleWind и в Channel Box в закладке INPUTS > geoConnector2 измените параметры:
Tessellation Factor - 200
Resilience - 0.5
Friction - 0.1
Переименуйте cloth1 на " flag ".
Шаг 8.
Выберите Cloth > Simulation > Delete Cache и проиграйте анимацию. В зависимости от ресурсов Вашей машины расчет Cache может занять от 30 секунд до 3 минут для 300 кадров анимации.
Шаг 9.
![]() |
При проигрывании Вы можете заметить, что флаг колышется достаточно нереально. Решить эту проблему можно варьируя параметры panel_Flag в Channel Box > OUTPUTS > cpSolver1 . Наиболее действенными будут изменения параметров Solver Scale в пределах 1-50 и Gravity1 в пределах -100 - -900 . На одним из наших компьютеров удачными оказались значения: |
Послесловие.
Наиболее трудоемкой окажется именно удачная настройка этих двух параметров. Так же попробуйте изменить длину и ширину флага.
А теперь запаситесь терпением и вперед.
Советуем почитать

Making of «Граммофон»
2
2
20 016
Автор: DaniilAlikov
20 ноября 2010 в 00:00

Как построить солнце в Maya
1
3
22 848
Автор: diablo_
12 мая 2006 в 00:00

Превращаем объекты в пыль
6
2
26 997
Автор: diablo_
10 июня 2006 в 00:00

Моделирование реалистичного глаза
4
3
57 087
Автор: seaman
6 февраля 2007 в 00:00

Making of «Старая Игрушка»
2
4
14 715
Автор: DaniilAlikov
20 ноября 2010 в 00:00
3D моделиприслатьещё
Фоторамки IKEA КВИЛ...
Картины
Материалы: Да
Текстуры: Да
50 р.Карнавальная маска...
Другое
Материалы: Да
Текстуры: Да
200 р.Rpg-7 Low-poly
Оружие и броня
Материалы: Нет
Текстуры: Нет
30 р.зеркало
Зеркала
Материалы: Да
Текстуры: Нет
100 р.Старый советский по...
Другое
Материалы: Нет
Текстуры: Да
50 р."Шмыг" пе...
Другое
Материалы: Да
Текстуры: Да
100 р.Нож Ontario-RTAK...
Оружие и броня
Материалы: Да
Текстуры: Да
бесплатноДиван на 5 Rossini...
Диваны
Материалы: Нет
Текстуры: Нет
60 р.Стол
Столы
Материалы: Да
Текстуры: Да
бесплатноВодонапорная башня ...
Другое
Материалы: Да
Текстуры: Да
20 р.Sven MK490
Аудио
Материалы: Да
Текстуры: Да
50 р.Шкаф купе эконом 12...
Шкафы
Материалы: Нет
Текстуры: Да
50 р.Дверной кодовый зам...
Другое
Материалы: Да
Текстуры: Да
50 р.Tablet Acer Iconia ...
Другое
Материалы: Да
Текстуры: Да
299 р.Свечи
Другое
Материалы: Да
Текстуры: Да
бесплатноФонарик
Другое
Материалы: Нет
Текстуры: Да
30 р.Android
Другое
Материалы: Нет
Текстуры: Нет
бесплатноСтальной забор...
Ограждения
Материалы: Да
Текстуры: Да
100 р.AeroCool Imperator ...
Компьютеры и комплектующие
Материалы: Да
Текстуры: Да
750 р.Bright Room
Гостиные
Материалы: Да
Текстуры: Да
бесплатно
Форумещё
- 1. Есть кто живой?
25
- 2. Mihanik_W.I.P
90
- 3. Двигатель Харлей-Девидсон S&S Panhead
266
- 4. Заз 1102 "Таврия"
29
- 5. Экологическая катастрофа в Ташкенте
1
- 6. Прокачка навыков 2Д
292
- 7. Воспоминания 3D моделинга
23
- 8. Нужна помощь
6
- 9. Kramar Workshop
38
- 10. Пара вопросов по модели и топологии.
11
- 11. Прибалбус
90
- 12. Полуторка
90
- 13. груЗИЛы
127
- 14. ЯЗь и МАЗь
49
- 15. Газики-Уазики
72
- 16. Рогатый
17
- 17. SH Projects
205
- 18. ГАЗ М 72
201
- 19. 3Д мир. Проект воскрешение.
139
- 20. X-Лада
12
Блогиещё
- 1. Всех с праздником 3DECEMBER!!!
10
- 2. Майор Гром
2
- 3. C Праздником 2-3December!!!
2
- 4. Книжная тема
19
- 5. Большой автоконкурс 2016 — награждение
20
- 6. Кто в какие игры играет в свободное от работы время?
49
- 7. precise3dmodeling.com
5
- 8. Астрологи объявили неделю "Марсианина"
19
- 9. innoBright выпустили Altus 1.2
2
- 10. Dell представила 30-дюймовый OLED дисплей UltraSharp
10
- 11. С Новым 2016 Годом!!!
8
- 12. Радиоактивные люди)))
2
- 13. Allegorithmic выпустили Substance Painter 1.7
0
- 14. Chaos Group представили V-Ray 3.3 для 3ds Max
10
- 15. Paragon from Epic Games — Announce Trailer
0
- 16. Thinkbox Software представили Sequoia
0
- 17. The Foundry выпустили Mari 3
0
- 18. Вышел After Effects and Premiere Pro 2015.1
0
- 19. Autodesk выпустили 3ds Max 2016 Extension 2
0
- 20. CLO Virtual Fashion опубликовали отличное двухминутное видео, в котором собраны лучшие проекты, созданные с помощью Marvelous Designer 5.
1
Популярные урокиещё
Моделирование Ford GT. Часть 2
Уроки по 3ds maxВизуализация в Octane Render
Уроки по 3ds maxВизуализация интерьера в iRay
Уроки по 3ds maxСоздание и настройка студии в 3ds max и VRay
Уроки по VRayПодводная сцена в 3d max
Уроки по 3ds max