Форум

Использование NLA

12 февраля 2015 12:53 #1374
Добрый день!
Подскажите, пожалуйста, каким образом можно программно запускать NLA tracks в загруженной сцене.
В документации упоминаний модуля nla не нашел, хотя в исходниках есть соответствующий модуль. Или необходимо вручную делать сборку проекта, чтобы включить данный модуль? Сейчас при загрузке возникает сообщение Uncaught Error: Module "nla" not found .
12 февраля 2015 13:47 #1375
Ответ на сообщение пользователя parshin.pn
Добрый день!
Подскажите, пожалуйста, каким образом можно программно запускать NLA tracks в загруженной сцене.
В документации упоминаний модуля nla не нашел, хотя в исходниках есть соответствующий модуль. Или необходимо вручную делать сборку проекта, чтобы включить данный модуль? Сейчас при загрузке возникает сообщение Uncaught Error: Module "nla" not found .

Добрый день!

Действительно, у модуля NLA нет внешних API. Но на практике без них можно обойтись. Вы можете запустить NLA анимацию точно так же, как вы это сделали бы с обычной анимацией:
var obj = m_scenes.get_object_by_name("Cube");
m_anim.apply(obj, "Имя анимации в NLA треке");
m_anim.play(obj);
Разработчик Blend4Web
12 февраля 2015 14:44 #1377
Понял, спасибо!
24 апреля 2015 13:11 #2132
Здравствуйте!
Вопрос:
поддерживает ли B4W NLA нескольких объектов?
К примеру, когда делаю анимацию " в линейку", всё играет.
Когда у меня несколько объектов и на каждом своя НЛА, то не получилось воспроизведение по маркерам.
Или этот вопрос только программно решается?
Коплю деньги на коммерческий B4W.
24 апреля 2015 13:57 #2133

Ответ на сообщение пользователя Йеджи Заборовски
Здравствуйте!
Вопрос:
поддерживает ли B4W NLA нескольких объектов?
К примеру, когда делаю анимацию " в линейку", всё играет.
Когда у меня несколько объектов и на каждом своя НЛА, то не получилось воспроизведение по маркерам.
Или этот вопрос только программно решается?
Вообще то если каждый пересекающийся НЛА стрип на разных объектах, то всё должно работать. Не поддерживается только смешивание (наложение одного над другим) НЛА стрипов на одном объекте, собственно то для чего в основном и нужно НЛА . Но думаю когда ни будь допилим.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
24 апреля 2015 14:06 #2135

поддерживает ли B4W NLA нескольких объектов?

В этой теме подробно рассматривались вопросы, касающиеся NLA-скриптов
Разработчик Blend4Web
02 июня 2015 17:18 #2631

Действительно, у модуля NLA нет внешних API. Но на практике без них можно обойтись. Вы можете запустить NLA анимацию точно так же, как вы это сделали бы с обычной анимацией:
var obj = m_scenes.get_object_by_name("Cube");
m_anim.apply(obj, "Имя анимации в NLA треке");
m_anim.play(obj);
Программист Blend4Web

А вот это как реализовать?
1. Генерированный анкор онклик- функция "play_animation()"
2. Есть последовательность слотов:

1слот - играет анимацию покоя
2слот - джамп на 1слот
3слот- играет анимацию трансформации
4слот - играет анимацию покоя2
5слот- джамп на 4слот
6слот-играет трансформацию2
7слот- джамп на 1слот


3. Я нажимаю на анкор (html элемент), запускаю функцию play_animation().
4. Если состояние 0, то прыгнуть на 3слот
5. Если состояние 1, то прыгнуть на 6слот
6. Сама анимация циклик НЛА.

Пытался реализовать кодом:
var m_scenes = b4w.require("scenes");
var m_anim = b4w.require("animation");

var animplay = m_scenes.get_object_by_name("Armature");
m_anim.apply(animplay, "ArmatureAction");
m_anim.play(animplay);
m_anim.play(animplay, "тут вообще мне не нужно)))", 6)





Для запуска программной анимации нла слоты должны быть отключены?
Коплю деньги на коммерческий B4W.
03 июня 2015 14:59 #2637
Для запуска программной анимации нла слоты должны быть отключены?
Вы совершенно верно определили. Нелинейная анимация переопределяет обычную анимацию. Внесём пояснение в документацию.

[EDIT]
Немного дополню. Имеется в виду, что если в данный момент на объекте проигрывается NLA-анимация изменяющая те же параметры, что и обычная анимация, то именно она будет иметь решающее значение.
Разработчик Blend4Web
03 июня 2015 16:18 #2641
Нет, мне нужно программно запустить анимацию арматурную.
Два варианта: перебирать слотами или запускать НЛА треки программно.
Слоты не получается запустить путем нажатия на HTML элемент, потому пробую программно. ВОт для этих целей СЛОТЫ удалить?
Коплю деньги на коммерческий B4W.
03 июня 2015 17:32 #2648
Слоты не получается запустить путем нажатия на HTML элемент, потому пробую программно. ВОт для этих целей СЛОТЫ удалить?
Конечно, лучше бы разобраться, почему не получается запустить анимацию через NLA-скрипт. Возможно, нашли бы какой-то баг.
Если делаете всё программно, то лучше отключить слоты.
Разработчик Blend4Web
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.