Типы Дорожек Анимации
На этой странице представлен обзор типов дорожек, доступных для узла проигрывателя анимации Godot, в дополнение к дорожкам свойств по умолчанию.
См. также
Мы предполагаем, что вы уже прочитали Введение в возможности анимации, в котором описаны основы, включая треки свойств.
Дорожка Свойства
Самый простой тип трека. Смотрите Введение в возможности анимации.
Дорожка Позиционирование 3D / Вращение 3D / Масштабирование 3D
Эти треки 3D трансформации позволяют контролировать положение, вращение и масштабирование 3D-объекта. Они значительно упрощают процесс анимации 3D-объекта по сравнению с использованием традиционных треков свойств.
Он предназначен для анимации, импортированной из внешних 3D-моделей, и может уменьшить объём ресурсов за счёт сжатия.
Дорожка Форм Смешивания
Трек формы смеси оптимизирован для анимации формы смеси MeshInstance3D.
Он предназначен для анимации, импортированной из внешних 3D-моделей, и может уменьшить объём ресурсов за счёт сжатия.
Дорожка Вызова Метода
Дорожка Вызова Метода позволяет вызывать функцию в определенное время в анимации. Например, вы можете вызвать "queue_free()", чтобы удалить узел в конце анимации смерти.
Примечание
События, размещенные на дорожке вызова метода, не выполняются при предварительном просмотре анимации в редакторе в целях безопасности.
Чтобы создать такую дорожку в редакторе, нажмите "Добавить дорожку -> Дорожка Вызова Метода". Затем откроется окно, в котором вы сможете выбрать узел, связанный с дорожкой. Чтобы вызвать один из методов узла, щелкните правой кнопкой мыши на временной шкале и выберите "Вставить ключ". Откроется окно со списком доступных методов. Дважды щелкните по одному из них, чтобы завершить создание ключевого кадра.
Чтобы изменить вызов метода или его аргументы, нажмите на клавишу и перейдите в панель управления инспектором. Там вы можете изменить метод для вызова. Если вы раскроете раздел "Аргументы", вы увидите список аргументов, которые вы можете редактировать.
Чтобы создать такую дорожку с помощью кода, передайте словарь, содержащий имя целевого метода и его параметры, в качестве "ключа" для функции "Animation.track_insert_key()". Ключи и их ожидаемые значения следующие:
Ключ |
Value (Ценить) |
|---|---|
|
Имя метода как |
|
Аргументы, передаваемые функции в виде |
# Create a call method track.
func create_method_animation_track():
# Get or create the animation the target method will be called from.
var animation = $AnimationPlayer.get_animation("idle")
# Get or create the target method's animation track.
var track_index = animation.add_track(Animation.TYPE_METHOD)
# Make the arguments for the target method jump().
var jump_velocity = -400.0
var multiplier = randf_range(.8, 1.2)
# Get or create a dictionary with the target method's name and arguments.
var method_dictionary = {
"method": "jump",
"args": [jump_velocity, multiplier],
}
# Set scene-tree path to node with target method.
animation.track_set_path(track_index, ".")
# Add the dictionary as the animation method track's key.
animation.track_insert_key(track_index, 0.6, method_dictionary, 0)
# The target method that will be called from the animation.
func jump(jump_velocity, multiplier):
velocity.y = jump_velocity * multiplier
// Create a call method track.
public void CreateAnimationTrack()
{
// Get reference to the AnimationPlayer.
var animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
// Get or create the animation the target method will be called from.
var animation = animationPlayer.GetAnimation("idle");
// Get or create the target method's animation track.
var trackIndex = animation.AddTrack(Animation.TrackType.Method);
// Make the arguments for the target method Jump().
var jumpVelocity = -400.0;
var multiplier = GD.RandRange(.8, 1.2);
// Get or create a dictionary with the target method's name and arguments.
var methodDictionary = new Godot.Collections.Dictionary
{
{ "method", MethodName.Jump },
{ "args", new Godot.Collections.Array { jumpVelocity, multiplier } }
};
// Set scene-tree path to node with target method.
animation.TrackSetPath(trackIndex, ".");
// Add the dictionary as the animation method track's key.
animation.TrackInsertKey(trackIndex, 0.6, methodDictionary, 0);
}
// The target method that will be called from the animation.
private void Jump(float jumpVelocity, float multiplier)
{
Velocity = new Vector2(Velocity.X, jumpVelocity * multiplier);
}
Трек кривой Bezier
Дорожка кривой Безье похожа на дорожку свойств, за исключением того, что она позволяет анимировать значение свойства с помощью кривой Безье.
Примечание
Дорожка кривой Безье и дорожка свойств не могут быть смешаны в AnimationPlayer и AnimationTree.
Чтобы создать её, нажмите "Добавить дорожку -> Дорожка кривой Безье". Как и в случае с дорожками свойств, вам нужно будет выбрать узел и свойство для анимации. Чтобы получить доступ к редактору кривых Безье, нажмите на значок кривой, расположенный справа от дорожки анимации.
В редакторе клавиши представлены закрашенными ромбами, а обведенные ромбы соединены с ними кривой, которая определяет форму линии.
Совет
Для повышения точности при ручной работе с кривыми вам может потребоваться изменить уровни масштабирования в редакторе. Ползунок в правом нижнем углу редактора можно использовать для увеличения или уменьшения масштаба на временной оси, вы также можете сделать это с помощью Ctrl + Shift + Mouse wheel. С помощью Ctrl + Alt + Mouse wheel можно увеличивать или уменьшать масштаб по оси Y
Пока выбран ключевой кадр(а не дескриптор), вы можете щелкнуть правой кнопкой мыши на панели редактора, чтобы выбрать режим обработки:
Свободный: позволяет вам ориентировать манипулятор в любом направлении, не влияя на положение другого манипулятора.
Линейный: не допускает поворота манипулятора и рисует линейный график.
Сбалансированный: позволяет манипуляторам вращаться вместе, но расстояние между клавишей и манипулятором не отражается зеркально.
Зеркальное отображение: положение одного манипулятора полностью отражает положение другого, включая расстояние до клавиши.
Дорожка воспроизведения звука
Если вы хотите создать анимацию со звуком, вам необходимо создать Дорожку воспроизведения звука. Для ее создания в вашей сцене должен быть узел AudioStreamPlayer, AudioStreamPlayer2D или AudioStreamPlayer3D. При создании дорожки вы должны выбрать один из этих узлов.
Чтобы воспроизвести звук в вашей анимации, перетащите аудиофайл из панели управления файловой системой на дорожку анимации. Вы должны увидеть форму сигнала вашего аудиофайла на дорожке.
Чтобы удалить звук из анимации, вы можете щелкнуть по нему правой кнопкой мыши и выбрать "Удалить клавиши" или щелкнуть по нему и нажать клавишу Del.
Режим наложения позволяет вам выбрать, следует ли регулировать громкость звука при наложении в AnimationTree.
Дорожка воспроизведения анимации
Дорожки воспроизведения анимации позволяют вам упорядочивать анимацию других узлов проигрывателя анимации в сцене. Например, вы можете использовать его для анимации нескольких персонажей в кат-сцене.
Чтобы создать дорожку для воспроизведения анимации, выберите "Новая дорожка -> Дорожка для воспроизведения анимации."
Затем выберите проигрыватель анимации, который вы хотите связать с дорожкой.
Чтобы добавить анимацию к дорожке, щелкните по ней правой кнопкой мыши и вставьте ключевой кадр. Выберите только что созданный ключевой кадр, чтобы выбрать анимацию в панели управления инспектора.
Если анимация уже воспроизводится и вы хотите остановить ее раньше, вы можете создать ключевой кадр и установить для него значение "[STOP]` в инспекторе.
Примечание
Если вы добавили проигрыватель анимации в свою сцену, включите "Редактируемые дочерние элементы" в дереве сцены, чтобы получить доступ к свойствам проигрывателя анимации. Кроме того, проигрыватель анимации не может ссылаться на самого себя.