
Panthera Runtime - библиотека Defold, предназначенная для интеграции анимации, созданной с помощью Panthera 2.0 Editor , универсального программного обеспечения для анимации, в проекты Defold. Эта библиотека времени выполнения упрощает процесс импорта и воспроизведения анимации Panthera, повышая визуальное качество и интерактивность игр и приложений Defold.
Прочитайте Руководство редактора Panthera 2.0 , чтобы узнать о редакторе Panthera 2.0, инновационном инструменте, разработанном с использованием двигателя Defold, предназначенного для упрощения и улучшения создания анимаций для проектов Defold.
Откройте файл game.project и добавьте следующие строки в поле зависимости в разделе проекта:
Defold Tweener
https://github.com/Insality/defold-tweener/archive/refs/tags/3.zip
ПАНТЕРА ВРЕМЕНИ
https://github.com/Insality/panthera/archive/refs/tags/runtime.4.zip
После этого выберите Project ▸ Fetch Libraries для обновления библиотечных зависимостей. Это происходит автоматически, когда вы открываете проект, поэтому вам нужно будет сделать это, только если зависимости изменятся без повторного открытия проекта.
ПРИМЕЧАНИЕ. Размер библиотеки рассчитывается на основе отчета сборки на платформу
| Платформа | Размер библиотеки |
|---|---|
| HTML5 | 12,42 КБ |
| Настольный компьютер / мобильный | 21,35 КБ |
Примечание: горячая перезагрузка предназначена только для использования в средах разработки. Горячая перезагрузка работает только для анимации из файлов JSON. Если вы используете таблицу LUA для анимации, горячая перезагрузка не будет работать.
Время выполнения Panthera поддерживает горячую перезагрузку анимации для более эффективного рабочего процесса разработки. Эта функция позволяет анимации быть автоматически перезагружена без перезапуска вашей игры Defold, облегчая быстрое итерацию на анимационных активах.
Чтобы включить горячую перезагрузку анимации, включите следующие настройки в вашу game.project .
[panthera]
hotreload_animations = 1Детали конфигурации:
1 чтобы включить горячую перезагрузку. Эта функция активна только в режиме отладки.Реализация горячей перезагрузки в Defold:
Чтобы использовать горячую перезагрузку, установите слушателя оконного события в своем сценарии Defold, который запускает panthera.reload_animation() , когда окно игры набирает фокус. Это гарантирует, что анимации обновляются автоматически во время разработки:
local panthera = require ( " panthera.panthera " )
-- Reload animation when window is focused, only for debug and on desktop
window . set_listener ( function ( _ , event )
if event == window . WINDOW_EVENT_FOCUS_GAINED then
panthera . reload_animation ()
end
end ) panthera . create_gui ( animation_path_or_data , [ template ], [ nodes ])
panthera . create_go ( animation_path_or_data , [ collection_name ], [ objects ])
panthera . create ( animation_path_or_data , adapter , get_node )
panthera . clone_state ( animation_state )
panthera . play ( animation_state , animation_id , [ options ])
panthera . stop ( animation_state )
panthera . set_time ( animation_state , animation_id , time )
panthera . get_time ( animation_state )
panthera . get_duration ( animation_state , animation_id )
panthera . is_playing ( animation_state )
panthera . get_latest_animation_id ( animation_state )
panthera . set_logger ([ logger_instance ])
panthera . reload_animation ([ animation_path ])Прочитайте ссылочный файл API, чтобы просмотреть полную документацию API для модуля.
Интегрируйте анимации Panthera в Defold с этими краткими примерами:
Загрузите и воспроизводите файл анимации, используя адаптер GO.
local panthera = require ( " panthera.panthera " )
local animation = require ( " path.to.panthera_animation " )
function init ( self )
self . animation = panthera . create_go ( animation )
panthera . play ( self . animation , " run " , { is_loop = true })
endЭтот пример применяет анимацию запуска к игровому объекту, когда игра запускается.
Загрузите и воспроизводите файл анимации с помощью адаптера GUI.
local panthera = require ( " panthera.panthera " )
local animation = require ( " path.to.panthera_animation " )
function init ( self )
self . animation = panthera . create_gui ( animation )
panthera . play ( self . animation , " fade_in " )
endЭтот пример применяет анимацию затухания к узлу графического интерфейса, когда игра запускается
Проверьте, играет ли в настоящее время анимация, и получить текущий идентификатор анимации.
local panthera = require ( " panthera.panthera " )
function init ( self )
-- You can use JSON instead of Lua tables, but it should be accessible with sys.load_resource()
self . animation = panthera . create_gui ( " /animations/animation.json " )
local is_playing = panthera . is_playing ( self . animation )
local animation_id = panthera . get_latest_animation_id ( self . animation )
if is_playing then
print ( " The animation is currently playing: " , animation_id )
else
print ( " The animation is not playing " )
end
endПри интеграции анимации Panthera 2.0 с Defold Game Objects (GOS) важно знать, какие свойства вы можете оживить:
По умолчанию Sprite Components использует свойство tint , а компоненты метки используют свойство color . Panthera Попробуйте использовать color свойство. Чтобы включить свойство color вы должны установить материал Sprite Component на /panthera/materials/sprite.material или использовать любой другой материал с color атрибутом.
Прочитайте руководство по смешиванию анимации, чтобы узнать, как смешать несколько анимаций одновременно на одной и той же сущности, создавая сложные, многослойные анимации, которые улучшают визуальную верность и динамизм вашей игры.
В то время как Panthera Runtime предоставляет адаптер по умолчанию для игровых объектов и графического интерфейса, вам может потребоваться настроить ваш адаптер в зависимости от потребностей вашего проекта. Прочитайте настройку своего руководства по адаптеру, чтобы узнать, как картировать типы ослабления, обрабатывать пользовательские события и использовать свой пользовательский адаптер со временем выполнения Panthera.
Время выполнения Panthera лицензировано по лицензии MIT - для получения подробной информации см. Файл лицензии.
По любым вопросам, вопросам или предложениям, пожалуйста, создайте проблему.
Читайте ChangeLog, чтобы узнать о последних обновлениях и функциях во время выполнения Panthera.
Ваша поддержка побуждает меня продолжать создавать и поддерживать проекты для Defold . Подумайте о поддержке, если вы найдете мои проекты полезными и ценными.