{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Соевое молоко в 3D: один из наших опытов в креативной веб-разработке

Кейс амбициозного проекта c использованием технологии WebGL.

«Привет!» — этой простой и непринужденной фразой мы встречаем посетителя на новом сайте More!milk, и именно этой же фразой приветствуем вас. Мы — это Chipsa, создаём сайты и приложения не как у всех.

More!milk — производитель соевого молока, яркий eco-friendly бренд, коммуникация которого продумана до мелочей. Наша задача — сделать сайт с запоминающимся дизайном, который поможет компании найти отклик в сердцах потребителей и завоевать их интерес.

Мы расскажем о технологиях, которые применили в этой работе, встреченных трудностях и их решениях. Выясним, почему проект стал нерентабельным и стоила ли игра свеч? Дадим советы по работе с WebGL и узнаем, в чём польза от участия в международных конкурсах для веб-дизайнеров и разработчиков (по крайней мере для нашей студии).

More!milk работает — коровы отдыхают

More!milk — это производитель растительного напитка на основе сои. Продукт экологически чистый, подходит для тех, кто отказался от коровьего молока и ищет ему вкусную замену. More!milk по своей сущности eco-friendly бренд, делающий большой упор на коммуникацию с клиентом.

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

Отношение «бренд — потребитель»

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

Нам нужно дать понять пользователю, что натуральность продуктов и забота о будущем — важные ценности, которые More!milk разделяет с ним. Весь путь продукта экологичен, начиная от заготовки сырья и заканчивая упаковкой готовой продукции.

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

Старт проекта

Герои проекта: Сергей Шуть, Евгений Сотников и Павел Мажуга.

Задача клиента состояла в том, чтобы сделать сайт с оригинальным дизайном, взяв за основу днк бренда и его манеру общения с покупателем.

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

Готовые этикетки от клиента, которые нам нужно показать на 3D-моделях

Мы поставили такие условия заказчику: наши руки полностью развязаны, минимум правок и большой срок реализации проекта. Клиент доверился нам и согласился, так как сам был заинтересован в том, чтобы сайт получил награды и, как следствие, привлек внимание к бренду.

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

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

Юлия Чернова, директор по маркетингу More!milk

Мы решили сделать ставку на WebGL — одну из передовых технологий frontend-разработки, которую мы используем в студии. Первая версия этой технологии вышла в 2011 году, но она, на наш взгляд, только сейчас начинает набирать обороты.

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

Использовать WebGL на проекте с ограниченным бюджетом рискованно, но мы не стали экономить на ресурсах, понимая, что это будет нашей визитной карточкой в веб-сайтах с 3D.

WebGL (Web Graphics Library) — программная библиотека для языка JavaScript, которая позволяет создавать 3D графику, функционирующую в браузерах. Мощная и производительная штука c довольно крутым порогом входа.

Нужно много времени потратить на изучение технологии, где-то даже окунуться в математику. Библиотека Three.js — прекрасный инструмент, позволяющий абстрагировать большую часть низкоуровневых операций работы с WebGL.

Использовать эту технологию можно для любого проекта, где вы хотите показать объекты в объеме, сложную анимацию, дать пользователю возможность взаимодействовать с 3D или сделать интересное поведение 3D-модели в зависимости от происходящего на сайте.

Особенному продукту особый дизайн

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

Нестандартный лейаут

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

В данном случае компоновка объектов разная на всех страницах, по этой причине время вёрстки заметно увеличилось.

Много графики плюс видео в качестве прелоадера

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

Видео должно быть небольшим по весу (это же прелоадер, в конце концов), и должно воспроизводиться плавно — ведь на нем сфокусировано внимание пользователя, когда грузятся ассеты.

3D-модели

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

С какими трудностями столкнулись и как их преодолели

Основные трудности мы встретили на вёрстке сайта. Павел Мажуга, front-end разработчик проекта, расскажет в чём было дело.

1. «Тяжелые» бутылки. Когда дизайнер передает тебе в работу модель размером в 25 мегабайт (в среднем), первая реакция — ужас. На главной странице должно быть 4 разных модели, не говоря о плавном скролле, lottie-анимациях (svg-анимации, экспортированные из Adobe After Effects), и прочем. 100 мегабайт только 3D-объектов? Не вариант.

Шоколад, корица, масала, ваниль. Какой вкус выберешь ты?

Я был знаком с технологией компрессии/декомпрессии трехмерных данных Draco от Google, поэтому первой мыслью стало ее применение. За счет нее я смог сократить объем модели с 25 мегабайт до 1,5 мегабайт, что весьма круто. Но этого было недостаточно.

Чуть позже я понял, что геометрию модели можно переиспользовать, а материалы мешей (цельных готовых объектов — этикеток) можно менять в JS. После удаления текстур из модели и реализации их загрузки в рантайме, скорость загрузки значительно возросла и появилась большая гибкость — теперь можно создавать бутылки с любыми этикетками, не жертвуя производительностью.

Итоговый размер бутылки сейчас — 156 Кб для большой бутылки и 306 Кб для маленькой плюс текстура этикетки. Странно вышло, что после сжатия маленькая бутылка вышла тяжелее большой. Видимо в мире бутылок размер не имеет значения...

К сожалению, в мобильной версии нам пришлось отказаться от 3D и заменить модели картинками, так как телефоны дешевле сорока тысяч рублей начинали «кипеть» при запуске сайта.

2. Сторителлинг на главной странице. При пролистывании страниц на сайте постоянно что-то происходит, и это «что-то» привязано к позиции скролла. При неправильной реализации — гарантированные лаги (т.к. в браузере происходит много перерисовок). Я решил воспользоваться готовым решением для реализации данного функционала.

Сначала все было замечательно, но потом я натолкнулся на недоработки библиотеки, и больше боролся с ними, чем пользовался ее преимуществами. В итоге я смог связаться с разработчиками библиотеки, и они смогли её доработать. С этим уже можно было более-менее что-то делать, но в будущем я буду стараться не использовать готовые решения.

3. Использование lottie-анимаций на сайте. Чем их меньше, тем лучше, если вы хотите сохранить производительность работы сайта. При скролле страницу страшно фризило. Когда работали такие анимации, fps проседал до 20. Чтобы сохранить адекватный перфоманс при скролле сайта, lottie-анимации ставятся на паузу, а когда скроллинг заканчивается, снова воспроизводятся.

Чтобы не расходовать ресурсы браузера впустую, анимации, которые находятся вне вьюпорта браузера (которые не видны в данный момент пользователю) не воспроизводятся.

Советы frontend-разработчикам, которые собираются работать с WebGL

Если вы столкнулись с проблемами, которые не можете решить, и они описаны ниже — надеюсь, я вам помог:

  • Всегда сжимайте GLTF-модели с помощью draco (файлы сжимаются до 90% от исходного размера).
  • Уменьшайте количество вызовов отрисовки (draw calls) — чем их меньше, тем выше FPS.
  • (очевидно) Старайтесь переиспользовать все, что только можно, не создавайте ненужные объекты в JS и на GPU — экономьте ресурсы процессора и память.
  • Вообще следите за памятью при работе с моделями и WebGL в целом — очень легко допустить утечку.
  • Старайтесь избегать включения сглаживания (antialiasing) при создании WebGLRenderer — это сильно повышает производительность.
  • Выносите вычисления, которые не привязаны к DOM, в веб-воркеры — это действительно повышает производительность главного потока выполнения программы в браузере.
Паша совместно с бутылочкой More!milk верстают сайт

Стоило ли это потраченного времени и сил?

В общем и целом, большая часть времени ушла на два процесса:

1. Поиск баланса качественной работоспособности сайта на любом устройстве и сохранение технологий, которые закладывались при создании.

2. Достижение максимально естественного вида бутылок и их содержимого без потери производительности.

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

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

После запуска мы получили уйму положительных отзывов. Это, конечно, очень радует и бодрит.

Когда проект длится долго, то «глаз замыливается», появляется усталость и от визуала и от процесса. Мы все любим свежее и новое, и когда человек смотрит в одни и те же картинки несколько месяцев, ему постепенно кажется, что все не то и не так. Это естественная тяга человека к новому.

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

Юлия Чернова, директор по маркетингу More!milk

А что там с конкурсами?

Наш проект MoreMilk уже получил 3 ленточки на Behance: Interaction, AIGA, AdobeXD, Website of The Day на CSS Design Awards и honorable mention на Awwwards. Как думаете, российские награды вроде Tagline и Золотого сайта получится взять с этим проектом?

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

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

Подытожим

На новый год наша команда получила от More!milk подарок под ёлку — целый ящик соевого молока. Получается уже не зря старались! В знак благодарности мы устроили небольшую фотосессию и оставили отзывы о полезном продукте.

Наша студия вышла на новый уровень в работе с технологией WebGL. Полученный опыт и набитые «шишки» говорят о том, что следующие шаги будут начаты с уже более высокой планки, и мы будем делать проекты с 3D-графикой ещё круче, быстрее и интереснее.

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

Нам повезло, что команда, которой мы доверили сайт, привнесла свои оригинальные идеи и представила нашу компанию именно так, как мы хотели.

Юлия Чернова, директор по маркетингу More!milk

Дизайн, 3D, motion — Кирилл Ким
3D — Александр Педченко
Анимация — Эйнар Хамидуллин
Front-end — Павел Мажуга
Back-end — Сергей Шуть
Копирайтинг — Елена Гладышева
Менеджмент проекта — Евгений Сотников

Подпишитесь на наши:

Для сотрудничества свяжитесь с нами: [email protected]

0
74 комментария
Написать комментарий...
Валерий Пеньков

Щас набегут комментаторы «А аналитика? Да кому это нужно! У меня тормозит, хрень всё!».
Но проект получился крутой, работы проделана куча. А главное — опыт, такие штуки круто прокачивают)
Молодцы!

