Идентификаторы SCNSceneSource с файлом usdz пусты - PullRequest
0 голосов
/ 20 ноября 2018

Мы работаем над проектом с ARKit 2 + SceneKit, iOS 12. Мы смогли извлечь CAAnimation экземпляров с .dae файлами и управлять ими во время выполнения.Сейчас мы пытаемся .usdz, но ни один из классов не может быть извлечен из SCNSceneSource с помощью usdz:

let source = SCNSceneSource(url: url, options: options)
let animationIdentifiers = source?.identifiersOfEntries(withClass: CAAnimation.self)

animationIdentifiers всегда пусто.То же самое относится ко всем классам, перечисленным в документации для этой функции https://developer.apple.com/documentation/scenekit/scnscenesource/1523656-identifiersofentries

Мы проверили наши собственные создания usdz, а также некоторые usdz из https://fusionar.app.

Сложно, анимации играют красивопри просмотре файла в iOS или Xcode, где у нас есть доступ к настройкам анимации и графика сцены:

Xcode animation

Но определенно не из кода вво время выполнения, поэтому мы не можем контролировать анимацию.

У вас когда-нибудь возникала эта проблема?

Есть ли какие-нибудь идеи по этому поводу?

1 Ответ

0 голосов
/ 21 ноября 2018

Получение записей из SCNSceneSource работает только для файлов Collada.При работе с файлом USDZ вам нужно будет проследить иерархию узлов и извлечь анимацию из узла, в котором он находится, используя -animationPlayerForKey:.

...