В настоящее время я пытаюсь динамически создать анимацию и воспроизвести ее для отображения текста на основе длины текста и заданной скорости символов в секунду.
Что я пытаюсь воссоздать в кодеэто анимация:
Таким образом, анимация с отслеживанием свойства в свойстве метки visible_characters
с режимом обновления в режиме непрерывной обработки и интерполяцией в линейной
Структурасцены:
Скрипт за узлом DialogBox:
extends Control
export(String, MULTILINE) var Text = ""
export(int) var CharactersPerSecond = 100
func _ready():
$Panel/Label.set_text(Text)
print($Panel/Label.get_text())
createAnimation()
$AnimationPlayer.play("show-text")
print("is playing " + str($AnimationPlayer.is_playing()))
print("current animation " + $AnimationPlayer.current_animation)
func createAnimation():
var animationLength = Text.length() / (CharactersPerSecond as float)
print(animationLength)
var animation = $AnimationPlayer.get_animation("show-text")
animation.clear()
var trackIdx = animation.add_track(Animation.TYPE_VALUE)
animation.track_set_path(trackIdx, "Panel/Label:visible_characters")
animation.track_set_interpolation_type(trackIdx,Animation.INTERPOLATION_LINEAR)
animation.value_track_set_update_mode(trackIdx, Animation.UPDATE_CONTINUOUS)
animation.track_insert_key(trackIdx, 0, 0)
animation.track_insert_key(trackIdx, animationLength, Text.length())
В целях тестирования текст устанавливается в редакторес использованием экспортированной переменной Text
и некоторого значения lorem ipsum.
Что происходит, когда я запускаю сцену, так это то, что панель и метка отображаются, но текст не отображается в метке, она остается пустой, но в соответствии соператоры печати show-text
воспроизводится анимация
Печатные данные в окне вывода:
** Процесс отладки запущен **
Godot Engine v3.1.2.stable.mono.official - https://godotengine.org
OpenGL ES 3.0 Рендерер: AMD Radeon R7 200 Series
Текст метки: Magnam consequatur vel alias earum accusantium. Нобис волпатем волептатем кваерат адиписки волупас. Ошибка Numquam ID Earum Concectetur Veniam. Quaerat quibusdam quas sunt alias et blanditiis corporis. Купидонат rem ut natus est molestiae quidem. Magnam consequatur vel alias earum accusantium. Нобис волпатем волептатем кваерат адиписки волупас. Ошибка Numquam ID Earum Concectetur Veniam. Quaerat quibusdam quas sunt alias et blanditiis
длина анимации: 4.44
воспроизводится: True
текущая анимация: show-text
** Процесс отладки остановлен **