Как сделать персонажа в Godot 4: движение, прыжок, камера
🎁 +100% к первому пополнению в LeanTech AI — до конца акции --:--:-- Забрать бонус →
Меню
Попробовать ИИ-агент

Как сделать персонажа в Godot: сцена, движение, прыжок и камера

Персонаж в Godot 4 — это отдельная сцена из трёх узлов и короткий скрипт. Разбираем сборку для 2D-платформера и вида сверху, а в конце — чем отличается 3D.

Обновлено 29.09.2026 · Блог Godot

Из чего состоит персонаж

Создайте новую сцену (Scene → New Scene), в качестве корня выберите Other Node → CharacterBody2D. Это тело, которым управляет код: оно двигается и упирается в стены, но не падает само по законам физики, как RigidBody2D.

Добавьте корню два дочерних узла: Sprite2D или AnimatedSprite2D для картинки и CollisionShape2D для формы столкновений. В инспекторе у CollisionShape2D в поле Shape выберите New CapsuleShape2D или New RectangleShape2D и подгоните размер под спрайт. Без формы движок выдаст жёлтый предупреждающий значок.

Скрипт движения за минуту

В шаблоне два числа — SPEED и JUMP_VELOCITY. Первое отвечает за скорость ходьбы, второе за силу прыжка: оно отрицательное, потому что ось Y в Godot направлена вниз.

Прикрепите скрипт

Выделите корневой узел и нажмите значок свитка со знаком плюс над деревом сцены.

Выберите шаблон

В окне Attach Node Script в поле Template выберите CharacterBody2D: Basic Movement. Godot вставит готовый код платформера с гравитацией, ходьбой стрелками и прыжком.

Сохраните сцену

Ctrl+S, имя вроде player.tscn.

Запустите

F6 запускает текущую сцену. Персонаж упадёт вниз — ему не на чем стоять, пол добавим ниже.

Вид сверху: движение в 8 направлениях

Для игры с видом сверху гравитация не нужна. Вся логика умещается в три строки внутри _physics_process: var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down"), затем velocity = direction * SPEED и вызов move_and_slide().

Input.get_vector сам нормализует диагональ, поэтому персонаж не ускоряется, когда зажаты две клавиши.

Свои клавиши управления

Действия ui_left и ui_right встроены и привязаны к стрелкам. Чтобы добавить WASD или геймпад, откройте Project → Project Settings → вкладка Input Map, введите имя действия, например move_left, нажмите Add и привяжите к нему клавиши.

В коде замените встроенные имена на свои. Так же добавляются атака, рывок и взаимодействие: Input.is_action_just_pressed("attack") срабатывает один раз при нажатии.

Пол, уровень и камера

  • Пол — узел StaticBody2D с CollisionShape2D. Для уровня из плиток используйте TileMapLayer с физическим слоем в наборе тайлов.
  • Персонажа добавьте на сцену уровня перетаскиванием файла player.tscn из FileSystem в окно редактора.
  • Камера — узел Camera2D дочерним к персонажу: она будет следовать за ним. Плавность включается свойством Position Smoothing.
  • Если персонаж проваливается сквозь пол, проверьте, что слои и маски коллизий (Collision Layer и Mask) совпадают.

А если игра в 3D

Логика та же, но узлы другие: CharacterBody3D, MeshInstance3D или импортированная модель вместо спрайта, CollisionShape3D и Camera3D. У скрипта есть шаблон CharacterBody3D: Basic Movement.

Подробнее о различиях 2D и 3D в Godot — на странице сайта про 2D и 3D.

Здоровье, урон и враги

Следующий шаг после движения — здоровье. Заведите в скрипте персонажа переменную health и функцию take_damage(amount), которая уменьшает её и проверяет, не пора ли перезапустить уровень. Чтобы узнать о столкновении с врагом или шипами, добавьте персонажу узел Area2D с собственной CollisionShape2D и подключите сигнал body_entered.

Врага удобно делать отдельной сценой по тому же принципу: CharacterBody2D, спрайт, форма коллизии и простой скрипт патрулирования — идти в одну сторону, пока RayCast2D не увидит край платформы или стену. Всех врагов добавьте в группу enemies на вкладке Node → Groups, тогда персонаж сможет отличить их от других тел одной проверкой is_in_group.

Когда быстрее через ИИ-агента

Если нужен персонаж под конкретную механику — двойной прыжок, рывок, лестницы, атака с перезарядкой — опишите её ИИ-агенту LeanTech. Он напишет GDScript под Godot 4, распишет дерево узлов и объяснит каждую строку, а по ошибке из консоли найдёт причину.

Агент не работает внутри редактора Godot, не собирает сцену за вас и не делает 3D-модели. Он отдаёт код, план сцены и 2D-спрайты по описанию — вставлять их в проект вы будете сами.

🔥 Бонус +100% — осталось --:--:--

Нужен результат, как в Godot? Поставьте задачу агенту

Регистрация занимает меньше минуты. Без VPN, оплата картой РФ, старт без карты.

  • Десятки нейросетей на одном балансе — результат файлом
  • Оплата рублями, чек и закрывающие для юрлиц
  • +100% к первому пополнению до конца акции
LT LeanTech AIдоступ к десяткам нейросетей
🎁 +100% к первому пополнению
★★★★★4.8
Запустить ИИ-агент →

Частые вопросы

Как сделать персонажа в Godot?

Сцена с корнем CharacterBody2D, дочерние Sprite2D и CollisionShape2D, скрипт по шаблону Basic Movement.

Как сделать движение персонажа в Godot 4?

Задайте velocity из Input.get_vector и вызовите move_and_slide() в _physics_process.

Почему персонаж проваливается сквозь пол?

У пола нет CollisionShape2D или не совпадают слои и маски коллизий.

Как сделать, чтобы камера следовала за персонажем?

Добавьте Camera2D дочерним узлом персонажа и включите Position Smoothing для плавности.

Ещё в блоге

Сайт является независимым русскоязычным справочником, не представляет владельца продукта и не выдаёт себя за официальный ресурс. Названия и товарные знаки принадлежат правообладателям. Кнопки «Запустить ИИ-агент» ведут в сервис LeanTech — отдельный продукт, который решает ту же задачу другим способом.

Нужен результат, а не программа?

ИИ-агент LeanTech принимает задачу словами, читает ваши файлы и отдаёт готовый результат файлом — без VPN и с оплатой картой РФ.

Поставить задачу агенту →