Найти в Дзене
Игровой движок Godot engine

№154. Модификация ключей в AnimationPlayer через код.

Представим ситуацию : У вас есть обьект который при помощи AnimationPlayer перелетает из точки А в точку Б по дуге.

В сцене спрайт и плеер :

-2

В плеере у нас добавлена анимация "fly", и у свойства POSITION по два ключа на ось:

важно. при создании анимации я выбрал Bezier curve track.
важно. при создании анимации я выбрал Bezier curve track.

Можно заметить что мы двигаемся из точки x50 y300 в точку x500 y300.

А теперь давайте сделаем так, чтобы наш спрайт летел из точки x200 y200, в точку x500 y400, но не редактируя ключи в редакторе анимации, а непосредственно через код.

Подключаем на корневую ноду скрипт ,открываем редактор.

Для начала вынесем в переменные сам плеер , и текущую анимацию.

-4

Далее устанавливаем нашему треку «fly» новые данные в ключи.
Схема тут простая

-5

Проверяем :

-6

Установим значения для оси Х так , чтобы спрайт летел из точки по оси Х = 500 в Х=200:

-7

Как видим тут тоже всё корректно.

Через код само собой можно менять практически всё. Начальные параметры кривой (bezier_track_set_key_in_handle() bezier_track_set_key_out_handle()), положение ключа на временнОй шкале (track_set_key_time()), и так далее.
Более подробно вы сможете это всё найти в родной справке.

Ну и напоследок небольшой пример, в котором наш спрайт летит в точку клика используя для траектории данные из плеера.

-8

За сим всё, удачной разработки !
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #gdscript #уроки #игровой движок #программирование