События

Релиз Blend4Web 15.09

2015-09-30

Платформа Blend4Web продолжает наращивать свой потенциал. Этот важный релиз включает множество улучшений, которые мы наметили ранее, и без которых немыслим современный трёхмерный движок: систему управления проектами, возможность управления анимационным скелетом, физические риги и рэгдоллы. Также был значительно расширен функционал узлового редактора логики.

Управление анимационным скелетом

Привязка вершин 3D модели к управляющим элементам («костям») - популярный метод компьютерной графики, имеющий множество практических приложений. С первых релизов Blend4Web позволял воспроизводить скелетную анимацию, создаваемую в Blender. Начиная с этого дня, кости анимационного скелета могут также управляться напрямую - как программно, так и под физическим воздействием.

Процедурное управление костями может понадобиться для визуализации движения сочленений в техногенных объектах (таких каких манипулятор робота), а также для процедурной анимации органических объектов (в том числе игровых персонажей). В качестве примера работы новых API предлагаем запустить пример из состава Code Snippets.

Демонстрация работы API для управления костями скелета в Code Snippets.

Физический риг. Рэгдоллы

Реализация прямого управления анимационным скелетом открыла еще одну интересную возможность - кости скелета могут теперь находиться под влиянием обычной физики жестких тел, включая столкновения, гравитацию и ограничения степеней свободы. Наиболее известный способ применения этого функционала - так называемые «рэгдоллы» (англ. ragdoll, тряпичная кукла), обычно используемые для реалистичной симуляции свободного движения персонажей (запустить пример). Среди других возможных способов применения можно отметить также визуализацию гибких объектов (канаты), изгибание растительности при взаимодействии с объектом или персонажем и т.п.

Ragdoll-физика в действии.

Конструкция, лежащая в основе таких моделей (физический риг), собирается непосредственно в Blender.

Физический риг персонажа в Blender.

Каждая кость жестко привязывается к физическому объекту с помощью ограничителя (constraint) "Copy Transforms".

Интерфейс настройки ограничителя костей "Copy Transforms".

В свою очередь, физические объекты находятся в иерархической связи между собой и соединены шарнирами в тех местах, где предполагается изгиб.

Интерфейс настройки ограничителя объектов "Rigid Body Joint".

Таким образом, физические риги настраиваются с помощью штатных средств Blender, без необходимости написания программного кода.

Система управления проектами

Исторически Blend4Web развивался в качестве фреймворка для разработки веб-приложений в операционных системах на основе Linux. По этой причине многие средства разработки в составе SDK представляют собой консольные утилиты, работа с которыми может представлять трудности неподготовленному пользователю, в особенности в ОС Windows.

В этом релизе мы сделали серьезный шаг на пути повышения удобства управления проектами. Операции, ранее выполнявшиеся отдельными, написанными на разных языках программирования скриптами, сведены в единый управляющий скрипт project.py, написанный на Python, - интерпретатор которого не требуется устанавливать, т.к. он уже находится в составе Blender. Среди этих операций - создание нового проекта (в том числе с файлами-заготовками), добавление приложений в проект (один проект может включать несколько приложений), сборка проекта (минификация, обфускация), копирование всех файлов проекта с целью последующего развертывания, повторный экспорт blend-файлов проекта, конвертация ресурсов (текстуры, звуковые и видео-файлы) проекта в альтернативные форматы для обеспечения кроссбраузерности и кроссплатформенности.

Создание нового проекта.

В этом релизе мы также представляем новый инструмент - менеджер проектов, реализующий графический интерфейс к вышеупомянутым командам SDK. Выполненный в виде обычного веб-приложения, менеджер проектов работает на базе сервера разработчика, который запускается при старте Blender автоматически (его можно также запустить вручную кнопкой Render > Development Server > Run). Помимо выполнения перечисленных команд, инструмент позволяет открывать рабочие файлы приложений из браузера - blend-файлы (запускается новый инстанс Blender), экспортированные json-файлы (открываются в просмотрщике сцен), и, конечно, запускать сами приложения - отдельно разрабатываемую и скомпилированную версии. Таким образом, полноценные оптимизированные веб-приложения теперь можно разрабатывать, работая всего в двух программах - в Blender и в обычном браузере.

Интерфейс менеджера проектов.

Описание всех возможных операций системы управления проектами подробно изложено в соответствующем разделе руководства пользователя.

Редактор логики

Представленный месяц назад узловой редактор логики практически удвоил свой функционал к этом релизу благодаря обратной связи со стороны сообщества пользователей, попробовавших этот инструмент в своих проектах.

