Я изучаю Godot Engine, искал анимацию спрайтов и ничего не смог сделать. Есть ли что-нибудь подобное в Unity? И после того, как я создам анимацию, как изменить состояние анимации спрайта?
Godot - Использование 2D-анимации спрайтов
Ответы (4)
Есть два способа делать анимацию в Godot (2d), AnimatedSprites или AnimationPlayer. Документы по анимации: http://docs.godotengine.org/uk/latest/classes/class_animation.html?highlight=animation
ИСПОЛЬЗОВАНИЕ УЗЛА АНИМАЦИОННЫХ СПРИТОВ
В основном AnimatedSprites работает путем создания SpriteFrames, содержащего анимацию, следуя этому пути, вам нужно будет использовать отдельные фреймы спрайтов. Вкратце, вам просто нужно перетащить кадры изображения в анимацию SpriteFrame.
Как его использовать: https://www.youtube.com/watch?v=dew1JdR7TuM а>
ИСПОЛЬЗОВАНИЕ АНИМАЦИОННОГО ИГРОКА
Этот узел позволяет вам анимировать все в Godot (не только кадры персонажей, но и звуки, непрозрачность, модулировать цвета и все, что угодно. Для этого требуются ключевые кадры (которые больше похожи на способ Unity). Кроме того, вы можете использовать здесь целую таблицу SpriteSheet) и просто установите свойства в инспекторе, чтобы разделить их. Вы можете посмотреть там: https://www.youtube.com/watch?v=Z00BfPs0ImM
ОБ ИЗМЕНЕНИИ АНИМАЦИЙ
В настоящее время вы можете вызвать play ("animation_name") в узле AnimatedSprite или AnimationPlayer, но если вы используете это в _process (delta) или _physics_process (delta), вы, вероятно, получите ваша анимация будет воспроизводиться только в первом кадре, потому что она вызывает анимацию много раз и не позволяет ей воспроизводиться до последнего кадра. Один из способов избежать этого - использовать две переменные: animation и old_animation, например, и сделать проверку типа if (animation != old_animation):
animation_node.play(animation)
old_animation = animation
конечно, есть и другие способы сделать это, это всего лишь одно решение.
К сожалению, эти видео на португальском языке, но если вы обратите внимание, вы сможете их получить. Есть много хороших видео об этом на английском языке, которые вы можете найти на YouTube.
Я надеюсь, что мое объяснение будет хорошим дидактическим, и удачи в учебе по Годо!
Я предполагаю, что вы можете создать AnimatedSprite в пространстве Node2D. Оттуда вам нужно будет добавить изображения. Их можно добавить отдельно из папки проекта Godot, щелкнув Frames и выбрав New SpriteFrames. Как уже упоминалось, на сайте Kidscancode.org есть отличное руководство, которое поможет вам сквозь это.
Хочу добавить еще кое-что. С помощью одного AnimatedSprite вы создадите несколько анимаций, которые вы будете вызывать через $ AnimatedSprite.play ("имя-анимации"), как указано выше. Этой анимацией также можно управлять в AnimationPlayer, который может управлять объекты в сцене. Это станет удобно позже, и, хотя немного сложнее, можно получить доступ к именованным анимациям в объектах AnimatedSprite и позволить вам использовать встроенный конечный автомат анимации. Все примеры, которые я смог найти в Интернете, показали, что AnimationPlayer управляет Sprite, но он также работает и с объектом AnimatedSprite.
Вы можете использовать встроенную анимацию godot, существует множество обучающих программ, или создать свою собственную и программно изменить индекс кадра вашего спрайта:
$Sprite.frame = 1
Я построил свою собственную систему, потому что годот пользовательский интерфейс сбил меня с толку.
Если вы это сделаете, вам понадобится эта функция, чтобы узнать прошедшее время:
OS.get_ticks_msec()
И рассчитайте исходя из этого, сколько времени прошло, чтобы проверить, находитесь ли вы в следующем кадре или нет.