- Введение в GNU/Linux
- Работа в графических средах (KDE, Gnome)
- Командная оболочка (bash)
- Практические работы по OpenOffice
- Основы программирования (Python)
- Алгоритмы на Python
- Объектно-ориентированное программирование (Python)
- Программирование графического интерфейса (Tkinter)
- 2D анимация (Synfig)
- 3D моделирование (Blender)
- Blender Game Engine
1. Физика в BlenderКогда к объекту в Blender применяется тип Dynamic, Rigid или Soft body, то в режиме игры их поведение становится похожим на поведение реальных объектов в области притяжения Земли (эти настройки можно изменить: например, эмулировать невесомость). В реальном мире плотные объекты не висят в воздухе, а падают на поверхности; при столкновении объекты могут отскакивать; для перемещения объекта с большей массой требуется приложить больше силы и т.д. 2. Активатор MotionДля физических объектов у активатора Motion появляются дополнительные строки настроек (помимо Loc и Rot, которые также есть у статических объектов и отвечают за перемещение и поворот объекта). ![]() Force (сила). Воздействие на объект с заданной силой и направлением. В отличие от Loc, объект не перемещается самостоятельно, а на него как бы действует сторонняя сила. 3.ForceРазместим на сцене плоскость и куб на ней. Добавив сенсор, контроллер и активатор и связав их между собой, увеличим значение Force по оси Х или Y. ![]() В режиме игры объект будет двигаться, как и при влиянии Loc, однако он будет двигаться с ускорением, т.к. сила действует постоянно и постепенно разгоняет объект. После прекращения воздействия, объект останавливается не сразу, а постепенно (в отличие от Loc). 4. Local transformation и Rigid bodyНа объекты Rigid body сильное влияние оказывает привязка осей (X, Y, Z) к самому объекту или к 3D-миру. Если не выключить кнопку L, то объект не будет двигаться по направлениям пространства, а будет покачиваться на одном месте. Это связано с тем, что ось объекта при его повороте меняет свое направление, и тогда сила действует с другой стороны с точки зрения 3D-мира. 5. Влияние массы объектаОбратите внимание на значение в строке Force. Заметные влияния на объект здесь возникают при изменении значения на единицы, а не на дробные значения как в случае Loc. Применение одной и той же силы к объектам разной массы оказывает различное влияние на них. Так если объект Dynamic с установленной виртуальной массой в 2 единицы попытаться сдвинуть с помощью 2 «виртуальных ньютонов», то ничего не получится. Объект же массой в 0.5 единиц будет передвигаться. Примечание: объекты Rigid body и Soft body ведут себя немного по-другому. ![]() 6. Ось ZДля того, чтобы придать объекту движение с помощью Force по осям X и Y достаточно значения сопоставимого с массой объекта или немного больше ее. Однако движение по оси Z в положительном направлении (вверх) требует применения силы большего значения. Вспомним, что находясь в поле Земли объекты притягиваются к ней с ускорением свободного падения равным примерно 9.8 м/с2. Чтобы преодолеть силу притяжения Земли и подбросить объект вверх, требуется сообщить ему большее ускорение, чем 9.8. Примечание: значение Force по оси Z не обязательно должно быть больше 9.8; объекты массой меньше единицы поднимаются вверх и при меньших значениях силы. 7. Роль центра объекта при движенииУ любого меш-объекта в Blender есть центральная точка (в BGE она играет роль центра тяжести объекта). Объект всегда вращается вокруг нее и именно на нее действует сила. Для того, чтобы увидеть как от смены центра тяжести изменяется поведение объекта можно проделать следующий опыт. Расположим на сцене два одинаковых сплюснутых цилиндра. Оба – Dynamic, при нажатии на клавишу Space (пробел) на них воздействует Torque (вращающий момент по оси Z) в 2-3 единицы. Центральная точка одного из цилиндров смещена к его границе. ![]() В режиме игры при нажатии на клавишу Пробел один цилиндр будет крутиться на месте, а второй совершать круговые движения, описывая окружность. 8. Практическая работа
![]() |
|||





