Сцены

Большинство игровых, а также анимационных проектов, создаваемых в Blender, состоят из нескольких сцен, а не одной. Например, в игре герой сначала идет по улице, затем заходит в помещение. Окружающее его пространство сильно меняется, поэтому есть смысл создать две разные сцены.

Новые сцены создаются с помощью кнопки "+" в соответствующем блоке в заголовке редактора Info. Сцены можно переименовывать. Список сцен и переключение 3D View на них выполняется с помощью списка, раскрывающегося при клике по кнопке слева.

Создание новых сцен и переключение между ними

С другой стороны, в Blender Game Engine предусмотрен активатор Scene, позволяющий в режиме игры переключаться с одной сцены на другую, перезагружать текущую сцену и др.

Активатор Scene

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

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

Копирование сцены

На второй сцене усложним дорожку.

Вторая сцена игры

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

Коллизия и задержка

Данная логика настраивается шару в дополнение к клавишам управления движением. В коллизии указывается свойство prop, которое предварительно было добавлено дорожке. Поскольку возврат на первую сцену должен происходить, когда касания плоскости уже нет, то мы инвертируем сенсор, включая кнопку Invert. Задержка в 100 игровых тактов (лучше установить больше, так как при быстрой скорости перемещения коллизия может не фиксироваться) постоянно повторяется (включен флажок Reapeat).

Вернемся к первой сцене игры. Пусть игрок здесь сам перезагружает сцену нажатием клавиши R. Логику можно привязать к камере.

Перезагрузка сцены

Осталось реализовать переход с первой сцены на вторую, когда шар достигает конца дорожки первой сцены. Сделать это можно по-разному. Например, разместим объект-пустышку в конце дорожки и настроим для нее сенсор Near, указав для него свойство-переменную шара.

Переход на другую сцену с помощью сенсора Near

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

Активатор Game среди прочего позволяет выходить из игры и перезапускать ее. Измените описанную в уроке игру так, чтобы при нажатии Q происходил выход из игры, R перезагружала бы игру, а не сцену.

Создано

Обновлено