Нужна помощь

14 ноября 2016 15:27
Добрый день, уточните, почему если я меняю параметры volume в переменных объекта speaker громкость не меняется? Что нужно, чтобы можно было без функции менять параметры объектов, если я до них добрался и хочу с ними поработать?
Алексей
14 ноября 2016 17:49
Хорошо, тогда посоветуйте способ управления камерой, если у меня есть перечень объектов в виде массива, а дальше будет скрипт, перемещающий камеру от одного к другому. Нужен перечень корректно работающих функций. Пример с яблоками из кодасниппетс мне подойдет или есть еще удобные функции?
Да, пример из code snippets лучше всего подойдет.

Скажите, вытащить координаты центра меша (боундари бокса) можно из объектов? А то у меня модель импортирована и центр координат для всех объектов в нуле.
Для этого есть метод get_object_center из модуля transform.
14 ноября 2016 17:56
Добрый день, уточните, почему если я меняю параметры volume в переменных объекта speaker громкость не меняется? Что нужно, чтобы можно было без функции менять параметры объектов, если я до них добрался и хочу с ними поработать?
Работать с объектами стоит только через API, т.к. простое изменение свойств, скорее всего, ни к чему не приведет. Многие действия с объектами движка требуют дополнительных расчетов, принудительных обновлений и т.д., которые и производятся при вызове апишных функций.
Для изменения громкости нужно использовать метод set_volume модуля speakers.
15 ноября 2016 00:19
Добрый вечер, благодарю за предыдущие ответы.

По поводу анимации: щупаю сейчас методы для работы с ней.
Подскажите, во всех функциях модуля animation первой идет ссылка на объект, но есть также функции удаления слотов, назначения анимации на слот. Насколько я понимаю, анимация не представлена как отдельный объект и находится через объект, к которому привязана. Зачем тогда операции со слотами? Можно ли её скопировать и применить к другому объекту? Её назначение на объект идет по имени, а если имя не помнишь и не хочешь искать в исходниках, как найти какая вообще анимация имеется в модели?
Алексей
15 ноября 2016 05:09
Алексей
15 ноября 2016 10:56
Ответ на сообщение пользователя stilist
Добрый вечер, благодарю за предыдущие ответы.

По поводу анимации: щупаю сейчас методы для работы с ней.
Подскажите, во всех функциях модуля animation первой идет ссылка на объект, но есть также функции удаления слотов, назначения анимации на слот. Насколько я понимаю, анимация не представлена как отдельный объект и находится через объект, к которому привязана. Зачем тогда операции со слотами? Можно ли её скопировать и применить к другому объекту? Её назначение на объект идет по имени, а если имя не помнишь и не хочешь искать в исходниках, как найти какая вообще анимация имеется в модели?
В Blender вы можете назначить анимацию на любой объект, выбрав её имя из списка анимаций. То же самое вы видите и в Blend4Web. Можно применить любую анимацию к любому объекту. Не факт правда, что она будет на что-то влиять, но сделать это можно.
Слоты нужны, чтобы комбинировать анимации разных типов на одном объекте. Можно навесить объектную анимацию на один слот, скелетную анимацию на другой и анимацию материала на третий.

Если вы хотите применить ту анимацию, которая уже была на модели в Blender - можете просто вызвать функцию animation.apply_def(obj)
и запустить её с помощью animation.play(obj)

Чтобы получить имена доступных для запуска анимаций можно воспользоваться функцией get_anim_names.
15 ноября 2016 11:45
Доброе утро, Евгений,

Чего-то у меня никак не получается получить список анимации в модели. Функция get_anim_names работает с одним объектом3D и даже если анимация назначена по этому объекту, то выдает Array нулевой длины вместо имен, не говоря уже о том, чтобы по всей модели собрать всю анимацию, которая имеется и выдать её список. Скрин консоли прилагаю.
Алексей
15 ноября 2016 12:17
Какого типа анимация? В список идёт только совместимая анимация.

Я протестировал функционал на простейших примерах и не обнаружил проблем.
Вы можете прикрепить какой-нибудь пример, где эта ошибка воспроизводится?
15 ноября 2016 12:46
Скинул на саппорт.
Алексей
15 ноября 2016 15:47
Без Blend-файла не так просто анализировать сцену. Тем не менее, из JSON-а я вижу, что на объекте "Camera" нет анимации, но есть анимация "CameraAction" в NLA треках этого объекта. Она не идёт в список стандартных анимаций объекта, поэтому ни get_anim_names ни apply_def с ней не работают.

Если вы примените эту анимацию на самом объекте "Camera", то её можно будет использовать с описанными выше API.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.