3D Studio MAX: первые шаги. Урок 20. Работа с модулем Particle Flow

Светлана Шляхтина

Теоретические аспекты

Создание и настройка системы частиц

Воздействие на частицы физических сил и деформаций отражения

Настройка отображения частиц при визуализации

Примеры

Горящий костер

Праздничный фейерверк

Разбивающаяся ваза

Разбивающаяся ваза

Применим систему частиц ParticleFlow для имитации падения вазы, которая в результате разлетится на множество мелких фрагментов. Создайте вазу методом лофтинга на базе составного сплайна, состоящего из двух 16-угольников (он будет играть роль сечения) и линии — ее мы используем в качестве пути (рис. 54). После проведения лофтинга получится что-то наподобие многогранной трубы (рис. 55). Выделите lof t-объект и вызовите окно ScaleDeformation из свитка Deformation (Деформация). Преобразуйте кривую деформации в соответствии с рис. 56 — в итоге получите примерно такую вазу, какая показана на рис. 57.

 

Рис. 54. Исходные элементы loft-объекта

Рис. 54. Исходные элементы loft-объекта

 

Рис. 55. Труба с гранями

Рис. 55. Труба с гранями

 

Рис. 56. Окно ScaleDeformation после изменения кривой деформации

Рис. 56. Окно ScaleDeformation после изменения кривой деформации

 

Рис. 57. Ваза

Рис. 57. Ваза

 

Создайте систему частиц ParticleFlow, а также направленный вниз источник гравитации и обычный дефлектор Deflector, располагающийся ниже вазы и перекрывающий всю сцену (рис. 58). Уменьшите силу гравитации примерно до 0,7 (параметр Strength) и настройте параметры дефлектора, установив значение Bounce равным 0,75, Variation — 40%, Chaos — 30% и Friction — 0,2%.

 

Рис. 58. Появление дефлектора и источника гравитации

Рис. 58. Появление дефлектора и источника гравитации

 

Откройте окно Particle View, выделите строку Birth 01 и установите параметры Emit start и Emit stop равными 30, а Amount равным 350 — это приведет к тому, что частицы появятся в 30-м кадре и сразу исчезнут. Выделите строку Speed 01 и увеличьте Variation до 70 — это обеспечит случайные скорости движения осколков вазы. Измените тип движения частиц на Random3 D (параметр Direction) — осколки станут разлетаться в разные стороны. В строке Display 01 установите для параметра Type вариант Geometry — это позволит наглядно увидеть движение частиц в окнах проекций. Параметры оператора Rotation оставьте без изменения, но для более естественного вращения частиц стоит дополнить Rotation-вращение вращением частиц вокруг собственной оси (которая меняется при движении частицы) — тогда частицы будут вращаться с учетом их угловой скорости. Поэтому добавьте в событие оператор Spin, изменив значение параметра Spin Rate на 800, а Variation на 80. Внедрите в событие Event 01 оператор Force и подключите созданный источник гравитации. Замените включенный в событие по умолчанию оператор Position Icon на Position Object, выделите в событии соответствующую строку и, щелкнув на кнопке By List, укажите созданный лофт-объект в качестве генератора частиц — теперь частицы будут вылетать из вазы, а не с эмиттера. Настройте столкновение частиц с дефлектором — добавьте в событие Event 01 критерий Collision и укажите дефлектор в качестве источника столкновения. В итоге диаграмма событий примет вид, представленный на рис. 59.

 

Рис. 59. Вид диаграммы событий после настройки параметров события Event 01

Рис. 59. Вид диаграммы событий после настройки параметров события Event 01

 

Теперь необходимо определить, что происходит с частицами в момент столкновения. Они должны разбиваться на более мелкие осколки. Поэтому создайте новое событие, перетащив критерий Spawn на свободную область диаграммы. В параметрах данного критерия оставьте по умолчанию опцию Once в SpawnRate и включите флажок DeleteParent — это приведет к тому, что частицы породят новые частицы, а затем исчезнут (в противном случае они бы продолжили свое движение). Установите параметры Offspring равным 5, а Variation — 40, таким образом при столкновении каждая из частиц породит примерно (так как Variation больше 0) пять новых частиц. В группе Speed установите Inherited равным 50 со значением Variation в 40 и значением Divergence в 20 — это заставит рожденные частицы двигаться со скоростью приблизительно в половину меньшей, чем скорость столкновения, с небольшим отклонением от первоначального курса (рис. 60). Свяжите критерий Collision 01 с событием Event 02.

 

Рис. 60. Параметры настройки критерия Spawn

Рис. 60. Параметры настройки критерия Spawn

 

