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

12 февраля 2015 12:53
Добрый день!
Подскажите, пожалуйста, каким образом можно программно запускать NLA tracks в загруженной сцене.
В документации упоминаний модуля nla не нашел, хотя в исходниках есть соответствующий модуль. Или необходимо вручную делать сборку проекта, чтобы включить данный модуль? Сейчас при загрузке возникает сообщение Uncaught Error: Module "nla" not found .
12 февраля 2015 13:47
Ответ на сообщение пользователя 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
Понял, спасибо!
24 апреля 2015 13:11
Здравствуйте!
Вопрос:
поддерживает ли B4W NLA нескольких объектов?
К примеру, когда делаю анимацию " в линейку", всё играет.
Когда у меня несколько объектов и на каждом своя НЛА, то не получилось воспроизведение по маркерам.
Или этот вопрос только программно решается?
Коплю деньги на коммерческий B4W.
24 апреля 2015 13:57

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

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

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

Действительно, у модуля 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
Для запуска программной анимации нла слоты должны быть отключены?
Вы совершенно верно определили. Нелинейная анимация переопределяет обычную анимацию. Внесём пояснение в документацию.

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