Настройка игровой зоны¶
Для начала мы настроим игровую область. Давайте начнем с импорта стартовых ресурсов и настройки игровой сцены.
Мы подготовили проект Godot с 3D-моделями и звуками, которые мы будем использовать в этом уроке, ссылка на который находится на странице с содержанием. Если вы ещё не сделали этого, вы можете скачать архив здесь: Ресурсы Squash the Creeps.
После загрузки распакуйте архив .zip на своем компьютере. Откройте менеджер проектов Godot и нажмите кнопку Импорт.
В окне импорта введите полный путь к только что созданному каталогу squash_the_creeps_start/
. Вы можете нажать кнопку Обзор справа, чтобы открыть браузер файлов и перейти к папке, содержащей файл project.godot
.
Нажмите Импортировать и редактировать, и проект откроется в редакторе.
Начальный проект содержит иконку и две папки: art/
и fonts/
. В них вы найдёте ресурсы, которые мы будем использовать в игре.
Здесь имеются две 3D-модели player.glb
и mob.glb
, материалы для этих моделей и музыкальный трек.
Настройка игровой зоны¶
Создадим нашу главную сцену с помощью простого узла Node в основании. В панели Сцена нажмите на кнопку Добавить Узел, представленную в виде иконки "+" в верхнем левом углу и дважды нажмите на Node. Назовите узел "Главный". Либо же добавьте узел к сцене, Вы можете нажать Ctrl + a (или Cmd + a на macOS).
Сохраните сцену. Нажмите "Сцена" -> "Сохранить сцену" в верхней панели или нажмите сочетание клавиш Ctrl + S на Windows/Linux или Cmd + S на Mac.
Мы начнём с добавления пола, который предотвратит игроков от падения. Чтобы создать такие статические коллайдеры, как пол, стены или потолок, Вы можете использовать узлы StaticBody. Им необходимы дочерние узлы CollisionShape, чтобы определить область столкновения. С помощью выбранного узла Main добавьте узел StaticBody, затем CollisionShape. Переименуйте StaticBody как Ground.
Предупреждающая надпись рядом с CollisionShape появляется, потому что мы не определились с формой. Если Вы нажмёте на иконку, появится всплывающее окно, которое предоставит Вам больше информации.
Чтобы создать фигуру с выбранной фигурой столкновения (CollisionShape), откройте Inspector и нажмите на поле [empty] рядом с параметрами Shape. Создайте новую фигуру BoxShape.
Форма коробки идеальна для плоской поверхности и стен. Её толщина делает её надёжной в качестве преграды для быстро двигающихся объектов.
Каркас коробки появляется в окне просмотра с тремя оранжевыми точками. Вы можете нажать на них и перетащить для того, чтобы отредактировать экстенты фигуры в интерактивном режиме. Мы также можем с точностью настроить масштаб в инспекторе. Нажмите на BoxShape, чтобы расширить источник. Установите её Extents на 30
по оси X , 1
по оси Y, и на 30
по оси Z.
Примечание
В 3D все измеряется в метрах. Общий размер коробки в два раза превышает её размеры: 60
на 60
метров на плоской поверхности и ``2``единицы в высоту. Горизонтальная поверхность определяется осями X и Z, в то время как ось Y определяет высоту.
Коллизии являются невидимыми. Нам необходимо добавить видимый пол, который будет их использовать. Выберите узел Ground и добавьте MeshInstance, как его дочерний узел.
Нажмите на поле Mesh в Inspector и создайте источник CubeMesh, чтобы сделать видимый куб.
Ещё раз, по умолчанию он слишком мал. Нажмите на иконку куба, чтобы открыть его свойства и установите его Размер на 60
, 2
, и 60
. Так как ресурс (resource) "куб" работает с размером, а не с объемом, нам необходимо установить эти значения так, чтобы они совпали с коллизиями.
Вы должны видеть широкую серую панель, которая покрывает сетку, и синие с красными оси в окне просмотра.
Переместим поверхность вниз, чтобы мы могли видеть сетку пола. Выберите узел Ground, зажмите клавишу Ctrl, чтобы включить привязку к сетке (Cmd на macOS), а затем нажмите и перетащите вниз на ось Y. Это зелёная стрелка в осях.
Примечание
Если Вы не видите манипулятор 3D-объектов, как на картинке сверху, убедитесь в том, что Select Mode находится в активном состоянии на панели инструментов сверху.
Переместите поверхность вниз на 1
метр. Ярлык в нижнем левом углу окна просмотра говорит Вам о том, насколько Вы преобразуете узел.
Примечание
Перемещение узла Ground вниз сдвигает оба дочерних узла вместе с ним. Убедитесь в том, что Вы перемещаете узел Ground, а не MeshInstance or the CollisionShape.
Давайте добавим направленный свет так, чтобы наша сцена не была полностью серой. Выберите узел Main и добавьте DirectionalLight, как его дочерний узел. Нам необходимо передвинуть и провернуть его. Переместите его вверх, нажав и перетащив зелёную стрелку манипулятора на красную арку и прокрутив ее вокруг оси X, до тех пор пока поверхность не будет освещена.
В Inspector включите Shadow -> Enabled, нажав на переключатель.
На данном этапе ваш проект должен выглядеть следующим образом.
Это наш отправной пункт. В следующей части мы будем работать с сценой игрока и основами передвижений.