Ответить
Развернуть ветку
Chipsa
Автор

Спасибо, Валерий! Вас с Black Milk тоже поздравляем, вышло очень вызывающе))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Chipsa
Автор

Скорость загрузки сайт была для нас не в приоритете Для нас было главное, чтобы у пользователя яичница на компьютере не пригорала

Ответить
Развернуть ветку
Chipsa
Автор

К слову, проверьте на скорость практически любой сайт с использованием WebGL и более или менее сложных 3D моделей. Например, в списке победителей на сайте https://www.awwwards.com

Ответить
Развернуть ветку
4 комментария
Mike Espoo

 Современный веб - это одни сплошные свистоперделки, не говоря уже про якобы быстрые фрейморки, которые под капотом столько ***** имеют.
Поковыряйтесь в исходникак фреймворком хотя бы пол года.
13.5 лет с JavaScript и имею право на это мнение.

P.S.:
 Вам бы в какой-нибудь жесткий Enterprise попасть, где Java разрабы(ненавидящие JavaScript) пишут архитектуру веба, а потом это **** нужно как-то поддерживать и там где может работать один, работает 5+ человек.
Или в стартапы, где студенты в 24 года становятся Lead-ами и колбасят проекты на 150к строк, придумывая свои ноу хау к фреймворкам.
Особое "наслаждение" можете получить от иностранных проектов, где нанимают на удаленку спецов подешевле, с главным который ставит своей основной целью развести на бабки клиента и "шикарным" результатом работы, который выбрасывается в мусорку через 2-4 года, потом пишется новая версия с другой, но аналогичной командой еще 2-4 года, а этот процесс повторяется лет 10+.
Выражения: экономия ресурсов, экономичность, экономия и прочее у меня вызывают гомерический смех на основании опыта работы.
Тормозная **** на **** c выбрасыванием огромных бабок на пустоту лучше подходит под современное состояние подходов в вебе.

