Мы работаем над проектом с 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

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

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

Любое представление об этом?

0
ryancrunchi 20 Ноя 2018 в 22:19

1 ответ

Лучший ответ

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

1
mnuages 21 Ноя 2018 в 11:33