Мы рады представить новую версию Blend4Web - платформы для создания трехмерных интерактивных браузерных приложений. В этом релизе: начальная поддержка геймпадов и других игровых контроллеров, очередная порция улучшений редактора логики, возможность отражения полупрозрачных объектов, а также новые опции системы частиц.
Конференция по Blend4Web 2016
До конференции остаются считанные дни, мы подготовили большое количество новшеств и демо-приложений, многие из которых будут впервые продемонстрированы широкой публике. Ждём вас 1 Мая в Москве, также смотрите онлайн-трансляцию на странице конференции, там же вы cможете задавать вопросы докладчикам в реальном времени.
Геймпады и игровые контроллеры
В этом релизе мы начали работу над интеграцией возможностей, предоставляемых спецификацией Gamepad API. В модуль input добавлен новый тип устройства "Gamepad", а в модуль controls два новых сенсора "Gamepad Buttons" и "Gamepad Axes". Подробнее о новом функционале будет говориться в докладе "VR and Web API with Blend4Web" на конференции Blend4Web.
Визуальный редактор логики
Мы продолжаем расширять функционал редактора логики. В ряде случаев, функционала редактора логики бывает недостаточно для описания сложных аспектов работы приложения. В таких случаях встаёт вопрос об интеграции логических узлов с кодом, написанным на JavaScript.
Точка входа узлового дерева может быть запущена с помощью нового метода run_entrypoint():
var m_logic_nodes = b4w.require("logic_nodes");
m_logic_nodes.run_entrypoint("MyScene", "MyEntryPoint");
Узел Entry Point с включенной опцией Run From Script. Название узла устанавливается в свойствах.
Для узла Entry Point должна быть включена опция Run From Script.
Мы также реализовали новый логический узел JS Callback, который применяется для вызова callback-функций, задаваемых в приложении (включая возможность передачи параметров в обе стороны). Данная функция может быть зарегистрирована с помощью функции API add_custom_callback нового модуля logic_nodes.
m_logic_nodes.append_custom_callback("my_function", function() {
alert("Hello World!");
});
Щелчок на кубе вызывает функцию, зарегистрированную как "my_function".
Отражения для полупрозрачных объектов.
Ранее только непрозрачные объекты могли иметь отражения. Начиная с этого релиза, полупрозрачные объекты также поддерживаются.
Пустая пластиковая бутылка из-под молока. Слева: прозрачные части не отражаются, справа: модель корректно отображается.
Улучшения системы частиц типа Emitter
Теперь для систем частиц типа Emitter поддерживаются две новые опции Tilt Angle и Tilt Random. Они позволяют задать смещение начального угла эмиссии биллбоардов, что позволяет улучшить визуальное качество эффектов, основанных на системах частиц.
Параметры вращения для системы частиц.
В мастер-классе "Think outside the box: Visual Effects", подготовленном для конференции Blend4Web 2016 эти и другие опции будут рассмотрены более подробно.
Прочие улучшения
Математические модули vec3, vec4, quat, mat3 и mat4 теперь основаны на glMatrix v2.3.1. Новая версия также добавляет следующие методы: hermite, bezier, sqlerp, fromRotationTranslationScale и fromRotationTranslationScaleOrigin.
В инструмент запекания скелетной анимации был добавлен флаг Bake Only Deform Bones. Эта возможность полезна в случае, когда некоторые объекты являются потомками недеформированных “костей”. До этого запечь “кости” без выставленного флага deform было невозможно.
Новый переключатель GL Debug в Просмотрщике, который может использоваться для отключения проверок ошибок WebGL. Это увеличивает производительность и может быть полезно при отладке производительности ("профайлинге") сцены.
В модуль controls была добавлена новая функция create_hmd_position_sensor. Эта функция позволяет создать особый сенсор для отслеживания позиции HMD-устройств.
Новая опция настроек движка: prevent_caching. Включает и выключает кэширование медиаданных.
Новая функция физического движка apply_force_world, которая применяет силовое воздействие к объектам в мировой системе координат.
В завершение
Данный релиз совместим с версиями Blender 2.77 и 2.76. Как обычно, исходные файлы всех приложений находятся в составе открытого дистрибутива Blend4Web SDK. С полным списком изменений и исправленных ошибок можно ознакомиться в замечаниях к релизу.