Активатор Edit Object. Урок 8

Уроки по Blender Game Engine

Активатор Edit Object (редактирование объекта) позволяет изменять свойства конкретного объекта, а также изменять «меш-содержимое» 3D-сцены в режиме игры.

Add Object – добавить объект

Использование типа Add Object активатора Edit Object дает возможность в режиме игры добавлять на сцену новый меш-объект. На самом деле объект должен быть не новым, а “спрятанным” (обычно на другом слое). Новый объект добавляется в то место, где находится объект, к которому добавлен активатор Edit Object -> Add Object. Добавляемый объект (его имя) прописывается в качестве значения свойства OB.

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

Blender Game Engine, игровой режим

На самом деле двигается пустышка (Empty), которая является родителем по отношению к красной метке (Ctrl+P – связь родитель-потомок). Именно для объекта Empty также добавлены активаторы Edit Object. Конечно, можно привязать добавляемые объекты и к красной метке, однако появятся проблемы с их размером и др.

Активатор Edit Object - /> Add Object

Здесь происходит добавление объектов с именами white и black при нажатии клавиш W и B соответственно. Первые четыре блока сенсоров, контроллеров и активаторов отвечают за движение Empty.

У активатора Edit Object -> Add Object есть дополнительные настройки. Добавленные объекты будут исчезать через установленный промежуток времени, если Time не будет нулевым. Измеряется данное свойство не в секундах, а кадрах (обычно в секунде 25-30 кадров).

linV и angV позволяют придать объекту некоторое ускорение в момент появления. Движение может быть вдоль оси или вокруг оси (поворот). Работает только с физическими объектами.

End Object – удалить объект

Объект может быть удален в режиме игры. Часто это используется в комбинации с каким-либо другим активатором. Например, исчезновение объекта при столкновении с другим объектом.

Replace Mesh – замена меш-объекта

Этот тип активатора Edit Object представляет собой интересную возможность Blender Game Engine (однако, еще не до конца реализованную разработчиками). Например, можно создавать различные спецэффекты. Допустим, объект падает и при касании земли, последняя проминается (на самом деле будет происходить замена меша).

Активатор Edit Object - /> Track to

Track to – слежение

При добавлении этого типа активатора, объект будет поворачиваться по осям, «следя» за указанным в качестве OB объектом, при этом оставаясь на одном и том же месте. Например, камера может следить за каким-нибудь передвигающимся объектом на сцене, если сцена небольшая. Или интересные эффекты могут получаться, если при движении одного объекта, другой (с активатором Edit Object -> Track to), оставаясь на месте, будет поворачиваться.

Dynamics - динамика

Этот тип активатора Edit Object позволяет изменять физические свойства объекта. Однако объект должен изначально быть установлен как физический. Подтипы Suspend и Restore Dynamics, Disable и Enable Rigid Body включают и отключают соответственно влияние физики на объекты. Подтип Set Мass позволяет в режиме игры изменять массу объекта.

Например, у какого-нибудь Dynamic-объекта можно отключить его физические свойства, связав сенсор Always с активатором Edit Object -> Dynamics -> Suspend Dynamics. А в процессе игры включать физические свойства (Restore Dynamics), если случиться определенное событие.

Практическая работа

С помощью Blender Game Engine создайте небольшую игру по следующему описанию.

На одном краю плоскости, расположены небольшие кубики-мишени, являющиеся статическими объектами.

На другом крае плоскости расположен объект-пушка.

Добавить Empty и сделать ее родителем по отношению к пушке. Пустышка (вместе с пушкой) может двигаться в двух плоскостях: вдоль своего края и вверх-вниз. Сенсоры – стрелки на клавиатуре.

Из пушки (на самом деле – пустышки) вылетают пули в направлении мишеней. Для этого на другой слой поместить объект-пулю (физический объект). Привязать его к пушке при помощи активатора Edit Object -> Add Object. Придать ускорение в направлении мишеней (linV). Пульки должны исчезать примерно через 100-120 кадров (Time).

Мишени должны исчезать при касании их объектом-пулей (End Object).