Форум

Пропуск кадров при проигрывании длинной анимации

07 сентября 2017 09:14
Добрый день!
При проигрывании запеченной анимации персонажа более 1427 кадров возникла такая проблема - пропуск первых 60 кадров. Анимация запускается при старте сцены из нод-эдитора через Play Timeline с маркером на первом кадре F_00 (скриншот нодов прилагаю). Получилось решить костыльным способом добавлением 120 пустых кадров (на первом кадре стоит ключ на все кости). В сцене есть кнопки Play и Pause. Когда анимация доходит до конца Play запускает ноду Play Timeline с маркером на первом кадре F_00 и теперь там получается слишком длинная пауза, а если добавляем маркер F_115, чтобы не было паузу, и запускаем с него, то после загрузки сцены анимация не проигрывается. Подскажите, пожалуйста в чем может быть причина.
07 сентября 2017 10:18
Добрый день!
При проигрывании запеченной анимации персонажа более 1427 кадров возникла такая проблема - пропуск первых 60 кадров. Анимация запускается при старте сцены из нод-эдитора через Play Timeline с маркером на первом кадре F_00 (скриншот нодов прилагаю). Получилось решить костыльным способом добавлением 120 пустых кадров (на первом кадре стоит ключ на все кости). В сцене есть кнопки Play и Pause. Когда анимация доходит до конца Play запускает ноду Play Timeline с маркером на первом кадре F_00 и теперь там получается слишком длинная пауза, а если добавляем маркер F_115, чтобы не было паузу, и запускаем с него, то после загрузки сцены анимация не проигрывается. Подскажите, пожалуйста в чем может быть причина.
Добрый день. Было бы неплохо получить получить blend файл с самими стрипами анимации, скорее всего проблема в них.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
07 сентября 2017 10:36
Вот blend файл с самими стрипами анимации
https://drive.google.com/open?id=0By37iUNxRlCBZ3luZ0h3cFJWQkk
07 сентября 2017 11:33
Вот blend файл с самими стрипами анимации
Проблема как я и говорил не в логике. Убрал ваши дополнительные 120 кадров впереди и перезапек анимацию (мне кажется в этом была проблема, она возможно была запечена с дополнительной задержкой впереди) так как проигрывается именно запеченная анимация, так же пересоздал стрип заново и анимация стала проигрываться без задержек. При запекании я так же убрал Optimize Keyframes. Что то из этого помогло. Я так же убрал лишние 120 кадров после анимации, то есть подбил таймлайн к длине стрипа, так как при NLA проигрывается именно длина таймлайна если не выставлен маркер до которого проигрывать таймлайн.
baked1.tar.bz2
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
07 сентября 2017 12:21
Спасибо, но к сожалению проблема не решилась. В Fast Preview анимация запускается сначала, а после экспорта в json в Firefox опять идет пропуск вначале. Кэш чистил… Версию B4W стоит blend4web_ce_lite_17_04_1, Blender 2.78. Может еще в чем то другом быть причина?
07 сентября 2017 12:28
Спасибо, но к сожалению проблема не решилась. В Fast Preview анимация запускается сначала, а после экспорта в json в Firefox опять идет пропуск вначале. Кэш чистил… Версию B4W стоит blend4web_ce_lite_17_04_1, Blender 2.78. Может еще в чем то другом быть причина?
Я пробовал экспортировать через json и все работает аналогично. Я думаю всё таки кеш, попробуйте в другом браузере или проекспортировать в новый json а не на замену старого. Файстпревью по сути тот же json просто запускаемый во вьювере blend4web и никакой разницы быть не должно.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
07 сентября 2017 12:29
Fast Preview в консоли Google Chrome в начале тоже небольшой скачок показывает, если включить вывод текущего
кадра - переменная R2
B4W LOG: R2 {"R2":0.6299999999999972}
print.js:49 B4W LOG: R2 {"R2":23.847599999999996}
print.js:49 B4W LOG: R2 {"R2":23.926200000000005}
print.js:49 B4W LOG: R2 {"R2":24.459000000000003}
print.js:49 B4W LOG: R2 {"R2":24.9606}
print.js:49 B4W LOG: R2 {"R2":25.4487}
print.js:49 B4W LOG: R2 {"R2":25.7073}
print.js:49 B4W LOG: R2 {"R2":26.46885}
11 сентября 2017 09:49
Разрабы, помогите, пожалуйста! Что-то никак не выходит с этим вопросом разобраться.
Почему-то, если пытаюсь сделать в логике после завершения анимации перезапуск не с кадра F_00, допустим с F_90, то при старте сцены анимация не запускается сразу - перс не двигается, хотя в консоли выводит, что анимация идет с 0 кадра до 90 (вначале правда показывает пропуск)
B4W LOG: R2 {"R2":0}
print.js:49 B4W LOG: R2 {"R2":24.728550000000006}
print.js:49 B4W LOG: R2 {"R2":24.840750000000007}
print.js:49 B4W LOG: R2 {"R2":25.374600000000008}
и т.д. до
B4W LOG: R2 {"R2":90.50625000000332}
Дальше показывает, что текущий кадр не меняется.
После нажатия "Pause", "Play" анимация воспроизводится сначала без пропусков, но в консоли выводит
B4W LOG: R2 {"R2":90.8587500000026}
print.js:49 B4W LOG: R2 {"R2":91.35225000000173}
print.js:49 B4W LOG: R2 {"R2":91.86060000000725}
print.js:49 B4W LOG: R2 {"R2":92.3523000000041}
print.js:49 B4W LOG: R2 {"R2":92.828550000002}
print.js:49 B4W LOG: R2 {"R2":93.37440000000197}
как-будто продолжается с 90 кадра а не с нулевого
12 сентября 2017 08:43
Уже все вроде перепробовали - в другом браузере, в новый json. Пропуск кадров в начале остается. Чем длиннее анимация, тем больше пропуск. Решить проблему получается только костыльным способом - вставить в начале пустой интервал. Но в этом случае анимация не стартует сразу после загрузки, а только после нажатия Pause и Play.
12 сентября 2017 10:43
Вернее с таким костылем стартует нормально, но если поставить по завершении анимации воспроизведение не с первого кадра таймлайна, а с первого кадра после специально добавленной пауйзы (которая при повторе уже не нужна), то вот это все вышеописанное происходит - анимация не стартует сразу после загрузки, а только после нажатия Pause и Play. Выяснилось, что анимация сама почему-то стопится на маркерах. Сделал отдельный топик про это. Очень надеюсь, на помощь разработчиков. Если не удастся найти нормальное решение, то, вероятно, будем переходить на другой программный продуктс данным проектом, что меня лично не радует, т.к. все шло к тому, чтобы купить b4w - годный, быстро развивающийся и с хорошей русскоязычной техподдержкой.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.