Вместо узла Play теперь имеется два похожих узла. Узел Play Timeline выполняет ту же функцию, что и раньше - проигрывает временной участок в редакторе нелинейной анимации (NLA). Второй вариант этого узла, Play Animation, является новым и предназначен для воспроизведения анимации, назначенной индивидуальному объекту. Название анимации (поддерживаются все виды анимации, работающие в Blend4Web) указывается в поле Anim. Name, пустое поле означает воспроизведение анимации, ассоциированной с объектом в Blender (если имеется). Как следствие, стала возможной независимая анимация объектов в ответ на действия пользователя, как продемонстрировано на примере выдвижных мебельных ящиков.

Пример использования узла Play Animation.

Аналогично, узел Select & Play, являющийся комбинацией двух узлов - обработчика выбора пользователем определенного 3D объекта Select и узла воспроизведения анимации Play - теперь представлен парой Select & Play Timeline и Select & Play Animation.

Узлы воспроизведения анимации.

Были добавлены два узла для работы с материалами. Узел Set Shader Node Param позволяет установить значения параметров узловых материалов, а именно численное значение в узле Value и цвет в узле RGB - то, что ранее можно было сделать только с использованием программных API. Узел Inherit Material копирует параметры материала с одного объекта на другой (объекты должны быть динамическими, см. также соответствующий метод API).

Узел Apply Shape Key устанавливает фактор смешивания между ключами деформации.

Узeл Apply Shape Key.

Специфичных для браузерного окружения узлов стало больше - кроме Page Redirect (переход на веб-страницу) и Page Param (считывание параметра URL в переменную) теперь имеется узел Send Request (отправка HTTP-запроса GET на адрес с последующим разбором ответа и сохранением в переменные). Все эти узлы могут использоваться для модификации сцены в зависимости от контекста показа на веб-сайте, например, для перевода на другие языки.

Узлы для работы с браузерами.

Также был добавлен узел Delay, задерживающий выполнение программы на указанный в секундах период времени. При использовании в циклах этот узел позволяет совершать периодические действия и даже анимировать параметры.

Среди прочих изменений в узловом редакторе логики можно отметить возможность наличия нескольких узлов входа Entry Point в одном дереве. Также были переименованы некоторые узлы: Select & Jump -> Select, Register Store -> Variable Store.

Видео-текстуры

В результате проведенной нами работы стало возможным использовать не только звуки, но и видео-текстуры в системе нелинейной анимации.

Прочие улучшения

Аддоны (такие как app, mouse и другие) теперь всегда компилируются вместе с движком (ранее для этого использовался файл b4w.full.min.js).

Обеспечена первоначальная поддержка работы платформы в Windows Phone, устанавливаемой на таких устройствах, как Nokia Lumia (экспериментальная реализация WebGL).

Для стандартного веб-плеера добавлен URL-атрибут alpha, устанавливающий прозрачность области отрисовки.

Упрощено использование системы перевода аддона - теперь можно добавлять новые языки из списка, поддерживаемых в Blender.

В завершение

Представленный релиз Blend4Web совместим с Blender 2.76. Blend-файлы всех упомянутых в этой статье примеров включены в состав Blend4Web SDK. С полным списком изменений и исправленных ошибок можно ознакомиться в замечаниях к релизу.

Комментарии
02 окт. 2015 16:27
Ответ на сообщение пользователя Иван Любовников
Мы обновили вводную статью по созданию простого приложения. Теперь через менеджер проектов:
ссылка
Продолжая тему корректного отображения на моих офисных железяках…

Если исправить это не поучится, то хотя бы warning бы вывести, и что бы его в api можно было отловить…
Пробовал эту сцену запустить на 15.07, там также выглядит этот пример.
02 окт. 2015 17:18

Продолжая тему корректного отображения на моих офисных железяках…
А что у вас за девайсы? Там, по-видимому, ошибка расчета прозрачности в нодовом материале - нужно исправлять.
02 окт. 2015 18:05
Я писал об этом выше…
Ответ на сообщение пользователя Кирилл
Машина:
Chrome Версия 45.0.2454.93
Linux Mint 17.2 Rafaela 32-разрядный
Radeon HD 3470 стоковые драйвера

В консоли ничего подозрительного

Пример с рагдолом тоже не воспроизвёлся как надо out-1.ogv
02 окт. 2015 20:33

Ответ на сообщение пользователя Кирилл
Пример не запустился правильно с вашего сайта по ссылке https://www.blend4web.com/apps/code_snippets/code_snippets.html?scene=bone_api


Машина:
Chrome Версия 45.0.2454.93
Linux Mint 17.2 Rafaela 32-разрядный
Radeon HD 3470 стоковые драйвера

В консоли ничего подозрительного

