Интеграция Vuforia SDK для AR в мобильное приложение
Vuforia занимает нишу, где ARKit и ARCore проигрывают: промышленный маркерный AR с Model Targets. Распознавание 3D-моделей станков, медоборудования, автомобильных узлов — без печатных маркеров, по форме самого объекта. Для consumer AR (игры, e-commerce) Vuforia избыточна и дорога по лицензии. Но если нужен надёжный Industrial AR — это правильный выбор.
Типы таргетов и когда что выбирать
| Тип таргета | Что распознаёт | Типичный кейс |
|---|---|---|
| Image Target | Плоское изображение | Маркеры в упаковке, листовки |
| Model Target | 3D-объект по форме | Оборудование, авто, медтехника |
| Object Target | Сканированный физический объект | Уникальные предметы |
| Cylinder Target | Цилиндрическая поверхность | Банки, бутылки |
| Multi Target | Сборка из нескольких плоскостей | Упаковочные коробки |
Model Target — главное преимущество Vuforia. Берёшь CAD-модель в STL/OBJ, загружаешь в Vuforia Model Target Generator, получаешь .unitypackage с базой для распознавания. На реальном объекте Vuforia находит его за 1–3 секунды при хорошем освещении.
Интеграция в Unity
Vuforia Engine 10.x работает как Unity Package через Package Manager. Лицензионный ключ прописывается в VuforiaConfiguration.asset:
// Инициализация через код (альтернатива GUI-конфигурации)
VuforiaApplication.Instance.OnVuforiaInitialized += OnVuforiaReady;
private void OnVuforiaReady(VuforiaInitError error)
{
if (error != VuforiaInitError.NONE)
{
Debug.LogError($"Vuforia init failed: {error}");
return;
}
// Сессия готова
}
Image Target — добавляем ImageTargetBehaviour на GameObject, назначаем таргет из базы:
public class ProductARHandler : MonoBehaviour, ITargetStatusHandler
{
[SerializeField] GameObject arContent;
public void OnStatusChanged(TargetStatus status)
{
var isTracking = status.Status == Status.TRACKED
|| status.Status == Status.EXTENDED_TRACKED;
arContent.SetActive(isTracking);
}
}
EXTENDED_TRACKED — маркер вышел из кадра, но Vuforia продолжает удерживать позицию по IMU. Контент остаётся видимым несколько секунд — хорошо для промышленных кейсов, где рабочий не смотрит постоянно на метку.
Model Target: нюансы из практики
Model Target Generator требует указать начальную позу (Initial Pose) — угол, с которого пользователь начинает наведение. Если поза не совпадает с реальным углом обзора — устройство не начинает трекинг. Для промышленного кейса делаем 3–5 поз с разных сторон.
Advanced Model Target (лицензия Enterprise+) добавляет автоматическое обнаружение без Initial Pose. Работает медленнее, но не требует инструкции пользователю.
var modelTargetBehaviour = GetComponent<ModelTargetBehaviour>();
modelTargetBehaviour.SetActiveGuideView(0); // Переключение активной Initial Pose
Производительность и ограничения
Vuforia работает поверх нативной камеры и добавляет значительный CPU overhead — recognition pipeline постоянно обрабатывает кадры. На бюджетных Android-устройствах это ощутимо: Vuforia + Unity рендеринг могут давать 25 FPS вместо 60.
Ограничения по одновременному трекингу: Image Targets — до 5 одновременно (зависит от плана). Model Targets — 1 активный. Если нужно больше — кастомный Multi Target или смена стратегии.
Vuforia не работает в Unity Editor без Enterprise лицензии — только на устройстве. Это замедляет итерации. Решение: mock-режим через VuforiaEmulator для отладки UI и логики без реального трекинга.
Лицензирование
Vuforia — проприетарный SDK с ежемесячной оплатой. Basic (бесплатно): водяной знак на камере, ограниченные таргеты. Classic/Pro: без водяного знака, расширенные возможности. Enterprise: Model Target Advanced, офлайн-лицензии для промышленных устройств. Бюджет на лицензию нужно закладывать заранее — для B2B Industrial AR обычно требуется Enterprise.
Сроки
Интеграция Vuforia с Image Targets и отображением 3D-контента: 3–5 дней. Model Target с CAD-базой и кастомным UI-overlay: 1–2 недели. Полное промышленное решение с несколькими таргетами, Extended Tracking и Enterprise лицензией: 3–6 недель.







