Создание анимированных 3D-моделей для AR с риггингом и анимацией

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Создание анимированных 3D-моделей для AR с риггингом и анимацией
Сложный
~5 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    859
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    746
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1162
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1035
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    969
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    563

При попытке воспроизвести анимацию в ARKit персонаж «телепортируется» между клипами? Или анимация в GLB работает на iOS, но ломается на Android? Такие проблемы — следствие неоптимизированного пайплайна анимации для AR. В отличие от обычной 3D-анимации, здесь каждый кадр рендерится на мобильном GPU в реальном времени. Ограничения: до 60–80 костей для скелетной анимации, 52 blend shapes для лицевой, частота кадров 12–24 fps для вторичных движений. Наш опыт — 7+ лет и 30+ реализованных проектов для iOS и Android. Мы оптимизируем пайплайн, чтобы сохранить качество при минимальном весе. Обращайтесь — поможем с вашим проектом.

Почему анимация в AR отличается от обычной?

В AR нет готовой среды с постобработкой. Мобильный GPU обязан обрабатывать анимацию в реальном времени — отсюда жёсткие ограничения. Зато открываются новые возможности: взаимодействие с реальным миром, встройка в окружение, тактильный отклик. Чтобы этим воспользоваться, нужно правильно выбрать тип анимации и подготовить модель.

Какие типы анимации используются в AR?

Skeletal animation (риггинг). Персонажи, животные, роботы. Скелет из костей управляет деформацией меша. Для AR-персонажей — максимум 60–80 костей. Больше — вес скиннинга (skin weights) перегружает GPU на мобильных устройствах.

Блендер-пайплайн для AR-персонажа:

  1. Моделирование low-poly меша
  2. Риггинг через Armature (автоматический Rigify или ручной для стилизованных персонажей)
  3. Скиннинг: Weight Paint Mode — критично выставить веса корректно, иначе при анимации меш рвётся в суставах
  4. Анимация в Action Editor: idle, walk, run, interaction (каждый Action = отдельный клип)
  5. Запекание анимации в keyframes (важно для USDZ — не все кривые поддерживаются)

Morph target animation (blend shapes). Лица, мимика, деформации без скелета. Face AR фильтры используют 52 ARKit blend shape коэффициента — под них создаём соответствующие morph targets в Blender:

jawOpen → ARKit blendShapeLocation.jawOpen
eyeBlinkLeft → ARKit blendShapeLocation.eyeBlinkLeft

Совместимость 1:1 с ARKit именами даёт автоматическое управление мимикой через ARFaceAnchor.blendShapes.

Procedural animation. Вращение шестерёнок, колыхание листьев, пульсация. В USDZ через UsdGeom.Xformable с анимированными xformOpOrder. В RealityKit — через AnimationResource с FromToByAnimation. Не требует скелета, минимальный вес.

Сравнение типов анимации

Тип Преимущества Недостатки Применение
Skeletal Гибкость, реалистичность Большой вес, ограничение по костям Персонажи, животные
Morph target Плавная мимика, малый вес Высокое потребление памяти при большом числе shapes Лица, деформации
Procedural Минимальный вес, не требует скелета Ограниченный набор движений Вращение, волны, технические объекты

Skeletal animation даёт больше контроля, но morph target эффективнее для мимики с весом в два раза меньше. Выбор зависит от задачи.

Ключевые проблемы при создании AR-анимации

USDZ и ограничения анимации. USDZ поддерживает только определённые типы анимационных кривых. Blender экспортирует в USD через стандартный экспортёр, но Driver-анимации, нелинейный редактор и некоторые модификаторы — игнорируются. Нужно запекать (Bake Action) в keyframes перед экспортом:

Object → Animation → Bake Action
→ Only Selected Bones, Visual Keying, Clear Constraints

После запекания — проверяем в Reality Composer или Quick Look на iOS. То, что выглядит нормально в Blender, может не воспроизводиться в ARKit. Официальная документация Apple рекомендует этот подход (см. Loading Animations from USDZ Files in RealityKit).

Размер анимированного USDZ. Анимация добавляет данные ключевых кадров. 10-секундный walk cycle на персонаже из 60 костей при 24 fps = 240 ключевых кадров × 60 костей × transform data. Оптимизация: снижаем частоту кадров анимации до 12–15 fps для вторичных движений (одежда, волосы), основные кости — 24 fps. Разница — 20–40% по весу файла.

Loop и переходы между клипами. В RealityKit переключение между анимациями:

entity.stopAllAnimations()
entity.playAnimation(walkAnimation, transitionDuration: 0.3, startsPaused: false)

transitionDuration обеспечивает плавный переход. Но для корректного перехода idle→walk→run позиции костей в конечном кадре одного клипа должны быть близки к начальному кадру следующего — иначе персонаж «телепортируется». Мы гарантируем seamless loops за счёт точной настройки ключевых кадров.

Как правильно экспортировать анимацию в USDZ?

Используйте запечённые keyframes, избегайте Driver-анимаций и модификаторов. В Reality Composer Pro (Xcode 15+) доступен предпросмотр. Для конвертации из FBX с анимацией используйте reality-converter CLI:

xcrun reality-converter -i character_animated.fbx -o character.usdz

GLB с анимацией — для Android и WebAR. Blender → Export → glTF 2.0 → Format: GLB. Анимации экспортируются как animations[] массив в glTF-структуре. Draco-сжатие для геометрии, но не для анимационных данных (они не сжимаются Draco). Получите консультацию, чтобы мы помогли настроить пайплайн под вашу задачу.

Кейс из нашей практики

AR-маскот для маркетинговой кампании: пингвин с 5 анимациями (idle, wave, dance, point, celebrate). Модель — 8000 полигонов, 42 кости. Использовали Blur AR на iOS, ARCore на Android. Главная сложность: один и тот же GLB работал корректно в Chrome WebAR, но dance анимация «ломалась» на Android ARCore — вращение бёдер выходило за пределы [-π, π] и GLB-парсер ARCore обрабатывал это иначе. Решение: нормализовать все euler rotation curves в Blender перед экспортом через Python script. После фикса анимация заработала на обеих платформах. Свяжитесь с нами, чтобы мы помогли с похожей задачей.

Что входит в работу

  • Low-poly модель с риггингом и скиннингом
  • Набор анимаций (как минимум idle + 2-4 базовых)
  • Экспорт в USDZ и GLB с проверкой в ARKit/ARCore
  • Документация по управлению анимациями
  • Тестирование на реальных устройствах
  • Поддержка в течение 2 недель после сдачи

Сроки и стоимость

Тип анимации Сроки
Простая процедурная (вращение, пульсация) 1–3 дня
Персонаж с 3–5 анимациями (риг + скиннинг) 1–3 недели
Лицевая анимация с ARKit blend shapes 1–2 недели
Сложный персонаж с 10+ анимациями и LOD 3–6 недель

Стоимость рассчитывается индивидуально. Базовые 3D-модели без анимации — отдельно. Закажите оценку вашего проекта — мы предложим оптимальное решение.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.