Я ищу способ анимации спрайтов в SceneKit. После некоторых исследований я нашел способ Core Animation сделать это, что было бы идеально, поскольку мне нужно как можно больше контролировать анимацию.Анимация UVs в SceneKit
Я подготовил простую плоскую сетку, с ее УФ-лучами, ограниченным одним размером рамки спрайта. Таким образом, мне нужно было только оживить УФ по горизонтали. Я обнаружил, что соответствующий элемент матрицы материала ТРАНСФОРМА материала будет m14 (тот, который отвечает за горизонтальный перевод).
Однако, во время выполнения, SceneKit выплевывает обратно следующее сообщение об ошибке:
[SCNKit ERROR] geometry?.firstMaterial?.diffuse.contentsTransform.m14 is not an animatable path
Это соответствующий код:
let spritesheetAnimation = CABasicAnimation(keyPath: "geometry?.firstMaterial?.diffuse.contentsTransform.m14")
spritesheetAnimation.fromValue = 1 - 1/spritesheetFrameCount
spritesheetAnimation.toValue = 0
spritesheetAnimation.byValue = 1/spritesheetFrameCount
spritesheetAnimation.duration = 1.0
spritesheetAnimation.repeatCount = Float.infinity
node.geometry?.insertMaterial(material, atIndex: 0)
node.addAnimation(spritesheetAnimation, forKey: "SpritesheetAnimation")
Любой имеющий опыт работы с этим? Я не знаю, есть ли более простой способ сделать это, или если я смотрю на это неправильно или что-то еще. Таким образом, любые указатели будут оценены!
Посмотрел действительно многообещающий, такая же ошибка, к сожалению:/ –
Bummer. Возможно, стоит записать ошибку, а затем: http://bugreport.apple .com –
Спасибо. Я собираюсь подождать еще один, может быть, еще моя ошибка. –