Представляем новую версию Blend4Web — полнофункциональной платформы для создания 3D веб-приложений. В этой версии — новые возможности Менеджера проектов, улучшенная поддержка WebVR, поддержка новых нод и сокетов Cycles, улучшения интерфейса Blender и Blend4Web, а также множество переработанных методов API, позволяющих лучше контролировать самые разные аспекты веб-приложения. Появилось и новое демо: ювелирный 3D-конфигуратор, демонстрирующий переключение нодовых материалов. Да, теперь возможно и это — с помощью API или с помощью логических нод, без программирования!
Менеджер проектов
В Менеджер проектов добавлен графический интерфейс для настройки приложения, доступный по ссылке [config] рядом с именем проекта. Он предназначен для изменения параметров проекта после того, как проект был создан.
Функция конфигурации проектов в Менеджере проектов.
Кроме того, появилась возможность создавать полные копии проектов с помощью команды clone project (эта команда пока недоступна для проектов "из коробки").
Также появилась возможность генерировать карты кода JavaScript и использовать их для отладки сжатой версии приложения. Эта возможность включается при сборке проекта с помощью аргумента -b скрипта project.py.
Другое важное изменение: удалён тип движка “External”. Старые проекты, использующие этот тип, автоматически переводятся на тип “Copy”. И ещё кое-что: часто используемые параметры (в том числе шаблоны сцены и приложения) включены по умолчанию, так что вы можете просто нажать "Create Project" и сразу получить работающий проект.
Настройки типа проекта.
Интерфейс Менеджера проектов также подвергся некоторым косметическим изменениям и теперь соответствует структуре веб-сайта.
Интерфейс Blender
К вопросу об интерфейсе: мы продолжаем упрощать интерфейс Blender. В этом релизе переработаны меню Render и Help: теперь они содержат только элементы, имеющие отношение к Blend4Web.
Вариант меню Help для Blend4Web содержит множество полезных ссылок.
Если какой-либо редактор (например, редактор логики BGE, видео-редактор и некоторые другие) не поддерживается, в нижней части окна этого редактора появляется соответствующее сообщение.
И последнее: на экран заставки добавлена информация, позволяющая легко проверить номер версии и собственно наличие установленного Blend4Web.
Экран приветствия Blender с номером версии Blend4Web.
Cycles
Продолжается и работа над нодами Cycles. Появилась поддержка выхода Displacement, который используется для создания рельефа материала. Помимо этого, появилась поддержка ноды Transparent BSDF из категории Shader. Эта нода используется для создания прозрачного материала без рефракции: свет проходит через такую поверхность, как если бы она не имела никакой геометрии.
Теперь Blend4Web поддерживает выход Displacement. Автор модели — Albin http://www.blendswap.com/blends/view/73279
Достаточно подключить любое изображение ко входу Displacement.
Замена нодовых материалов
Теперь функция замены материалов в реальном времени (часто используется во всевозможных конфигураторах продуктов) работает не только со стандартными, но и с нодовыми материалами любой сложности. Для этого может использоваться как редактор логики, так и метод API. Ниже приведён пример использования (оригинальную модель кольца создал тов. BlenderBach).
Обратите внимание, что для использования этой функции нужно включить опцию Dynamic Geometry & Materials как для целевого объекта, так и для объекта-источника (ранее эта опция называлась просто Dynamic Geometry).
Примеры кода
Теперь вы можете скопировать приложение из Примеров кода и в Менеджере проектов построить на его основе собственное приложение. Клонирование осуществляется нажатием кнопки "Make Project" (это, разумеется, следует делать локально, а не на сайте blend4web.com). Кроме того, как видите, интерфейс Примеров кода стал проще и удобней для мобильных устройств.
Новый облик Примеров кода.
Подгонка сенсора камеры
Добавлена поддержка горизонтального и автоматического режима подгонки сенсора камеры. Подгонка сенсора применяется для изменения поля видимости камеры в соответствии со структурой сцены. Этот вопрос подробно описан в руководстве Blender.
Настройки сенсора камеры.
Слои UV развертки
Убрано ограничение на два слоя UV развертки на меш. Кроме того, если UV-развертка не задана, по умолчанию используется активная развертка, а не первая в списке, как раньше. Неиспользуемые UV-развертки не экспортируются, за исключением случаев, когда для объекта активирован параметр Dynamic Geometry & Materials.
Используйте столько UV, сколько захотите... но, разумеется, не больше, чем позволяет оборудование.
VR
Работа над VR продолжается. Теперь переключение в VR-режим (в браузере с поддержкой WebVR) не требует перезагрузки приложения. При переходе в VR-режим отключается авторотация камеры, по понятной причине - в этом режиме вы хотите крутить камеру своей головой. Также добавлена поддержка новейшей спецификации WebVR 1.1.
HTC Vive во всей своей красе.
Кроме того, мы начали работать с популярной VR-гарнитурой HTC Vive. Ожидайте поддержку контроллеров этого замечательного шлема в следующем релизе.
Прочие улучшения
Благодаря новому полю b4w_custom_prop появилась возможность настройки экспортируемых данных. Это поле может быть назначено как для отдельного объекта, так и для всей сцены. Оно экспортируется в формат Blend4Web .json и доступно при работе приложения с помощью методов API. Пример использования этой возможности находится в файле addons/blend4web/custom_prop_example.py, который входит в состав SDK.
Настройки Wind Bending теперь доступны из API, а также в интерфейсе Просмотрщика сцен (для этого добавлено специальное меню).
Появилась поддержка смешивания скелетных анимаций. Эта возможность остаётся экспериментальной, и API для неё ещё может измениться.
Немного изменилась процедура установки: теперь аддон Blender располагается в отдельной категории пользовательских настроек, озаглавленной Blend4Web (ранее его приходилось искать в длинном списке аддонов раздела Import-Export).
В модуль config добавлены новые параметры для настройки качества теней и отражений. Теперь эти параметры можно изменять и с помощью API.
В завершение
В этом релизе было добавлено множество новых API методов, а некоторые устаревшие методы удалены. Эти и другие изменения (в том числе список исправленных ошибок) подробно описаны в замечаниях к релизам. И не забудьте посетить форумы сообщества — мы будем рады вашим отзывам и предложениям.