Разбиваем бильярдную пирамиду

Немного усложним задачу и попробуем получить анимацию разбивания бильярдной пирамиды. Смоделируйте сцену с шаром и профилем бильярдного стола с бортиками — в целях экономии времени мы ограничимся лишь имитацией стола, в качестве которой послужит полигональный куб, у которого экструдированы (команда Edit Polygons => Extrude Face — Правка полигонов=>Выдавить грань) грани, расположенные по контуру верхней поверхности (рис. 33 и 34). А лузы создавать вообще не будем. Теперь нужно сформировать пирамиду из шаров — можно вручную, но в этом случае придется потратить немало времени на их выравнивание друг относительно друга. Поэтому мы прибегнем к дублированию, воспользовавшись командой Edit => Duplicate, применить которую придется несколько раз. Вначале нужен объект для дублирования, поэтому создайте первый шар вручную (рис. 35). Выделите полученный шар и сформируйте путем дублирования первый ряд шаров (рис. 36). Опять выделите исходный шар и создайте ряд шаров, симметричный к только что созданному (рис. 37). И вновь выделите первый шар, и уже при других параметрах дублирования вы получите центральный ряд шаров (рис. 38). Теперь выделите указанные на рис. 39 шары и продублируйте их (рис. 40), а затем проведите аналогичную операцию в отношении шаров, выделенных на рис. 41 (рис. 42). Создайте копию одного из шаров пирамиды и расположите ее в противоположной от пирамиды стороне стола — это будет ударный шар-биток (рис. 43).

Рис. 33. Выделение граней полигонального куба

Рис. 34. Выдавливание граней полигонального куба

Рис. 35. Вид сцены с одним шаром

Рис. 36. Первое дублирование

Рис. 37. Второе дублирование

Рис. 38. Третье дублирование

Рис. 39. Выделение шаров для четвертого дублирования

Рис. 40. Четвертое дублирование

Рис. 41. Выделение шаров для пятого дублирования

Рис. 42. Пятое дублирование

Рис. 43. Вид сцены с пирамидой и ударным шаром

Выделите все шары (включая ударный шар) и немного приподнимите их над поверхностью стола (рис. 44) — это позволит избежать взаимопроникновения геометрии. Увеличьте число кадров анимации до 150. Выделите куб, имитирующий бильярдный стол, и превратите его в пассивное твердое тело, применив команду Soft / RigidBodies => CreatePassiveRigidBody. Выделите все сферы (включая ударный шар) и назначьте им гравитационную силу (команда Fields => Gravity). Проиграйте анимацию, в ходе которой шары просто опустятся на поверхность стола, но пирамида не разрушится. Для разбивания пирамиды нужно произвести удар битком, но данный шар является активным твердым телом, поэтому вручную создать для него соответствующие ключевые кадры нельзя — требуется временно превратить ударный шар в пассивное тело, а затем (то есть после удара) вновь сделать активным. Установите таймер временной шкалы на 1-й кадр, выделите биток и примените команду Soft / RigidBodies => SetPassiveKey (Мягкие/Твердые тела=>Создать пассивный ключ) — данное действие переведет ударный шар в пассивное состояние, о чем будет свидетельствовать изменение в окне каналов значения атрибута Active (Активное) с On (Вкл.) на значение Off (Выкл.) — рис. 45 и 46. Переместите ползунок таймера анимации, например, в 15-й кадр и передвиньте биток в точку предполагаемого удара (рис. 47), а затем вновь создайте пассивный ключ (команда Soft / RigidBodies => SetPassiveKey). Учитывая, что после удара биток (как и прочие шары) должен двигаться под воздействием столкновения и гравитации, активируйте 16-й кадр и вновь сделайте биток активным, создав активный ключ командой Soft / RigidBodies => SetActiveKey (Мягкие/Твердые тела=>Создать активный ключ).

Рис. 44. Перемещение шаров

Рис. 45. Вид окна каналов для ударного шара, находящегося в стадии активного тела

Рис. 46. Вид окна каналов для ударного шара, находящегося в стадии пассивного тела

Рис. 47. Перемещение битка в точку предполагаемого удара

Проиграйте анимацию — как и предполагалось, ударный шар будет разбивать пирамиду, правда не совсем реалистично. Проблема в том, что установленные по умолчанию для активных тел параметры не соответствуют ситуации. Во-первых, ударный шар в действительности должен иметь некоторую начальную скорость — выделите его и в окне каналов увеличьте значение параметра InitialVelocity (Начальная скорость) по оси Z примерно до 40 (рис. 48). Во-вторых, бильярдные шары сами по себе достаточно тяжелые, а поверхность бильярдного стола сравнительно гладкая. Учтем это. Выделите все шары и в окне каналов (а не в редакторе атрибутов, так как там можно менять параметры лишь у каждого объекта по отдельности) измените для них значения параметров Mass (Масса), StaticFriction (Трение покоя), DynamicFriction (Динамическое трение) и Bounciness (Упругость) в соответствии с рис. 49. После этого проиграйте анимацию, и вы увидите, как биток разбивает пирамиду, шары из которой раскатываются в разные стороны, и происходит это уже более реалистично (рис. 50).

Рис. 48. Увеличение начальной скорости для ударного шара

Рис. 49. Изменение параметров шаров

Рис. 50. Разбиваемая бильярдная пирамида


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: