НАСТРОЙКА СЦЕНЫ

Работа с анимациями

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

Большинство анимаций 3D-моделей — это скелетные анимации . Эти анимации упрощают сложную геометрию модели в виде «фигурки», связывая каждую вершину в сетке с ближайшей костью в скелете . Разработчики моделей настраивают скелет в разные позы, а сетка растягивается и изгибается в соответствии с этими движениями.

В качестве альтернативы вершинная анимация позволяет анимировать модель без каркаса. Эти анимации напрямую определяют положение каждой вершины в модели.


Проверка 3D-модели на наличие анимации


Не все файлы glTF включают анимацию. Чтобы узнать, есть ли в наличии, вы можете сделать следующее:

  • Если вы используете VS Code (рекомендуется), установите расширение GLTF Tools и просмотрите, с помощью него, содержимое файла glb (для просмотра кода — нужно изменить формат с .glb в .glTF);
  • Откройте сайт Babylon Sandbox и перетащите файл glb (и все зависимости .jpg или .bin ) в браузер;
  • Откройте .glb файл с помощью текстового редактора и прокрутите вниз , пока не найдете «анимации».
Совет: В скелетных анимациях имя анимации часто состоит из имени арматуры, символа подчеркивания и имени анимации. Например myArmature_animation1.
Лучшие практики для создания анимации:

  • Сделайте арматуру простой, создавайте кости только для тех частей модели, которое вы собираетесь анимировать;
  • Если анимация будет зациклена в вашей сцене, убедитесь, что конечная поза идентична начальной, чтобы избежать прерывания при повторе;Иногда в анимации вам может понадобиться контролировать движения только частей каркаса, а другие кости оставить неопределенными. Это может упростить объединение анимаций вместе;
  • Анимированные персонажи в вашей сцене никогда не должны оставаться неподвижными, даже если они ничего не делают. Лучше всего создать «холостую» анимацию, чтобы использовать ее, когда персонаж неподвижен. Анимация ожидания может включать в себя легкие движения, такие как дыхание, и, возможно, случайные взгляды;
  • При экспорте убедитесь, что ваша модель имеет только одну арматуру. Иногда, при импорте другой анимации в программу, в которой вы редактируете модель, может добавиться копия арматуры;
  • При экспорте модели убедитесь, что вы экспортируете все объекты и анимации. Некоторые экспортеры могут экспортировать только выбранные по умолчанию;
  • После экспорта модели проверьте ее в песочнице Babylon, чтобы убедиться, что все анимации работают и названы должным образом.


Как создать анимацию?

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

1. Создайте арматуру, следуя форме вашей модели и частям, которые вы хотите переместить. Вы делаете это, добавляя начальную кость, а затем выдавливая все остальные кости из вершин этой кости. Кости в арматуре определяют точки, которые могут быть сочленены. Арматура должна располагаться внахлест на сетку.
Сделайте и арматуру, и сетку дочерними активами одного и того же объекта.
Для этого нужно выбрать Object Mode, выделить кости и сетку. Нажать правой кнопкой мыши (или Ctrl + P) → Parent → With Automatic Weights
Убедитесь, что сетка движется естественно, когда ее кости вращаются так, как вы планируете ее двигать. Если части меша растягиваются нежелательным образом, используйте Weight Color, чтобы изменить то, на какие части модели влияет каждая кость в каркасе.
Примечание. Сообщается об ошибке в Babylon.js, которая не позволяет визуализировать некоторые грани сетки, если они не связаны с какой-либо костью в арматуре. Поэтому, если вы нарисуете некоторые грани с весом 0, а затем оживите модель, вы можете увидеть, как эти грани исчезнут. Чтобы решить эту проблему, рекомендуется убедиться, что каждая грань связана хотя бы с одной костью арматуры и окрашена с весом не менее 0,01.
1. Переместите арматуру в желаемую позу, все кости можно вращать или масштабировать. Затем зафиксируйте поворот и масштаб костей, которыми вы хотите управлять с помощью этой анимации, с помощью создав кадр анимации (с помощью горячей клавиши I);
2. Переключитесь на другой кадр анимации, поместите арматуру в новую позу и снова заблокируйте ее. Повторите этот процесс для всех ключевых кадров, которые вы хотите задать для описания анимации;

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

Импорт 3D-модели в MyWebAR и включение анимации.

Для того, чтобы 3D-модель проигрывала анимацию после сканирования QR-кода — нужно добавить эту функцию (об этом рассказано в статье об анимациях)

Заметка! Если планируется использовать существующую модель из библиотек в интернете, например, sketchfab.com — в поиске обязательно следует уточнить о присутствии анимации, поставив галочку в поле animated.
Скачивать и экспортировать модель можно в любом поддерживаемом формате, но, для лучшей работы с сервисом MyWebAR — предпочтительным форматом является .glb*.

*Если данного формата нет в списке — то можно скачать любой из существующих, а далее, с помощью конвертера, либо с помощью специальных программ для работы с 3D (например Blender) — изменить формат на .glb.