ARKit3 — официальный пример Apple не компилируется, имеет некорректную 3D-модель сетки/скелета USDZ

Я изучаю новые функции ARKit3, в частности захват движения. У меня есть iPhone с чипом A12 (так что все новые функции должны работать), и на iPhone установлена ​​iOS 13 (бета). Я также установил бета-версию Xcode 11 на свой ноутбук для разработки в соответствии с рекомендациями.

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

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

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

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

Я получаю сообщение об ошибке в консоли Xcode:

2019-07-18 16:21:13.645289-0400 BodyDetection[11503:176170] [API] Created entity character does not contain supplied joint name: right_shoulder_2_joint.
2019-07-18 16:21:13.645348-0400 BodyDetection[11503:176170] [API] Cannot get joint count for non-character entity.
Error: Unable to load model: The operation couldn’t be completed. (RealityKit.Entity.LoadError error 4.)

Кажется, он не может загрузить сетку/скелет. Приложение работает, и я вижу изображение с камеры, но 3D-персонаж/сетка никогда не визуализируются.

Кто-нибудь может подсказать, где найти 3D-модель, которая будет работать с фреймворком ARKit3? Кто-нибудь видел что-нибудь подобное этой ошибке раньше?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
863
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Можете ли вы подтвердить, что ваше устройство определенно имеет чип A12 (то есть это iPhone XR, XS, XS Max, iPad Mini (2019 г.), iPad Air (2019 г.) или iPad Pro (2018 г.))? Кроме того, убедитесь, что на вашем Xcode установлена ​​последняя версия Beta 4 (сборка 11M374r на момент написания этой статьи), а на вашем устройстве iOS установлена ​​бета-версия iOS 13.

Это может показаться рудиментарным, но я не могу воспроизвести проблемы, указанные вами при загрузке примера проекта с моей стороны. Я могу запустить проект, настроить свою группу подписи, загрузить на свой iPhone XS Max, и проект будет работать как надо; когда в кадре обнаруживается тело, рядом появляется трехмерный «скелет», и следует движение.

Возможно, стоит упомянуть, что для технологии трехмерного отслеживания тела требуется модель USDZ с уже настроенными существующими суставами. У моделей USDZ на сайте Apple в основном их нет (у робота, например, отсутствуют какие-либо такие суставы, которые можно было бы отследить). На этом снимке экрана показан пример того, как выглядит структура «скелета» Apple.

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

Спасибо за ваш ответ. Я скачал новейшую бета-версию Xcode 11 (11M374r), и рассматриваемый телефон — iPhone XR. С более новым Xcode я больше не получаю ошибок компиляции, но я получаю ошибки времени выполнения, которые начинаются, как только запускается пример приложения. IDE (Xcode) приводит меня к строке 46 файла ViewController.swift, и я получаю красный тег ошибки, говорящий: Thread 1: signal SIGABRT Код, в котором возникает ошибка, находится в строке 46 и выглядит следующим образом: cancellable = Entity.loadBodyTrackedAsync(named: "character/robot").sink( // more code here

attl 24.07.2019 21:12

@attl Можете ли вы подтвердить, что если вы откроете образец проекта CapturingBodyMotionIn3D, вы увидите модель robot.usdz в левой части Xcode в папке персонаж? Если у вас есть модель .usdz в этой папке, убедитесь, что она называется «робот» и никак иначе. Если это так, возможно, стоит подать отзыв через Помощник по обратной связи; Я не могу воспроизвести ваши проблемы на iPhone XS Max, но, возможно, есть проблема с iPhone XR.

ZbadhabitZ 25.07.2019 01:06

После установки самой последней бета-версии iOS 13.0 и полной переустановки Xcode (тот же код бета-версии, который вы предоставили), пример захвата движения наконец-то заработал. Я подозреваю, что это была смесь бета-версии iOS + бета-версии Xcode + нового AR-фреймворка, который не хотел хорошо работать. Кажется, нужно лучше понимать отладку и отчеты об ошибках при разработке iOS. Спасибо за ваши ответы.

attl 25.07.2019 17:17

Другие вопросы по теме