Выберите плоскость, и для твердого тела установите collisionLayer=-1.

После этого осколки весело отскочат от плоскости и улетят за горизонт. Если выбрать их и создать поле гравитации, это поможет уронить их на плоскость после раскалывания.

Если некоторые осколки проваливаются сквозь поверхность или застревают в ней, то откройте Solvers=>Rigid Body Solver и установите Collision Tolerance = 0.002, чтобы уменьшить допуск, внутри которого тела считаются столкнувшимися.

Сохраните файл (teapotCrackedDynamics.ma).

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

Импортируйте в сцену небитый чайник из файла teapot.та.

File=>lmport…

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

Выберите целый чайник (все дальнейшие операции выбора удобно делать в Outliner) и превратите его в активное твердое тело.

Задайте ему небольшую начальную скорость initialVelocityY=-5 и убедитесь, что он падает на плоскость, отскакивает от нее и уносится в небеса. Заметьте, что новый чайник пока не присоединен к гравитации и падает просто по инерции, благодаря начальной скорости. Гравитацию мы прикрутим позже.

Не забывайте, что у всех осколков выключен атрибут collisions, поэтому никаких «залипаний» между целым чайником и осколками не происходит.

Теперь аккуратно выберите все осколки и установите в Channel Box для твердых тел атрибут active в off. Это сделает их пассивными твердыми телами. Обнулите у них начальную скорость, чтобы они были совсем пассивными: initialVelocityY =0.

В Outliner или Hypergraph припарентите все осколки к целому чайнику (выделите, перетащите и бросьте их всех на объект teapot средней кнопкой мыши). После этого они должны двигаться вместе с ним.

Осталось выбрать момент и включить атрибут active для осколков.

Выберите все осколки, проиграйте потихонечку до момента столкновения и поставьте на атрибут active два ключа для всех (!) твердых тел/осколков: первый active=off за один кадр до удара, а второй active=on в следующем кадре.

После этого в момент удара осколки разлетаются и остаются на плоскости под действием силы тяжести.

Анимация атрибута visibility остается на совести пытливых умов и не представляет технических сложностей.

Сохраните файл (teapotCrackedDynamicsSwitch.ma)

Секретные атрибуты и слежение за ударами Предположим, что мы хотим, чтобы в момент удара чайника о плоскость у него вылетало из носа возмущенное облако пара. «Ничего сложного! Эмиттер в нос и пару-тройку ключей в момент удара на атрибут rate», - воскликнут недостаточно пытливые умы. Однако любители почитать документацию могут предположить, что можно найти такой атрибут у твердого тела, который отвечал бы за состояние «стукнутости» и позволял бы отслеживать момент удара. Имея такую информацию, мы могли бы написать несложный expression, который бы «включал» источник частиц в момент удара и выключал бы его потом.


⇐ вернуться назад | | далее ⇒