Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Блендер 2.6_Manuals_rus.pdf
Скачиваний:
654
Добавлен:
22.03.2015
Размер:
15.44 Mб
Скачать

Использование логических блоков

Мы с вами поговорили об использовании физического движка для создания анимации. И вот пришло время поговорить о создании Анимации Реального Времени, как например виртуальная прогулка по зданию и да, об играх.

Создание сцены

Создайте новую сцену, добавьте в сцену Плоскость. Расположите ее так, чтобы Куб располагался прямо на ней. Нажмите клавишу "N" и откройте

Панель Трансформаций, измените масштаб Куба по оси X до значения 0.200. Мы используем этот объект как кусок стены. Выделите Плоскость и там же, в Панели Трансформации, измените масштаб по осям X

и Y до значения 10.000. Это будет наш пол.

Теперь добавьте в сцену UV-Сферу и перейдите в Режим Редактирования. Выделите только одну вершину из вида сверху, как показано на иллюстрации слева, и с помощью клавишу "G" вытяните ее вперед. Этот "Нос" будет определять направление "вперед" когда мы сделаем Сферу объектом-актером и будем управлять ее движением с помощью клавиш.

Содержание главы

ОГЛАВЛЕНИЕ

371

Убедитесь, что Сфера находится немного над Плоскостью и не касается ее.

Плотное расположение объектов может привести к коллизии при запуске игрового движка и объекты будут вести себя не так, как вы ожидаете.

Мы создали с вами основу сцены, добавили материалы каждому объекту и задали цвет на панели Diffuse для каждого из них. Сейчас у вас должно быть что то, напоминающее сцену на иллюстрации справа.

Содержание главы

ОГЛАВЛЕНИЕ

372

Настройка объекта - актера

Пришло время сделать нашу Сферу объектом-актером с Динамическим просчетом физических взаимодействий. Начнем с переключения рендера с "Blender Render" на "Blender Game" (как это сделать было описано 2 страницы назад). В Окне Свойств перейдите в раздел Physics и для Сферы выберите тип "Dynamic". Для предотвращения слишком сильного скольжения и свободного вращения объекта мы изменим значение параметров Translation Dampening на 0.400 и Rotation Dampening на 0.900. Позже вы можете поэкспериментировать с этими параметрами. Пока используйте эти значения. Если значения этих параметров будут слишком низкими, вы заметите как ваш объект плывет после того, как вы уже отпустили кнопку. Эти же параметры можно настроить и с помощью материалов (параметр Friction - трение).

В нашем случае нет необходимости изменять значение параметра Radius, мы не изменяли размер Сферы. Но, если вы изменяете размер объекта-актера вам

обязательно нужно проверить этот параметр. Также не забывайте после изменения размера объекта нажать Ctrl -"A" для сброса параметров масштабирования и вращения.

Пришло время переключить рабочее пространство в режим работы с игровой логикой: сверху в выпадающем меню выберите режим "Game Logic".

Содержание главы

ОГЛАВЛЕНИЕ

373

Работа с логическими блоками

Теперь, когда вы переключились в режим организации рабочего пространства "Game Logick" вы видите эти самые Логические Блоки внизу окна Blender. Логические блоки организуются по принципу " Вход → Процесс → Выход ", но называются "Сенсоры-Контроллеры-Актуаторы". В логических блоках вы также увидите поля для добавления Свойств (Property).

Здесь доступно большое количество различных типов сенсоров, контроллеров и актуаторов, которые вы можете использовать. Мы будем говорить лишь о части из них. Об остальных вы можете найти информацию в интернете, включая описания создания реальных игр. Давайте начнем!

Добавим сенсор "Keyboard", контроллер "And" и актуатор "Motion".

Содержание главы

ОГЛАВЛЕНИЕ

374

Теперь соедините блоки между собой, захватив ЛКМ точку выхода одного блока перемещайте курсор мыши к точке входа другого блока. Разместив курсор над точкой входа другого блока отпустите ЛКМ. Связь будет создана и вы увидите соединительную линию. Для удаления связи выполните это действие в обратном порядке (захватите точку входа второго блока и переместите курсор к точку выхода первого).

Первое что нам нужно сделать - научить Сферу двигаться вперед при нажатии на клавиатуре клавиши "стрелка вверх". Для этого щелкните ЛКМ в пустом поле, рядом со словом Key. В поле появится надпись "Press a key" и Blender будет ожидать нажатия вами нужной для управления объектом клавиши. Нажмите на клавиатуре клавишу "стрелка вверх". В поле появится соответствующая информация. Здесь есть и другие параметры, но сейчас они нам не нужны.

