我正在尝试为 SceneKit 中 SCNScene 对象的特定部分设置动画(在我的情况下,我想为手的手指设置动画)。我很容易从 Blender 中导入带有相应骨骼的 .dae (COLLADA) 文件,以在模型上生成关节。
override func viewDidLoad() {
super.viewDidLoad()
var scene = SCNScene(named: "hand.dae")!
sceneView.scene = scene
sceneView.allowsCameraControl = true
sceneView.autoenablesDefaultLighting = true
sceneView.backgroundColor = UIColor.lightGrayColor()
}
我的目标是使用用户生成的 0 到 1 之间的值在 iOS 上为这些骨骼设置动画。想象一个 UISlider,您可以在其中来回滚动并看到特定手指根据滑块的值移动。
这是需要的动画截图
我尝试通过调用像 Apple 的 Fox 示例这样的动画文件来为模型设置动画:
private var indexFingerAnimation: CAAnimation!
indexFingerAnimation = CAAnimation.animationWithSceneNamed(“move_index_finger.dae”)
indexFingerAnimation = false
indexFingerAnimation = 0.3
indexFingerAnimation = 0.3
indexFingerAnimation = Float.infinity
问题是这是一个全局动画,而不仅仅是食指。此外,它始终是“预定义”动画,而不是由用户输入控制的动画。最终我想混合动画(例如同时移动食指和拇指显示手势)
这可能吗?我很挣扎,因为我不知道如何操作网格的特定部分。我开始研究 MetalKit,但我不清楚这就是解决方案。
任何帮助将非常感激。