У меня возникла проблема с отслеживанием тела в ARKit. Проблема возникает, когда тело поворачивается спиной к камере; BodyTrackedEntity не работает точно в определенных сценариях.
Например, кажется, что повороты головы и тела расходятся: голова может начать вращаться слева направо, а тело — справа налево, что приводит к неточному отслеживанию.
Похоже, что вращение головы существенно влияет на оценку вращения всего тела. Есть ли способ исключить определенные суставы из процесса отслеживания? Альтернативно, могу ли я вручную настроить соединения моего BodyTrackedEntity? Бывают случаи, когда я предпочитаю не устанавливать их положение или поворот.
Ниже приведены скриншоты процесса обнаружения и мой текущий код реализации:
символ var: BodyTrackedEntity? пустьcharacterAnchor = AnchorEntity() // другие конфигурации в порядке расширение CameraViewController: ARSessionDelegate { func session (_ session: ARSession, якоря DidUpdate: [ARanchor]) { для якоря в якорях { если let bodyAnchor = якорь как? ARBodyAnchor { пусть bodyPosition = simd_make_float3(bodyAnchor.transform.columns.3) characterAnchor.position = bodyPosition +characterOffset characterAnchor.orientation = Transform(матрица: bodyAnchor.transform).rotation если пусть символ = символ, символ.родитель == ноль { персонажAnchor.addChild(символ) } } } } }


Мобильная версия