Ответить
Развернуть ветку
1 комментарий
Alexey

Непонятно что тут "не как у всех", обычный сайт. Вот тут я понимаю, работа с threejs была проделана https://go.pioneer.com/cornrevolution, но кого можно трехмерной бутылкой удивить - непонятно. Хотя фронтендеру всё равно уважение, представляю как он с дизайнерами натерпелся.

Текстура грязи на фоне , кстати, входит в коммуникацию, продуманную до мелочей?

Ответить
Развернуть ветку
Игорь Зайцев

Тут не в удивлении суть а в органичности подачи основного контента. Так потребителю проще почувствовать продукт, чем со статичными фото.

Ответить
Развернуть ветку
Chipsa
Автор

Вряд ли это отпечатки с экрана дизайнера остались на макете, поэтому входит скорее всего)

Приятно, что сравниваете https://go.pioneer.com/cornrevolution с нами , но мы пока лишь похвастались одним из амбициозных проектов нашей студии, а не всех веб-разработчиков. Дальше будет интересней)

Ответить
Развернуть ветку
Игорь Зайцев

загрузил в safari с трекпадом не работает скрол :) вот 

Ответить
Развернуть ветку
3 комментария
Антон Демидов

Молодцы, тщательная кропотливая работа. Не обращайте внимание на негатив, эти ребята и в сайте apple не увидят ничего достойного

Ответить
Развернуть ветку
Chipsa
Автор

Спасибо :)

Хорошо, что наша работа вызывает эмоции и люди хотят сказать об этом. Это была одна из главных наших задач, и мы, как видим, неплохо выполнили её.

Ответить
Развернуть ветку
Виктор Тасев

Ребят, а как насчет нарезать кадры с видео где бутылочка крутится и привязать смену кадров к скроллу? Без WebGL

Ответить
Развернуть ветку
Artem Petrenkov

Apple просто проматывает видео при прокрутке. Даже не нарезают.

Ответить
Развернуть ветку
6 комментариев
Chipsa
Автор

Дельный совет. Учтем.

Ответить
Развернуть ветку
1 комментарий
Alexey Laptev

Было бы интересно сравнить конверсию сайта со спец эффектами и обычного лендинга. Есть? 

Ответить
Развернуть ветку
Chipsa
Автор

