Почему стоит использовать Web Player + JSON
2016-08-05
Мгновенный экспорт сцены Blender в HTML — это круто! Яркая фича Blend4Web, которая молниеносно привлекает внимание новичков. К ней привыкаешь и уже сложно обойтись без столь быстрого и удобного способа получить веб-приложение. Тем не менее, в разговорах с разработчиками фреймворка, я часто слышал советы использовать именно связку Web Player + JSON. Так, в чем же секрет?
Стереотип мышления
Когда мы слышим слово «Player», то представляем отдельную программу для воспроизведения каких-либо файлов. И это верно. Web Player от Blend4Web — приложение для просмотра трехмерной сцены Blender, экспортированной в JSON.
Если мы думаем о плеере в контексте веб-браузера, то предполагаем нечто вроде плагинов Flash или Unity. Это не верно. Web Player не надстройка над браузерами, а обычные скрипты, которые грузятся веб-страницей.
Вне зависимости от выбранного способа использования веб-плеера, будь то прямой экспорт в HTML или связка Web Player + JSON, используется одно и тоже приложение. Только в одном случае, программа и данные упакованы в единственный файл, а в другом, вы сами заботитесь о подключении данных к проигрывателю.
Вопрос — зачем нужны лишние «телодвижения», когда можно получить сразу готовый файл HTML?
Факт №1. Скорость загрузки и экономия места
На первый взгляд, это незаметно и неочевидно. Попробуйте экспортировать сцену двумя способами и посчитать занимаемое место (не забудьте прибавить к JSON файлы плеера!). Я экспериментировал на примере стандартной сцены Blender и получил, в общем-то, несущественное различие между двумя вариантами — всего несколько десятков килобайт экономии. Однако, при попытке сравнения экспорта более сложных сцен, эта разница становится значительней. Так, несложная презентация «Solar System» выдала экономию более мегабайта при использовании Web Player + JSON. Меня заинтересовала эта особенность, и я пообщался с одним из разработчиков фреймворка. Выяснилось, что при упаковке в HTML выполняется кодировка ресурсов (текстуры, модели и т.п.). Такой подход, разумеется, влияет на окончательный размер файла.
Итого, файл HTML загружается не только медленней связки Web Player + JSON, но и запускается неторопливо. Причина — тратится время на распаковку ресурсов в памяти.
Факт №2. Кастомизация
На некоторых этапах работы с проектами, становится недостаточно тех возможностей, что предоставляет веб-плеер из "коробки". Например, может понадобиться переделка экрана загрузки или добавление своих кнопок в интерфейс программы.
Нужно знать, что Web Player — это обычная веб-страница с загружаемыми скриптами и ресурсами. Вы ничем не ограничены в ее редактировании. По сути, это готовый конструктор для создания приложений любой сложности.
Очевидный факт — такое возможно только с отдельным плеером. Вы никак не можете повлиять на то приложение, что используется при сборке HTML.
Факт №3. Физика
Разработчики фреймворка не «научили» экспортер в HTML работать с физикой. Основная причина — экономия сетевого трафика. Ведь физика используется не в каждой сцене, и экспорт в HTML даже простого кубика может вылиться в лишние мегабайты.
Зато, работая с форматом Web Player + JSON, вы ничем не ограничены. Используйте Project Manager и программа автоматически подключит физический модуль, если он будет необходим.
Что в итоге
Попробуем соединить факты в одно целое и разобраться, для чего и как удобнее использовать предлагаемые разработчиками варианты экспорта.
Blend4Web HTML идеально подходит, если вам нужно продемонстрировать созданную модель или прототип презентации. Одинарный файл отлично пересылается по почте, не требует никаких зависимостей и может, в крайнем случае, использоваться на веб-сайте.
Вариант Web Player + JSON хорош именно для финального размещения на сервере. Он более быстрый, компактный и масштабируемый. Не забудьте, что в этом случае несколько экономится место на сервере, ведь к каждому JSON уже не требуется прикреплять свою копию плеера. К тому же, вы можете использовать общие ресурсы данных для разных проектов. И что немаловажно, к вашим услугам будет вся мощь менеджера проектов. Вы можете контролировать процесс разработки с помощью этого уникального инструмента: удобно настраивать параметры сцены в программе-просмотрщике, конвертировать медиа-ресурсы, создавать готовый билд нажатием всего одной кнопки, резервировать проекты.
Как видите, форматы Blend4Web HTML и Web Player + JSON имеют разные «весовые категории». Что выбирать — зависит от ситуации, но в случае серьезного проекта, нужно использовать всю мощь фреймворка Blend4Web.