Пример с рагдолом тоже не воспроизвёлся как надо out-1.ogv
Конфигурация:
`ooo/ OS: Arch Linux
`+oooo: Kernel: x86_64 Linux 4.1.6-1-ARCH
`+oooooo: Uptime: 4h 42m
-+oooooo+: Packages: 1074
`/:-:++oooo+: Shell: zsh 5.1.1
`/++++/+++++++: Resolution: 1280x1024
`/++++++++++++++: DE: XFCE4
`/+++ooooooooooooo/` WM: Xfwm4
./ooosssso++osssssso+` WM Theme: G-Talkie-Blue
.oossssso-````/ossssss+` GTK Theme: Xfce-flat [GTK2]
-osssssso. :ssssssso. Icon Theme: Matrilineare
:osssssss/ osssso+++. Font: Sans 8
/ossssssss/ +ssssooo/- CPU: AMD Athlon II X2 240 @ 2.8GHz
`/ossssso+/:- -:/+osssso+- GPU: Gallium 0.4 on AMD RV710
`+sso+:-` `.-/+oso: RAM: 4424MiB / 7987MiB

Проблема такая же, проверил ещё на 1-й машине(тоже самое)
./+o+- alexey@alexey-Aspire-5553G
yyyyy- -yyyyyy+ OS: Ubuntu 14.04 trusty
://+//////-yyyyyyo Kernel: x86_64 Linux 3.13.0-61-generic
.++ .:/++++++/-.+sss/` Uptime: 13h 44m
.:++o: /++++++++/:–:/- Packages: 2342
o:+o+:++.`..```.-/oo+++++/ Shell: bash 4.3.11
.:+o:+o/. `+sssoo+/ Resolution: 1366x768
.++/+:+oo+o:` /sssooo. DE: LXDE
/+++//+:`oo+o /::–:. WM: OpenBox
\+/+o+++`o++o ++////. GTK Theme: Not Found [GTK2/3]
.++.o+++oo+:` /dddhhh. Icon Theme: Not Found
.+.o+oo:. `oddhhhh+ Font: Not Found
\+.++o+o``-````.:ohdhhhhh+ CPU: AMD Phenom II N850 Triple-Core @ 2.2GHz
`:o+++ `ohhhhhhhhyo++os: GPU: Gallium 0.4 on AMD RS880
.o:`.syhhhhhhh/.oo++o` RAM: 2169MB / 3700MB
/osyyyyyyo++ooo+++/
````` +oo+++o\:
`oo++.
На другой же машине сайт blend4web.com виснет, возможно из-за анимации логотипа, т.к. страница загружается, логотип не анимируется и выводит сообщение о том, что вкладка не отвечает, вот конфигурация
`ooo/ OS: Arch Linux
`+oooo: Kernel: i686 Linux 4.1.6-1-ARCH
`+oooooo: Uptime: 20m
-+oooooo+: Packages: 793
`/:-:++oooo+: Shell: bash 4.3.42
`/++++/+++++++: Resolution: 1024x600
`/++++++++++++++: DE: XFCE4
`/+++ooooooooooooo/` WM: Xfwm4
./ooosssso++osssssso+` WM Theme: G-Talkie-Classic
.oossssso-````/ossssss+` GTK Theme: Xfce-flat [GTK2]
-osssssso. :ssssssso. Icon Theme: Faenza-Darker
:osssssss/ osssso+++. Font: Liberation Sans 10
/ossssssss/ +ssssooo/- CPU: Intel Atom CPU N550 @ 1.5GHz
`/ossssso+/:- -:/+osssso+- GPU: Mesa DRI Intel(R) Pineview M x86/MMX/SSE2
`+sso+:-` `.-/+oso: RAM: 353MiB / 2008MiB
03 окт. 2015 11:16
У нас получается 3 конфигурации Radeon:

3470 - RV620
4350 - RV710
4200 - RS880

По всей видимости это проблемы в старом драйвере Mesa r600g (http://xorg.freedesktop.org/wiki/RadeonFeature/). Будем смотреть другие поколения видеокарт, использующие тот же самый драйвер.

Atom N550 использует GMA 3150, этот чип очень старый и не поддерживается нами. По-хорошему он должен быть внесён в чёрные списки в браузерах, чтобы вообще не инициализировать WebGL контекст.
06 окт. 2015 18:17

Продолжая тему корректного отображения на моих офисных железяках…
Если исправить это не поучится, то хотя бы warning бы вывести, и что бы его в api можно было отловить…
Пробовал эту сцену запустить на 15.07, там также выглядит этот пример.



Безболезнено исправленно. Исправления войдут в состав 15.10

06 окт. 2015 18:21

Пример не запустился правильно с вашего сайта по ссылке https://www.blend4web.com/apps/code_snippets/code_snippets.html?scene=bone_api
Машина:
Chrome Версия 45.0.2454.93
Linux Mint 17.2 Rafaela 32-разрядный
Radeon HD 3470 стоковые драйвера



Исправлено с введением небольших ограничений. Исправление так же войдет в состав 15.10. В качестве решения проблемы в настоящее время можно использовать проприетарные драйверы для видеокарты.
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.