Я использую ARKaceTrackingConfiguration от ARKit для отслеживания смешанных форм лица, а также преобразования левого и правого глаза. Я экспортирую эти данные в json и применяю эти данные к 3d-модели (которая предварительно настроила ключи формы, узлы глаза). Мне удалось применить данные формы наложения, но я был поражен тем, как применять повороты глаз. я получаю leftEyeTransform, rightEyeTransform, который является simd_float4 * 4 из FaceAnchor.
Здесь показано, как применить вращение к узлам глаза из значений преобразования. Я считаю, что для глаз достаточно применить вращение. eyeTransforms:
Метод 1:
let faceNode = SCNNode()
faceNode.simdTransform = eyeTransform
let vector = faceNode.eulerAngles
eyeLeftNode.eulerAngles = vector
Метод: 2
let faceNode = SCNNode()
faceNode.simdTransform = eyeTransform
let rotation = vector_float3(faceNode.orientation.x,faceNode.orientation.y,faceNode.orientaton.z)
let yaw = (rotation.y)
let pitch = (rotation.x)
let roll = (rotation.z)
let vector = SCNVector3(pitch, yaw, roll)
eyeLeftNode.eulerAngles = vector
Метод: 3
let simd_quatf = simd_quaternion(eyeTransform)
let vector = SCNVector3(simd_quatf.axis.x,simd_quatf.axis.y,simd_quatf.axis.z)
eyeLeftNode.eulerAngles = vector
Ни один из способов не работает , Я не могу выяснить реальную проблему о том, как вращать глазные яблоки. Подскажите, пожалуйста, как это сделать
Спасибо, Чайтанья