| Глава из документации gameBlender от 13.04.01. Автор Carsten "Calli" Wartmann | ||
|---|---|---|
| используйте Blender версий 2.0-2.25 или 2.33 и выше, со встроенным игровым движком! | ||
В этом маленьком учебнике, вы получите представление о том как:
Установить атрибуты объекта
Добавить логические блоки (LogicBricks - "Логические Кирпичи", из которых строится игра)
Подключить логические блоки (LogicBricks)
Основы использования сенсоров (датчиков): Keyboard, Always и Touch Sensor
Здесь вы не получите информации о том, как использовать Blender для моделинга и анимации. За этой информацией обращайтесь сюда (русс.) или печатная документация в e-shop(англ.).
Запустите Blender и загрузите подготовленную сцену B-Man1.blend. Можете использовать клавишу F1 или выбрать File > Open из меню. После загрузки, вы увидите сцену, как на Рис 2.
3D-окно слева отображает объект с текстурой, со стороны камеры. Правое окно отображает персонаж игрока сбоку, в каркасном виде. Он выделен (каркасная структура розового цвета), и имеет видимые оси.
Широкое окно снизу - окно кнопок игровой логики - LogicButtons (в старых версиях - RealtimeButtons), переключается клавишей F4 (в старых версиях F8). Здесь находится большинство параметров для настройки интерактивного 3D.
Теперь вы можете запустить игровой движок (gameEngine), переместив курсор мыши в левое 3D-окно (где объект с текстурой) и нажав клавишу P. Из-за того, что мы не настроили ни один интерактивный параметр, мы увидим лишь что исчезла пунктирная рамка камеры, а небо стало синим, вместо серого . Нажмите ESC чтобы остановить игровой движок .
Теперь кликните левой кнопкой мыши по кнопке "Actor", в окне кнопок реального времени. А также, нажмите появившуюся кнопку "Dynamic". Это определит, что выбранный объект "актер" , которым можно управлять встроенной физикой игрового движка. Если вы случайно сняли выделение с игрока (каркасная структура черного цвета) пожалуйста, выберите его повторно правой кнопкой мыши, или перезагрузите сцену.
Теперь мы снова можем запустить игровой движок. Переместите курсор мыши в левое 3D-окно (где объект с текстурой) и нажмите клавишу P и вы увидите, что игрок упадет на пол и несколько раз отскочит от него. Нажмите ESC чтобы остановить игровой движок .
Окно кнопок игровой логики - LogicButtons (в старых версиях - RealtimeButtons) логически поделено на четыре колонки. Крайнюю левую мы уже использовали для установки параметров объекта, чтобы заставить его упасть. Три правые колонки, используются для создания интерактивности в вашей игре.
Теперь давайте переместим игрока по нашему запросу.
Три части обозначены как "Sensors"(сенсоры или датчики), "Controllers" (контроллеры) и "Actuators" (активаторы или приводы). Представьте себе Sensors (сенсоры или датчики) как чувства живого существа, Controllers (контроллеры)это мозг и Actuators (активаторы или приводы)как мускулы.
Теперь нажмите левой кнопкой мыши кнопку "Add", по одному разу для каждой колонки, чтобы добавить один LogicBrick (логический блок) для Sensors, Controllers и Actuators.
Типы добавленных логических блоков приблизительно правильные, для нашей задачи, и только первый необходимо изменить. Нажмите и удерживайте кнопку с надписью "Always" и из появившегося меню выберите "Keyboard (смотрите Рис 5).
Теперь кликните левой кнопкой мыши по полю "Key". Появится текст "Press any key" . Нажмите ту клавишу, которую вы хотите использовать для движения игрока вперед (Я предлагаю стрелку вверх).
Теперь обратим внимание на Actuators (в режиме управления движением "Motion"). Определим как наш игрок должен двигаться. Первая строка цифр, возле надписи "Force", определяет силу, которая будет приложена к объекту, когда активирован контроллер движения. Три столбика цифр соответствуют применению силы по осям X, Y и Z.
Если вы посмотрите на игрока в каркасном виде, вы увидите что его ось X направлена вперед. Для движения вперед нам нужно приложить позитивную силу вдоль оси X. Чтобы сделать это, кликните левой кнопкой мыши и удерживайте первую группу цифр в строке "Force". Переместите мышь вправо, чтобы поднять значение до 10.00. Можете удерживать клавишу CTRL, чтобы привязать значения к декадным значениям. Другой способ ввода точного значения, удерживайте SHIFT при щелчке мышью по полю. Это позволяет вам вводить значение, используя клавиатуру.
Теперь у нас приблизительно такая же конфигурация, как и на Рис 4. Теперь нам необходимо "связать проводом" или подключить логические блоки.
Кликните и удерживайте левую кнопку мыши на желтом шарике, прикрепленному к сенсору клавиатуры (Keyboard Sensor) и тащите появившуюся линию на желтое колечко на контроллере AND. Отпустите кнопку мыши и логический блок будет подключен. Теперь соедините желтый шарик на правой стороне контроллера AND, с колечком на активаторе движения (Actuators).
Чтобы разъединить блоки, поместите курсор мыши поверх соединительной линии. Теперь линия отобразится подсвеченной и ее можно удалить клавишей X или DEL.
Теперь нажмите P, чтобы запустить игровой движок, и когда вы нажмете стрелку вверх, игрок начнет перемещаться по направлению к камере.
Теперь добавьте еще логических блоков для управления игрока, как показано на Рис 6. Эти логические блоки позволяют вам управлять игроком при помощи клавишами управления курсором(стрелок). Обратите внимание, что для поворота игрока мы используем строку "Torque" в активаторе движения(Motion Actuator).
Чтобы добавить немного больше свободы и показать что можно использовать более чем один датчик как ввод для контроллера (Controller), мы заставим игрока подпрыгнуть.
Добавьте для игрока логические блоки как на Рис 7. Прыжок вызывается сенсором клавиатуры (Keyboard Sensor). Но там также подключен сенсор Touch к тому же контроллеру AND. Сенсор Touch(прикосновение) , дает импульс когда объект прикасается к чему-либо. Это все можно прочесть так: " клавиша A нажата AND(И)игрок прикасается к земле, THEN(ЗАТЕМ) дает импульс активатору движения(Motion Actuator)". Таким образом, мы гарантируем, что игрок не прыгнет, когда находится в воздухе. Попробуйте отключить сенсор Touch от контроллера AND и увидите что произойдет...
Контроллер для прыжка подключен к двум активаторам движения, у обоих по оси Z приложена сила 100.00. Так как 100.0 это максимум для одного активатора движения, в Blender'е версий 2.0-2.1х , поэтому мы используем два, чтобы сделать прыжок достаточно высоким. В Blender'е версий 2.2х-2.25 и 2.33 и выше, активатор движения позволяет устанавливать значение силы до 10000. Следовательно, вы можете использовать только один активатор движения, установив значение силы по оси Z на 200.
перевод: sailor