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

Как сделать анимацию в Godot: спрайты, AnimationPlayer и переключение из кода

В Godot два основных способа анимировать: покадровая анимация спрайта и анимация любых свойств через AnimationPlayer. Разбираем оба и связываем анимацию с движением персонажа.

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

Какой способ выбрать

  • AnimatedSprite2D — когда анимация состоит из готовых кадров: бег, прыжок, взрыв. Быстрее всего для пиксельной графики.
  • AnimationPlayer — когда нужно анимировать свойства: позицию, поворот, цвет, видимость, вызов функции в нужный момент. Подходит и для кадров спрайт-листа, и для интерфейса, и для катсцен.
  • AnimationTree — надстройка над AnimationPlayer для сложных переходов между состояниями. Понадобится позже.

Покадровая анимация через AnimatedSprite2D

Пиксельная графика после импорта может выглядеть размытой. Исправляется в Project Settings → Rendering → Textures → Canvas Textures → Default Texture Filter: Nearest.

Добавьте узел

В сцене персонажа замените Sprite2D на AnimatedSprite2D.

Создайте набор кадров

В инспекторе в поле Sprite Frames выберите New SpriteFrames и щёлкните по нему — внизу откроется панель SpriteFrames.

Загрузите кадры

Перетащите отдельные картинки в область кадров или нажмите кнопку загрузки из спрайт-листа и укажите число колонок и строк сетки.

Настройте анимацию

Переименуйте default в idle, добавьте новые анимации run и jump. Задайте FPS и включите или выключите повтор (Loop).

Включите автозапуск

Кнопка Autoplay on Load у анимации idle — она будет играть при старте.

Переключение анимаций из кода

В скрипте персонажа получите узел строкой @onready var sprite = $AnimatedSprite2D. В конце _physics_process выбирайте анимацию по состоянию: если персонаж не на полу — sprite.play("jump"), если скорость по X не равна нулю — sprite.play("run"), иначе sprite.play("idle").

Разворот в сторону движения — свойство flip_h: sprite.flip_h = velocity.x < 0. Вызов play с той же анимацией, что уже играет, её не перезапускает, поэтому писать так каждый кадр безопасно.

Анимация свойств через AnimationPlayer

Добавьте узел AnimationPlayer, внизу откроется панель Animation. Нажмите Animation → New и задайте имя, например blink. Выделите узел, который будете анимировать, и в инспекторе рядом с нужным свойством нажмите значок ключа — на таймлайн встанет ключевой кадр.

Сдвиньте курсор времени, измените значение свойства и поставьте второй ключ. Так делается мигание при получении урона через Modulate, выезжающая панель интерфейса или открывающаяся дверь. Запуск из кода — $AnimationPlayer.play("blink").

Если анимация не играет

  • Имя в коде не совпадает с именем анимации — регистр букв важен.
  • Анимация без Loop проигралась один раз и остановилась на последнем кадре.
  • play вызывается каждый кадр с разными именами — анимации перебивают друг друга, проверьте условия.
  • Ключи поставлены на другой узел: в AnimationPlayer путь к узлу указан относительно Root Node.

Когда нужен AnimationTree

Когда анимаций становится много — бег, прыжок, падение, атака, получение урона, — условия в коде превращаются в клубок. AnimationTree решает это машиной состояний: в редакторе рисуются состояния и стрелки переходов между ними, а в коде вы только меняете параметры, например скорость или флаг «на земле».

AnimationTree работает поверх AnimationPlayer, поэтому покадровые анимации придётся перенести в него: создайте в AnimationPlayer анимации, которые меняют свойство frame у Sprite2D или animation у AnimatedSprite2D. Для небольшой игры с тремя-четырьмя анимациями это избыточно — хватит переключения из скрипта.

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

ИИ-агент LeanTech напишет скрипт переключения анимаций под вашу логику персонажа, подскажет структуру AnimationTree и разберёт, почему анимация не запускается. Он же сгенерирует спрайты и иконки для 2D-игры картинками PNG.

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

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

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

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

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

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

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

AnimatedSprite2D с набором SpriteFrames: анимации idle, run, jump и переключение через play() в скрипте.

Как нарезать спрайт-лист в Godot?

В панели SpriteFrames нажмите загрузку из спрайт-листа, выберите картинку и задайте число колонок и строк.

Чем AnimationPlayer отличается от AnimatedSprite2D?

AnimatedSprite2D проигрывает кадры, AnimationPlayer анимирует любые свойства узлов по ключевым кадрам.

Почему пиксельный спрайт размытый?

Включён сглаживающий фильтр. Поставьте Default Texture Filter: Nearest в настройках проекта.

Как проиграть анимацию один раз в Godot?

Выключите Loop у анимации и подключите сигнал animation_finished, чтобы узнать, когда она закончилась.

Как изменить скорость анимации?

В SpriteFrames задайте FPS для каждой анимации или меняйте свойство speed_scale у узла прямо из кода.

Ещё в блоге

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

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

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

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