Использование NLA
03 июня 2015 18:08
Слоты не получается запустить путем нажатия на HTML элемент
Да, они имеют дело с объектами сцены.
ВОт для этих целей СЛОТЫ удалить?
Лучше удалить NLA-скрипт, чтобы не возникло конфликтов в управлении анимацией.
запускать НЛА треки программно
В настоящее время существует модуль "nla", можно попробовать работать с ним. Функций set_frame, stop, play должно хватить. Но придется отключить NLA-скрипт
03 июня 2015 18:50
существует модуль "nla",Я пока на 15.04. И проект на нем.
Думаю сделать так:
за пример взять " суетящиеся шарики",
нарезать нла-трек на подтреки с уникальными названиями,
удалить цепочку слотов нла,
отключить галочки с циклик нла, ЮЗ нла,
поставить анимационный бихейвор финиш-стоп,
по нажатию проверять условие и запускать по названию необходимый нла трек.
Я ничего не упустил?
Коплю деньги на коммерческий B4W.
04 июня 2015 11:41
Еще раз здравствуйте.
Если я понял вас правильно, то вы разбиваете NLA-стрип на части, даете им уникальные имена и уже в вашем приложении хотите использовать их через методы apply и play из модуля animation. Дело в том, что эти функции работают с action'ом, а не с NLA-стрипом и, увы, такой подход не приведет к желанному результату.
Лучше всего вам будет создать action, это как первый вариант.
Или же использовать API метода nla.js
Но я бы подождал релиза этого месяца, где появится функция play_range(start_frame, end_frame) в модуле nla.js, специально для подобных задач. Кстати, ее функционал можно повторить через уже имеющиеся функции модуля nla
Я ничего не упустил?
Если я понял вас правильно, то вы разбиваете NLA-стрип на части, даете им уникальные имена и уже в вашем приложении хотите использовать их через методы apply и play из модуля animation. Дело в том, что эти функции работают с action'ом, а не с NLA-стрипом и, увы, такой подход не приведет к желанному результату.
Лучше всего вам будет создать action, это как первый вариант.
Или же использовать API метода nla.js
Но я бы подождал релиза этого месяца, где появится функция play_range(start_frame, end_frame) в модуле nla.js, специально для подобных задач. Кстати, ее функционал можно повторить через уже имеющиеся функции модуля nla
04 июня 2015 12:07
04 июня 2015 12:34
05 июня 2015 09:51
24 июля 2015 07:43
А NLA поможет мне решить вот такую задачу?
Есть у меня два объекта. Объект А (подставка) вращается вокруг оси Z, объект Б (располагается на подставке) вращается вокруг оси X. В блендере создаю для обоих объектов экшны. В приложении всё хорошо, оба объекта крутятся сами по себе. Но мне нужно, чтобы то, что на подставке, вращалось вместе с подставкой и при этом еще вращалось само. Для этого я добавляю к объекту Б (тому, что на подставке) ограничитель
После этого объект Б вращается вместе подставкой, но перестаёт вращаться сам. Сначала думал, что где-то я накосячил, но потом родилось предположение, что после создания ограничителя, дочерний объект игнорирует свой собственный угол поворота и перекрывает его родительским по всем трём осям. То есть анимация дочернего объекта на самом деле проигрывается, но изменений из-за этого не видно.
И вот вопрос, спасёт ли меня NLA или не видать мне счастья?
Есть у меня два объекта. Объект А (подставка) вращается вокруг оси Z, объект Б (располагается на подставке) вращается вокруг оси X. В блендере создаю для обоих объектов экшны. В приложении всё хорошо, оба объекта крутятся сами по себе. Но мне нужно, чтобы то, что на подставке, вращалось вместе с подставкой и при этом еще вращалось само. Для этого я добавляю к объекту Б (тому, что на подставке) ограничитель
constraints.append_semi_stiff(obj, parent, offset);
После этого объект Б вращается вместе подставкой, но перестаёт вращаться сам. Сначала думал, что где-то я накосячил, но потом родилось предположение, что после создания ограничителя, дочерний объект игнорирует свой собственный угол поворота и перекрывает его родительским по всем трём осям. То есть анимация дочернего объекта на самом деле проигрывается, но изменений из-за этого не видно.
И вот вопрос, спасёт ли меня NLA или не видать мне счастья?
Гале подарили мяч, Гале подарили торт, Галю поздравляют все - Галя сделала аборт
24 июля 2015 11:20
Добрый день.
Это верно.
Я бы попробовал покодить.
Насколько я понял вас, вам надо иметь постоянное вращение вокруг оси двух объектов. По какому-либо событию (например, клик мышки по объекту) добавлять вращение к выбранному объекту (сохраняя при этом вращение, которое он имел). Подготовил для вас пример с таким функционалом.
Оба объекта имеют процедурное вращение. По нажатию мышкой на кубе, к нему добавляется дополнительное вращение. Он крутится еще 4 секунды после нажатия, а потом дополнительное вращение исчезает.
example_30.zip
Сначала думал, что где-то я накосячил, но потом родилось предположение, что после создания ограничителя, дочерний объект игнорирует свой собственный угол поворота и перекрывает его родительским по всем трём осям.
Это верно.
И вот вопрос, спасёт ли меня NLA или не видать мне счастья?
Я бы попробовал покодить.
Насколько я понял вас, вам надо иметь постоянное вращение вокруг оси двух объектов. По какому-либо событию (например, клик мышки по объекту) добавлять вращение к выбранному объекту (сохраняя при этом вращение, которое он имел). Подготовил для вас пример с таким функционалом.
Оба объекта имеют процедурное вращение. По нажатию мышкой на кубе, к нему добавляется дополнительное вращение. Он крутится еще 4 секунды после нажатия, а потом дополнительное вращение исчезает.
example_30.zip
24 июля 2015 18:05
Ухты!!! Огромное спасибо за пример!!!! Узнал о существовании append_loop_cb и прочих временнЫх штук. Видать надо пролистать весь апи в поисках новых для меня методов…
Покодить хотелось, но на данном этапе увы не получится. Дело в том, что о том, какие объекты будут на сцене, есть у них анимации или нет, что это за анимации, кто чей родитель\потомок и пр. мы можем узнать только в момент выполнения программы. Список объектов которые надо загрузить лежит в БД. Там же у объекта может быть указано с каким именем анимацию запустить при определенном действии. Объектов предполагается огромное количество и все они абсолютно разные. Прописать в коде поведение для каждого - нереально. Вот и хотелось анимации сделать не программными и дать им всем определенные имена (use_action, destroy_action и т.п.)
Но в любом случае большущщее спасибо.
Покодить хотелось, но на данном этапе увы не получится. Дело в том, что о том, какие объекты будут на сцене, есть у них анимации или нет, что это за анимации, кто чей родитель\потомок и пр. мы можем узнать только в момент выполнения программы. Список объектов которые надо загрузить лежит в БД. Там же у объекта может быть указано с каким именем анимацию запустить при определенном действии. Объектов предполагается огромное количество и все они абсолютно разные. Прописать в коде поведение для каждого - нереально. Вот и хотелось анимации сделать не программными и дать им всем определенные имена (use_action, destroy_action и т.п.)
Но в любом случае большущщее спасибо.
Гале подарили мяч, Гале подарили торт, Галю поздравляют все - Галя сделала аборт