
Игровой движок Blender’а позволяет виртуальным объектам вести себя подобно объектам реального мира. Следовательно, результат взаимодействия объектов Dynamic, Rigid и Soft body в Blender Game Engine должен зависеть от настроек их массы, а также сил, влияющих на них. Рассмотрим это на примере.
У нас будет стена из кирпичей и шар, разбивающий ее. По отношению к шару можно будет прикладывать разную силу. В зависимости от приложенной силы шар может разрушать стену или нет.
Стена состоит из кирпичей, каждый из которых представляет собой измененный куб типа Rigid body. При взаимодействии объектов важно настроить свойство Bounds (границы). В данном случае лучше использовать тип Convex hull (выпуклая оболочка).

С помощью дублирования (Shift + D) создаем стену из кирпичей. Здесь важно плотно подогнать один к другому. В режиме игры стена должна оставаться целой, а не разваливаться. Последнее может случиться, если неправильно настроены границы объектов или кирпичи неправильно расположены относительно друг друга.

Добавляем на сцену сферу, устанавливаем для нее также тип Rigid body и располагаем на некотором расстоянии от стены. При нажатии на клавишу с цифрой 1 на клавиатуре шар должен двигаться в направлении стены в результате приложения к нему силы. Следует выключить кнопку L.

Сила при нажатии на клавишу с единицей постоянно воздействует на шар. Чем дольше мы жмем, тем больше сила воздействия. На самом деле трудно определить, сколько силы было передано шару. Так может оказаться, что при воздействии меньшей силы, но на протяжении большего времени, шару суммарно было сообщено больше воздействия, чем при моментальном воздействии большей силы. Чтобы избежать недоразумений, в Blender Game Engine можно сделать так, что шару будет сообщаться сила только тогда, когда он находится в определенном месте или в течение строго определенного временного интервала.
Наша сфера будет испытывать воздействие силы лишь тогда, когда касается красной маленькой плоскости. Для этого нужно добавить к сфере сенсор Touch (касание) и связать его с уже существующим контроллером. В поле MA следует прописать материал, при касании которого будет срабатывать сенсор Touch. Имя материала можно найти на панели кнопок Shading (F5).

Два сенсора связаны с одним контроллером типа AND. Это означает, что активатор сработает лишь в том случае, если сигнал будет поступать от обоих сенсоров. В данном случае, должна быть зажата клавиша с единицей и объект должен касаться материала start. Если зажата единица, но нет касания start (или, наоборот, есть касание, но нет сигнала с клавиатуры), то активатор не будет запускаться.
Шар должен находиться над красной плоскостью. В режиме игры к шару будет прикладываться сила лишь в момент его нахождения на плоскости, а не на протяжении всего пути (при зажатой клавише 1). В дальнейшем это позволит трезво оценить, как влияет размер приложенной к шару силы на его способность разрушать стену.
Добавим также еще два комплекта сенсоров, контроллеров и активаторов. Настроим их также как и первый, за исключением величины прикладываемой силы и клавиш-сенсоров. Может быть один сенсор Touch, связанный с несколькими контроллерами. Также неплохо было бы добавить возможность перезагрузки без выхода из режима игры: активатор Scene –> Restart.

Требуется установить такие величины силы, чтобы в первом случае стена почти не разрушалась, а во втором – разрушалась меньше, чем в третьем.
На примере этой модели видно, что скорость шара (и как следствие его разрушающая способность) зависит от величин приложенной к нему силы. Эта зависимость есть в реальном мире, к которому мы привыкли, она эмулируется и в Blender Game Engine.