Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Настройка игровой зоны
Для начала мы настроим игровую область. Давайте начнем с импорта стартовых ресурсов и настройки игровой сцены.
Мы подготовили проект Godot с 3D-моделями и звуками, которые мы будем использовать в этом уроке. Ссылка на него находится на главной странице. Если вы ещё этого не сделали, вы можете скачать архив здесь: Squash the Creeps assets.
Once you've downloaded it, extract the .zip archive on your computer. Open the Godot Project Manager and click the Import button.
Во всплывающем окне импорта введите полный путь к только что созданному каталогу 3d_squash_the_creeps_starter/. Нажмите кнопку Browse справа, чтобы открыть браузер файлов и перейти к файлу project.godot, содержащемуся в папке.
Нажмите Import, чтобы открыть проект в редакторе.
Может появиться окно с уведомлением о том, что проект был создан в более ранней версии Godot. Нажмите OK, чтобы преобразовать проект в текущую версию Godot.
If it doesn't open immediately, open the project from your project list.
Начальный проект содержит иконку и две папки: art/ и fonts/. В них вы найдёте ресурсы, которые мы будем использовать в игре.
Здесь имеются две 3D-модели player.glb и mob.glb, материалы для этих моделей и музыкальный трек.
Настройка игровой зоны
Мы собираемся создать нашу основную сцену с простым Node в качестве ее корня. В доке Scene нажмите кнопку Add Child Node, представленную значком «+» в левом верхнем углу, и дважды щелкните Node. Назовите узел Main. Альтернативный метод переименования узла — щелкнуть правой кнопкой мыши по Node и выбрать Rename (или F2). Альтернативно, чтобы добавить узел в сцену, вы можете нажать Ctrl + A (Cmd + A на macOS).
Сохраните сцену как main.tscn, нажав Ctrl + S (Cmd + S на macOS).
Мы начнём с добавления пола, который предотвратит игроков от падения. Чтобы создать такие статические коллайдеры такие, как пол, стены или потолок, вы можете использовать узлы StaticBody3D. Им необходимы дочерние узлы CollisionShape3D, чтобы определить область столкновения. Выбрав узел Main, добавьте узел StaticBody3D, затем CollisionShape3D. Переименуйте StaticBody3D в Ground.
Ваше дерево сцены должно выглядеть так
Предупреждающая знак рядом с CollisionShape3D появляется, потому что мы не определились с формой. Если вы нажмёте на иконку, появится всплывающее окно, которое предоставит вам больше информации.
Чтобы создать форму, выберите узел CollisionShape3D, перейдите в Инспектор и щелкните по полю <пусто> рядом со свойством Shape. Создайте новый BoxShape3D.
Форма параллелепипеда идеальна для плоской поверхности и стен. Её толщина делает её надёжной в качестве преграды для быстро двигающихся объектов.
В окне просмотра появится каркас параллелепипеда с тремя оранжевыми точками. Вы можете нажать на них и перетащить для того, чтобы отредактировать размеры фигуры в интерактивном режиме. Мы также можем с точностью настроить размер в инспекторе. Нажмите на BoxShape3D, чтобы расширить источник. Установите его размер равным 60 по оси X, 2 по оси Y и 60 по оси Z.
Collision shapes(то есть формы столкновения, или коллизии) являются невидимыми. Нам необходимо добавить видимый пол. Выберите узел Ground и добавьте к нему дочерний узел MeshInstance3D.
В инспекторе, щелкните на поле рядом с Mesh и создайте BoxMesh, чтобы создать видимый параллелепипед.
Опять же, по умолчанию он слишком мал. Нажмите на иконку куба, чтобы открыть его свойства и установите его Размер на 60, 2, и 60.
Вы должны видеть широкую серую плиту, которая покрывает сетку, и синие с красными оси в окне просмотра.
Мы собираемся опустить землю, чтобы увидеть сетку пола. Для этого можно использовать функцию привязки к сетке. Привязку к сетке можно активировать двумя способами в 3D-редакторе. Первый — нажатием кнопки Use Snap (или нажатием клавиши Y). Второй — выбором узла, перетаскиванием маркера на манипуляторе, затем удерживанием клавиши Ctrl (Cmd в macOS) при удерживании выбранного узла.
Включите привязку. Переместите узел Ground, используя ось Y (зеленая стрелочка) и привязку к сетке.
Примечание
Если вы не видите манипулятор 3D-объектов, как на изображении выше, убедитесь, что в панели инструментов над окном просмотра активен Transform Mode (режим трансформации).
Переместите поверхность вниз на 1 метр. Ярлык в нижнем левом углу окна просмотра показывает, насколько вы перетащили узел.
Примечание
При перемещении узла Ground вниз, оба дочерних узла перемещаются вместе с ним. Убедитесь, что вы перемещаете узел Ground, а не MeshInstance3D или CollisionShape3D.
В конечном итоге, transform.position.y у Ground должен быть -1
Давайте добавим направленный свет, чтобы наша сцена не была серой. Выберите узел Main и добавьте дочерний узел DirectionalLight3D.
Нам нужно переместить и повернуть узел DirectionalLight3D. Переместите его вверх, щелкнув и перетащив зеленую стрелку, а затем щелкните и перетащите красную дугу, чтобы повернуть его вокруг оси X, пока земля не будет освещена.
В Inspector включите Shadow, установив флажок.
На данном этапе ваш проект должен выглядеть следующим образом.
Это наш отправной пункт. В следующей части мы будем работать со сценой игрока и передвижением.