Какая тут может быть конверсия? Вы про что? ) Мы же тут не услуги «сантехника» (абстрактно, мы ничего не имеем против сантехников в целом) продаем со скидкой в 50%, если успеете написать в течение 5 секунд во все всплывающие окна на сайте.

Ответить
Развернуть ветку
12 комментариев
Yevhenii Oliinyk

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

Ответить
Развернуть ветку
Artyom Konakov

Тормозит дико мобильная версия

Ответить
Развернуть ветку
Игорь Зайцев

Спасибо, очень интересный кейс.

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

Ответить
Развернуть ветку
Валентин Потапов

У нас в стране, нет своего производства такого немолока и возят из за границы. Раза в 3-4 дороже чем в РФ. Приходите, я за.

Ответить
Развернуть ветку
Валентин Потапов

Но грузится неприлично долго, не дождался. Сделали бы ленивую загрузку.

Ответить
Развернуть ветку
Николай Воронов

Ну, нам-то с вами это круто, интересно и смешно про "правильные маркетинговые слова", но кажется что на пользователях vc это все и остановится. Но красиво. Но бесполезно. Но красиво! 

Ответить
Развернуть ветку
Chipsa
Автор

Если считаете, что красиво, то уже не бесполезно )

Ответить
Развернуть ветку
Илья Филонов

Ребят, круто пишите. Всм, я про это статью. А блок на vc хиленький( С радостью читал бы больше от ваших специалистов!

Ответить
Развернуть ветку
Chipsa
Автор

Спасибо, будем стараться писать чаще)

Ответить
Развернуть ветку
Товарищ

Вот, кстати, сайт на заметку, интересно сделан https://go.pioneer.com/cornrevolution#science

Ответить
Развернуть ветку
Юрій Кармазін

Открыл сайт в начале прочтения статьи. К концу он все еще грузится. 
Интернет 100мб. Что сказать, отличная работа.

Ответить
Развернуть ветку
Артем Александрович

Открыл сайт после прочтения статьи. Загрузился за 3-4 секунды. Интернет меньше 100мб. Что сказать, и правда отличная работа!

Ответить
Развернуть ветку
Сергей Ивановский

Пришлось монитор вытирать после вашего сайта

Ответить
Развернуть ветку
Chipsa
Автор

Сайт вовлекает во взаимодействие )

Ответить
Развернуть ветку
Товарищ

+1 Единственное раздражает грязь. А так, конечно, бутылки классно получились.

Ответить
Развернуть ветку
Konstantin

Согласен. Очень спорное решение для презентации молока. По моему мнению, это самый спорный момент в дизайне. Продукция позиционируется как эко-френдли, но «пыль»  и экологичность — взаимоисключающие штуки. Меня это напрягло. 

Ответить
Развернуть ветку
Andrew Karasev

Очень круто, но как-то пустовато

Ответить
Развернуть ветку
Andrew Karasev

В Опере есть бутылки, в Хроме - нет

Ответить
Развернуть ветку
4 комментария
Chr Chr

Открыл сайт в Chrome и Edge (оба на одном движке)
Сказать, что медленно работает - приуменьшить (Surface book 2). Отклик долгий.
Edge - анимация испортившегося молока, которое фонтанирует из бутылки фризит под конец и так секунд 10, пока не загрузит основное меню. Контент не "листается"\прокручивается.
Chrome - анимация фризит в самом начале, контент прокручивается, но тормозит. Складывается впечатление, что громоздкий сайт, пользоваться которым пропадает желание из-за низкой оптимизации.

зы: шрифт показался нечитабельным, не такой, который бы органично воспринимался бы с первого раза.

Ответить
Развернуть ветку
Artem Petrenkov

Ну так если дизайнеры делают модельки в 25 Мб и им разработчики не объяснили, что для реалтайма нужно делать low-poly, то вот так оно и работает.

Ответить
Развернуть ветку
Алексей Трепачёв

Уверен, что ни одного комментария от вегана до сих пор не поступило, а мы так надеялись получить именно от них обратную связь :(

Ответить
Развернуть ветку
Кирилл Синицын

Что за библиотеку взял разраб для сторитейлинга?

Ответить
Развернуть ветку
Chipsa
Автор

Речь про скролл?
Потому что нет библиотеки для сторителлинга, есть куски, из которых все собрал наш разработчик)
https://github.com/locomotivemtl/locomotive-scroll
Вот библиотека от локомотива

Ответить
Развернуть ветку
Кирилл Щербаков

Чипса, а в чем разница, между стортеллингом и нарративом?

Ответить
Развернуть ветку
Chipsa
Автор

А к чему этот вопрос?) 

Ответить
Развернуть ветку
1 комментарий
71 комментарий
Раскрывать всегда