Содержание главы

ОГЛАВЛЕНИЕ

375

Думайте о Контроллере как о процессоре компьютера. По умолчанию мы выбираем тип "And", что при подключении нескольких сенсоров к этому контроллеру будет запускать актуатор только при срабатывании сразу всех подключенных сенсоров. Для другой логики работы доступны другие типы

контроллеров.

Актуатор Motion работает как для динамических так и для статических объектов. Когда вы управляете Статическим объектом, вам потребуется использовать параметры Loc и Rot, которые задают шаг движения или вращения. Не используйте параметры Loc и Rot для Динамических объектов !. Если вы используете эти параметры для динамического объекта, он будет проходить сквозь стены, что нам совершенно не нужно. Думайте о динамических объектах как об объектах из реального мира. Чтобы такой объект начал двигаться, его нужно толкнуть (приложить Силу - Force) или закрутить (Torque). В блоке актуатора Motion вы увидите блоки для каждого из этих параметров со значениями по осям X, Y и Z. В нашем случае давайте

установим Force Y в значение 5.00. Нажмите клавишу "P" и проверьте получившийся результат. Теперь, при нажатии на клавишу "стрелка вверх", ваша Сфера должна двигаться вперед. Если скорость движения слишком большая - уменьшите значение параметра "Force Y". Если сфера движется в обратном направлении - используйте отрицательно значение этого параметра. Если же объект движется в неправильном направлении, например вбок, попробуйте вместо Force Y использовать силу по оси X. Здесь

Содержание главы

ОГЛАВЛЕНИЕ

376

же вы можете настроить параметр Dampening для более быстрого либо более медленного затухания движения (подобно силе трения).

Мы научили сферу двигаться вперед. Теперь добавьте еще ряд сенсоров, контроллеров и актуаторов для управления движением сферы назад. Все, что понадобилось сделать мне, в отличие от настройки предыдущего актуатора - задать Силу по оси Y равной -5.00. Для получения поворота объекта нам понадобиться приложить к нему Силу Вращения - Torque по оси Z. Силы вращения (Torque) по оси Z величиной 1.00 должно быть достаточно. Сейчас у вас должно быть три линии логических блоков, управляющих движением Сферы вперед, назад, влево и вправо.

Хорошей привычкой будет давать осмысленные названия сенсорам. В дальнейшем, при более сложной логике, у вас может быть большое их количество и осмысленные имена упростят понимание за что они отвечают. Для экономии рабочего пространства вы можете сворачивать

логические блоки, щелкая по небольшому треугольнику в левом верхнем углу.

Если объект странно перекатывается при движении вперед - попробуйте перейти в раздел Materials в Окне Свойств и уменьшить параметр Friction для материала Сферы или Плоскости.

Если ваш объект вращается при соударении со стеной, проделайте то же самое для материала стены.

Содержание главы

ОГЛАВЛЕНИЕ

377

Система ваших логических блоков должна быть похожа, на приведенную ниже:

Давайте добавим "Прыжок" по нажатию на клавишу пробел. Так как мы хотим создать прыжок, а не полет на ракетном двигателе, нам следует соединить с Контроллером 2 Сенсора. Один сенсор - "Keyboard", как мы уже делали. Вторым сенсором будет "Collision" с настроенным параметром Property (Свойство).

Выберите Плоскость-Пол и добавьте для нее новое Свойство нажатием кнопки "Add Game property" слева от области с логическими блоками. Дайте этому свойству имя "floor". Все имена свойств чувствительны к регистру букв, поэтому следите, начинаете вы слово с большой или малой буквы.

Содержание главы

ОГЛАВЛЕНИЕ

378

Теперь снова выделите Сферу и добавьте для нее еще один набор блоков Сенсор Контроллер - Актуатор. Выберите тип Сенсора - "Keyboard" и назначьте ему слежение за клавишей Пробел. установите для Контроллера тип "And", для Актуатора тип "Motion". В блоке актуатора задайте Силу по оси Z равной 100. Так как сила будет прилагаться к объекту только в момент его нахождения на полу, значение этой силы должно быть достаточно большим. Теперь нам нужно добавить еще один Сенсор с

типом "Collision".

В блоке Property этого сенсора наберите "floor". Свяжите этот сенсор с тем же контроллером, с которым связан сенсор, следящий за клавишей "Пробел". Так как контроллер у нас имеет тип And, сила прыжка будет прикладываться только при одновременном Положительном состоянии обоих сенсоров.

Содержание главы

ОГЛАВЛЕНИЕ

379