Измените в событии Event 02 параметры оператора Display 02 (Type Geometry) и добавьте оператор Force с подключенной гравитационной силой. Для изменения характера вращения подключите оператор Spin, установив для него значения параметров Spin Rate в 600, а Variation в 40 — частицы станут кружиться менее активно. А для постепенной остановки вращающихся частиц (которые, естественно, будут продолжать сталкиваться с дефлектором при очередных падениях) создайте еще один критерий Collision с тем же самым дефлектором, но на этот раз параметры критерия будут иными. Переключатель TestTrueIfParticle будет находиться не в положении Collides, а в положении Collides Multiple Times, что позволит через некоторое время остановить частицы (рис. 61). Полученная в итоге диаграмма событий представлена на рис. 62.

 

Рис. 61. Параметры настройки критерия Collision для события Event 02

Рис. 61. Параметры настройки критерия Collision для события Event 02

 

Рис. 62. Вид диаграммы событий после настройки параметров события Event 02

Рис. 62. Вид диаграммы событий после настройки параметров события Event 02

 

Теперь следует добиться того, чтобы ваза не только являлась генератором частиц, но и падала и разбивалась на данные частицы. Поэтому активируйте первый кадр, переместите вазу вверх, щелкните на кнопке ToggleAutoKeyMode, перетащите ползунок временной шкалы на 30-й кадр, опустите вазу и отключите режим автоматического создания ключей. Просмотрите анимацию в окне Perspective — ваза падает, генерирует множество частиц, но, тем не менее, остается целой и невредимой. Следует сделать вазу невидимой при столкновении. Откройте редактор дескрипторов DopeSheet (команда GraphEditor=>TrackView-DopeSheet), подсветите в его левой части объект Loft 01 и создайте трек видимости, применив команду Tracks=>VisibilityTrack=>Add (рис. 63). В списке параметров объекта появится дополнительная строка Visibility — выделите ее, активируйте инструмент AddKeys (Создать ключи) и щелкните в произвольном месте строки трека видимости. По умолчанию значение данного ключа равно 1 во всех кадрах, а значит, объект всегда видим. Активируйте созданный ключ и в нижних полях ввода укажите для него номер кадра, в котором объект должен пропадать, и значение 0 (рис. 64) — в итоге объект будет самостоятельно исчезать при начале его разрушения. Дополнительно создайте ключ в 0-м кадре и установите его равным 1, чтобы в начальных кадрах анимации ваза оставалась видимой. Назначьте событию PF Source 01 статический материал Material Static и подключите в качестве такого материала подходящий материал из библиотеки или созданный специально. Назначьте этот же материал вазе — это позволит и вазе и осколкам на всех стадиях анимации отображаться с применением одного и того же материала (рис. 65).

 

Рис. 63. Создание трека видимости

Рис. 63. Создание трека видимости

 

Рис. 64. Определение параметров ключа видимости

Рис. 64. Определение параметров ключа видимости

 

Рис. 65. Вид сцены в нескольких кадрах анимации

Рис. 65. Вид сцены в нескольких кадрах анимации

 

При желании можно даже сделать так, чтобы осколки имели различную форму — для этого создайте на базе линейного сплайна набор замкнутых сплайновых ломаных, например такого вида, как показано на рис. 66. Объедините сплайны в группу и превратите их в набор осколков, воспользовавшись модификатором Extrude со значением Amount равным 2 (рис. 67). В событии Event 01 замените оператор Shape на оператор Shape Instance и укажите в качестве объекта для частиц созданную группу Extrude-осколков, включив флажок Group Members (иначе роль единичного осколка будет играть вся группа, а не ее отдельные фрагменты), и подкорректируйте значения параметров Scale и Variation, чтобы осколки не были слишком большими и чередовались случайно (рис. 68). В итоге осколки действительно станут случайными, но по окончании анимации примут совершенно неестественные положения, например встанут на ребра, что в принципе невозможно (рис. 69).

 

Рис. 66. Набор исходных сплайнов

Рис. 66. Набор исходных сплайнов

 

Рис. 67. Набор Extrude-осколков

Рис. 67. Набор Extrude-осколков

 

Рис. 68. Настройка оператора ShapeInstance

Рис. 68. Настройка оператора ShapeInstance

 

Рис. 69. Вид сцены в нескольких кадрах анимации

Рис. 69. Вид сцены в нескольких кадрах анимации

 

В связи с этим придется создать еще одно событие, которое позволит по мере остановки располагать осколки естественным для них образом. Это будет событие с операторами Spawn, Rotation, Spin и Display. Параметры первого оставьте без изменения. Для оператора Rotation установите вариант вращения Random Horizontal, для оператора Spin обнулите параметры Spin Rate и Variation, а Span Axis оставьте в состоянии Random3D. Свяжите данное событие с критерием Collision 02 (рис. 70). Проиграйте анимацию и увидите, что осколки после остановки процессов их разрушения, столкновения и вращения принимают естественное положение (рис. 71).

 

Рис. 70. Окончательный вид диаграммы событий

Рис. 70. Окончательный вид диаграммы событий

 

Рис. 71. Разбивающаяся ваза

Рис. 71. Разбивающаяся ваза

В начало В начало

КомпьютерПресс 9'2007

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует