какой инструмент следует использовать для создания программы ARKit

1656630493 kakoj instrument sleduet ispolzovat dlya sozdaniya programmy arkit

Нил Мэтью

Все, что я хотел бы знать, прежде чем создать свое первое приложение ARKit.

CcAQzXvdxuV7jc7CqvVMEAVbq5aVlJJHb32Q

Начиная с разработки ARKit, первый вопрос, который возникает почти у каждого: какие инструменты следует использовать для создания программы AR? Кажется, два наиболее часто используемых инструмента Единство и SceneKit но что лучше? Какой из них мощнее, гибче и легче в учебе? Кто имеет наибольшую поддержку?

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

Если вы начинаете разработку AR, Вот несколько вещей, которые я хотел бы знать о Unity и SceneKit, прежде чем создал свое первое приложение AR. Итак вот.

Сначала краткий обзор:

Единство это зрелый движок 3D-игр, который тесно связан с виртуальной реальностью и дополненной реальностью из-за его сильного внимания к 3D-содержимому. Основным языком разработки является C#. Разработка ARKit в Unity выполняется с помощью плагина Unity ARKit, который оборачивает ARKit SDK в сценарии C# для легкого доступа ко всем функциям ARKit.

SceneKit это версия Apple для разработки 3D-игр для нативной разработки iOS и напрямую интегрирована с Xcode. Основными языками являются Swift и Objective C.

Кто-то из них объективно лучше?

Сравнивая два продукта, наиболее разочаровывает ответ в Интернете: «Это зависит». Итак, позвольте мне начать с того, что в большинстве случаев вы это найдете Единство это лучшее решение для разработки AR. Однако в некоторых случаях SceneKit выигрывает, и я приложу все усилия, чтобы объяснить преимущества и недостатки каждого инструмента, чтобы вы могли принять взвешенное решение.

Давайте сначала рассмотрим два возможных сценария для разработчиков приложений AR прямо сейчас:

  1. Вы создаете приложение (потребительское, корпоративное и т.д.)
  2. Вы создаете игру или «опыт»

Вы создаете приложение

Если вы хотите интегрировать ARKit в существующее приложение для iOS, не ищите дальше. Используйте SceneKit. SceneKit позволяет легко интегрировать AR-вид в ваше приложение, не меняя ничего другого в UX.

Если вы опытный разработчик iOS и имеете опыт работы с XCode, Swift, Cocapods и т.д., вам все равно следует использовать SceneKit. Вы избежите кривой обучения новой платформы и сможете достаточно быстро подобрать ARKit SDK.

Если вы создаете новое потребительское или корпоративное приложение для iOS и вам нравится, как выглядят элементы интерфейса Apple (например, кнопки, жесты и оповещения), SceneKit, опять же, является лучшим выбором. Будучи продуктом Apple, SceneKit отлично интегрируется с XCode и позволяет интегрировать ваш 3D-вид сцены со всеми встроенными 2D-элементами пользовательского интерфейса довольно легко.

Общее правило заключается в том, что если 3D-контент не является центральным в вашем приложении, и вы заботитесь о шаблонах iOS UX, используйте SceneKit.

zicyuUU8h3hK8264a0YRzyod7tFIL6b1yRPZ
SceneKit позволяет легко добавлять собственные шаблоны двумерного интерфейса iOS в вашу программу.

The предостережение заключается в том, что если вы заботитесь о быстрой кроссплатформенной разработке для iOS и Android или если у вас есть много 3D-контента, таких как анимированные модели, спецэффекты и физика, запланированные для вашего приложения, вам следует рассмотреть Единство. Он более зрелый как кросс-платформенный набор инструментов для 3D-разработки из-за его корней как игровой движок.

Вы создаете игру

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

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

Кроме того, Unity позволяет быстро компилировать на разных платформах, так что вы можете перенести свою игру ARKit на Android только с небольшими изменениями в фактических библиотеках отслеживания AR. (Это тоже скоро изменится – Unity создает кроссплатформенный XR SDK, абстрагирующий библиотеки AR низкого уровня для еще более быстрого порта). Скорость разработки часто является достаточно важным фактором для разработчиков, и необходимость переписывать вашу программу для разных платформ может быть достаточно большой ценой.

Критерии принятия решений

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

1. Производительность

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

Однако имейте в виду, что весь код камеры и другие модули AR плагина Unity написаны в Objective C, поэтому они очень схожи с точки зрения эффективности. Это, главным образом, тяжелые 3D-сцены и любые недостатки в дизайне вашего проекта, которые замедлят его. Здесь есть хорошая тема на эту тему.

Вердикт: Unity и SceneKit здесь достаточно ровные.

2. Совместимость с форматом 3D

Мне лично было тяжело импортировать 3D-модели и анимацию в SceneKit. Вообще, при поиске 3D-содержимого для игры или программы имейте в виду, что SceneKit ограничит вас использованием файлов Collada (.dae) или Wavefront (.obj). Кроме того, иногда я видел, что некоторые файлы .obj не воспроизводятся должным образом в Scenekit.

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

Вердикт: +1 для Unity здесь.

3. Легкость отладки

Unity – это очень визуальная IDE с отличными инструментами визуальной настройки, которые позволяют вам видеть и взаимодействовать со всем 3D-содержимым вашей сцены во время выполнения. Хотя вам нужно запустить приложение непосредственно на устройстве iOS, чтобы правильно проверить и наладить проблемы с ARKit, вы можете использовать такие инструменты, как Unity ARKit Remote, чтобы прототипировать 3D-взаимодействия в вашем приложении непосредственно в редакторе Unity.

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

Вердикт: +1 для Unity здесь.

sBxLgTDS8VEOd75fXOaO6XryNCgSBnFUzkT4
Отличный отладчик визуальных сцен от Unity

4. Наличие документов / учебное пособие / образцов

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

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

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

Если вы хотите начать, вот мое любимое вступление видеоуроки для Unity и SceneKit.

Единство: создайте анимацию шагающего зомби
Ценекит: создавайте и просматривайте простые 3D-объекты.

Вердикт: +0,5 для Unity здесь

5. Скорость развития

Многие разработчики сообщают, что кривая обучения Unity короче, чем Scenekit. Вероятно, это потому, что вы можете научиться разработке 3D-контента гораздо легче на Unity, прежде чем перейти к разработке AR.

С технической точки зрения, AR-игра – это просто 3D-игра с камерой. Распределение процесса обучения таким образом делает вещи гораздо более интуитивными.

Другим важным фактором является кроссплатформенная разработка. Хотя вы не можете напрямую создать проект Unity ARKit для Android, вы можете по крайней мере повторно использовать 3D-содержимое и взаимодействия, созданные на любой платформе. Вам нужно только подключить новый менеджер камеры для каждого устройства. Теперь Unity делает это проще, абстрагируя специфические аппаратные функции, такие как ARKit и ARCore, с помощью своего нового XR SDK.

Вердикт: +1 для Unity здесь

Вывод

В общем, если вы создаете игру, Unity почти всегда является лучшим решением.

Если вы создаете приложение, вам нужно подумать, цените ли вы нативную разработку для iOS и элементы пользовательского интерфейса Apple над кроссплатформенной разработкой. Если ваше приложение имеет минимальные 3D-взаимодействия, SceneKit будет лучшим вариантом. В противном случае придерживайтесь Unity.

Еще один совет, который я могу вам дать, — не тратить слишком много времени на это решение. Просто начните с одного. Вы будете тратить гораздо меньше времени на то, чтобы попробовать один инструмент и изменить его, если вам покажется, что он работает недостаточно хорошо. Как разработчику iOS AR, как XCode, так и Unity, со временем станут полезными наборами навыков для получения.

Подводя итог, вот хорошая цитата из субредита ARKitCreators.

«Приличным эмпирическим правилом было бы использовать Swift, если ваше приложение относительно простое или если взаимодействие AR и 3D не является основой того, что вы пытаетесь создать. И используйте Unity для противоположного».

Кто я?

Я генеральный директор и соучредитель Placenote, SDK, предоставляющий мобильным программам AR возможность навсегда блокировать содержимое AR в любом физическом месте в реальном мире. Итак, если вы, например, создавали такое приложение, как навигация в помещении, приложение для граффити с дополненной реальностью или даже многопользовательскую игру, вам следует проверить Placenote SDK.

Placenote SDK содержит образцы кода, доступные как для разработчиков Unity, так и для SceneKit, поэтому смело используйте наши образцы программ, чтобы помочь принять решение о платформе!

Вы можете установить SDK здесь

Ссылки

Я сочинил эту статью с помощью этих замечательных потоков Quora и Reddit.

  1. Какие плюсы и минусы создания приложений дополненной реальности в Swift против Unity?
  2. Swift против Unity
  3. Я хочу создавать приложения AR. Для начала мне выучить ARKit или Unity?
  4. Проще ли использовать iOS SceneKit или игровой движок Unity для разработки проекта iOS 11 ARKit?

Добавить комментарий

Ваш адрес email не будет опубликован.